--- /dev/null
+package-lock.json
+node_modules
\ No newline at end of file
-Test
+# Minimal Alt1/webpack/typescript example
+
+how to use
+```sh
+# to initialize the repo and install dependencies
+npm i
+# build
+npm run build
+# alternatively to auto-rebuild when source files are changed
+npm run watch
+```
+
+You can open `./dist/index.html` in your browser and it will give some basic functionality based one pasted images.
+
+You can also open it in the Alt1 browser and click the `add app` button that appears to get some basic alt1 functionality.
\ No newline at end of file
--- /dev/null
+{"chars":[{"width":4,"bonus":40,"chr":"!","pixels":[1,1,238,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,10,238],"secondary":false},{"width":5,"bonus":30,"chr":"\"","pixels":[1,0,187,1,1,255,2,0,153,2,1,153,3,0,255,3,1,187],"secondary":true},{"width":10,"bonus":160,"chr":"#","pixels":[1,4,238,1,8,255,2,4,255,2,8,255,2,9,221,2,10,255,3,1,153,3,2,187,3,3,221,3,4,255,3,5,255,3,6,204,3,7,170,3,8,255,4,1,153,4,4,255,4,8,255,5,4,255,5,8,255,5,9,204,5,10,255,6,2,187,6,3,221,6,4,255,6,5,255,6,6,221,6,7,187,6,8,255,7,1,153,7,4,255,7,8,255,8,4,255],"secondary":false},{"width":8,"bonus":105,"chr":"$","pixels":[1,2,221,1,3,255,1,4,255,1,9,238,2,1,221,2,2,153,2,5,255,2,10,238,3,0,255,3,1,255,3,5,187,3,6,170,3,10,255,3,11,255,4,1,238,4,6,255,4,10,221,5,2,153,5,7,255,5,8,255,5,9,238],"secondary":false},{"width":10,"bonus":125,"chr":"%","pixels":[1,2,255,1,3,255,1,10,187,2,1,255,2,4,255,2,9,238,3,2,255,3,3,255,3,7,170,3,8,221,4,6,238,5,4,153,5,5,238,5,8,255,5,9,255,6,3,238,6,4,170,6,7,255,6,10,255,7,2,238,7,7,255,7,10,255,8,1,187,8,8,255,8,9,255],"secondary":false},{"width":9,"bonus":150,"chr":"&","pixels":[1,2,204,1,3,255,1,4,204,1,6,204,1,7,255,1,8,255,1,9,204,2,1,204,2,2,170,2,4,153,2,5,255,2,6,187,2,9,187,2,10,187,3,1,255,3,5,255,3,10,255,4,1,255,4,5,255,4,10,255,5,5,255,5,9,204,5,10,170,6,4,255,6,5,255,6,6,255,6,7,255,6,8,238,6,9,153,7,5,255],"secondary":false},{"width":4,"bonus":10,"chr":"'","pixels":[2,1,221,2,2,187],"secondary":true},{"width":4,"bonus":55,"chr":"(","pixels":[1,3,170,1,4,221,1,5,255,1,6,255,1,7,255,1,8,221,1,9,170,2,1,221,2,2,204,2,10,187,2,11,255],"secondary":false},{"width":4,"bonus":55,"chr":")","pixels":[1,1,221,1,2,204,1,10,187,1,11,255,2,3,170,2,4,221,2,5,255,2,6,255,2,7,255,2,8,221,2,9,170],"secondary":false},{"width":7,"bonus":60,"chr":"*","pixels":[1,3,170,2,3,238,2,4,170,2,5,238,3,1,255,3,2,255,3,3,255,3,4,238,4,3,238,4,4,170,4,5,238,5,3,153],"secondary":false},{"width":9,"bonus":65,"chr":"+","pixels":[1,7,255,2,7,255,3,7,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,4,10,255,5,7,255,6,7,255,7,7,255],"secondary":false},{"width":4,"bonus":20,"chr":",","pixels":[1,10,187,1,11,170,2,9,255,2,10,153],"secondary":true},{"width":6,"bonus":20,"chr":"-","pixels":[1,7,255,2,7,255,3,7,255,4,7,170],"secondary":true},{"width":4,"bonus":5,"chr":".","pixels":[1,10,255],"secondary":true},{"width":6,"bonus":55,"chr":"/","pixels":[1,10,187,1,11,187,2,7,204,2,8,255,2,9,187,3,3,170,3,4,255,3,5,221,3,6,153,4,1,255,4,2,204],"secondary":false},{"width":9,"bonus":110,"chr":"0","pixels":[1,3,187,1,4,238,1,5,255,1,6,255,1,7,238,1,8,187,2,2,255,2,9,255,3,1,238,3,10,238,4,1,255,4,10,255,5,1,238,5,10,238,6,2,255,6,9,255,7,3,187,7,4,238,7,5,255,7,6,255,7,7,238,7,8,187],"secondary":false},{"width":7,"bonus":80,"chr":"1","pixels":[1,3,204,1,10,255,2,2,238,2,10,255,3,1,255,3,2,255,3,3,255,3,4,255,3,5,255,3,6,255,3,7,255,3,8,255,3,9,255,3,10,255,4,10,255,5,10,255],"secondary":false},{"width":8,"bonus":110,"chr":"2","pixels":[2,2,255,2,8,204,2,9,255,2,10,255,3,1,204,3,7,221,3,8,170,3,10,255,4,1,255,4,6,204,4,7,170,4,10,255,5,1,221,5,2,153,5,5,187,5,6,204,5,10,255,6,2,221,6,3,255,6,4,255,6,5,170,6,10,255],"secondary":false},{"width":8,"bonus":120,"chr":"3","pixels":[1,9,170,2,1,255,2,9,187,2,10,170,3,1,255,3,5,255,3,10,255,4,1,255,4,3,170,4,4,221,4,5,238,4,10,255,5,1,255,5,2,238,5,3,187,5,5,170,5,6,187,5,9,187,5,10,170,6,1,255,6,6,187,6,7,255,6,8,255,6,9,187],"secondary":false},{"width":9,"bonus":115,"chr":"4","pixels":[1,6,187,1,7,255,2,5,221,2,6,153,2,7,255,3,4,238,3,7,255,4,3,238,4,7,255,5,1,170,5,2,255,5,7,255,6,1,255,6,2,255,6,3,255,6,4,255,6,5,255,6,6,255,6,7,255,6,8,255,6,9,255,6,10,255,7,7,255],"secondary":false},{"width":8,"bonus":120,"chr":"5","pixels":[1,9,153,2,1,255,2,2,255,2,3,255,2,4,221,2,5,255,2,9,153,2,10,187,3,1,255,3,5,255,3,10,255,4,1,255,4,5,255,4,10,255,5,1,255,5,5,187,5,6,187,5,9,187,5,10,170,6,1,170,6,6,187,6,7,255,6,8,255,6,9,187],"secondary":false},{"width":9,"bonus":150,"chr":"6","pixels":[1,4,187,1,5,238,1,6,255,1,7,255,1,8,187,2,2,153,2,3,255,2,4,170,2,5,204,2,6,204,2,8,170,2,9,255,3,2,238,3,5,238,3,10,221,4,1,238,4,5,255,4,10,255,5,1,255,5,5,255,5,10,255,6,1,255,6,5,170,6,6,204,6,9,221,6,10,153,7,6,170,7,7,255,7,8,255,7,9,153],"secondary":false},{"width":9,"bonus":95,"chr":"7","pixels":[1,1,255,2,1,255,2,8,153,2,9,255,2,10,204,3,1,255,3,6,153,3,7,255,3,8,187,4,1,255,4,4,153,4,5,255,4,6,187,5,1,255,5,2,187,5,3,255,5,4,187,6,1,255,6,2,170],"secondary":false},{"width":9,"bonus":170,"chr":"8","pixels":[1,2,204,1,3,255,1,4,204,1,6,153,1,7,255,1,8,255,1,9,153,2,1,187,2,2,187,2,4,187,2,5,255,2,6,204,2,9,221,2,10,153,3,1,255,3,5,255,3,10,255,4,1,255,4,5,170,4,10,255,5,1,204,5,2,153,5,5,204,5,6,204,5,10,238,6,2,238,6,3,255,6,4,255,6,5,170,6,6,255,6,9,221,7,7,238,7,8,255,7,9,153],"secondary":false},{"width":9,"bonus":140,"chr":"9","pixels":[1,3,238,1,4,255,1,5,238,2,2,238,2,6,238,2,10,255,3,1,255,3,7,238,3,10,255,4,1,255,4,7,255,4,10,238,5,1,204,5,2,153,5,7,204,5,9,204,5,10,153,6,2,238,6,3,187,6,6,238,6,7,187,6,8,221,6,9,204,7,3,153,7,4,221,7,5,255,7,6,255,7,7,221],"secondary":false},{"width":3,"bonus":10,"chr":":","pixels":[1,3,255,1,9,255],"secondary":true},{"width":4,"bonus":15,"chr":";","pixels":[2,3,255,2,9,255,2,10,204],"secondary":true},{"width":8,"bonus":60,"chr":"<","pixels":[1,5,187,1,6,238,2,5,255,2,6,204,3,4,170,3,7,204,4,4,255,4,7,238,5,4,170,5,8,187,6,3,187,6,8,204],"secondary":false},{"width":9,"bonus":70,"chr":"=","pixels":[1,6,221,1,8,221,2,6,255,2,8,255,3,6,255,3,8,255,4,6,255,4,8,255,5,6,255,5,8,255,6,6,255,6,8,255,7,6,255,7,8,255],"secondary":false},{"width":8,"bonus":75,"chr":">","pixels":[1,3,153,2,3,153,2,4,170,2,8,255,3,4,255,3,7,187,3,8,170,4,4,170,4,5,153,4,7,255,5,5,255,5,6,187,5,7,153,6,5,170,6,6,255],"secondary":false},{"width":6,"bonus":55,"chr":"?","pixels":[1,1,204,2,1,255,2,6,187,2,7,255,2,10,255,3,1,238,3,5,238,3,6,153,4,2,238,4,3,255,4,4,255],"secondary":false},{"width":10,"bonus":165,"chr":"@","pixels":[1,5,153,1,6,255,1,7,255,1,8,255,1,9,187,2,4,204,2,5,187,2,9,170,2,10,255,3,4,204,3,11,255,4,3,238,4,6,238,4,7,255,4,8,238,4,12,187,5,3,255,5,5,204,5,9,221,5,12,255,6,3,255,6,5,255,6,9,255,7,3,221,7,5,255,7,9,255,8,4,221,8,5,255,8,6,255,8,7,255,8,8,255,8,9,255,9,9,255],"secondary":false},{"width":10,"bonus":140,"chr":"A","pixels":[1,9,153,1,10,238,2,7,221,2,8,255,2,9,204,3,4,204,3,5,255,3,6,204,3,7,255,4,1,187,4,2,255,4,3,204,4,7,255,5,1,238,5,2,255,5,3,187,5,7,255,6,3,153,6,4,238,6,5,255,6,6,187,6,7,255,7,6,153,7,7,255,7,8,255,7,9,170,8,9,187,8,10,255],"secondary":false},{"width":9,"bonus":160,"chr":"B","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,1,255,2,6,255,2,10,255,3,1,255,3,6,255,3,10,255,4,1,255,4,6,255,4,10,255,5,1,221,5,2,153,5,5,170,5,6,255,5,9,153,5,10,204,6,2,238,6,3,255,6,4,255,6,5,204,6,7,238,6,8,255,6,9,238],"secondary":false},{"width":10,"bonus":105,"chr":"C","pixels":[1,3,153,1,4,255,1,5,255,1,6,255,1,7,238,2,2,204,2,3,204,2,8,204,2,9,204,3,2,187,3,9,204,4,1,221,4,10,221,5,1,255,5,10,255,6,1,238,6,10,238,7,1,187,7,10,187,8,2,221,8,9,255],"secondary":false},{"width":10,"bonus":160,"chr":"D","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,1,255,2,10,255,3,1,255,3,10,255,4,1,255,4,10,255,5,1,238,5,10,238,6,1,153,6,2,204,6,9,204,6,10,153,7,2,221,7,3,204,7,8,204,7,9,221,8,3,170,8,4,255,8,5,255,8,6,255,8,7,255,8,8,170],"secondary":false},{"width":8,"bonus":105,"chr":"E","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,1,255,2,6,255,2,10,255,3,1,255,3,6,255,3,10,255,4,1,255,4,6,255,4,10,255,5,1,255,5,10,255],"secondary":false},{"width":7,"bonus":85,"chr":"F","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,1,255,2,6,255,3,1,255,3,6,255,4,1,255,4,6,255,5,1,255],"secondary":false},{"width":10,"bonus":145,"chr":"G","pixels":[1,3,153,1,4,255,1,5,255,1,6,255,1,7,255,1,8,153,2,2,204,2,3,187,2,8,204,2,9,221,3,1,153,3,2,187,3,9,187,3,10,170,4,1,255,4,10,255,5,1,255,5,10,255,6,1,238,6,6,170,6,10,204,7,2,204,7,6,255,7,9,238,8,6,255,8,7,255,8,8,255,8,9,255,8,10,255],"secondary":false},{"width":9,"bonus":125,"chr":"H","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,6,255,3,6,255,4,6,255,5,6,255,6,6,255,7,1,255,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,255,7,10,255],"secondary":false},{"width":5,"bonus":70,"chr":"I","pixels":[1,1,255,1,10,255,2,1,255,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,255,3,1,255,3,10,255],"secondary":false},{"width":8,"bonus":100,"chr":"J","pixels":[1,8,255,1,9,187,2,9,187,2,10,187,3,1,221,3,10,255,4,1,255,4,10,255,5,1,255,5,9,187,5,10,187,6,1,255,6,2,255,6,3,255,6,4,255,6,5,255,6,6,255,6,7,255,6,8,255,6,9,187],"secondary":false},{"width":9,"bonus":120,"chr":"K","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,6,255,3,6,255,4,4,187,4,5,255,4,6,170,4,7,255,5,2,187,5,3,255,5,8,221,5,9,204,6,1,255,6,2,153,6,9,153,6,10,255],"secondary":false},{"width":8,"bonus":75,"chr":"L","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,10,255,3,10,255,4,10,255,5,10,255,6,10,170],"secondary":false},{"width":11,"bonus":180,"chr":"M","pixels":[1,3,170,1,4,170,1,5,204,1,6,221,1,7,238,1,8,255,1,9,255,1,10,255,2,1,255,2,2,255,2,3,255,2,4,170,3,3,204,3,4,255,3,5,170,4,5,153,4,6,255,4,7,221,5,7,221,5,8,255,6,5,187,6,6,255,6,7,187,7,3,221,7,4,238,8,1,255,8,2,255,8,3,255,8,4,187,8,5,153,9,5,170,9,6,187,9,7,204,9,8,221,9,9,238,9,10,255],"secondary":false},{"width":10,"bonus":145,"chr":"N","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,2,238,2,3,221,3,3,170,3,4,255,4,5,221,4,6,204,5,7,255,6,8,204,6,9,221,7,1,255,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,255,7,10,255],"secondary":false},{"width":11,"bonus":130,"chr":"O","pixels":[1,4,255,1,5,255,1,6,255,1,7,238,2,2,204,2,3,204,2,8,204,2,9,204,3,2,187,3,9,187,4,1,221,4,10,221,5,1,255,5,10,255,6,1,221,6,10,221,7,2,204,7,9,221,8,2,187,8,3,221,8,8,221,8,9,170,9,4,221,9,5,255,9,6,255,9,7,204],"secondary":false},{"width":9,"bonus":125,"chr":"P","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,1,255,2,7,255,3,1,255,3,7,255,4,1,255,4,7,255,5,1,187,5,2,187,5,6,187,5,7,187,6,2,187,6,3,255,6,4,255,6,5,255,6,6,187],"secondary":false},{"width":11,"bonus":140,"chr":"Q","pixels":[1,4,255,1,5,255,1,6,255,1,7,238,2,2,204,2,3,204,2,8,204,2,9,204,3,2,187,3,9,187,4,1,238,4,10,238,5,1,255,5,10,255,6,1,221,6,10,221,7,2,204,7,8,238,7,9,221,8,2,187,8,3,221,8,8,238,8,9,255,9,4,221,9,5,255,9,6,255,9,7,204,9,10,187],"secondary":false},{"width":9,"bonus":140,"chr":"R","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,1,255,2,6,255,3,1,255,3,6,255,4,1,255,4,6,255,5,1,204,5,2,153,5,5,153,5,6,221,5,7,238,5,8,238,6,2,221,6,3,255,6,4,255,6,5,221,6,9,238,6,10,221],"secondary":false},{"width":7,"bonus":95,"chr":"S","pixels":[1,2,221,1,3,255,1,4,255,1,9,238,2,1,204,2,2,153,2,5,255,2,10,238,3,1,255,3,5,187,3,6,153,3,10,255,4,1,238,4,6,255,4,10,221,5,2,170,5,7,255,5,8,255,5,9,238],"secondary":false},{"width":10,"bonus":80,"chr":"T","pixels":[1,1,255,2,1,255,3,1,255,4,1,255,4,2,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,4,10,255,5,1,255,6,1,255,7,1,255],"secondary":false},{"width":10,"bonus":110,"chr":"U","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,238,2,9,238,3,10,204,4,10,255,5,10,255,6,10,204,7,9,238,8,1,255,8,2,255,8,3,255,8,4,255,8,5,255,8,6,255,8,7,255,8,8,221],"secondary":false},{"width":10,"bonus":110,"chr":"V","pixels":[1,1,238,1,2,153,2,2,187,2,3,255,2,4,221,3,5,187,3,6,255,3,7,204,4,8,204,4,9,255,4,10,204,5,8,204,5,9,255,5,10,204,6,5,187,6,6,255,6,7,204,7,2,187,7,3,255,7,4,221,8,1,238,8,2,153],"secondary":false},{"width":13,"bonus":195,"chr":"W","pixels":[1,1,255,1,2,187,2,3,187,2,4,255,2,5,255,2,6,204,3,7,170,3,8,221,3,9,255,3,10,221,4,7,170,4,8,238,4,9,255,4,10,187,5,3,187,5,4,255,5,5,255,5,6,187,6,1,255,6,2,255,6,3,255,7,3,170,7,4,238,7,5,255,7,6,204,8,7,153,8,8,221,8,9,255,8,10,204,9,7,187,9,8,255,9,9,255,9,10,204,10,3,204,10,4,255,10,5,255,10,6,187,11,1,255,11,2,187],"secondary":false},{"width":9,"bonus":125,"chr":"X","pixels":[1,1,221,1,10,255,2,1,153,2,2,255,2,3,187,2,8,238,2,9,221,3,3,170,3,4,255,3,5,153,3,6,204,3,7,238,4,4,187,4,5,255,4,6,255,5,3,238,5,4,221,5,7,255,5,8,170,6,1,221,6,2,238,6,8,187,6,9,255,7,1,153,7,10,221],"secondary":false},{"width":9,"bonus":80,"chr":"Y","pixels":[1,1,238,2,2,238,2,3,204,3,4,255,3,5,187,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,4,10,255,5,4,238,5,5,204,6,2,221,6,3,238,7,1,255],"secondary":false},{"width":9,"bonus":115,"chr":"Z","pixels":[1,10,170,2,1,255,2,8,153,2,9,255,2,10,255,3,1,255,3,7,238,3,8,221,3,10,255,4,1,255,4,5,187,4,6,255,4,10,255,5,1,255,5,4,255,5,5,187,5,10,255,6,1,255,6,2,204,6,3,221,6,10,255,7,1,255,7,10,255],"secondary":false},{"width":4,"bonus":65,"chr":"[","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,1,11,255,2,1,255,2,11,255],"secondary":false},{"width":6,"bonus":50,"chr":"\\","pixels":[1,1,238,1,2,255,1,3,170,2,4,221,2,5,255,2,6,187,3,7,204,3,8,255,3,9,187,4,10,204],"secondary":false},{"width":3,"bonus":65,"chr":"]","pixels":[0,1,255,0,11,255,1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,1,11,255],"secondary":false},{"width":8,"bonus":55,"chr":"^","pixels":[1,6,170,2,4,221,2,5,238,3,2,255,3,3,187,4,1,187,4,2,255,4,3,153,5,4,255,5,5,204,6,6,204],"secondary":false},{"width":9,"bonus":35,"chr":"_","pixels":[1,11,255,2,11,255,3,11,255,4,11,255,5,11,255,6,11,255,7,11,255],"secondary":false},{"width":8,"bonus":110,"chr":"a","pixels":[1,8,221,1,9,255,2,4,187,2,7,170,2,8,153,2,10,221,3,4,255,3,7,221,3,10,255,4,4,255,4,7,255,4,10,238,5,4,204,5,5,170,5,7,255,5,9,204,6,5,204,6,6,255,6,7,255,6,8,255,6,9,255,6,10,255],"secondary":false},{"width":8,"bonus":135,"chr":"b","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,4,153,2,5,221,2,9,221,2,10,153,3,4,238,3,10,238,4,4,255,4,10,255,5,4,187,5,5,187,5,9,187,5,10,170,6,5,187,6,6,255,6,7,255,6,8,255,6,9,170],"secondary":false},{"width":8,"bonus":60,"chr":"c","pixels":[1,6,255,1,7,255,1,8,255,2,5,221,2,9,221,3,4,238,3,10,238,4,4,255,4,10,255,5,4,221,5,10,221,6,9,204],"secondary":false},{"width":8,"bonus":135,"chr":"d","pixels":[1,5,170,1,6,255,1,7,255,1,8,255,1,9,187,2,4,170,2,5,187,2,9,187,2,10,170,3,4,255,3,10,255,4,4,238,4,10,238,5,4,153,5,5,221,5,9,221,5,10,153,6,1,255,6,2,255,6,3,255,6,4,255,6,5,255,6,6,255,6,7,255,6,8,255,6,9,255,6,10,255],"secondary":false},{"width":8,"bonus":100,"chr":"e","pixels":[1,6,255,1,7,255,1,8,255,1,9,153,2,5,204,2,7,255,2,9,204,3,4,255,3,7,255,3,10,238,4,4,255,4,7,255,4,10,255,5,4,170,5,5,187,5,7,255,5,10,221,6,5,153,6,6,238,6,7,255],"secondary":false},{"width":6,"bonus":70,"chr":"f","pixels":[1,4,221,2,2,221,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,255,3,1,221,3,4,255,4,1,255,4,4,221],"secondary":false},{"width":8,"bonus":135,"chr":"g","pixels":[1,5,187,1,6,255,1,7,255,1,8,255,1,9,187,2,4,204,2,5,170,2,9,170,2,10,221,2,13,238,3,4,255,3,10,255,3,13,255,4,4,187,4,5,153,4,10,204,4,12,170,4,13,187,5,4,255,5,5,255,5,6,255,5,7,255,5,8,255,5,9,255,5,10,255,5,11,255,5,12,204],"secondary":false},{"width":9,"bonus":100,"chr":"h","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,5,238,3,4,204,4,4,255,5,4,238,6,5,255,6,6,255,6,7,255,6,8,255,6,9,255,6,10,255],"secondary":false},{"width":4,"bonus":40,"chr":"i","pixels":[1,1,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255],"secondary":false},{"width":5,"bonus":60,"chr":"j","pixels":[0,13,221,1,13,238,2,1,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,255,2,11,255,2,12,255],"secondary":false},{"width":7,"bonus":100,"chr":"k","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,7,255,3,6,187,3,7,255,3,8,170,4,5,255,4,6,170,4,8,187,4,9,221,5,4,255,5,10,255],"secondary":false},{"width":5,"bonus":50,"chr":"l","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,10,255],"secondary":false},{"width":12,"bonus":130,"chr":"m","pixels":[1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,5,238,3,4,204,4,4,255,5,4,221,6,5,238,6,6,255,6,7,255,6,8,255,6,9,255,6,10,255,7,5,204,8,4,255,9,4,255,10,5,255,10,6,255,10,7,255,10,8,255,10,9,255,10,10,255],"secondary":false},{"width":8,"bonus":85,"chr":"n","pixels":[1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,5,238,3,4,204,4,4,255,5,4,238,6,5,255,6,6,255,6,7,255,6,8,255,6,9,255,6,10,255],"secondary":false},{"width":9,"bonus":80,"chr":"o","pixels":[1,6,255,1,7,255,1,8,255,2,5,221,2,9,221,3,4,221,3,10,221,4,4,255,4,10,255,5,4,221,5,10,221,6,5,238,6,9,238,7,6,221,7,7,255,7,8,221],"secondary":false},{"width":8,"bonus":130,"chr":"p","pixels":[1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,1,11,255,1,12,255,2,4,153,2,5,204,2,9,221,2,10,153,3,4,238,3,10,238,4,4,255,4,10,255,5,4,187,5,5,187,5,9,187,5,10,170,6,5,187,6,6,255,6,7,255,6,8,255,6,9,170],"secondary":false},{"width":8,"bonus":130,"chr":"q","pixels":[1,5,170,1,6,255,1,7,255,1,8,255,1,9,187,2,4,170,2,5,187,2,9,187,2,10,187,3,4,255,3,10,255,4,4,238,4,10,238,5,4,153,5,5,204,5,9,221,5,10,153,6,4,255,6,5,255,6,6,255,6,7,255,6,8,255,6,9,255,6,10,255,6,11,255,6,12,255],"secondary":false},{"width":6,"bonus":45,"chr":"r","pixels":[1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,2,5,238,3,4,238],"secondary":false},{"width":6,"bonus":65,"chr":"s","pixels":[1,5,255,1,6,255,1,9,153,1,10,170,2,4,255,2,7,221,2,10,255,3,4,255,3,7,238,3,10,255,4,4,153,4,8,255,4,9,255],"secondary":false},{"width":5,"bonus":65,"chr":"t","pixels":[0,4,255,1,2,238,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,221,2,4,255,2,10,221,3,4,221,3,10,255],"secondary":false},{"width":9,"bonus":85,"chr":"u","pixels":[1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,238,2,10,221,3,10,255,4,10,221,5,9,221,6,4,255,6,5,255,6,6,255,6,7,255,6,8,255,6,9,255,6,10,255],"secondary":false},{"width":8,"bonus":75,"chr":"v","pixels":[1,4,238,2,5,187,2,6,255,2,7,204,3,8,221,3,9,255,3,10,170,4,8,153,4,9,255,4,10,238,5,6,221,5,7,255,5,8,170,6,4,255,6,5,204],"secondary":false},{"width":12,"bonus":135,"chr":"w","pixels":[1,4,238,1,5,153,2,5,170,2,6,255,2,7,238,2,8,153,3,8,153,3,9,255,3,10,255,4,8,204,4,9,255,4,10,170,5,5,187,5,6,255,5,7,187,6,5,255,6,6,221,7,7,187,7,8,255,7,9,187,8,9,255,8,10,255,9,6,187,9,7,255,9,8,221,10,4,255,10,5,204],"secondary":false},{"width":8,"bonus":90,"chr":"x","pixels":[1,4,153,1,10,221,2,4,204,2,5,238,2,9,255,2,10,153,3,6,238,3,7,238,3,8,221,4,6,238,4,7,238,4,8,221,5,4,204,5,5,238,5,9,255,5,10,153,6,4,153,6,10,221],"secondary":false},{"width":9,"bonus":100,"chr":"y","pixels":[1,4,238,1,13,204,2,5,221,2,6,255,2,7,170,2,13,255,3,7,153,3,8,238,3,9,238,3,12,238,3,13,153,4,9,255,4,10,255,4,11,187,5,6,170,5,7,255,5,8,221,6,4,238,6,5,255,6,6,170],"secondary":false},{"width":8,"bonus":95,"chr":"z","pixels":[1,4,255,1,10,255,2,4,255,2,8,187,2,9,255,2,10,255,3,4,255,3,7,221,3,8,187,3,10,255,4,4,255,4,6,238,4,7,153,4,10,255,5,4,255,5,5,255,5,10,255,6,4,238,6,10,255],"secondary":false},{"width":6,"bonus":55,"chr":"{","pixels":[1,6,255,2,2,255,2,3,255,2,4,255,2,5,221,2,7,238,2,8,255,2,9,255,2,10,255,3,1,255,3,11,255],"secondary":false},{"width":4,"bonus":60,"chr":"|","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,1,10,255,1,11,255,1,12,255],"secondary":false},{"width":5,"bonus":55,"chr":"}","pixels":[1,1,255,1,11,255,2,2,221,2,3,255,2,4,255,2,5,238,2,7,255,2,8,255,2,9,255,2,10,221,3,6,255],"secondary":false},{"width":8,"bonus":30,"chr":"~","pixels":[1,6,238,2,5,255,3,5,238,4,6,238,5,6,255,6,5,238],"secondary":false}],"width":13,"spacewidth":3,"shadow":false,"height":14,"basey":10}
\ No newline at end of file
--- /dev/null
+{"chars":[{"width":7,"bonus":75,"chr":"a","pixels":[0,7,187,1,3,221,1,6,170,1,8,255,2,3,255,2,5,187,2,8,255,3,3,255,3,5,255,3,8,221,4,4,238,4,5,255,4,6,204,4,7,255,4,8,238],"secondary":false},{"width":7,"bonus":105,"chr":"b","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,204,1,4,170,1,7,170,1,8,187,2,3,255,2,8,255,3,3,255,3,8,255,4,3,170,4,4,170,4,7,170,5,5,187,5,6,187],"secondary":false},{"width":7,"bonus":50,"chr":"c","pixels":[0,5,170,0,6,187,1,4,187,1,7,187,2,3,255,2,8,255,3,3,255,3,8,255,4,3,221,4,8,221],"secondary":false},{"width":7,"bonus":105,"chr":"d","pixels":[0,5,187,0,6,187,1,4,170,1,7,170,1,8,170,2,3,255,2,8,255,3,3,255,3,8,255,4,3,204,4,4,170,4,7,170,4,8,187,5,1,204,5,2,221,5,3,221,5,4,221,5,5,221,5,6,221,5,7,221,5,8,204],"secondary":false},{"width":7,"bonus":75,"chr":"e","pixels":[0,5,187,0,6,170,1,4,187,1,5,255,1,7,204,2,3,255,2,5,255,2,8,255,3,3,255,3,5,255,3,8,255,4,3,187,4,5,255,4,8,221,5,5,204],"secondary":false},{"width":4,"bonus":50,"chr":"f","pixels":[0,3,204,1,2,221,1,3,255,1,4,221,1,5,221,1,6,221,1,7,221,1,8,204,2,1,255,2,3,255],"secondary":false},{"width":7,"bonus":115,"chr":"g","pixels":[0,5,187,0,6,187,1,3,170,1,4,153,1,7,170,1,11,153,2,3,255,2,8,255,2,11,238,3,3,255,3,8,255,3,11,221,4,3,221,4,7,153,4,8,221,4,10,204,5,3,204,5,4,221,5,5,221,5,6,221,5,7,221,5,8,221,5,9,170],"secondary":false},{"width":7,"bonus":90,"chr":"h","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,170,1,4,204,2,3,255,3,3,255,4,3,170,4,4,221,4,5,221,4,6,221,4,7,221,4,8,204],"secondary":false},{"width":3,"bonus":35,"chr":"i","pixels":[0,1,238,0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204],"secondary":false},{"width":4,"bonus":50,"chr":"j","pixels":[0,11,153,1,11,170,2,1,204,2,3,204,2,4,221,2,5,221,2,6,221,2,7,221,2,8,221,2,9,221],"secondary":false},{"width":6,"bonus":70,"chr":"k","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,5,255,2,4,153,2,5,255,2,6,221,3,3,204,3,7,221],"secondary":false},{"width":3,"bonus":40,"chr":"l","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,1,8,255],"secondary":false},{"width":10,"bonus":115,"chr":"m","pixels":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,221,2,3,238,3,3,255,4,3,153,4,4,255,4,5,221,4,6,221,4,7,221,4,8,204,5,4,187,6,3,255,7,3,238,8,4,170,8,5,221,8,6,221,8,7,221,8,8,204],"secondary":false},{"width":7,"bonus":75,"chr":"n","pixels":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,221,2,3,238,3,3,255,4,3,238,5,4,170,5,5,221,5,6,221,5,7,221,5,8,204],"secondary":false},{"width":8,"bonus":70,"chr":"o","pixels":[0,5,187,0,6,170,1,4,204,1,7,221,2,3,238,2,8,238,3,3,255,3,8,255,4,3,238,4,8,255,5,4,204,5,7,221,6,5,170,6,6,170],"secondary":false},{"width":6,"bonus":90,"chr":"p","pixels":[0,3,238,0,4,255,0,5,187,0,6,204,0,7,255,0,8,221,0,9,221,0,10,221,1,3,255,1,8,238,2,3,255,2,8,255,3,3,238,3,8,238,4,4,238,4,5,255,4,6,255,4,7,238],"secondary":false},{"width":7,"bonus":90,"chr":"q","pixels":[0,5,187,0,6,187,1,3,170,1,4,153,1,7,153,1,8,170,2,3,255,2,8,255,3,3,238,3,8,238,4,3,255,4,4,255,4,5,187,4,6,187,4,7,255,4,8,238,4,9,221,4,10,221],"secondary":false},{"width":4,"bonus":45,"chr":"r","pixels":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,187,1,4,204,2,3,255],"secondary":false},{"width":6,"bonus":50,"chr":"s","pixels":[0,4,187,1,3,255,1,5,238,1,8,255,2,3,255,2,8,255,3,3,255,3,6,238,3,8,255,4,7,187],"secondary":false},{"width":5,"bonus":45,"chr":"t","pixels":[1,2,221,1,3,255,1,4,221,1,5,221,1,6,221,1,7,170,2,3,255,2,8,238,3,8,153],"secondary":false},{"width":6,"bonus":70,"chr":"u","pixels":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,170,1,8,238,2,8,255,3,8,204,4,3,204,4,4,221,4,5,221,4,6,204,4,7,255,4,8,221],"secondary":false},{"width":6,"bonus":50,"chr":"v","pixels":[0,3,238,1,5,238,1,6,204,2,7,255,2,8,255,3,5,153,3,6,255,3,7,153,4,3,238,4,4,204],"secondary":false},{"width":10,"bonus":95,"chr":"w","pixels":[1,3,153,1,4,238,1,5,187,2,6,153,2,7,238,2,8,187,3,6,204,3,7,238,3,8,153,4,3,170,4,4,255,5,4,221,5,5,221,6,7,255,6,8,221,7,6,238,7,7,204,8,3,238,8,4,204],"secondary":false},{"width":6,"bonus":55,"chr":"x","pixels":[0,8,170,1,3,170,1,4,204,1,7,221,2,5,255,2,6,238,3,4,255,3,6,187,3,7,187,4,3,221,4,8,255],"secondary":false},{"width":6,"bonus":65,"chr":"y","pixels":[0,3,255,0,4,153,0,11,221,1,5,204,1,6,221,1,11,187,2,7,187,2,8,255,2,9,238,3,6,238,3,7,187,4,3,204,4,4,221],"secondary":false},{"width":6,"bonus":70,"chr":"z","pixels":[0,3,153,0,8,204,1,3,255,1,7,221,1,8,255,2,3,255,2,6,255,2,8,255,3,3,255,3,4,170,3,5,170,3,8,255,4,3,255,4,8,255],"secondary":false},{"width":8,"bonus":85,"chr":"A","pixels":[0,8,153,1,6,221,1,7,238,2,3,170,2,4,255,2,5,187,2,6,255,3,1,255,3,2,255,3,6,255,4,2,255,4,3,238,4,6,255,5,5,255,5,6,255,6,7,187,6,8,255],"secondary":false},{"width":7,"bonus":125,"chr":"B","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,4,255,1,8,255,2,1,255,2,4,255,2,8,255,3,1,255,3,4,255,3,8,255,4,1,221,4,4,255,4,5,170,4,8,204,5,2,170,5,3,170,5,6,187,5,7,153],"secondary":false},{"width":9,"bonus":80,"chr":"C","pixels":[0,4,187,0,5,187,1,2,221,1,3,153,1,6,153,1,7,204,2,1,170,2,8,170,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,255,6,1,170,6,8,170],"secondary":false},{"width":8,"bonus":100,"chr":"D","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,8,255,2,1,255,2,8,255,3,1,255,3,8,255,4,1,204,4,8,204,5,2,221,5,7,221,6,4,187,6,5,187],"secondary":false},{"width":6,"bonus":95,"chr":"E","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,1,8,255,2,1,255,2,5,255,2,8,255,3,1,255,3,5,255,3,8,255,4,1,153,4,8,221],"secondary":false},{"width":6,"bonus":70,"chr":"F","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255],"secondary":false},{"width":9,"bonus":105,"chr":"G","pixels":[0,4,170,0,5,187,1,2,204,1,3,153,1,7,221,2,1,170,2,8,187,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,238,6,1,170,6,5,255,6,7,153,6,8,170,7,5,153,7,6,221,7,7,221,7,8,204],"secondary":false},{"width":8,"bonus":105,"chr":"H","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,5,255,2,5,255,3,5,255,4,5,255,5,5,255,6,1,204,6,2,221,6,3,221,6,4,221,6,5,221,6,6,221,6,7,221,6,8,204],"secondary":false},{"width":4,"bonus":60,"chr":"I","pixels":[0,1,192,0,8,191,1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,2,1,192,2,8,191],"secondary":false},{"width":6,"bonus":70,"chr":"J","pixels":[0,6,153,0,7,153,1,8,204,2,1,221,2,8,255,3,1,255,3,8,204,4,1,204,4,2,221,4,3,221,4,4,221,4,5,221,4,6,221,4,7,153],"secondary":false},{"width":7,"bonus":85,"chr":"K","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,255,2,4,255,3,3,221,3,5,170,3,6,204,4,1,204,4,2,153,4,7,238,4,8,153],"secondary":false},{"width":6,"bonus":60,"chr":"L","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,8,255,2,8,255,3,8,255,4,8,255],"secondary":false},{"width":9,"bonus":130,"chr":"M","pixels":[0,1,245,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,1,2,170,1,3,225,2,4,207,2,5,190,3,6,232,4,6,232,5,4,207,5,5,190,6,2,170,6,3,224,7,1,245,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255],"secondary":false},{"width":8,"bonus":110,"chr":"N","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,2,255,2,3,221,3,4,187,3,5,187,4,6,221,5,7,255,6,1,204,6,2,221,6,3,221,6,4,221,6,5,221,6,6,221,6,7,221,6,8,204],"secondary":false},{"width":10,"bonus":110,"chr":"O","pixels":[0,4,187,0,5,170,1,2,204,1,3,153,1,6,170,1,7,204,2,1,153,2,8,153,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,255,6,1,153,6,8,153,7,2,204,7,3,153,7,6,170,7,7,204,8,4,187,8,5,170],"secondary":false},{"width":7,"bonus":85,"chr":"P","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255,4,1,187,4,5,187,5,3,221],"secondary":false},{"width":9,"bonus":100,"chr":"Q","pixels":[0,4,187,0,5,187,1,2,221,1,6,153,1,7,221,2,1,187,2,8,170,3,1,255,3,8,255,4,1,255,4,8,255,5,1,238,5,8,238,6,2,204,6,7,255,7,3,255,7,4,204,7,5,221,7,6,255,7,8,204],"secondary":false},{"width":7,"bonus":100,"chr":"R","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255,3,6,187,4,2,238,4,3,204,4,4,255,4,7,238,4,8,170],"secondary":false},{"width":6,"bonus":70,"chr":"S","pixels":[0,2,153,0,3,170,1,1,204,1,4,221,1,8,238,2,1,255,2,4,170,2,8,255,3,1,255,3,5,255,3,8,255,4,1,170,4,6,221,4,7,238],"secondary":false},{"width":8,"bonus":65,"chr":"T","pixels":[0,1,255,1,1,255,2,1,255,3,1,255,3,2,221,3,3,221,3,4,221,3,5,221,3,6,221,3,7,221,3,8,204,4,1,255,5,1,255],"secondary":false},{"width":8,"bonus":85,"chr":"U","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,187,1,7,170,2,8,255,3,8,255,4,8,221,5,1,204,5,2,221,5,3,221,5,4,221,5,5,221,5,6,255,5,7,238],"secondary":false},{"width":7,"bonus":70,"chr":"V","pixels":[0,1,255,0,2,187,1,3,153,1,4,255,1,5,153,2,6,187,2,7,238,3,7,255,3,8,204,4,4,204,4,5,238,5,1,170,5,2,255,5,3,153],"secondary":false},{"width":10,"bonus":125,"chr":"W","pixels":[0,1,255,0,2,221,1,4,187,1,5,255,1,6,204,2,7,255,2,8,255,3,3,153,3,4,238,3,5,221,4,1,255,4,2,255,4,3,153,5,3,170,5,4,238,5,5,204,6,7,255,6,8,255,7,4,153,7,5,238,7,6,238,7,7,153,8,1,238,8,2,238,8,3,153],"secondary":false},{"width":7,"bonus":75,"chr":"X","pixels":[0,8,170,1,1,187,1,2,204,1,7,238,2,3,221,2,4,153,2,5,255,2,6,153,3,4,255,3,5,238,4,2,238,4,6,204,4,7,170,5,1,204,5,8,255],"secondary":false},{"width":7,"bonus":55,"chr":"Y","pixels":[0,1,170,1,2,238,2,3,153,2,4,255,3,4,221,3,5,204,3,6,221,3,7,221,3,8,204,4,3,255,5,1,238],"secondary":false},{"width":7,"bonus":75,"chr":"Z","pixels":[0,8,187,1,1,255,1,7,221,1,8,255,2,1,255,2,5,204,2,8,255,3,1,255,3,4,204,3,8,255,4,1,255,4,2,221,4,8,255,5,1,187,5,8,153],"secondary":false},{"width":7,"bonus":90,"chr":"0","pixels":[0,2,153,0,3,221,0,4,255,0,5,255,0,6,238,0,7,170,1,1,187,1,8,204,2,1,187,2,8,187,3,1,221,3,8,204,4,2,170,4,3,255,4,4,187,4,5,187,4,6,238,4,7,170],"secondary":false},{"width":7,"bonus":50,"chr":"1","pixels":[1,8,187,2,1,204,2,2,204,2,3,187,2,4,187,2,5,187,2,6,187,2,7,187,2,8,238,3,8,204],"secondary":false},{"width":7,"bonus":55,"chr":"2","pixels":[1,8,255,2,1,187,2,6,153,2,8,187,3,1,204,3,5,153,3,8,187,4,1,187,4,2,153,4,4,204,4,8,187],"secondary":false},{"width":7,"bonus":50,"chr":"3","pixels":[0,8,204,1,1,187,1,8,187,2,1,187,2,4,187,2,8,204,3,2,221,3,3,204,3,5,204,3,7,170],"secondary":false},{"width":7,"bonus":80,"chr":"4","pixels":[0,6,238,1,4,187,1,6,187,2,3,170,2,6,187,3,1,187,3,2,153,3,6,204,4,1,187,4,2,187,4,3,187,4,4,187,4,5,187,4,6,238,4,7,187,4,8,187],"secondary":false},{"width":7,"bonus":70,"chr":"5","pixels":[1,1,238,1,2,187,1,3,187,1,4,187,1,8,204,2,1,187,2,4,187,2,8,187,3,1,187,3,4,204,3,8,204,4,5,238,4,6,187,4,7,221],"secondary":false},{"width":7,"bonus":80,"chr":"6","pixels":[0,3,170,0,4,255,0,5,255,0,6,238,0,7,153,1,2,187,1,8,187,2,1,204,2,4,187,2,8,187,3,1,187,3,4,204,3,8,187,4,5,221,4,6,255,4,7,187],"secondary":false},{"width":7,"bonus":55,"chr":"7","pixels":[0,1,187,1,1,187,1,8,204,2,1,187,2,6,238,2,7,153,3,1,187,3,3,153,3,4,221,4,1,255,4,2,187],"secondary":false},{"width":7,"bonus":95,"chr":"8","pixels":[1,2,238,1,3,221,1,6,204,1,7,221,2,1,204,2,4,204,2,5,170,2,8,221,3,1,187,3,4,170,3,8,187,4,1,221,4,4,170,4,5,204,4,8,187,5,2,170,5,3,153,5,6,238,5,7,238],"secondary":false},{"width":7,"bonus":85,"chr":"9","pixels":[1,2,221,1,3,187,1,4,238,1,8,153,2,1,204,2,5,221,2,8,187,3,1,187,3,5,187,3,8,204,4,1,187,4,7,170,5,2,153,5,3,238,5,4,255,5,5,255,5,6,187],"secondary":false},{"width":8,"bonus":75,"chr":"%","pixels":[0,3,255,0,8,255,1,2,255,1,4,255,1,7,255,2,3,255,2,6,255,3,5,255,4,4,255,4,7,255,5,3,255,5,6,255,5,8,255,6,2,255,6,7,255],"secondary":false},{"width":4,"bonus":40,"chr":"/","pixels":[0,7,153,0,8,238,0,9,221,1,4,187,1,5,238,1,6,170,2,1,221,2,2,221],"secondary":false},{"width":7,"bonus":60,"chr":"+","pixels":[0,5,221,1,5,255,2,5,255,3,2,153,3,3,221,3,4,221,3,5,255,3,6,221,3,7,221,3,8,204,4,5,255,5,5,255],"secondary":false},{"width":5,"bonus":40,"chr":"?","pixels":[0,1,170,1,1,255,1,6,221,1,8,255,2,1,255,2,5,170,3,2,255,3,3,221],"secondary":false},{"width":2,"bonus":35,"chr":"!","pixels":[0,1,170,0,2,187,0,3,187,0,4,187,0,5,187,0,6,170,0,8,255],"secondary":false},{"width":8,"bonus":130,"chr":"@","pixels":[0,4,255,0,5,255,0,6,221,0,7,255,0,8,187,1,3,221,1,9,238,2,2,221,2,5,255,2,6,238,2,7,255,2,10,153,3,2,255,3,4,255,3,8,204,3,10,187,4,2,238,4,4,255,4,8,255,5,3,238,5,4,255,5,5,221,5,6,221,5,7,221,5,8,238,6,8,221],"secondary":false},{"width":8,"bonus":120,"chr":"#","pixels":[0,6,255,1,3,255,1,6,255,1,7,170,1,8,238,2,1,170,2,2,238,2,3,255,2,4,221,2,5,170,2,6,255,3,3,255,3,6,255,4,3,255,4,4,153,4,5,204,4,6,255,4,7,238,4,8,187,5,1,255,5,2,187,5,3,255,5,6,255,6,3,255],"secondary":false},{"width":6,"bonus":70,"chr":"$","pixels":[0,2,153,0,3,170,1,1,204,1,4,221,1,8,238,2,0,204,2,1,238,2,8,238,2,9,204,3,1,238,3,5,238,3,8,255,4,6,170,4,7,170],"secondary":false},{"width":6,"bonus":40,"chr":"^","pixels":[0,4,153,0,5,238,1,2,204,1,3,221,2,1,221,2,2,221,3,3,187,3,4,221],"secondary":false},{"width":6,"bonus":20,"chr":"~","pixels":[1,5,255,2,5,221,3,6,221,4,5,204],"secondary":false},{"width":7,"bonus":95,"chr":"&","pixels":[0,6,187,1,2,238,1,3,255,1,4,187,1,5,187,1,8,187,2,1,255,2,4,255,2,8,255,3,1,255,3,4,255,3,8,255,4,4,255,4,8,187,5,3,204,5,4,255,5,5,221,5,6,187,6,4,153],"secondary":false},{"width":6,"bonus":45,"chr":"*","pixels":[0,2,170,1,2,170,1,3,204,1,4,255,2,1,204,2,2,238,2,3,255,3,2,170,3,4,153],"secondary":false},{"width":4,"bonus":55,"chr":"(","pixels":[0,3,173,0,4,239,0,5,253,0,6,230,0,7,171,1,1,194,1,2,204,1,8,204,1,9,191,2,0,210,2,10,216],"secondary":false},{"width":4,"bonus":55,"chr":")","pixels":[1,0,211,1,10,216,2,1,194,2,2,203,2,8,203,2,9,191,3,3,174,3,4,240,3,5,253,3,6,229,3,7,171],"secondary":false},{"width":7,"bonus":30,"chr":"_","pixels":[0,9,153,1,9,255,2,9,255,3,9,255,4,9,255,5,9,255],"secondary":false},{"width":4,"bonus":15,"chr":"-","pixels":[0,5,255,1,5,255,2,5,255],"secondary":true},{"width":8,"bonus":50,"chr":"=","pixels":[0,4,255,0,6,255,1,4,255,1,6,255,2,4,255,2,6,255,3,4,255,3,6,255,4,4,255,4,6,255],"secondary":false},{"width":3,"bonus":55,"chr":"[","pixels":[0,0,204,0,1,221,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,0,238,1,8,238],"secondary":false},{"width":3,"bonus":55,"chr":"]","pixels":[0,0,238,0,8,238,1,0,204,1,1,221,1,2,221,1,3,221,1,4,221,1,5,221,1,6,221,1,7,221,1,8,204],"secondary":false},{"width":5,"bonus":50,"chr":"{","pixels":[0,5,153,1,2,170,1,3,221,1,4,221,1,5,204,1,6,255,1,7,221,1,8,170,2,1,238,2,9,238],"secondary":false},{"width":5,"bonus":50,"chr":"}","pixels":[1,1,238,1,9,238,2,2,170,2,3,221,2,4,221,2,5,204,2,6,255,2,7,221,2,8,170,3,5,153],"secondary":false},{"width":3,"bonus":10,"chr":":","pixels":[1,3,255,1,7,255],"secondary":true},{"width":3,"bonus":20,"chr":";","pixels":[0,9,201,1,3,255,1,7,241,1,8,255],"secondary":true},{"width":3,"bonus":20,"chr":"\"","pixels":[0,1,255,0,2,255,2,1,255,2,2,255],"secondary":true},{"width":2,"bonus":10,"chr":"'","pixels":[0,1,255,0,2,177],"secondary":true},{"width":7,"bonus":40,"chr":"<","pixels":[0,5,204,1,5,255,2,4,238,2,6,238,3,4,170,3,6,170,4,3,221,4,7,221],"secondary":false},{"width":7,"bonus":45,"chr":">","pixels":[0,3,204,0,7,204,1,7,187,2,4,238,2,6,255,3,4,170,3,5,153,3,6,204,4,5,255],"secondary":false},{"width":5,"bonus":35,"chr":"\\","pixels":[1,1,153,1,2,255,1,3,204,2,5,255,2,6,204,3,8,255,3,9,204],"secondary":false},{"width":2,"bonus":5,"chr":".","pixels":[0,8,255],"secondary":true},{"width":3,"bonus":15,"chr":",","pixels":[0,9,205,1,7,205,1,8,255],"secondary":true},{"width":3,"bonus":50,"chr":"|","pixels":[0,1,221,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,221,0,9,221,0,10,204],"secondary":false}],"width":10,"spacewidth":3,"shadow":false,"height":12,"basey":8}
\ No newline at end of file
--- /dev/null
+{
+ "appName": "Slayer Assistant",
+ "description": "Slayer Assistant is your go-to tool for efficient Slayer tasks in RuneScape. Designed for the Alt1 Toolkit, it provides instant access to task information, helping you make informed decisions quickly. Whether you're a new player or an experienced Slayer, this app streamlines the task selection process, making your gameplay smoother and more enjoyable.",
+ "appUrl": "https://slayer.unlishema.org/",
+ "configUrl": "https://slayer.unlishema.org/appconfig.json",
+ "iconUrl": "https://slayer.unlishema.org/images/icon.png",
+ "defaultWidth": 360,
+ "defaultHeight": 395,
+ "minWidth": 360,
+ "minHeight": 142,
+ "maxWidth": 400,
+ "maxHeight": 550,
+ "requestHandlers": [],
+ "activators": [
+ "regex:^Get task .*"
+ ],
+ "permissions": "pixel,gamestate,overlay"
+}
--- /dev/null
+# Enable mod_rewrite
+RewriteEngine On
+
+# Apply rules inside the /data/ folder
+RewriteBase /data/
+
+# Rewrite any URL ending with .json to load the corresponding .php file
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteCond %{REQUEST_FILENAME} !-d
+RewriteRule ^(.*)\.json$ $1.php [L]
--- /dev/null
+<?php
+// Database credentials
+$host = 'localhost';
+$db = 'slayer.unlishema.org';
+$user = 'slayer.db';
+$pass = 'r2YWbde6V9hr';
+
+// Function to return error as JSON and exit
+function respondWithError($message) {
+ header('Content-Type: application/json');
+ echo json_encode(['error' => $message]);
+ exit;
+}
+
+// Create connection
+$mysqli = new mysqli($host, $user, $pass, $db);
+if ($mysqli->connect_error) {
+ respondWithError("Connection failed: " . $mysqli->connect_error);
+}
+
+// Check for the 'q' query parameter
+$q = $_GET['q'] ?? 'all'; // Default to 'all'
+
+// Prepare SQL query
+$query = $q === 'all' ? "SELECT * FROM assignments" : "SELECT * FROM assignments WHERE `index` = ?";
+$stmt = $mysqli->prepare($query);
+if ($stmt === false) {
+ respondWithError("Prepare failed: " . $mysqli->error);
+}
+if ($q !== 'all') {
+ $stmt->bind_param("s", $q);
+}
+$stmt->execute();
+$result = $stmt->get_result();
+$data = [];
+
+// Helper function to process multiline string into array
+function parseLines($string) {
+ return array_filter(array_map('trim', explode("\r\n", $string)));
+}
+
+// Fetch data
+while ($row = $result->fetch_assoc()) {
+ $data[] = [
+ 'id' => $row['id'],
+ 'index' => $row['index'],
+ 'default-creature' => $row['default_creature'],
+ 'hidden-creatures' => parseLines($row['hidden_creatures'] ?? ''),
+ 'alias' => parseLines($row['aliases'] ?? ''),
+ 'masters' => parseLines($row['masters'] ?? ''),
+ 'creatures' => parseLines($row['creatures'] ?? ''),
+ 'equipment' => parseLines($row['equipment'] ?? ''),
+ 'locations' => parseLines($row['locations'] ?? '')
+ ];
+}
+
+// Free the result set
+$result->free();
+
+// Set the header and output JSON
+header('Content-Type: application/json');
+echo json_encode($data, JSON_PRETTY_PRINT);
+
+// Close the statement and connection
+$stmt->close();
+$mysqli->close();
+?>
--- /dev/null
+<?php
+// Database credentials
+$host = 'localhost';
+$db = 'slayer.unlishema.org';
+$user = 'slayer.db';
+$pass = 'r2YWbde6V9hr';
+
+// Function to return error as JSON and exit
+function respondWithError($message) {
+ header('Content-Type: application/json');
+ echo json_encode(['error' => $message]);
+ exit;
+}
+
+// Create connection
+$mysqli = new mysqli($host, $user, $pass, $db);
+if ($mysqli->connect_error) {
+ respondWithError("Connection failed: " . $mysqli->connect_error);
+}
+
+// Check for the 'q' query parameter
+$q = $_GET['q'] ?? 'all'; // Null coalescing operator for default value
+
+// Prepare SQL query for creatures and variants
+$query = $q === 'all'
+ ? "SELECT c.*, v.id AS variant_id, v.name AS variant_name, v.image, v.experience,
+ v.slayer_exp, v.lifepoint_exp, v.level, v.slayer_level,
+ v.defence, v.lifepoints, v.max_melee, v.max_ranged,
+ v.max_magic, v.max_necromancy, v.max_spec, v.susceptible, v.weaknesses
+ FROM creatures c
+ LEFT JOIN variants v ON c.id = v.creature_id"
+ : "SELECT c.*, v.id AS variant_id, v.name AS variant_name, v.image, v.experience,
+ v.slayer_exp, v.lifepoint_exp, v.level, v.slayer_level,
+ v.defence, v.lifepoints, v.max_melee, v.max_ranged,
+ v.max_magic, v.max_necromancy, v.max_spec, v.susceptible, v.weaknesses
+ FROM creatures c
+ LEFT JOIN variants v ON c.id = v.creature_id WHERE c.name = ?";
+
+$stmt = $mysqli->prepare($query);
+if ($stmt === false) {
+ respondWithError("Prepare failed: " . $mysqli->error);
+}
+
+if ($q !== 'all') {
+ $stmt->bind_param("s", $q);
+}
+
+$stmt->execute();
+$result = $stmt->get_result();
+$data = [];
+
+// Fetch data
+while ($row = $result->fetch_assoc()) {
+ $creatureId = $row['id'];
+ // Check if this creature already exists in the data array
+ if (!isset($data[$creatureId])) {
+ $data[$creatureId] = [
+ 'id' => $row['id'],
+ 'name' => $row['name'],
+ 'variants' => []
+ ];
+ }
+
+ // Check if the row contains variant data
+ if (isset($row['variant_id'])) { // Ensure variant_id exists
+ $variant = [
+ 'id' => $row['variant_id'],
+ 'name' => $row['variant_name'],
+ 'image' => $row['image'],
+ 'experience' => $row['experience'],
+ 'slayer-exp' => $row['slayer_exp'],
+ 'lifepoint-exp' => $row['lifepoint_exp'],
+ 'level' => $row['level'],
+ 'slayer-level' => $row['slayer_level'],
+ 'defence' => $row['defence'],
+ 'lifepoints' => $row['lifepoints'],
+ 'max-melee' => $row['max_melee'],
+ 'max-ranged' => $row['max_ranged'],
+ 'max-magic' => $row['max_magic'],
+ 'max-necromancy' => $row['max_necromancy'],
+ 'max-spec' => $row['max_spec'],
+ 'susceptible' => explode("\r\n", $row['susceptible'] ?: ''),
+ 'weakness' => explode("\r\n", $row['weaknesses'] ?: '')
+ ];
+ $data[$creatureId]['variants'][] = $variant;
+ }
+}
+
+// Output JSON
+header('Content-Type: application/json');
+echo json_encode(array_values($data), JSON_PRETTY_PRINT);
+
+// Free the result set and close the connection
+$result->free();
+$stmt->close();
+$mysqli->close();
+?>
--- /dev/null
+<?php
+// Database credentials
+$host = 'localhost';
+$db = 'slayer.unlishema.org';
+$user = 'slayer.db';
+$pass = 'r2YWbde6V9hr';
+
+// Function to return error as JSON and exit
+function respondWithError($message) {
+ header('Content-Type: application/json');
+ echo json_encode(['error' => $message]);
+ exit;
+}
+
+// Create connection
+$mysqli = new mysqli($host, $user, $pass, $db);
+if ($mysqli->connect_error) {
+ respondWithError("Connection failed: " . $mysqli->connect_error);
+}
+
+// Check for the 'q' query parameter and sanitize input
+$q = isset($_GET['q']) ? trim($_GET['q']) : 'all'; // Default to 'all'
+
+// Prepare SQL query with a safeguard against SQL injection
+$query = $q === 'all' ? "SELECT * FROM masters" : "SELECT * FROM masters WHERE `name` = ?";
+$stmt = $mysqli->prepare($query);
+if ($stmt === false) {
+ respondWithError("Prepare failed: " . $mysqli->error);
+}
+if ($q !== 'all') {
+ $stmt->bind_param("s", $q);
+}
+$stmt->execute();
+$result = $stmt->get_result();
+$data = [];
+
+// Fetch data
+while ($row = $result->fetch_assoc()) {
+ $taskCounts = [];
+
+ // Handle empty counts gracefully
+ $countLines = !empty($row['counts']) ? explode("\r\n", $row['counts']) : [];
+
+ foreach ($countLines as $line) {
+ if (strpos($line, ':') !== false) {
+ [$key, $count] = array_map('trim', explode(':', $line, 2)); // Limit to 2 parts
+ $taskCounts[$key] = $count;
+ }
+ }
+
+ $data[] = [
+ 'id' => $row['id'],
+ 'name' => $row['name'],
+ 'url' => $row['url'],
+ 'task-counts' => $taskCounts
+ ];
+}
+
+// Output JSON
+header('Content-Type: application/json');
+echo json_encode($data, JSON_PRETTY_PRINT);
+
+// Close the connection
+$stmt->close();
+$mysqli->close();
+?>
--- /dev/null
+[
+ {
+ "default-creature": "Aberrant spectre#Slayer Tower",
+ "weakness": [],
+ "creatures": ["Aberrant spectre"],
+ "hidden-creatures": [],
+ "index": "Aberrant spectres",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Nose_peg\" title=\"Nose peg\" target=\"_blank\">Nose peg<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_helmet\" title=\"Slayer helmet\" target=\"_blank\">Slayer helmet<\/a>"
+ ],
+ "masters": [
+ "The Raptor",
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Pollnivneach_Slayer_Dungeon\" title=\"Pollnivneach Slayer Dungeon\" target=\"_blank\">Pollnivneach Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Abyssal demon#Default",
+ "weakness": [],
+ "creatures": [
+ "Abyssal beast",
+ "Abyssal demon",
+ "Abyssal demon (elite)",
+ "Abyssal lord",
+ "Abyssal savage"
+ ],
+ "hidden-creatures": ["Abyssal demon (elite)"],
+ "index": "Abyssal Demons",
+ "alias": ["Abyssal demons"],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>",
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Abyssal_Area\" title=\"Abyssal Area\" target=\"_blank\">Abyssal Area<\/a>",
+ "<a href=\"https://runescape.wiki/w/Graveyard_of_Shadows\" title=\"Graveyard of Shadows\" target=\"_blank\">Graveyard of Shadows<\/a>",
+ "<a href=\"https://runescape.wiki/w/Forinthry_Dungeon\" title=\"Forinthry Dungeon\" target=\"_blank\">Forinthry Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Abyssal beast#Default",
+ "weakness": [],
+ "creatures": ["Abyssal beast"],
+ "hidden-creatures": [],
+ "index": "Abyssal beasts",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mandrith"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Senntisten_Asylum\" title=\"Senntisten Asylum\" target=\"_blank\">Senntisten Asylum<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Abyssal lord#Default",
+ "weakness": [],
+ "creatures": ["Abyssal lord"],
+ "hidden-creatures": [],
+ "index": "Abyssal lords",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mandrith"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Senntisten_Asylum\" title=\"Senntisten Asylum\" target=\"_blank\">Senntisten Asylum<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Abyssal savage#Asylum",
+ "weakness": [],
+ "creatures": ["Abyssal savage"],
+ "hidden-creatures": [],
+ "index": "Abyssal savages",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mandrith"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Senntisten_Asylum\" title=\"Senntisten Asylum\" target=\"_blank\">Senntisten Asylum<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Acheron mammoth#Default",
+ "weakness": [],
+ "creatures": ["Acheron mammoth"],
+ "hidden-creatures": [],
+ "index": "Acheron mammoths",
+ "alias": ["Acheron mammoth"],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Mammoth_iceberg\" title=\"Mammoth iceberg\" target=\"_blank\">Mammoth iceberg<\/a>",
+ "<a href=\"https://runescape.wiki/w/Frozen_Waste_Plateau\" title=\"Frozen Waste Plateau\" target=\"_blank\">Frozen Waste Plateau<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Adamant dragon#Default",
+ "weakness": [],
+ "creatures": ["Adamant dragon"],
+ "hidden-creatures": [],
+ "index": "Adamant dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Adamant_dragon_dungeon\" title=\"Adamant dragon dungeon\" target=\"_blank\">Adamant dragon dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonkin_Lair\" title=\"Dragonkin Lair\" target=\"_blank\">Dragonkin Lair<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Airut#Melee",
+ "weakness": [],
+ "creatures": ["Airut"],
+ "hidden-creatures": [],
+ "index": "Airut",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Piscatoris_Fishing_Colony\" title=\"Piscatoris Fishing Colony\" target=\"_blank\">Piscatoris Fishing Colony<\/a>",
+ "<a href=\"https://runescape.wiki/w/Mazcab\" title=\"Mazcab\" target=\"_blank\">Mazcab<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Ankou#Default",
+ "weakness": [],
+ "creatures": [
+ "Ankou",
+ "Ankou (Kili's Knowledge IV)",
+ "Ankou (elite)"
+ ],
+ "hidden-creatures": ["Ankou (elite)"],
+ "index": "Ankou",
+ "alias": ["Ankous"],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Mazchna"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness_Crater\" title=\"Wilderness Crater\" target=\"_blank\">Wilderness Crater<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Aquanite#Default",
+ "weakness": [],
+ "creatures": [
+ "Aquanite",
+ "Aquanite (elite)"
+ ],
+ "hidden-creatures": ["Aquanite (elite)"],
+ "index": "Aquanites",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Slayer_master\" class=\"mw-redirect\" title=\"Slayer master\" target=\"_blank\">Slayer master<\/a>"],
+ "masters": [
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Armoured phantom#1",
+ "weakness": [],
+ "creatures": ["Armoured phantom"],
+ "hidden-creatures": [],
+ "index": "Armoured phantoms",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Crypt_(Wilderness)\" title=\"Crypt (Wilderness)\" target=\"_blank\">Crypt<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fort_Forinthry\" title=\"Fort Forinthry\" target=\"_blank\">Fort Forinthry<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Capsarius#1",
+ "weakness": [],
+ "creatures": [
+ "Capsarius",
+ "Gladius",
+ "Legio Primus",
+ "Legio Quartus",
+ "Legio Quintus",
+ "Legio Secundus",
+ "Legio Sextus",
+ "Legio Tertius",
+ "Rorarius",
+ "Scutarius"
+ ],
+ "hidden-creatures": [],
+ "index": "Ascension members",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Monastery_of_Ascension\" title=\"Monastery of Ascension\" target=\"_blank\">Monastery of Ascension<\/a>"]
+ },
+ {
+ "default-creature": "Kree'arra#Normal",
+ "weakness": [],
+ "creatures": [
+ "Aviansie",
+ "Flight Kilisa",
+ "Flockleader Geerin",
+ "Kree'arra",
+ "Spiritual mage",
+ "Spiritual ranger",
+ "Spiritual warrior",
+ "Wingman Skree"
+ ],
+ "hidden-creatures": [
+ "Spiritual mage",
+ "Spiritual ranger",
+ "Spiritual warrior"
+ ],
+ "index": "Aviansies",
+ "alias": ["Aviansie"],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>",
+ "<sup id=\"cite_ref-4\" class=\"reference\" target=\"_blank\" href=\"https://runescape.wiki\"><a href=\"#cite_note-4\">[n 3]<\/a><\/sup>"
+ ]
+ },
+ {
+ "default-creature": "Banshee#Default",
+ "weakness": [],
+ "creatures": [
+ "Banshee",
+ "Mighty banshee"
+ ],
+ "hidden-creatures": ["Mighty banshee"],
+ "index": "Banshees",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Earmuffs\" title=\"Earmuffs\" target=\"_blank\">Earmuffs<\/a>",
+ "<a href=\"https://runescape.wiki/w/Masked_earmuffs\" title=\"Masked earmuffs\" target=\"_blank\">Masked earmuffs<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_helmet\" title=\"Slayer helmet\" target=\"_blank\">Slayer helmet<\/a>"
+ ],
+ "masters": [
+ "Mazchna",
+ "Chaeldar",
+ "Sumona"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>"]
+ },
+ {
+ "default-creature": "Basilisk#Large",
+ "weakness": [],
+ "creatures": ["Basilisk"],
+ "hidden-creatures": [],
+ "index": "Basilisks",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Mirror_shield\" title=\"Mirror shield\" target=\"_blank\">Mirror shield<\/a>"],
+ "masters": [
+ "Mazchna",
+ "Chaeldar",
+ "Sumona"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Pollnivneach_Slayer_Dungeon\" title=\"Pollnivneach Slayer Dungeon\" target=\"_blank\">Pollnivneach Slayer Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Bat#Default",
+ "weakness": [],
+ "creatures": [
+ "Albino bat",
+ "Bat",
+ "Giant bat",
+ "Warped bat"
+ ],
+ "hidden-creatures": [],
+ "index": "Bats",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Jacquelyn",
+ "Vannaka"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Silvarea\" title=\"Silvarea\" target=\"_blank\">Silvarea<\/a>",
+ "<a href=\"https://runescape.wiki/w/Morytania\" title=\"Morytania\" target=\"_blank\">Morytania<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Black bear#Default",
+ "weakness": [],
+ "creatures": [
+ "Angry bear",
+ "Bear cub",
+ "Black bear",
+ "Grizzly bear",
+ "Grizzly bear cub"
+ ],
+ "hidden-creatures": [
+ "Angry bear",
+ "Bear cub",
+ "Grizzly bear",
+ "Grizzly bear cub"
+ ],
+ "index": "Bears",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": []
+ },
+ {
+ "default-creature": "Chicken#White",
+ "weakness": [],
+ "creatures": [
+ "Bird",
+ "Chicken",
+ "Chompy bird",
+ "Duck",
+ "Duckling",
+ "Jubbly bird",
+ "Mounted terrorbird gnome",
+ "Oomlie bird",
+ "Pekin",
+ "Penguin (monster)",
+ "Pernicious parrot",
+ "Rooster",
+ "Seagull",
+ "Tenacious toucan",
+ "Terrorbird",
+ "Undead chicken",
+ "Undead pekin"
+ ],
+ "hidden-creatures": [
+ "Bird",
+ "Chompy bird",
+ "Duckling",
+ "Jubbly bird",
+ "Mounted terrorbird gnome",
+ "Oomlie bird",
+ "Pekin",
+ "Penguin (monster)",
+ "Pernicious parrot",
+ "Rooster",
+ "Seagull",
+ "Tenacious toucan",
+ "Undead chicken",
+ "Undead pekin"
+ ],
+ "index": "Birds",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Turael",
+ "Jacquelyn"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Ape_Atoll\" title=\"Ape Atoll\" target=\"_blank\">Ape Atoll<\/a>",
+ "<a href=\"https://runescape.wiki/w/Crash_Island\" title=\"Crash Island\" target=\"_blank\">Crash Island<\/a>",
+ "<a href=\"https://runescape.wiki/w/Life_altar\" title=\"Life altar\" target=\"_blank\">Life altar<\/a>",
+ "<a href=\"https://runescape.wiki/w/Nature_altar\" title=\"Nature altar\" target=\"_blank\">Nature altar<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Black demon#1",
+ "weakness": [],
+ "creatures": [
+ "Balfrug Kreeyath",
+ "Black demon"
+ ],
+ "hidden-creatures": ["Balfrug Kreeyath"],
+ "index": "Black demons",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Taverley_Dungeon\" title=\"Taverley Dungeon\" target=\"_blank\">Taverley Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Edgeville_Dungeon\" title=\"Edgeville Dungeon\" target=\"_blank\">Edgeville Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Queen Black Dragon#Normal",
+ "weakness": [],
+ "creatures": [
+ "Alanogard the Black",
+ "Baby black dragon",
+ "Black dragon",
+ "Black dragon (Dragonkin Laboratory)",
+ "King Black Dragon",
+ "Queen Black Dragon",
+ "Verak Lith",
+ "Verak Little"
+ ],
+ "hidden-creatures": [
+ "Alanogard the Black",
+ "Verak Lith",
+ "Verak Little"
+ ],
+ "index": "Black dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "The Raptor",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Taverley_Dungeon\" title=\"Taverley Dungeon\" target=\"_blank\">Taverley Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lava_Maze\" title=\"Lava Maze\" target=\"_blank\">Lava Maze<\/a>",
+ "<a href=\"https://runescape.wiki/w/Evil_Chicken%27s_Lair\" title=\"Evil Chicken's Lair\" target=\"_blank\">Evil Chicken's Lair<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Bloodveld#Default",
+ "weakness": [],
+ "creatures": [
+ "Bloodveld",
+ "Bloodveld (God Wars Dungeon)",
+ "Bloodveld (Heart of Gielinor)",
+ "Mutated bloodveld"
+ ],
+ "hidden-creatures": [],
+ "index": "Bloodveld",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Meiyerditch_Dungeon\" class=\"mw-redirect\" title=\"Meiyerditch Dungeon\" target=\"_blank\">Meiyerditch Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Blue dragon#1",
+ "weakness": [],
+ "creatures": [
+ "Baby blue dragon",
+ "Blue dragon",
+ "Vorkath"
+ ],
+ "hidden-creatures": [],
+ "index": "Blue dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Kuradal",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Taverley_Dungeon\" title=\"Taverley Dungeon\" target=\"_blank\">Taverley Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ogre_Enclave\" title=\"Ogre Enclave\" target=\"_blank\">Ogre Enclave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Heroes%27_Guild\" title=\"Heroes' Guild\" target=\"_blank\">Heroes' Guild<\/a>",
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Bound skeleton#1",
+ "weakness": [],
+ "creatures": ["Bound skeleton"],
+ "hidden-creatures": [],
+ "index": "Bound skeletons",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Fort_Forinthry\" title=\"Fort Forinthry\" target=\"_blank\">Fort Forinthry<\/a>"]
+ },
+ {
+ "default-creature": "Brine rat#Default",
+ "weakness": [],
+ "creatures": ["Brine rat"],
+ "hidden-creatures": [],
+ "index": "Brine rats",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Brine_Rat_Cavern\" title=\"Brine Rat Cavern\" target=\"_blank\">Brine Rat Cavern<\/a>"]
+ },
+ {
+ "default-creature": "Bronze dragon#Default",
+ "weakness": [],
+ "creatures": ["Bronze dragon"],
+ "hidden-creatures": [],
+ "index": "Bronze dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Camel Warrior#Default",
+ "weakness": [],
+ "creatures": ["Camel Warrior"],
+ "hidden-creatures": [],
+ "index": "Camel warriors",
+ "alias": ["Camel Warrior"],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Camel_Warriors_island\" title=\"Camel Warriors island\" target=\"_blank\">Camel Warriors island<\/a>"]
+ },
+ {
+ "default-creature": "Catablepon#Default",
+ "weakness": [],
+ "creatures": ["Catablepon"],
+ "hidden-creatures": [],
+ "index": "Catablepon",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>"]
+ },
+ {
+ "default-creature": "Cave bug#Level 11",
+ "weakness": [],
+ "creatures": ["Cave bug"],
+ "hidden-creatures": [],
+ "index": "Cave bugs",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Turael",
+ "Jacquelyn"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Burthorpe_Slayer_Cave\" title=\"Burthorpe Slayer Cave\" target=\"_blank\">Burthorpe Slayer Cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dorgesh-Kaan_South_Dungeon\" title=\"Dorgesh-Kaan South Dungeon\" target=\"_blank\">Dorgesh-Kaan South Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Swamp_Caves\" title=\"Lumbridge Swamp Caves\" target=\"_blank\">Lumbridge Swamp Caves<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Cave crawler#Level 24",
+ "weakness": [],
+ "creatures": ["Cave crawler"],
+ "hidden-creatures": [],
+ "index": "Cave crawlers",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar",
+ "Sumona"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Swamp_Caves\" title=\"Lumbridge Swamp Caves\" target=\"_blank\">Lumbridge Swamp Caves<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dorgesh-Kaan_South_Dungeon\" title=\"Dorgesh-Kaan South Dungeon\" target=\"_blank\">Dorgesh-Kaan South Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Pollnivneach_Slayer_Dungeon\" title=\"Pollnivneach Slayer Dungeon\" target=\"_blank\">Pollnivneach Slayer Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Unspeakable horror#Default",
+ "weakness": [],
+ "creatures": [
+ "Cave horror",
+ "Cave horror (elite)",
+ "Unspeakable horror",
+ "Unspeakable horror (elite)"
+ ],
+ "hidden-creatures": [
+ "Cave horror (elite)",
+ "Unspeakable horror (elite)"
+ ],
+ "index": "Cave horrors",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Witchwood_icon\" title=\"Witchwood icon\" target=\"_blank\">Witchwood icon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Light_source\" class=\"mw-redirect\" title=\"Light source\" target=\"_blank\">Light source<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Sumona"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Mos_Le%27Harmless_Caves\" title=\"Mos Le'Harmless Caves\" target=\"_blank\">Mos Le'Harmless Caves<\/a>"]
+ },
+ {
+ "default-creature": "Cave slime#Default",
+ "weakness": [],
+ "creatures": [
+ "Cave slime",
+ "Giant slime",
+ "Laboratory slime"
+ ],
+ "hidden-creatures": [
+ "Giant slime",
+ "Laboratory slime"
+ ],
+ "index": "Cave slimes",
+ "alias": ["Cave slime"],
+ "equipment": [],
+ "masters": [
+ "Jacquelyn",
+ "Vannaka"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Swamp_Caves\" title=\"Lumbridge Swamp Caves\" target=\"_blank\">Lumbridge Swamp Caves<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dorgesh-Kaan_South_Dungeon\" title=\"Dorgesh-Kaan South Dungeon\" target=\"_blank\">Dorgesh-Kaan South Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Celestial dragon#Default",
+ "weakness": [],
+ "creatures": [
+ "Astellarn",
+ "Celestial dragon",
+ "Celestial dragon (Dragonkin Laboratory)",
+ "Elegorn the Celestial"
+ ],
+ "hidden-creatures": [
+ "Astellarn",
+ "Celestial dragon (Dragonkin Laboratory)"
+ ],
+ "index": "Celestial dragons",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Super_antifire\" title=\"Super antifire\" target=\"_blank\">Super antifire<\/a>"],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Dragontooth_Island_resource_dungeon\" title=\"Dragontooth Island resource dungeon\" target=\"_blank\">Dragontooth Island resource dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Chaos Giant#Default",
+ "weakness": [],
+ "creatures": ["Chaos Giant"],
+ "hidden-creatures": [],
+ "index": "Chaos giants",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Barendir\" title=\"Barendir\" target=\"_blank\">Barendir<\/a>"]
+ },
+ {
+ "default-creature": "Cockatrice#Default",
+ "weakness": [],
+ "creatures": ["Cockatrice"],
+ "hidden-creatures": [],
+ "index": "Cockatrice",
+ "alias": ["Cockatrices"],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Mirror_shield\" title=\"Mirror shield\" target=\"_blank\">Mirror shield<\/a>"],
+ "masters": ["Mazchna"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Cockroach drone#Default",
+ "weakness": [],
+ "creatures": [
+ "Cockroach drone",
+ "Cockroach soldier",
+ "Cockroach worker",
+ "Warped cockroach"
+ ],
+ "hidden-creatures": [],
+ "index": "Cockroaches",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Catacombs\" title=\"Lumbridge Catacombs\" target=\"_blank\">Lumbridge Catacombs<\/a>",
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Player_Safety\" title=\"Stronghold of Player Safety\" target=\"_blank\">Stronghold of Player Safety<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Corrupted scorpion#Default",
+ "weakness": [],
+ "creatures": [
+ "Corrupted dust devil",
+ "Corrupted kalphite guardian",
+ "Corrupted kalphite marauder",
+ "Corrupted lizard",
+ "Corrupted scarab",
+ "Corrupted scorpion",
+ "Corrupted worker"
+ ],
+ "hidden-creatures": [],
+ "index": "Corrupted creatures",
+ "alias": [
+ "Corrupted dust devils",
+ "Corrupted kalphites",
+ "Corrupted lizards",
+ "Corrupted scarabs",
+ "Corrupted scorpions",
+ "Corrupted worker"
+ ],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Feather_of_Ma%27at\" title=\"Feather of Ma'at\" target=\"_blank\">Feather of Ma'at<\/a>"],
+ "masters": [
+ "Sumona",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Sophanem_Slayer_Dungeon\" title=\"Sophanem Slayer Dungeon\" target=\"_blank\">Sophanem Slayer Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Cow#Standard (1)",
+ "weakness": [],
+ "creatures": [
+ "Cow",
+ "Cow calf",
+ "Super Cow",
+ "Undead cow"
+ ],
+ "hidden-creatures": [
+ "Cow calf",
+ "Super Cow",
+ "Undead cow"
+ ],
+ "index": "Cows",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Turael",
+ "Jacquelyn"
+ ],
+ "locations": []
+ },
+ {
+ "default-creature": "Crawling hand#10a",
+ "weakness": [],
+ "creatures": [
+ "Crawling hand",
+ "Skeletal hand",
+ "Zombie hand"
+ ],
+ "hidden-creatures": [
+ "Skeletal hand",
+ "Zombie hand"
+ ],
+ "index": "Crawling hands",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Turael",
+ "Chaeldar"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Burthorpe_Slayer_Cave\" title=\"Burthorpe Slayer Cave\" target=\"_blank\">Burthorpe Slayer Cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Edimmu#Default",
+ "weakness": [],
+ "creatures": [
+ "Edimmu",
+ "Edimmu (elite)",
+ "Frost dragon",
+ "Kal'gerion demon",
+ "Seeker",
+ "Soulgazer"
+ ],
+ "hidden-creatures": ["Edimmu (elite)"],
+ "index": "Creatures of Daemonheim",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Laniakea"],
+ "locations": []
+ },
+ {
+ "default-creature": "Bulbous crawler#Default",
+ "weakness": [],
+ "creatures": [
+ "Bulbous crawler",
+ "Moss golem",
+ "Vinecrawler"
+ ],
+ "hidden-creatures": [],
+ "index": "Creatures of the Lost Grove",
+ "alias": ["Lost Grove creatures"],
+ "equipment": [],
+ "masters": [
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/The_Lost_Grove\" title=\"The Lost Grove\" target=\"_blank\">The Lost Grove<\/a>"]
+ },
+ {
+ "default-creature": "Automaton Generator#Post-quest",
+ "weakness": [],
+ "creatures": [
+ "Automaton Generator",
+ "Automaton Guardian",
+ "Automaton Tracer"
+ ],
+ "hidden-creatures": [],
+ "index": "Cres's creations",
+ "alias": ["Automatons"],
+ "equipment": [],
+ "masters": [
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Guthix%27s_Cave\" class=\"mw-redirect\" title=\"Guthix's Cave\" target=\"_blank\">Guthix's Cave<\/a>"]
+ },
+ {
+ "default-creature": "Crocodile#40",
+ "weakness": [],
+ "creatures": [
+ "Crocodile",
+ "Crocodile akh",
+ "Ol' Sawtooth",
+ "Sea crocodile"
+ ],
+ "hidden-creatures": [
+ "Ol' Sawtooth",
+ "Sea crocodile"
+ ],
+ "index": "Crocodiles",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Sumona"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/River_Elid\" title=\"River Elid\" target=\"_blank\">Elid<\/a>",
+ "<a href=\"https://runescape.wiki/w/Kharidian_Desert\" title=\"Kharidian Desert\" target=\"_blank\">Kharidian Desert<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Crystal Shapeshifter#Magic",
+ "weakness": [],
+ "creatures": ["Crystal Shapeshifter"],
+ "hidden-creatures": [],
+ "index": "Crystal shapeshifters",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Tarddiad\" title=\"Tarddiad\" target=\"_blank\">Tarddiad<\/a>"]
+ },
+ {
+ "default-creature": "Cyclops#57 (Crush)",
+ "weakness": [],
+ "creatures": [
+ "Cyclops",
+ "Cyclossus"
+ ],
+ "hidden-creatures": ["Cyclossus"],
+ "index": "Cyclopes",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<span class=\"floornumber\" target=\"_blank\" href=\"https://runescape.wiki\"><span class=\"floornumber-gb\">2<sup class=\"floornumber-ordinal-suffix\">nd<\/sup> floor<sup class=\"floornumber-help noexcerpt\">[<span class=\"fact-text floor-convention\" title=\"British convention; floor 3 in the US\">UK<\/span>]<\/sup><\/span><span class=\"floornumber-us noexcerpt\">3<sup class=\"floornumber-ordinal-suffix\">rd<\/sup> floor<sup class=\"floornumber-help noexcerpt\">[<span class=\"fact-text floor-convention\" title=\"US convention; floor 2 in the UK\">US<\/span>]<\/sup><\/span><\/span>",
+ "<a href=\"https://runescape.wiki/w/Warriors%27_Guild\" title=\"Warriors' Guild\" target=\"_blank\">Warriors' Guild<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ardougne_Zoo\" title=\"Ardougne Zoo\" target=\"_blank\">Ardougne Zoo<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Dagannoth Rex#Default",
+ "weakness": [],
+ "creatures": [
+ "Dagannoth (Lighthouse)",
+ "Dagannoth (Waterbirth Island)",
+ "Dagannoth (Waterbirth Island, ranged)",
+ "Dagannoth Prime",
+ "Dagannoth Rex",
+ "Dagannoth Supreme",
+ "Dagannoth fledgeling",
+ "Dagannoth guardian",
+ "Dagannoth spawn"
+ ],
+ "hidden-creatures": [
+ "Dagannoth (Lighthouse)",
+ "Dagannoth (Waterbirth Island)",
+ "Dagannoth (Waterbirth Island, ranged)",
+ "Dagannoth fledgeling",
+ "Dagannoth guardian",
+ "Dagannoth spawn"
+ ],
+ "index": "Dagannoth",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lighthouse\" title=\"Lighthouse\" target=\"_blank\">Lighthouse<\/a>",
+ "<a href=\"https://runescape.wiki/w/Waterbirth_Island\" title=\"Waterbirth Island\" target=\"_blank\">Waterbirth Island<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Dark beast#19,000 life points",
+ "weakness": [],
+ "creatures": [
+ "Dark beast",
+ "Dark beast (elite)",
+ "Revenant dark beast"
+ ],
+ "hidden-creatures": [
+ "Dark beast (elite)",
+ "Revenant dark beast"
+ ],
+ "index": "Dark beasts",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Temple_of_Light\" title=\"Temple of Light\" target=\"_blank\">Temple of Light<\/a>"
+ ]
+ },
+ {
+ "default-creature": "K'ril Tsutsaroth#Normal",
+ "weakness": [],
+ "creatures": [
+ "Abyssal beast",
+ "Abyssal demon",
+ "Abyssal lord",
+ "Abyssal savage",
+ "Balfrug Kreeyath",
+ "Black demon",
+ "Cerberus Juvenile",
+ "Gargoyle",
+ "Greater demon",
+ "Greater demon ash lord",
+ "Greater demon berserker",
+ "Greater demon brute",
+ "Greater demon pyromancer",
+ "Greater demon sage",
+ "Greater demon savage",
+ "Imp",
+ "Imp scavenger",
+ "K'ril Tsutsaroth",
+ "Kal'gerion demon",
+ "Kal'gerion demon (The Shadow Reef)",
+ "Lesser demon",
+ "Revenant demon",
+ "Ripper Demon",
+ "Tormented demon",
+ "Tstanon Karlak",
+ "Yor'Ger the Deceiver",
+ "Zakl'n Gritch"
+ ],
+ "hidden-creatures": [
+ "Gargoyle",
+ "Imp",
+ "Kal'gerion demon",
+ "Kal'gerion demon (The Shadow Reef)",
+ "Tstanon Karlak",
+ "Yor'Ger the Deceiver",
+ "Zakl'n Gritch"
+ ],
+ "index": "Demons",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Laniakea"
+ ],
+ "locations": []
+ },
+ {
+ "default-creature": "Corrupted lizard#Default",
+ "weakness": [],
+ "creatures": [
+ "Corrupted lizard",
+ "Desert Lizard",
+ "Lizard",
+ "Small Lizard"
+ ],
+ "hidden-creatures": [],
+ "index": "Desert lizards",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Ice_cooler\" title=\"Ice cooler\" target=\"_blank\">Ice cooler<\/a>"],
+ "masters": [
+ "Mazchna",
+ "Sumona"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Kharidian_Desert\" title=\"Kharidian Desert\" target=\"_blank\">Kharidian Desert<\/a>"]
+ },
+ {
+ "default-creature": "Desert strykewyrm#Default",
+ "weakness": [],
+ "creatures": ["Desert strykewyrm"],
+ "hidden-creatures": [],
+ "index": "Desert strykewyrms",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Al_Kharid\" title=\"Al Kharid\" target=\"_blank\">Al Kharid<\/a>"]
+ },
+ {
+ "default-creature": "Ripper dinosaur#Normal",
+ "weakness": [],
+ "creatures": [
+ "Baby Dinosaur Skeleton",
+ "Brutish dinosaur",
+ "Feral Dinosaur",
+ "Orikalka",
+ "Osseous",
+ "Pthentraken",
+ "Rathis",
+ "Ripper dinosaur",
+ "Venomous dinosaur"
+ ],
+ "hidden-creatures": [],
+ "index": "Dinosaurs",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Laniakea"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Anachronia\" title=\"Anachronia\" target=\"_blank\">Anachronia<\/a>"]
+ },
+ {
+ "default-creature": "Jackal#Default",
+ "weakness": [],
+ "creatures": [
+ "Guard dog",
+ "Jackal",
+ "Shadow Hound",
+ "Wild dog"
+ ],
+ "hidden-creatures": [
+ "Guard dog",
+ "Shadow Hound",
+ "Wild dog"
+ ],
+ "index": "Dogs",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Ardougne\" title=\"Ardougne\" target=\"_blank\">Ardougne<\/a>",
+ "<a href=\"https://runescape.wiki/w/McGrubor%27s_Wood\" title=\"McGrubor's Wood\" target=\"_blank\">McGrubor's Wood<\/a>",
+ "<a href=\"https://runescape.wiki/w/Black_Arm_Gang\" title=\"Black Arm Gang\" target=\"_blank\">Black Arm Gang<\/a>",
+ "<a href=\"https://runescape.wiki/w/Brimhaven\" title=\"Brimhaven\" target=\"_blank\">Brimhaven<\/a>",
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Queen Black Dragon#Normal",
+ "weakness": [],
+ "creatures": [
+ "Adamant dragon",
+ "Alanogard the Black",
+ "Astellarn",
+ "Baby blue dragon",
+ "Baby red dragon",
+ "Black dragon",
+ "Black dragon (Dragonkin Laboratory)",
+ "Black stone dragon",
+ "Blue dragon",
+ "Bronze dragon",
+ "Brutal green dragon",
+ "Celestial dragon",
+ "Celestial dragon (Dragonkin Laboratory)",
+ "Dragonstone dragon",
+ "Dragonstone dragon (Dragonkin Laboratory)",
+ "Elegorn the Celestial",
+ "Frost dragon",
+ "Green dragon",
+ "Hydrix dragon",
+ "Hydrix dragon (Dragonkin Laboratory)",
+ "Iron dragon",
+ "King Black Dragon",
+ "Mithril dragon",
+ "Nodon artificer",
+ "Nodon engineer",
+ "Nodon guard",
+ "Nodon hunter",
+ "Onyx dragon",
+ "Onyx dragon (Dragonkin Laboratory)",
+ "Queen Black Dragon",
+ "Red dragon",
+ "Red dragon (Dragonkin Laboratory)",
+ "Rune dragon",
+ "Sangri the Red",
+ "Siege engine",
+ "Steel dragon",
+ "Verak Lith",
+ "Verak Little",
+ "Vorkath"
+ ],
+ "hidden-creatures": [],
+ "index": "Dragons",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Laniakea"
+ ],
+ "locations": []
+ },
+ {
+ "default-creature": "Corrupted dust devil#Default",
+ "weakness": [],
+ "creatures": [
+ "Corrupted dust devil",
+ "Dust devil",
+ "Dust devil (elite)"
+ ],
+ "hidden-creatures": ["Dust devil (elite)"],
+ "index": "Dust devils",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Face_mask\" title=\"Face mask\" target=\"_blank\">Face mask<\/a>",
+ "<a href=\"https://runescape.wiki/w/Masked_earmuffs\" title=\"Masked earmuffs\" target=\"_blank\">Masked earmuffs<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_helmet\" title=\"Slayer helmet\" target=\"_blank\">Slayer helmet<\/a>",
+ "<a href=\"https://runescape.wiki/w/Gas_mask\" title=\"Gas mask\" target=\"_blank\">Gas mask<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Smoke_Dungeon\" title=\"Smoke Dungeon\" target=\"_blank\">Smoke Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Earth warrior#Default",
+ "weakness": [],
+ "creatures": [
+ "Earth warrior",
+ "Earth warrior (elite)"
+ ],
+ "hidden-creatures": ["Earth warrior (elite)"],
+ "index": "Earth warriors",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Edgeville_Dungeon\" title=\"Edgeville Dungeon\" target=\"_blank\">Edgeville Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Edimmu#Default",
+ "weakness": [],
+ "creatures": [
+ "Edimmu",
+ "Edimmu (elite)"
+ ],
+ "hidden-creatures": ["Edimmu (elite)"],
+ "index": "Edimmu",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Dungeoneering\" title=\"Dungeoneering\" target=\"_blank\">Dungeoneering<\/a>"],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Edimmu_resource_dungeon\" title=\"Edimmu resource dungeon\" target=\"_blank\">Edimmu resource dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Elf warrior#Melee",
+ "weakness": [],
+ "creatures": [
+ "Cadarn magus",
+ "Cadarn ranger",
+ "Elf warrior",
+ "Iorwerth guard",
+ "Iorwerth scout",
+ "Knight of Ardougne (West Ardougne)",
+ "Mourner (Mourner Tunnels)",
+ "Seren archer",
+ "Seren mage",
+ "Seren warrior"
+ ],
+ "hidden-creatures": [
+ "Knight of Ardougne (West Ardougne)",
+ "Mourner (Mourner Tunnels)",
+ "Seren archer",
+ "Seren mage",
+ "Seren warrior"
+ ],
+ "index": "Elves",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Lletya\" title=\"Lletya\" target=\"_blank\">Lletya<\/a>",
+ "<a href=\"https://runescape.wiki/w/Elf_Camp\" title=\"Elf Camp\" target=\"_blank\">Elf Camp<\/a>",
+ "<a href=\"https://runescape.wiki/w/Prifddinas\" title=\"Prifddinas\" target=\"_blank\">Prifddinas<\/a>",
+ "<a href=\"https://runescape.wiki/w/Heart_of_Gielinor\" title=\"Heart of Gielinor\" target=\"_blank\">Heart of Gielinor<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Fetid zombie#1",
+ "weakness": [],
+ "creatures": ["Fetid zombie"],
+ "hidden-creatures": [],
+ "index": "Fetid zombies",
+ "alias": [],
+ "equipment": [],
+ "masters": ["The Raptor"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Crypt_(Wilderness)\" title=\"Crypt (Wilderness)\" target=\"_blank\">crypt<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fort_Forinthry\" title=\"Fort Forinthry\" target=\"_blank\">Fort Forinthry<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Fever spider#Default",
+ "weakness": [],
+ "creatures": ["Fever spider"],
+ "hidden-creatures": [],
+ "index": "Fever spiders",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Slayer_gloves\" title=\"Slayer gloves\" target=\"_blank\">Slayer gloves<\/a>"],
+ "masters": ["Chaeldar"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Braindeath_Island\" title=\"Braindeath Island\" target=\"_blank\">Braindeath Island<\/a>"]
+ },
+ {
+ "default-creature": "Fire giant#Default",
+ "weakness": [],
+ "creatures": ["Fire giant"],
+ "hidden-creatures": [],
+ "index": "Fire giants",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Smoke_Dungeon\" title=\"Smoke Dungeon\" target=\"_blank\">Smoke Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Resource_dungeon\" class=\"mw-redirect\" title=\"Resource dungeon\" target=\"_blank\">Resource dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Waterfall_Dungeon\" title=\"Waterfall Dungeon\" target=\"_blank\">Waterfall Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Flesh Crawler#Default",
+ "weakness": [],
+ "creatures": ["Flesh Crawler"],
+ "hidden-creatures": [],
+ "index": "Fleshcrawlers",
+ "alias": ["Flesh Crawlers"],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>"]
+ },
+ {
+ "default-creature": "Plague frog#Default",
+ "weakness": [],
+ "creatures": [
+ "Big frog",
+ "Frog",
+ "Frogeel",
+ "Giant frog",
+ "Plague frog",
+ "Swamp frog"
+ ],
+ "hidden-creatures": [
+ "Big frog",
+ "Frogeel",
+ "Giant frog"
+ ],
+ "index": "Frogs",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Jacquelyn",
+ "Vannaka"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Swamp_Caves\" title=\"Lumbridge Swamp Caves\" target=\"_blank\">Lumbridge Swamp Caves<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Swamp\" title=\"Lumbridge Swamp\" target=\"_blank\">Lumbridge Swamp<\/a>",
+ "<a href=\"https://runescape.wiki/w/Sophanem\" title=\"Sophanem\" target=\"_blank\">Sophanem<\/a>",
+ "<a href=\"https://runescape.wiki/w/Jade_vine_maze\" title=\"Jade vine maze\" target=\"_blank\">Jade vine maze<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Fungal mage#Normal",
+ "weakness": [],
+ "creatures": ["Fungal mage"],
+ "hidden-creatures": [],
+ "index": "Fungal magi",
+ "alias": ["Fungal mages"],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Neem_oil\" title=\"Neem oil\" target=\"_blank\">Neem oil<\/a>"],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Duradel"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Polypore_Dungeon\" title=\"Polypore Dungeon\" target=\"_blank\">Polypore Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Ganodermic beast#Normal",
+ "weakness": [],
+ "creatures": [
+ "Ganodermic beast",
+ "Ganodermic runt"
+ ],
+ "hidden-creatures": [],
+ "index": "Ganodermic creatures",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Neem_oil\" title=\"Neem oil\" target=\"_blank\">Neem oil<\/a>"],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Polypore_Dungeon\" title=\"Polypore Dungeon\" target=\"_blank\">Polypore Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Gargoyle#Regular",
+ "weakness": [],
+ "creatures": ["Gargoyle"],
+ "hidden-creatures": [],
+ "index": "Gargoyles",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Rock_hammer\" title=\"Rock hammer\" target=\"_blank\">Rock hammer<\/a>"],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ruins_(east)\" title=\"Ruins (east)\" target=\"_blank\">Ruins (east)<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Gelatinous abomination#Default",
+ "weakness": [],
+ "creatures": ["Gelatinous abomination"],
+ "hidden-creatures": [],
+ "index": "Gelatinous abominations",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Spiked_gloves\" class=\"mw-redirect\" title=\"Spiked gloves\" target=\"_blank\">Spiked gloves<\/a>"],
+ "masters": ["Turael"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Burthorpe_Slayer_Cave\" title=\"Burthorpe Slayer Cave\" target=\"_blank\">Burthorpe Slayer Cave<\/a>"]
+ },
+ {
+ "default-creature": "Hydrix dragon#Default",
+ "weakness": [],
+ "creatures": [
+ "Black stone dragon",
+ "Dragonstone dragon",
+ "Dragonstone dragon (Dragonkin Laboratory)",
+ "Hydrix dragon",
+ "Hydrix dragon (Dragonkin Laboratory)",
+ "Onyx dragon",
+ "Onyx dragon (Dragonkin Laboratory)"
+ ],
+ "hidden-creatures": [],
+ "index": "Gemstone dragons",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Super_anti-fire_potion\" class=\"mw-redirect\" title=\"Super anti-fire potion\" target=\"_blank\">Super anti-fire potion<\/a>"],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Gemstone_cavern\" title=\"Gemstone cavern\" target=\"_blank\">Gemstone cavern<\/a>"]
+ },
+ {
+ "default-creature": "Ghost#1",
+ "weakness": [],
+ "creatures": [
+ "Aberrant spectre",
+ "Ahrim the Blighted",
+ "Akrisae the Doomed",
+ "Ankou",
+ "Banshee",
+ "Dharok the Wretched",
+ "Edimmu",
+ "Edimmu (elite)",
+ "Ghast",
+ "Ghost",
+ "Ghost (Abandoned Mine)",
+ "Ghost (Ourania Runecrafting Altar)",
+ "Ghost (Shattered Worlds)",
+ "Ghost (Spirit of Summer)",
+ "Ghost (Stronghold of Security)",
+ "Ghost healer",
+ "Ghostly troll bruiser",
+ "Ghostly troll thrower",
+ "Ghostly warrior",
+ "Guthan the Infested",
+ "Karil the Tainted",
+ "Linza the Disgraced",
+ "Masuta the Descended",
+ "Mighty banshee",
+ "Revenant cyclops",
+ "Revenant dark beast",
+ "Revenant demon",
+ "Revenant dragon",
+ "Revenant goblin",
+ "Revenant hellhound",
+ "Revenant hobgoblin",
+ "Revenant icefiend",
+ "Revenant imp",
+ "Revenant knight",
+ "Revenant ork",
+ "Revenant pyrefiend",
+ "Revenant vampyre",
+ "Revenant werewolf",
+ "Risen ghost",
+ "Shade",
+ "Shadow warrior",
+ "Spiritual mage",
+ "Spiritual ranger",
+ "Spiritual warrior",
+ "Torag the Corrupted",
+ "Tormented soul (Uncharted Isles)",
+ "Tormented wraith",
+ "Tortured soul (Port Phasmatys)",
+ "Verac the Defiled",
+ "Wight",
+ "Wight (Missing, Presumed Death)",
+ "Wight ranger",
+ "Wight ranger (Sliske's Endgame)"
+ ],
+ "hidden-creatures": [
+ "Edimmu (elite)",
+ "Ghost (Abandoned Mine)",
+ "Ghost (Ourania Runecrafting Altar)",
+ "Ghost (Shattered Worlds)",
+ "Ghost (Spirit of Summer)",
+ "Ghost (Stronghold of Security)",
+ "Revenant cyclops",
+ "Revenant demon",
+ "Revenant goblin",
+ "Revenant hobgoblin",
+ "Revenant icefiend",
+ "Revenant imp",
+ "Revenant ork",
+ "Revenant pyrefiend",
+ "Revenant vampyre",
+ "Revenant werewolf",
+ "Tormented soul (Uncharted Isles)",
+ "Tormented wraith",
+ "Tortured soul (Port Phasmatys)",
+ "Wight",
+ "Wight (Missing, Presumed Death)",
+ "Wight ranger",
+ "Wight ranger (Sliske's Endgame)"
+ ],
+ "index": "Ghosts",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Jacquelyn",
+ "Vannaka",
+ "The Raptor"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Varrock_Sewers\" title=\"Varrock Sewers\" target=\"_blank\">Varrock Sewers<\/a>",
+ "<a href=\"https://runescape.wiki/w/Draynor_Manor\" title=\"Draynor Manor\" target=\"_blank\">Draynor Manor<\/a>",
+ "<a href=\"https://runescape.wiki/w/Melzar%27s_Maze\" title=\"Melzar's Maze\" target=\"_blank\">Melzar's Maze<\/a>",
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Taverley_Dungeon\" title=\"Taverley Dungeon\" target=\"_blank\">Taverley Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Tarn%27s_Lair\" class=\"mw-redirect\" title=\"Tarn's Lair\" target=\"_blank\">Tarn's Lair<\/a>",
+ "<a href=\"https://runescape.wiki/w/Death_Altar\" class=\"mw-redirect\" title=\"Death Altar\" target=\"_blank\">Death Altar<\/a>",
+ "<a href=\"https://runescape.wiki/w/Haunted_Mine\" title=\"Haunted Mine\" target=\"_blank\">Haunted Mine<\/a>",
+ "<a href=\"https://runescape.wiki/w/Clan_Wars\" title=\"Clan Wars\" target=\"_blank\">Clan Wars<\/a>",
+ "<a href=\"https://runescape.wiki/w/Forgotten_Cemetery\" class=\"mw-redirect\" title=\"Forgotten Cemetery\" target=\"_blank\">Forgotten Cemetery<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Ravenous ghoul#Default",
+ "weakness": [],
+ "creatures": [
+ "Ghoul",
+ "Ghoul (Paterdomus)",
+ "Ravenous ghoul",
+ "Ravenous ghoul (Mazchna)"
+ ],
+ "hidden-creatures": [
+ "Ghoul (Paterdomus)",
+ "Ravenous ghoul (Mazchna)"
+ ],
+ "index": "Ghouls",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Canifis\" title=\"Canifis\" target=\"_blank\">Canifis<\/a>"]
+ },
+ {
+ "default-creature": "Arch-Glacor#Normal mode",
+ "weakness": [],
+ "creatures": [
+ "Arch-Glacor",
+ "Bolstered Glacyte",
+ "Enduring glacyte",
+ "Glacor",
+ "Glacyte",
+ "Glacyte (Arch-Glacor)",
+ "Sapping glacyte",
+ "Unstable glacyte"
+ ],
+ "hidden-creatures": [],
+ "index": "Glacors",
+ "alias": ["Glacor"],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Slayer_master\" class=\"mw-redirect\" title=\"Slayer master\" target=\"_blank\">Slayer master<\/a>"],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Glacor_Cave\" title=\"Glacor Cave\" target=\"_blank\">Glacor Cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Glacor_Front\" title=\"Glacor Front\" target=\"_blank\">Glacor front<\/a>",
+ "<a href=\"https://runescape.wiki/w/Frozen_Waste_Plateau\" title=\"Frozen Waste Plateau\" target=\"_blank\">Frozen Waste Plateau<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Goblin#Level 11",
+ "weakness": [],
+ "creatures": [
+ "Angry goblin",
+ "Brokeface",
+ "Cave goblin (monster)",
+ "Cave goblin guard",
+ "Cave goblin miner",
+ "Goblin",
+ "Goblin (Goblin Village)",
+ "Goblin (God Wars Dungeon)",
+ "Goblin (Stronghold of Security)",
+ "Guard (cave goblin)",
+ "Lumpnose",
+ "Sergeant Grimspike",
+ "Sergeant Steelwill",
+ "Sergeant Strongstack",
+ "Skoblin",
+ "Stinkears"
+ ],
+ "hidden-creatures": [
+ "Angry goblin",
+ "Brokeface",
+ "Cave goblin (monster)",
+ "Cave goblin guard",
+ "Cave goblin miner",
+ "Guard (cave goblin)",
+ "Lumpnose",
+ "Sergeant Grimspike",
+ "Sergeant Steelwill",
+ "Sergeant Strongstack",
+ "Skoblin"
+ ],
+ "index": "Goblins",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Jacquelyn"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Lumbridge_catacombs\" class=\"mw-redirect\" title=\"Lumbridge catacombs\" target=\"_blank\">Lumbridge catacombs<\/a>",
+ "<a href=\"https://runescape.wiki/w/Goblin_Village\" title=\"Goblin Village\" target=\"_blank\">Goblin Village<\/a>",
+ "<a href=\"https://runescape.wiki/w/Port_Sarim\" title=\"Port Sarim\" target=\"_blank\">Port Sarim<\/a>",
+ "<a href=\"https://runescape.wiki/w/Varrock_Dig_Site\" title=\"Varrock Dig Site\" target=\"_blank\">Varrock Dig Site<\/a>",
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Underground_Pass_(dungeon)\" title=\"Underground Pass (dungeon)\" target=\"_blank\">Underground Pass<\/a>",
+ "<a href=\"https://runescape.wiki/w/Goblin_Cave\" title=\"Goblin Cave\" target=\"_blank\">Goblin Cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Coal_truck_mining_site\" class=\"mw-redirect\" title=\"Coal truck mining site\" target=\"_blank\">Coal truck mining site<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Observatory\" title=\"Observatory\" target=\"_blank\">Observatory<\/a>",
+ "<a href=\"https://runescape.wiki/w/Gunnarsgrunn\" class=\"mw-redirect\" title=\"Gunnarsgrunn\" target=\"_blank\">Gunnarsgrunn<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Gorak#God Wars Dungeon",
+ "weakness": [],
+ "creatures": ["Gorak"],
+ "hidden-creatures": [],
+ "index": "Goraks",
+ "alias": ["Gorak"],
+ "equipment": [],
+ "masters": ["Duradel"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fairy_ring\" class=\"mw-redirect\" title=\"Fairy ring\" target=\"_blank\">Fairy ring<\/a>",
+ "<span class=\"fairycode\" style=\"word-break:keep-all\" target=\"_blank\" href=\"https://runescape.wiki\"><b>D<\/b><b>I<\/b><b>R<\/b><\/span>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Greater demon ash lord#Wilderness",
+ "weakness": [],
+ "creatures": [
+ "Greater demon ash lord",
+ "Greater demon berserker"
+ ],
+ "hidden-creatures": [],
+ "index": "Greater demon berserkers and ash lords",
+ "alias": [
+ "Greater demon ash lords",
+ "Greater demon berserkers"
+ ],
+ "equipment": [],
+ "masters": ["Mandrith"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/The_Zamorakian_Undercity\" title=\"The Zamorakian Undercity\" target=\"_blank\">The Zamorakian Undercity<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "K'ril Tsutsaroth#Normal",
+ "weakness": [],
+ "creatures": [
+ "Butcher demon",
+ "Champion of Infernus",
+ "Chaos Demon",
+ "Chaos Demon Savage",
+ "Denizen of Infernus",
+ "Greater demon",
+ "Greater demon (elite)",
+ "Greater demon ash lord",
+ "Greater demon berserker",
+ "Greater demon brute",
+ "Greater demon pyromancer",
+ "Greater demon sage",
+ "Greater demon savage",
+ "K'ril Tsutsaroth",
+ "Kor'Vath the Blightbringer",
+ "La'Kalor the Unbroken",
+ "Shara'Kor the Widowmaker",
+ "Tstanon Karlak"
+ ],
+ "hidden-creatures": [
+ "Butcher demon",
+ "Champion of Infernus",
+ "Greater demon (elite)"
+ ],
+ "index": "Greater demons",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Entrana_Dungeon\" title=\"Entrana Dungeon\" target=\"_blank\">Entrana Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ogre_Enclave\" title=\"Ogre Enclave\" target=\"_blank\">Ogre Enclave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Demonic_ruins\" class=\"mw-redirect\" title=\"Demonic ruins\" target=\"_blank\">Demonic ruins<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness_Crater\" title=\"Wilderness Crater\" target=\"_blank\">Wilderness Crater<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lava_Maze_Dungeon\" title=\"Lava Maze Dungeon\" target=\"_blank\">Lava Maze Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Green dragon#1",
+ "weakness": [],
+ "creatures": [
+ "Brutal green dragon",
+ "Green dragon"
+ ],
+ "hidden-creatures": [],
+ "index": "Green dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "The Raptor",
+ "Mazchna",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Chaos_tunnels\" class=\"mw-redirect\" title=\"Chaos tunnels\" target=\"_blank\">Chaos tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Clan_Wars\" title=\"Clan Wars\" target=\"_blank\">Clan Wars<\/a>",
+ "<a href=\"https://runescape.wiki/w/Goblin_Village\" title=\"Goblin Village\" target=\"_blank\">Goblin Village<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Grifolapine#Normal",
+ "weakness": [],
+ "creatures": ["Grifolapine"],
+ "hidden-creatures": [],
+ "index": "Grifolapines",
+ "alias": [],
+ "equipment": [
+ "<span class=\"pic-link inventory-image\" target=\"_blank\" href=\"https://runescape.wiki\"><span class=\"mw-default-size\" typeof=\"mw:File\"><a href=\"/w/Neem_oil\" title=\"Neem oil\"><img alt=\"Neem oil.png: RS3 Inventory image of Neem oil\" src=\"/images/Neem_oil.png?f5dec\" decoding=\"async\" loading=\"lazy\" width=\"27\" height=\"29\" class=\"mw-file-element\" data-file-width=\"27\" data-file-height=\"29\"><\/a><\/span><\/span>",
+ "<a href=\"https://runescape.wiki/w/Neem_oil\" title=\"Neem oil\" target=\"_blank\">Neem oil<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Polypore_Dungeon\" title=\"Polypore Dungeon\" target=\"_blank\">Polypore Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Grifolaroo#Normal",
+ "weakness": [],
+ "creatures": ["Grifolaroo"],
+ "hidden-creatures": [],
+ "index": "Grifolaroos",
+ "alias": [],
+ "equipment": [
+ "<span class=\"pic-link inventory-image\" target=\"_blank\" href=\"https://runescape.wiki\"><span class=\"mw-default-size\" typeof=\"mw:File\"><a href=\"/w/Neem_oil\" title=\"Neem oil\"><img alt=\"Neem oil.png: RS3 Inventory image of Neem oil\" src=\"/images/Neem_oil.png?f5dec\" decoding=\"async\" loading=\"lazy\" width=\"27\" height=\"29\" class=\"mw-file-element\" data-file-width=\"27\" data-file-height=\"29\"><\/a><\/span><\/span>",
+ "<a href=\"https://runescape.wiki/w/Neem_oil\" title=\"Neem oil\" target=\"_blank\">Neem oil<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Polypore_Dungeon\" title=\"Polypore Dungeon\" target=\"_blank\">Polypore Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Mature grotworm#Default",
+ "weakness": [],
+ "creatures": [
+ "Giant worm",
+ "Grotworm",
+ "Mature grotworm",
+ "Young grotworm"
+ ],
+ "hidden-creatures": ["Giant worm"],
+ "index": "Grotworms",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Vannaka",
+ "The Raptor",
+ "Mazchna",
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Grotworm_Lair\" title=\"Grotworm Lair\" target=\"_blank\">Grotworm Lair<\/a>"]
+ },
+ {
+ "default-creature": "Harpie Bug Swarm#Default",
+ "weakness": [],
+ "creatures": [
+ "Harpie Bug Swarm",
+ "Harpie Bug Swarm (elite)"
+ ],
+ "hidden-creatures": ["Harpie Bug Swarm (elite)"],
+ "index": "Harpie bug swarms",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Bug_lantern\" class=\"mw-redirect\" title=\"Bug lantern\" target=\"_blank\">Bug lantern<\/a>"],
+ "masters": ["Chaeldar"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Karamja\" title=\"Karamja\" target=\"_blank\">Karamja<\/a>"]
+ },
+ {
+ "default-creature": "Hellhound#Normal",
+ "weakness": [],
+ "creatures": [
+ "Cerberus Juvenile",
+ "Hellhound",
+ "Hellhound (Heart of Gielinor)",
+ "Hellhound (The Zamorakian Undercity)",
+ "Hellhound (summoned)",
+ "Hellhound Alpha",
+ "Hellhound Hunter",
+ "Hellhound Hunter (summoned)",
+ "Revenant hellhound"
+ ],
+ "hidden-creatures": ["Hellhound (Heart of Gielinor)"],
+ "index": "Hellhounds",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Taverley_Dungeon\" title=\"Taverley Dungeon\" target=\"_blank\">Taverley Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Deserted_Keep\" title=\"Deserted Keep\" target=\"_blank\">Deserted Keep<\/a>",
+ "<a href=\"https://runescape.wiki/w/Witchaven_Shrine_Dungeon\" class=\"mw-redirect\" title=\"Witchaven Shrine Dungeon\" target=\"_blank\">Witchaven Shrine Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness_Crater\" title=\"Wilderness Crater\" target=\"_blank\">Wilderness Crater<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Hill Giant#Default",
+ "weakness": [],
+ "creatures": ["Hill Giant"],
+ "hidden-creatures": [],
+ "index": "Hill giants",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Deep_Wilderness_Dungeon\" title=\"Deep Wilderness Dungeon\" target=\"_blank\">Deep Wilderness Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Edgeville_Dungeon\" title=\"Edgeville Dungeon\" target=\"_blank\">Edgeville Dungeon<\/a>",
+ "<sup target=\"_blank\" href=\"https://runescape.wiki\">(<a href=\"/w/Edgeville_Dungeon_hill_giant_resource_dungeon\" title=\"Edgeville Dungeon hill giant resource dungeon\">resource dungeon<\/a>)<\/sup>",
+ "<a href=\"https://runescape.wiki/w/Gnome_Stronghold\" class=\"mw-redirect\" title=\"Gnome Stronghold\" target=\"_blank\">Gnome Stronghold<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lava_Maze\" title=\"Lava Maze\" target=\"_blank\">Lava Maze<\/a>",
+ "<a href=\"https://runescape.wiki/w/Observatory\" title=\"Observatory\" target=\"_blank\">Observatory<\/a>",
+ "<a href=\"https://runescape.wiki/w/Taverley_Dungeon\" title=\"Taverley Dungeon\" target=\"_blank\">Taverley Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Tree_Gnome_Village_(location)\" title=\"Tree Gnome Village (location)\" target=\"_blank\">Tree Gnome Village<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Hobgoblin#Level 15",
+ "weakness": [],
+ "creatures": [
+ "Hobgoblin",
+ "Hobgoblin (elite)"
+ ],
+ "hidden-creatures": ["Hobgoblin (elite)"],
+ "index": "Hobgoblins",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Asgarnian_Ice_Dungeon\" title=\"Asgarnian Ice Dungeon\" target=\"_blank\">Asgarnian Ice Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Crandor\" title=\"Crandor\" target=\"_blank\">Crandor<\/a>",
+ "<a href=\"https://runescape.wiki/w/Hobgoblin_Peninsula\" title=\"Hobgoblin Peninsula\" target=\"_blank\">Hobgoblin Peninsula<\/a>",
+ "<a href=\"https://runescape.wiki/w/Edgeville_Dungeon\" title=\"Edgeville Dungeon\" target=\"_blank\">Edgeville Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Rellekka\" title=\"Rellekka\" target=\"_blank\">Rellekka<\/a>",
+ "<a href=\"https://runescape.wiki/w/Waterbirth_Island\" title=\"Waterbirth Island\" target=\"_blank\">Waterbirth Island<\/a>",
+ "<a href=\"https://runescape.wiki/w/Hobgoblin_Mine\" class=\"mw-redirect\" title=\"Hobgoblin Mine\" target=\"_blank\">Hobgoblin Mine<\/a>",
+ "<a href=\"https://runescape.wiki/w/Witchaven_Dungeon\" title=\"Witchaven Dungeon\" target=\"_blank\">Witchaven Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Hydrix dragon#Default",
+ "weakness": [],
+ "creatures": ["Hydrix dragon"],
+ "hidden-creatures": [],
+ "index": "Hydrix dragons",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Super_anti-fire_potion\" class=\"mw-redirect\" title=\"Super anti-fire potion\" target=\"_blank\">Super anti-fire potion<\/a>"],
+ "masters": ["Mandrith"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Wilderness_(level_47)_Lava_Maze_mine\" title=\"Wilderness (level 47) Lava Maze mine\" target=\"_blank\">Wilderness (level 47) Lava Maze mine<\/a>",
+ "<a href=\"https://runescape.wiki/w/Deep_Wilderness_Dungeon\" title=\"Deep Wilderness Dungeon\" target=\"_blank\">Deep Wilderness Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Ice giant#Level 47 (1)",
+ "weakness": [],
+ "creatures": ["Ice giant"],
+ "hidden-creatures": [],
+ "index": "Ice giants",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Vannaka",
+ "Mazchna"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Asgarnian_Ice_Caves\" class=\"mw-redirect\" title=\"Asgarnian Ice Caves\" target=\"_blank\">Asgarnian Ice Caves<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Frozen_Waste_Plateau\" title=\"Frozen Waste Plateau\" target=\"_blank\">Frozen Waste Plateau<\/a>",
+ "<a href=\"https://runescape.wiki/w/White_Wolf_Mountain\" title=\"White Wolf Mountain\" target=\"_blank\">White Wolf Mountain<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Ice strykewyrm#Default",
+ "weakness": [],
+ "creatures": ["Ice strykewyrm"],
+ "hidden-creatures": [],
+ "index": "Ice strykewyrms",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Fire_cape\" title=\"Fire cape\" target=\"_blank\">Fire cape<\/a>"],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Ice_strykewyrm_cave\" title=\"Ice strykewyrm cave\" target=\"_blank\">Ice strykewyrm cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Frozen_Waste_Plateau\" title=\"Frozen Waste Plateau\" target=\"_blank\">Frozen Waste Plateau<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Ice warrior#Normal",
+ "weakness": [],
+ "creatures": [
+ "Ice warrior",
+ "Icelord"
+ ],
+ "hidden-creatures": ["Icelord"],
+ "index": "Ice warriors",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Vannaka",
+ "Mazchna"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/White_Wolf_Mountain\" title=\"White Wolf Mountain\" target=\"_blank\">White Wolf Mountain<\/a>",
+ "<a href=\"https://runescape.wiki/w/Frozen_Waste_Plateau\" title=\"Frozen Waste Plateau\" target=\"_blank\">Frozen Waste Plateau<\/a>",
+ "<a href=\"https://runescape.wiki/w/Asgarnian_Ice_Caves\" class=\"mw-redirect\" title=\"Asgarnian Ice Caves\" target=\"_blank\">Asgarnian Ice Caves<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Icefiend#God Wars Dungeon",
+ "weakness": [],
+ "creatures": [
+ "Icefiend",
+ "Icefiend (Ghorrock)",
+ "Revenant icefiend"
+ ],
+ "hidden-creatures": ["Icefiend (Ghorrock)"],
+ "index": "Icefiends",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Ice_mountain\" class=\"mw-redirect\" title=\"Ice mountain\" target=\"_blank\">Ice mountain<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghorrock\" title=\"Ghorrock\" target=\"_blank\">Ghorrock<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Infernal Mage#Default",
+ "weakness": [],
+ "creatures": [
+ "Infernal Mage",
+ "Infernal Mage (elite)"
+ ],
+ "hidden-creatures": ["Infernal Mage (elite)"],
+ "index": "Infernal mages",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Iron dragon#Default",
+ "weakness": [],
+ "creatures": ["Iron dragon"],
+ "hidden-creatures": [],
+ "index": "Iron dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghorrock\" title=\"Ghorrock\" target=\"_blank\">Ghorrock<\/a>",
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Jelly#Default",
+ "weakness": [],
+ "creatures": ["Jelly"],
+ "hidden-creatures": [],
+ "index": "Jellies",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Soul_Wars\" title=\"Soul Wars\" target=\"_blank\">Soul Wars<\/a>",
+ "<a href=\"https://runescape.wiki/w/Mahjarrat_Ritual_Site_Cavern\" class=\"mw-redirect\" title=\"Mahjarrat Ritual Site Cavern\" target=\"_blank\">Mahjarrat Ritual Site Cavern<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Jungle horror#Default",
+ "weakness": [],
+ "creatures": [
+ "Jungle horror",
+ "Quetzathog",
+ "Sea horror"
+ ],
+ "hidden-creatures": [
+ "Quetzathog",
+ "Sea horror"
+ ],
+ "index": "Jungle horrors",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Mos_Le%27Harmless\" title=\"Mos Le'Harmless\" target=\"_blank\">Mos Le'Harmless<\/a>"]
+ },
+ {
+ "default-creature": "Jungle strykewyrm#Default",
+ "weakness": [],
+ "creatures": ["Jungle strykewyrm"],
+ "hidden-creatures": [],
+ "index": "Jungle strykewyrms",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/South_Feldip_Hills\" title=\"South Feldip Hills\" target=\"_blank\">South Feldip Hills<\/a>"]
+ },
+ {
+ "default-creature": "Kal'gerion demon#Bloodchiller",
+ "weakness": [],
+ "creatures": [
+ "Kal'gerion demon",
+ "Kal'gerion demon (The Shadow Reef)",
+ "Yor'Ger the Deceiver"
+ ],
+ "hidden-creatures": [],
+ "index": "Kal'gerion demons",
+ "alias": ["Kal'gerion demon"],
+ "equipment": [],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Kal%27gerion_resource_dungeon\" title=\"Kal'gerion resource dungeon\" target=\"_blank\">Kal'gerion resource dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Demonic_Ruins\" title=\"Demonic Ruins\" target=\"_blank\">Demonic Ruins<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Corrupted kalphite guardian#Default",
+ "weakness": [],
+ "creatures": [
+ "Corrupted kalphite guardian",
+ "Corrupted kalphite marauder",
+ "Exiled Kalphite Queen",
+ "Exiled kalphite guardian",
+ "Exiled kalphite marauder",
+ "Exiled kalphite paragon",
+ "Exiled kalphite soldier",
+ "Exiled kalphite worker",
+ "Kalphite Guardian",
+ "Kalphite King",
+ "Kalphite Queen",
+ "Kalphite Soldier",
+ "Kalphite Worker"
+ ],
+ "hidden-creatures": [
+ "Exiled kalphite guardian",
+ "Exiled kalphite marauder",
+ "Exiled kalphite paragon"
+ ],
+ "index": "Kalphite",
+ "alias": ["Kalphites"],
+ "equipment": [],
+ "masters": [
+ "Vannaka",
+ "The Raptor",
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Kalphite_Lair\" class=\"mw-redirect\" title=\"Kalphite Lair\" target=\"_blank\">Kalphite Lair<\/a>",
+ "<a href=\"https://runescape.wiki/w/Exiled_Kalphite_Hive\" title=\"Exiled Kalphite Hive\" target=\"_blank\">Exiled Kalphite Hive<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Killerwatt#Default",
+ "weakness": [],
+ "creatures": ["Killerwatt"],
+ "hidden-creatures": [],
+ "index": "Killerwatts",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Insulated_boots\" title=\"Insulated boots\" target=\"_blank\">Insulated boots<\/a>"],
+ "masters": ["Mazchna"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Killerwatt_plane\" title=\"Killerwatt plane\" target=\"_blank\">Killerwatt plane<\/a>"]
+ },
+ {
+ "default-creature": "Kurask#Examine #1",
+ "weakness": [],
+ "creatures": ["Kurask"],
+ "hidden-creatures": [],
+ "index": "Kurask",
+ "alias": ["Kurasks"],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Leaf-bladed_sword\" title=\"Leaf-bladed sword\" target=\"_blank\">Leaf-bladed sword<\/a>",
+ "<a href=\"https://runescape.wiki/w/Leaf-bladed_spear\" title=\"Leaf-bladed spear\" target=\"_blank\">Leaf-bladed spear<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_Dart\" title=\"Slayer Dart\" target=\"_blank\">Slayer Dart<\/a>",
+ "<a href=\"https://runescape.wiki/w/Broad_arrows\" class=\"mw-redirect\" title=\"Broad arrows\" target=\"_blank\">Broad arrows<\/a>",
+ "<a href=\"https://runescape.wiki/w/Broad-tipped_bolts\" title=\"Broad-tipped bolts\" target=\"_blank\">Broad-tipped bolts<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Sumona"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Pollnivneach_Slayer_Dungeon\" title=\"Pollnivneach Slayer Dungeon\" target=\"_blank\">Pollnivneach Slayer Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Lava strykewyrm#Default",
+ "weakness": [],
+ "creatures": [
+ "Engorged lava strykewyrm",
+ "Lava strykewyrm",
+ "Lava strykewyrm (Dragonkin Laboratory)",
+ "WildyWyrm (2015, historical)"
+ ],
+ "hidden-creatures": [
+ "Engorged lava strykewyrm",
+ "Lava strykewyrm (Dragonkin Laboratory)"
+ ],
+ "index": "Lava strykewyrms",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"]
+ },
+ {
+ "default-creature": "Lesser demon#1",
+ "weakness": [],
+ "creatures": [
+ "Lesser demon",
+ "Lesser demon (Wizards' Tower)",
+ "Zakl'n Gritch"
+ ],
+ "hidden-creatures": [],
+ "index": "Lesser demons",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Mazchna",
+ "Chaeldar",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Wizards%27_Tower\" title=\"Wizards' Tower\" target=\"_blank\">Wizards' Tower<\/a>",
+ "<a href=\"https://runescape.wiki/w/Resource_dungeon\" class=\"mw-redirect\" title=\"Resource dungeon\" target=\"_blank\">Resource dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Karamja_Dungeon\" class=\"mw-redirect\" title=\"Karamja Dungeon\" target=\"_blank\">Karamja Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Crandor\" title=\"Crandor\" target=\"_blank\">Crandor<\/a>",
+ "<a href=\"https://runescape.wiki/w/Melzar%27s_Maze\" title=\"Melzar's Maze\" target=\"_blank\">Melzar's Maze<\/a>",
+ "<a href=\"https://runescape.wiki/w/Demonic_Ruins\" title=\"Demonic Ruins\" target=\"_blank\">Demonic Ruins<\/a>",
+ "<a href=\"https://runescape.wiki/w/Clan_Wars\" title=\"Clan Wars\" target=\"_blank\">Clan Wars<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lava_Maze\" title=\"Lava Maze\" target=\"_blank\">Lava Maze<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness_Crater\" title=\"Wilderness Crater\" target=\"_blank\">Wilderness Crater<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Living rock patriarch#Default",
+ "weakness": [],
+ "creatures": [
+ "Living rock patriarch",
+ "Living rock protector",
+ "Living rock striker"
+ ],
+ "hidden-creatures": [],
+ "index": "Living rock creatures",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Kuradal"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Living_rock_caverns\" class=\"mw-redirect\" title=\"Living rock caverns\" target=\"_blank\">Living rock caverns<\/a>"]
+ },
+ {
+ "default-creature": "Wyvern#Default",
+ "weakness": [],
+ "creatures": [
+ "Wyvern",
+ "Wyvern (elite)"
+ ],
+ "hidden-creatures": ["Wyvern (elite)"],
+ "index": "Living wyverns",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Wyrmfire_potion\" title=\"Wyrmfire potion\" target=\"_blank\">Wyrmfire potion<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Elemental_Workshop_equipment\" title=\"Elemental Workshop equipment\" target=\"_blank\">Elemental Workshop shield<\/a>"
+ ],
+ "masters": [
+ "The Raptor",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Asgarnian_Ice_Dungeon\" title=\"Asgarnian Ice Dungeon\" target=\"_blank\">Asgarnian Ice Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Frozen_Waste_Plateau\" title=\"Frozen Waste Plateau\" target=\"_blank\">Frozen Waste Plateau<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Minotaur#Level 12",
+ "weakness": [],
+ "creatures": ["Minotaur"],
+ "hidden-creatures": [],
+ "index": "Minotaurs",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>"]
+ },
+ {
+ "default-creature": "Mithril dragon#Default",
+ "weakness": [],
+ "creatures": ["Mithril dragon"],
+ "hidden-creatures": [],
+ "index": "Mithril dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Ancient_Cavern\" title=\"Ancient Cavern\" target=\"_blank\">Ancient Cavern<\/a>"]
+ },
+ {
+ "default-creature": "Mogre#Default",
+ "weakness": [],
+ "creatures": ["Mogre"],
+ "hidden-creatures": [],
+ "index": "Mogres",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Super_fishing_explosive\" title=\"Super fishing explosive\" target=\"_blank\">Super<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fishing_explosive\" title=\"Fishing explosive\" target=\"_blank\">Fishing explosives<\/a>"
+ ],
+ "masters": ["Vannaka"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Mudskipper_Point\" title=\"Mudskipper Point\" target=\"_blank\">Mudskipper Point<\/a>"]
+ },
+ {
+ "default-creature": "Molanisk#Default",
+ "weakness": [],
+ "creatures": ["Molanisk"],
+ "hidden-creatures": [],
+ "index": "Molanisks",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Slayer_bell\" title=\"Slayer bell\" target=\"_blank\">Slayer bell<\/a>"],
+ "masters": ["Mazchna"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Dorgesh-Kaan_South_Dungeon\" title=\"Dorgesh-Kaan South Dungeon\" target=\"_blank\">Dorgesh-Kaan South Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Moss giant#Common (1)",
+ "weakness": [],
+ "creatures": ["Moss giant"],
+ "hidden-creatures": [],
+ "index": "Moss giants",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Vannaka",
+ "Mazchna"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Crandor_Isle\" class=\"mw-redirect\" title=\"Crandor Isle\" target=\"_blank\">Crandor Isle<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fishing_Guild\" title=\"Fishing Guild\" target=\"_blank\">Fishing Guild<\/a>",
+ "<a href=\"https://runescape.wiki/w/Moss_Giant_Island\" title=\"Moss Giant Island\" target=\"_blank\">Moss Giant Island<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>",
+ "<a href=\"https://runescape.wiki/w/Varrock_Sewers\" title=\"Varrock Sewers\" target=\"_blank\">Varrock Sewers<\/a>",
+ "<a href=\"https://runescape.wiki/w/Pirates%27_Cove\" title=\"Pirates' Cove\" target=\"_blank\">Pirates' Cove<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Glarial%27s_Tomb\" title=\"Glarial's Tomb\" target=\"_blank\">Glarial's Tomb<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Bladed muspah#Default",
+ "weakness": [],
+ "creatures": [
+ "Bladed muspah",
+ "Force muspah",
+ "Throwing muspah"
+ ],
+ "hidden-creatures": [],
+ "index": "Muspah",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Freneskae\" title=\"Freneskae\" target=\"_blank\">Freneskae<\/a>"]
+ },
+ {
+ "default-creature": "Mutated jadinko baby#Default",
+ "weakness": [],
+ "creatures": [
+ "Mutated jadinko baby",
+ "Mutated jadinko guard",
+ "Mutated jadinko male"
+ ],
+ "hidden-creatures": [],
+ "index": "Mutated jadinkos",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Jadinko_Lair\" title=\"Jadinko Lair\" target=\"_blank\">Jadinko Lair<\/a>"]
+ },
+ {
+ "default-creature": "Mutated zygomite#Level 58",
+ "weakness": [],
+ "creatures": ["Mutated zygomite"],
+ "hidden-creatures": [],
+ "index": "Mutated zygomites",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Fungicide_spray\" title=\"Fungicide spray\" target=\"_blank\">Fungicide spray<\/a>"],
+ "masters": ["Chaeldar"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Zanaris\" title=\"Zanaris\" target=\"_blank\">Zanaris<\/a>"]
+ },
+ {
+ "default-creature": "Nechryael#Default",
+ "weakness": [],
+ "creatures": [
+ "Nechryael",
+ "Nechryael (Heart of Gielinor)",
+ "Nechryael (elite)"
+ ],
+ "hidden-creatures": [
+ "Nechryael (Heart of Gielinor)",
+ "Nechryael (elite)"
+ ],
+ "index": "Nechryael",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Nightmare#Default",
+ "weakness": [],
+ "creatures": ["Nightmare"],
+ "hidden-creatures": [],
+ "index": "Nightmare creatures",
+ "alias": ["Nightmare"],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Slayer_master\" class=\"mw-redirect\" title=\"Slayer master\" target=\"_blank\">Slayer master<\/a>"],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Freneskae#The_Ritual_Site\" title=\"Freneskae\" target=\"_blank\">Freneskae (Ritual Site)<\/a>"]
+ },
+ {
+ "default-creature": "Blood nihil#normal",
+ "weakness": [],
+ "creatures": [
+ "Blood nihil",
+ "Ice nihil",
+ "Shadow nihil",
+ "Smoke nihil"
+ ],
+ "hidden-creatures": [],
+ "index": "Nihil",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Freneskae#The_Pit\" title=\"Freneskae\" target=\"_blank\">Freneskae (the Pit)<\/a>"]
+ },
+ {
+ "default-creature": "Nodon guard#Default",
+ "weakness": [],
+ "creatures": [
+ "Kerapac, the bound",
+ "Nodon artificer",
+ "Nodon enforcer",
+ "Nodon engineer",
+ "Nodon guard",
+ "Nodon hunter",
+ "Siege engine"
+ ],
+ "hidden-creatures": [],
+ "index": "Nodon dragonkin",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Nodon_Front\" title=\"Nodon Front\" target=\"_blank\">Nodon Front<\/a>"]
+ },
+ {
+ "default-creature": "Enclave guard#Default",
+ "weakness": [],
+ "creatures": [
+ "Enclave guard",
+ "Mogre",
+ "Ogre",
+ "Ogre chieftain",
+ "Ogress",
+ "Ogress champion",
+ "Ogress warrior",
+ "Skogre",
+ "Zogre"
+ ],
+ "hidden-creatures": ["Skogre"],
+ "index": "Ogres",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Yanille\" title=\"Yanille\" target=\"_blank\">Yanille<\/a>",
+ "<a href=\"https://runescape.wiki/w/Castle_Wars\" title=\"Castle Wars\" target=\"_blank\">Castle Wars<\/a>",
+ "<a href=\"https://runescape.wiki/w/Gu%27Tanoth\" title=\"Gu'Tanoth\" target=\"_blank\">Gu'Tanoth<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Druid_Tower\" title=\"Chaos Druid Tower\" target=\"_blank\">Chaos Druid Tower<\/a>",
+ "<a href=\"https://runescape.wiki/w/Clock_Tower_Dungeon\" title=\"Clock Tower Dungeon\" target=\"_blank\">Clock Tower Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Witchaven_Dungeon\" title=\"Witchaven Dungeon\" target=\"_blank\">Witchaven Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Underground_Pass_(dungeon)\" title=\"Underground Pass (dungeon)\" target=\"_blank\">Underground Pass (dungeon)<\/a>",
+ "<a href=\"https://runescape.wiki/w/Combat_Training_Camp\" title=\"Combat Training Camp\" target=\"_blank\">Combat Training Camp<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Onyx dragon#Default",
+ "weakness": [],
+ "creatures": ["Onyx dragon"],
+ "hidden-creatures": [],
+ "index": "Onyx dragons",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Super_anti-fire_potion\" class=\"mw-redirect\" title=\"Super anti-fire potion\" target=\"_blank\">Super anti-fire potion<\/a>"],
+ "masters": ["Mandrith"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Gemstone_cavern\" title=\"Gemstone cavern\" target=\"_blank\">Gemstone cavern<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>",
+ "<a href=\"https://runescape.wiki/w/Deep_Wilderness_Dungeon\" title=\"Deep Wilderness Dungeon\" target=\"_blank\">Deep Wilderness Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Otherworldly being#Default",
+ "weakness": [],
+ "creatures": ["Otherworldly being"],
+ "hidden-creatures": [],
+ "index": "Otherworldly beings",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Zanaris\" title=\"Zanaris\" target=\"_blank\">Zanaris<\/a>"]
+ },
+ {
+ "default-creature": "Pyrefiend#Level 38",
+ "weakness": [],
+ "creatures": [
+ "Pyrefiend",
+ "Pyrefiend (The Zamorakian Undercity)",
+ "Pyrefiend (summoned)",
+ "Revenant pyrefiend",
+ "Seething Pyrefiend",
+ "Smoulders",
+ "Smoulders, the Revenger"
+ ],
+ "hidden-creatures": [],
+ "index": "Pyrefiends",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Smoke_Dungeon\" title=\"Smoke Dungeon\" target=\"_blank\">Smoke Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Warped rat#Default",
+ "weakness": [],
+ "creatures": [
+ "Angry giant rat",
+ "Brine rat",
+ "Crypt rat",
+ "Dungeon rat",
+ "Giant crypt rat",
+ "Giant rat",
+ "Rat",
+ "Warped rat"
+ ],
+ "hidden-creatures": [],
+ "index": "Rats",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Jacquelyn"],
+ "locations": []
+ },
+ {
+ "default-creature": "Red dragon#1",
+ "weakness": [],
+ "creatures": [
+ "Baby red dragon",
+ "Red dragon",
+ "Red dragon (Dragonkin Laboratory)",
+ "Sangri the Red"
+ ],
+ "hidden-creatures": [
+ "Red dragon (Dragonkin Laboratory)",
+ "Sangri the Red"
+ ],
+ "index": "Red dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "Sumona",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Red_Dragon_Isle\" title=\"Red Dragon Isle\" target=\"_blank\">Red Dragon Isle<\/a>",
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Revenant cyclops#Default",
+ "weakness": [],
+ "creatures": [
+ "Revenant cyclops",
+ "Revenant dark beast",
+ "Revenant demon",
+ "Revenant dragon",
+ "Revenant goblin",
+ "Revenant hellhound",
+ "Revenant hobgoblin",
+ "Revenant icefiend",
+ "Revenant imp",
+ "Revenant knight",
+ "Revenant ork",
+ "Revenant pyrefiend",
+ "Revenant vampyre",
+ "Revenant werewolf"
+ ],
+ "hidden-creatures": [],
+ "index": "Revenants",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mandrith"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Forinthry_Dungeon\" title=\"Forinthry Dungeon\" target=\"_blank\">Forinthry Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Ripper Demon#Default",
+ "weakness": [],
+ "creatures": [
+ "Ripper Demon",
+ "Slasher Demon"
+ ],
+ "hidden-creatures": ["Slasher Demon"],
+ "index": "Ripper demons",
+ "alias": ["Ripper Demon"],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Ripper_Demon_cave\" title=\"Ripper Demon cave\" target=\"_blank\">Ripper Demon cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Risen ghost#Default",
+ "weakness": [],
+ "creatures": ["Risen ghost"],
+ "hidden-creatures": [],
+ "index": "Risen ghosts",
+ "alias": ["Risen ghost"],
+ "equipment": [],
+ "masters": ["The Raptor"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Crypt_(Wilderness)\" title=\"Crypt (Wilderness)\" target=\"_blank\">Crypt (Wilderness)<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fort_Forinthry\" title=\"Fort Forinthry\" target=\"_blank\">Fort Forinthry<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Rock slug#Default",
+ "weakness": [],
+ "creatures": ["Rock slug"],
+ "hidden-creatures": [],
+ "index": "Rockslugs",
+ "alias": ["Rock slugs"],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Bag_of_salt\" title=\"Bag of salt\" target=\"_blank\">Bag of salt<\/a>"],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Swamp_Caves\" title=\"Lumbridge Swamp Caves\" target=\"_blank\">Lumbridge Swamp Caves<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dorgesh-Kaan_South_Dungeon\" title=\"Dorgesh-Kaan South Dungeon\" target=\"_blank\">Dorgesh-Kaan South Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Rune dragon#Armoured",
+ "weakness": [],
+ "creatures": [
+ "Elite rune dragon",
+ "Rune dragon"
+ ],
+ "hidden-creatures": ["Elite rune dragon"],
+ "index": "Rune dragons",
+ "alias": ["Rune dragon"],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Super_antifire\" title=\"Super antifire\" target=\"_blank\">Super antifire<\/a>"],
+ "masters": [
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Mount_Firewake\" title=\"Mount Firewake\" target=\"_blank\">Mount Firewake<\/a>"]
+ },
+ {
+ "default-creature": "Scarab akh#Default",
+ "weakness": [],
+ "creatures": [
+ "Corrupted scarab",
+ "Locust lancer",
+ "Locust ranger",
+ "Locust rider",
+ "Scabaras lancer",
+ "Scabaras mage",
+ "Scabaras ranger",
+ "Scarab akh",
+ "Scarab mage",
+ "Small scarab"
+ ],
+ "hidden-creatures": [],
+ "index": "Scabarites",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Sumona",
+ "Duradel"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Sophanem\" title=\"Sophanem\" target=\"_blank\">Sophanem<\/a>",
+ "<a href=\"https://runescape.wiki/w/Agility_pyramid\" class=\"mw-redirect\" title=\"Agility pyramid\" target=\"_blank\">Agility pyramid<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dealing_with_Scabaras\" title=\"Dealing with Scabaras\" target=\"_blank\">Dealing with Scabaras<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Corrupted scorpion#Default",
+ "weakness": [],
+ "creatures": [
+ "Corrupted scorpion",
+ "Grave scorpion",
+ "King Scorpion",
+ "Pit Scorpion",
+ "Poison Scorpion",
+ "Scorpion",
+ "Scorpion (Ape Atoll)"
+ ],
+ "hidden-creatures": [
+ "Grave scorpion",
+ "King Scorpion",
+ "Pit Scorpion",
+ "Poison Scorpion",
+ "Scorpion (Ape Atoll)"
+ ],
+ "index": "Scorpions",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Vannaka",
+ "Sumona"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Al_Kharid_mining_site\" class=\"mw-redirect\" title=\"Al Kharid mining site\" target=\"_blank\">Al Kharid mining site<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dwarven_mines\" title=\"Dwarven mines\" target=\"_blank\">Dwarven mines<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ardougne_Zoo\" title=\"Ardougne Zoo\" target=\"_blank\">Ardougne Zoo<\/a>",
+ "<a href=\"https://runescape.wiki/w/Scorpion_Pit\" title=\"Scorpion Pit\" target=\"_blank\">Scorpion Pit<\/a>",
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Varrock_Sewers\" title=\"Varrock Sewers\" target=\"_blank\">Varrock Sewers<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>",
+ "<a href=\"https://runescape.wiki/w/Karamja_Volcano\" title=\"Karamja Volcano\" target=\"_blank\">Karamja Volcano<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Sea Snake Hatchling#Default",
+ "weakness": [],
+ "creatures": [
+ "Sea Snake Hatchling",
+ "Sea Snake Young"
+ ],
+ "hidden-creatures": [],
+ "index": "Sea snakes",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Miscellania_%26_Etceteria_Dungeon\" class=\"mw-redirect\" title=\"Miscellania & Etceteria Dungeon\" target=\"_blank\">Miscellania & Etceteria Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Shade#Default",
+ "weakness": [],
+ "creatures": ["Shade"],
+ "hidden-creatures": [],
+ "index": "Shades",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Mort%27ton\" title=\"Mort'ton\" target=\"_blank\">Mort'ton<\/a>",
+ "<a href=\"https://runescape.wiki/w/Shade_Catacombs\" title=\"Shade Catacombs\" target=\"_blank\">Shade Catacombs<\/a>",
+ "<a href=\"https://runescape.wiki/w/Temple_Trekking\" title=\"Temple Trekking\" target=\"_blank\">Temple Trekking<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Manifest shadow#Default",
+ "weakness": [],
+ "creatures": [
+ "Blissful shadow",
+ "Manifest shadow",
+ "Shadow (Temple of Light)",
+ "Truthful shadow"
+ ],
+ "hidden-creatures": [],
+ "index": "Shadow creatures",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Temple_of_Light\" title=\"Temple of Light\" target=\"_blank\">Temple of Light<\/a>",
+ "<a href=\"https://runescape.wiki/w/Prifddinas\" title=\"Prifddinas\" target=\"_blank\">Prifddinas<\/a>",
+ "<a href=\"https://runescape.wiki/w/Amlodd_Clan\" title=\"Amlodd Clan\" target=\"_blank\">Amlodd Clan<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Shadow warrior#Default",
+ "weakness": [],
+ "creatures": ["Shadow warrior"],
+ "hidden-creatures": [],
+ "index": "Shadow warriors",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Legends%27_Guild\" title=\"Legends' Guild\" target=\"_blank\">Legends' Guild<\/a>"]
+ },
+ {
+ "default-creature": "Skeletal Wyvern#1",
+ "weakness": [],
+ "creatures": ["Skeletal Wyvern"],
+ "hidden-creatures": [],
+ "index": "Skeletal wyverns",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Wyrmfire_potion\" title=\"Wyrmfire potion\" target=\"_blank\">Wyrmfire potion<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Elemental_Workshop_equipment\" title=\"Elemental Workshop equipment\" target=\"_blank\">Elemental Workshop shield<\/a>"
+ ],
+ "masters": [
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Asgarnian_Ice_Dungeon\" title=\"Asgarnian Ice Dungeon\" target=\"_blank\">Asgarnian Ice Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Skeleton (Lumbridge Catacombs)#Default",
+ "weakness": [],
+ "creatures": [
+ "Ankou",
+ "Ankou (elite)",
+ "Baby Dinosaur Skeleton",
+ "Bossy McBossFace's First mate",
+ "Bound skeleton",
+ "Giant skeleton (Shadow Dungeon)",
+ "Giant skeleton (Tarn's Lair)",
+ "Huge skeleton",
+ "Osseous",
+ "Skeletal Wyvern",
+ "Skeletal hand",
+ "Skeletal miner",
+ "Skeletal shielder",
+ "Skeleton",
+ "Skeleton (Ape Atoll)",
+ "Skeleton (Barrows)",
+ "Skeleton (Dark Warriors' Fortress)",
+ "Skeleton (Heart of Gielinor)",
+ "Skeleton (Lumbridge Catacombs)",
+ "Skeleton (Tarn's Lair)",
+ "Skeleton (Temple Trekking)",
+ "Skeleton (Ullek)",
+ "Skeleton (Uncharted Isles)",
+ "Skeleton Archer",
+ "Skeleton Mage",
+ "Skeleton archer (Ancient Awakening)",
+ "Skeleton brute",
+ "Skeleton fremennik",
+ "Skeleton heavy",
+ "Skeleton hero",
+ "Skeleton knight",
+ "Skeleton ranger (Ancient Awakening)",
+ "Skeleton thug",
+ "Skeleton warlord",
+ "Skeleton warrior (Ancient Awakening)",
+ "Skeleton warrior (Rasial)",
+ "Skoblin",
+ "Skogre",
+ "Summoned skeleton",
+ "Summoned skeleton archer",
+ "Training dummy",
+ "Undead one",
+ "Warped skeleton"
+ ],
+ "hidden-creatures": [
+ "Skeletal miner",
+ "Skeleton (Tarn's Lair)",
+ "Skeleton (Temple Trekking)",
+ "Skeleton fremennik",
+ "Undead one"
+ ],
+ "index": "Skeletons",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Jacquelyn",
+ "Vannaka",
+ "The Raptor"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Catacombs\" title=\"Lumbridge Catacombs\" target=\"_blank\">Lumbridge Catacombs<\/a>",
+ "<a href=\"https://runescape.wiki/w/Edgeville_Dungeon\" title=\"Edgeville Dungeon\" target=\"_blank\">Edgeville Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Digsite_Dungeon\" class=\"mw-redirect\" title=\"Digsite Dungeon\" target=\"_blank\">Digsite Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Draynor_Sewers\" title=\"Draynor Sewers\" target=\"_blank\">Draynor Sewers<\/a>",
+ "<a href=\"https://runescape.wiki/w/Karamja_Volcano\" title=\"Karamja Volcano\" target=\"_blank\">Karamja Volcano<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ogre_Enclave\" title=\"Ogre Enclave\" target=\"_blank\">Ogre Enclave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Steel_Mine\" class=\"mw-redirect\" title=\"Steel Mine\" target=\"_blank\">Steel Mine<\/a>",
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Taverley_Dungeon\" title=\"Taverley Dungeon\" target=\"_blank\">Taverley Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Temple_of_Ikov_(dungeon)\" title=\"Temple of Ikov (dungeon)\" target=\"_blank\">Temple of Ikov<\/a>",
+ "<a href=\"https://runescape.wiki/w/Varrock_Sewers\" title=\"Varrock Sewers\" target=\"_blank\">Varrock Sewers<\/a>",
+ "<a href=\"https://runescape.wiki/w/Waterfall_Dungeon\" title=\"Waterfall Dungeon\" target=\"_blank\">Waterfall Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Barrows\" title=\"Barrows\" target=\"_blank\">Barrows<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ruins_of_Ullek\" class=\"mw-redirect\" title=\"Ruins of Ullek\" target=\"_blank\">Ruins of Ullek<\/a>",
+ "<a href=\"https://runescape.wiki/w/Melzar%27s_Maze\" title=\"Melzar's Maze\" target=\"_blank\">Melzar's Maze<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness_Crater\" title=\"Wilderness Crater\" target=\"_blank\">Wilderness Crater<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ape_Atoll_Dungeon\" title=\"Ape Atoll Dungeon\" target=\"_blank\">Ape Atoll Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Senntisten_Temple\" title=\"Senntisten Temple\" target=\"_blank\">Senntisten Temple<\/a>",
+ "<a href=\"https://runescape.wiki/w/Underground_Pass_(dungeon)\" title=\"Underground Pass (dungeon)\" target=\"_blank\">Underground Pass (dungeon)<\/a>",
+ "<a href=\"https://runescape.wiki/w/Crypt_(Wilderness)\" title=\"Crypt (Wilderness)\" target=\"_blank\">crypt<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fort_Forinthry\" title=\"Fort Forinthry\" target=\"_blank\">Fort Forinthry<\/a>"
+ ]
+ },
+ {
+ "default-creature": "The Magister#Default",
+ "weakness": [],
+ "creatures": [
+ "Crocodile akh",
+ "Feline akh",
+ "Gorilla akh",
+ "Imperial mage akh",
+ "Imperial ranger akh",
+ "Imperial warrior akh",
+ "Oreb, the Magister",
+ "Salawa akh",
+ "Scarab akh",
+ "The Magister"
+ ],
+ "hidden-creatures": ["Oreb, the Magister"],
+ "index": "Soul devourers",
+ "alias": [
+ "Crocodile akh",
+ "Feline akh",
+ "Gorilla akh",
+ "Imperial guard akh",
+ "Salawa akh",
+ "Scarab akh",
+ "Soul devourer"
+ ],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Feather_of_Ma%27at\" title=\"Feather of Ma'at\" target=\"_blank\">Feather of Ma'at<\/a>"],
+ "masters": [
+ "Sumona",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Sophanem_Slayer_Dungeon\" title=\"Sophanem Slayer Dungeon\" target=\"_blank\">Sophanem Slayer Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Soulgazer#Default",
+ "weakness": [],
+ "creatures": [
+ "Soulgazer",
+ "Soulgazer (elite)"
+ ],
+ "hidden-creatures": ["Soulgazer (elite)"],
+ "index": "Soulgazers",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mandrith"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Stalker_Dungeon\" class=\"mw-redirect\" title=\"Stalker Dungeon\" target=\"_blank\">Stalker Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Deadly red spider#Default",
+ "weakness": [],
+ "creatures": [
+ "Corpse spider",
+ "Crypt spider",
+ "Deadly red spider",
+ "Fever spider",
+ "Giant crypt spider",
+ "Giant spider",
+ "Ice spider",
+ "Jungle spider",
+ "Lava spider",
+ "Poison spider",
+ "Shadow spider",
+ "Spider",
+ "Spyndra"
+ ],
+ "hidden-creatures": [],
+ "index": "Spiders",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Jacquelyn",
+ "Vannaka"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Melzar%27s_Maze\" title=\"Melzar's Maze\" target=\"_blank\">Melzar's Maze<\/a>",
+ "<a href=\"https://runescape.wiki/w/Sorceress\" title=\"Sorceress\" target=\"_blank\">Sorceress<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Castle\" title=\"Lumbridge Castle\" target=\"_blank\">Lumbridge Castle<\/a>",
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ape_Atoll\" title=\"Ape Atoll\" target=\"_blank\">Ape Atoll<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ogre_Enclave\" title=\"Ogre Enclave\" target=\"_blank\">Ogre Enclave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>",
+ "<a href=\"https://runescape.wiki/w/Karamja\" title=\"Karamja\" target=\"_blank\">Karamja<\/a>",
+ "<a href=\"https://runescape.wiki/w/Underground_Pass_(dungeon)\" title=\"Underground Pass (dungeon)\" target=\"_blank\">Underground Pass<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Spiritual mage#Armadyl",
+ "weakness": [],
+ "creatures": ["Spiritual mage"],
+ "hidden-creatures": [],
+ "index": "Spiritual mages",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Spiritual warrior#Armadyl",
+ "weakness": [],
+ "creatures": ["Spiritual warrior"],
+ "hidden-creatures": [],
+ "index": "Spiritual warriors",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Sumona"],
+ "locations": ["<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Veil-ripper Ozharakha#Default",
+ "weakness": [],
+ "creatures": [
+ "Seeker",
+ "Soulgazer",
+ "Soulgazer (elite)",
+ "Veil-ripper Ozharakha"
+ ],
+ "hidden-creatures": ["Soulgazer (elite)"],
+ "index": "Stalker creatures",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Stalker_dungeon\" title=\"Stalker dungeon\" target=\"_blank\">Stalker dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Steel dragon#Default",
+ "weakness": [],
+ "creatures": ["Steel dragon"],
+ "hidden-creatures": [],
+ "index": "Steel dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghorrock\" title=\"Ghorrock\" target=\"_blank\">Ghorrock<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Desert strykewyrm#Default",
+ "weakness": [],
+ "creatures": [
+ "Desert strykewyrm",
+ "Ice strykewyrm",
+ "Jungle strykewyrm",
+ "Lava strykewyrm",
+ "Lava strykewyrm (Dragonkin Laboratory)",
+ "WildyWyrm (2015, historical)"
+ ],
+ "hidden-creatures": ["WildyWyrm (2015, historical)"],
+ "index": "Strykewyrms",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Laniakea"],
+ "locations": []
+ },
+ {
+ "default-creature": "Suqah#Level 73 (Dual wielding swords)",
+ "weakness": [],
+ "creatures": ["Suqah"],
+ "hidden-creatures": [],
+ "index": "Suqahs",
+ "alias": ["Suqah"],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Seal_of_passage\" title=\"Seal of passage\" target=\"_blank\">Seal of passage<\/a>",
+ "<a href=\"https://runescape.wiki/w/Moon_Clan\" title=\"Moon Clan\" target=\"_blank\">Moon Clan<\/a>"
+ ],
+ "masters": [
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Lunar_Isle\" title=\"Lunar Isle\" target=\"_blank\">Lunar Isle<\/a>"]
+ },
+ {
+ "default-creature": "Terror dog#Level 61",
+ "weakness": [],
+ "creatures": ["Terror dog"],
+ "hidden-creatures": [],
+ "index": "Terror dogs",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Sumona",
+ "Kuradal"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Tarn%27s_Lair\" class=\"mw-redirect\" title=\"Tarn's Lair\" target=\"_blank\">Tarn's Lair<\/a>"]
+ },
+ {
+ "default-creature": "Tormented demon#Standard",
+ "weakness": [],
+ "creatures": ["Tormented demon"],
+ "hidden-creatures": [],
+ "index": "Tormented demons",
+ "alias": ["Tormented demon"],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Slayer_master\" class=\"mw-redirect\" title=\"Slayer master\" target=\"_blank\">Slayer master<\/a>"],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Ancient_Guthix_Temple\" class=\"mw-redirect\" title=\"Ancient Guthix Temple\" target=\"_blank\">Ancient Guthix Temple<\/a>"]
+ },
+ {
+ "default-creature": "Ice troll runt#Default",
+ "weakness": [],
+ "creatures": [
+ "Ghostly troll bruiser",
+ "Ghostly troll thrower",
+ "Ice troll",
+ "Ice troll female",
+ "Ice troll grunt",
+ "Ice troll male",
+ "Ice troll runt",
+ "Kraka",
+ "Mountain troll",
+ "Mountain troll (well)",
+ "Pee Hat",
+ "River troll",
+ "Rock (monster)",
+ "Stick",
+ "Stove",
+ "Thrower Troll",
+ "Troll brute",
+ "Troll brute (Davendale)",
+ "Troll chucker",
+ "Troll chucker (Davendale)",
+ "Troll general",
+ "Troll lout",
+ "Troll shaman",
+ "Troll shaman (Davendale)",
+ "Troll spectator",
+ "Undead troll"
+ ],
+ "hidden-creatures": [
+ "Mountain troll (well)",
+ "Stove",
+ "Troll brute (Davendale)"
+ ],
+ "index": "Trolls",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Turael",
+ "Chaeldar",
+ "Sumona"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Mountain_troll\" title=\"Mountain troll\" target=\"_blank\">Mountain trolls<\/a>",
+ "<a href=\"https://runescape.wiki/w/Trollheim\" title=\"Trollheim\" target=\"_blank\">Trollheim<\/a>",
+ "<a href=\"https://runescape.wiki/w/Keldagrim\" title=\"Keldagrim\" target=\"_blank\">Keldagrim<\/a>",
+ "<a href=\"https://runescape.wiki/w/Death_Plateau\" title=\"Death Plateau\" target=\"_blank\">Death Plateau<\/a>",
+ "<a href=\"https://runescape.wiki/w/Burthorpe_Troll_Cave\" title=\"Burthorpe Troll Cave\" target=\"_blank\">Burthorpe Troll Cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Troll_cave\" title=\"Troll cave\" target=\"_blank\">Troll cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ice_troll\" title=\"Ice troll\" target=\"_blank\">Ice trolls<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fremennik_Isles\" title=\"Fremennik Isles\" target=\"_blank\">Fremennik Isles<\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_troll\" title=\"Undead troll\" target=\"_blank\">Undead trolls<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lucien%27s_camp\" title=\"Lucien's camp\" target=\"_blank\">Lucien's camp<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Turoth#60 - Large",
+ "weakness": [],
+ "creatures": ["Turoth"],
+ "hidden-creatures": [],
+ "index": "Turoth",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Leaf-bladed_sword\" title=\"Leaf-bladed sword\" target=\"_blank\">Leaf-bladed sword<\/a>",
+ "<a href=\"https://runescape.wiki/w/Leaf-bladed_spear\" title=\"Leaf-bladed spear\" target=\"_blank\">Leaf-bladed spear<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_Dart\" title=\"Slayer Dart\" target=\"_blank\">Slayer Dart<\/a>",
+ "<a href=\"https://runescape.wiki/w/Broad_arrows\" class=\"mw-redirect\" title=\"Broad arrows\" target=\"_blank\">Broad arrows<\/a>",
+ "<a href=\"https://runescape.wiki/w/Broad-tipped_bolts\" title=\"Broad-tipped bolts\" target=\"_blank\">Broad-tipped bolts<\/a>"
+ ],
+ "masters": [
+ "Mazchna",
+ "Chaeldar",
+ "Sumona"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Pollnivneach_Slayer_Dungeon\" title=\"Pollnivneach Slayer Dungeon\" target=\"_blank\">Pollnivneach Slayer Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "TzHaar-Hur#Level 86",
+ "weakness": [],
+ "creatures": [
+ "TzHaar-Hur",
+ "TzHaar-Ket",
+ "TzHaar-Mej",
+ "TzHaar-Xil"
+ ],
+ "hidden-creatures": [],
+ "index": "TzHaar",
+ "alias": ["Volcanic creatures"],
+ "equipment": [],
+ "masters": [
+ "Kuradal",
+ "Morvran"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/TzHaar_city\" class=\"mw-redirect\" title=\"TzHaar city\" target=\"_blank\">TzHaar city<\/a>"]
+ },
+ {
+ "default-creature": "Ghost#1",
+ "weakness": [],
+ "creatures": [
+ "Aberrant spectre",
+ "Ahrim the Blighted",
+ "Akrisae the Doomed",
+ "Animated spade",
+ "Ankou",
+ "Ankou (elite)",
+ "Armoured phantom",
+ "Armoured zombie",
+ "Banshee",
+ "Bloated monstrosity",
+ "Bound skeleton",
+ "Corpse archer",
+ "Corpse carrier",
+ "Corpse mage",
+ "Corpse spider",
+ "Crawling corpse torso",
+ "Crawling hand",
+ "Dharok the Wretched",
+ "Dragith Nurn",
+ "Edimmu",
+ "Edimmu (elite)",
+ "Fetid zombie",
+ "General malpractitioner",
+ "Ghast",
+ "Ghost",
+ "Ghost (Abandoned Mine)",
+ "Ghost (Ourania Runecrafting Altar)",
+ "Ghost (Shattered Worlds)",
+ "Ghost (Spirit of Summer)",
+ "Ghost (Stronghold of Security)",
+ "Ghostly troll bruiser",
+ "Ghostly troll thrower",
+ "Graveside Phantom",
+ "Guthan the Infested",
+ "Karil the Tainted",
+ "Linza the Disgraced",
+ "Magic axe",
+ "Masuta the Descended",
+ "Mighty banshee",
+ "Monkey Zombie",
+ "Mummy (Jaldraocht Pyramid)",
+ "Mummy (Ullek)",
+ "Osseous",
+ "Phantom sorcerer",
+ "Phantom wizard",
+ "Possessed pickaxe",
+ "Possessed pickaxe (Lava Flow Mine)",
+ "Putrid zombie (Rasial)",
+ "Revenant cyclops",
+ "Revenant dark beast",
+ "Revenant demon",
+ "Revenant dragon",
+ "Revenant goblin",
+ "Revenant hellhound",
+ "Revenant hobgoblin",
+ "Revenant icefiend",
+ "Revenant imp",
+ "Revenant knight",
+ "Revenant ork",
+ "Revenant pyrefiend",
+ "Revenant vampyre",
+ "Revenant werewolf",
+ "Risen ghost",
+ "Shade",
+ "Shadow warrior",
+ "Skeletal Wyvern",
+ "Skeletal hand",
+ "Skeletal miner",
+ "Skeleton",
+ "Skeleton (Lumbridge Catacombs)",
+ "Skeleton (Tarn's Lair)",
+ "Skeleton Mage",
+ "Skeleton archer (Ancient Awakening)",
+ "Skeleton knight",
+ "Skeleton ranger (Ancient Awakening)",
+ "Skeleton warrior (Ancient Awakening)",
+ "Skeleton warrior (Rasial)",
+ "Skoblin",
+ "Skogre",
+ "Small scarab",
+ "Soulless armoured zombie",
+ "Soulless unarmoured zombie",
+ "Spiritual mage",
+ "Spiritual ranger",
+ "Spiritual warrior",
+ "Taraket the Necromancer",
+ "Torag the Corrupted",
+ "Tormented wraith",
+ "Training dummy",
+ "Undead chicken",
+ "Undead cow",
+ "Undead giant (Battle of Forinthry)",
+ "Undead one",
+ "Undead pekin",
+ "Undead troll",
+ "Unstable zombie",
+ "Verac the Defiled",
+ "Vorkath",
+ "Wight",
+ "Wight ranger",
+ "Wight ranger (Sliske's Endgame)",
+ "Zogre",
+ "Zombie",
+ "Zombie (New Varrock)",
+ "Zombie cow (New Varrock)",
+ "Zombie hand",
+ "Zombie knight",
+ "Zombie pirate",
+ "Zombie swab",
+ "Zombie warrior"
+ ],
+ "hidden-creatures": [
+ "Wight",
+ "Wight ranger",
+ "Wight ranger (Sliske's Endgame)"
+ ],
+ "index": "Undead",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Laniakea"
+ ],
+ "locations": []
+ },
+ {
+ "default-creature": "Vampyre#Default",
+ "weakness": [],
+ "creatures": [
+ "Angry vampyre",
+ "Feral vampyre",
+ "Revenant vampyre",
+ "Vampyre",
+ "Vampyre Juvenile",
+ "Vampyre Juvinate"
+ ],
+ "hidden-creatures": ["Feral vampyre"],
+ "index": "Vampyres",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Haunted_Woods\" title=\"Haunted Woods\" target=\"_blank\">Haunted Woods<\/a>",
+ "<a href=\"https://runescape.wiki/w/Abandoned_Mine\" title=\"Abandoned Mine\" target=\"_blank\">Abandoned Mine<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Liverworts#Default",
+ "weakness": [],
+ "creatures": [
+ "Devil's snare",
+ "Lampenflora",
+ "Liverworts",
+ "Luminous snaggler"
+ ],
+ "hidden-creatures": [],
+ "index": "Vile blooms",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Laniakea"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Anachronia\" title=\"Anachronia\" target=\"_blank\">Anachronia<\/a>"]
+ },
+ {
+ "default-creature": "Vyrewatch#Level 70",
+ "weakness": [],
+ "creatures": [
+ "Vyrelady",
+ "Vyrelord",
+ "Vyrewatch"
+ ],
+ "hidden-creatures": [],
+ "index": "Vyrewatch",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Ivandis_flail\" title=\"Ivandis flail\" target=\"_blank\">Ivandis flail<\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood_polearm\" title=\"Blisterwood polearm\" target=\"_blank\">Blisterwood polearm<\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood_staff\" title=\"Blisterwood staff\" target=\"_blank\">Blisterwood staff<\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood_stake\" title=\"Blisterwood stake\" target=\"_blank\">Blisterwood stake<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Darkmeyer\" title=\"Darkmeyer\" target=\"_blank\">Darkmeyer<\/a>",
+ "<a href=\"https://runescape.wiki/w/Burgh_de_Rott_Woods\" title=\"Burgh de Rott Woods\" target=\"_blank\">Burgh de Rott Woods<\/a>",
+ "<a href=\"https://runescape.wiki/w/Meiyerditch\" title=\"Meiyerditch\" target=\"_blank\">Meiyerditch<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Wall beast#Default",
+ "weakness": [],
+ "creatures": ["Wall beast"],
+ "hidden-creatures": [],
+ "index": "Wall beasts",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Spiny_helmet\" title=\"Spiny helmet\" target=\"_blank\">Spiny helmet<\/a>",
+ "<a href=\"https://runescape.wiki/w/Spiked_helmet\" title=\"Spiked helmet\" target=\"_blank\">Spiked helmet<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_helmet\" title=\"Slayer helmet\" target=\"_blank\">Slayer helmet<\/a>"
+ ],
+ "masters": ["Vannaka"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Lumbridge_Swamp_Caves\" title=\"Lumbridge Swamp Caves\" target=\"_blank\">Lumbridge Swamp Caves<\/a>"]
+ },
+ {
+ "default-creature": "Warped terrorbird#1",
+ "weakness": [],
+ "creatures": ["Warped terrorbird"],
+ "hidden-creatures": [],
+ "index": "Warped terrorbirds",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Crystal_chime\" title=\"Crystal chime\" target=\"_blank\">Crystal chime<\/a>"],
+ "masters": ["Duradel"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Poison_Waste_Slayer_Dungeon\" title=\"Poison Waste Slayer Dungeon\" target=\"_blank\">Poison Waste Slayer Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Warped tortoise#Vulnerable",
+ "weakness": [],
+ "creatures": ["Warped tortoise"],
+ "hidden-creatures": [],
+ "index": "Warped tortoises",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Crystal_chime\" title=\"Crystal chime\" target=\"_blank\">Crystal chime<\/a>"],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Kuradal"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Poison_Waste_Slayer_Dungeon\" title=\"Poison Waste Slayer Dungeon\" target=\"_blank\">Poison Waste Slayer Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Waterfiend#Default",
+ "weakness": [],
+ "creatures": [
+ "Maelstrom, Raging Waterfiend",
+ "Torrential Waterfiend",
+ "Torrential Waterfiend (summoned)",
+ "Waterfiend",
+ "Waterfiend (Ghorrock)",
+ "Waterfiend (Temple of Aminishi)",
+ "Waterfiend (The Zamorakian Undercity)",
+ "Waterfiend (elite)",
+ "Waterfiend (summoned)"
+ ],
+ "hidden-creatures": [
+ "Waterfiend (Ghorrock)",
+ "Waterfiend (Temple of Aminishi)",
+ "Waterfiend (elite)"
+ ],
+ "index": "Waterfiends",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Ancient_Cavern\" title=\"Ancient Cavern\" target=\"_blank\">Ancient Cavern<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghorrock\" title=\"Ghorrock\" target=\"_blank\">Ghorrock<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Werewolf#Alexis",
+ "weakness": [],
+ "creatures": ["Werewolf"],
+ "hidden-creatures": [],
+ "index": "Werewolves",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Canifis\" title=\"Canifis\" target=\"_blank\">Canifis<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Adolescent White wolf#Default",
+ "weakness": [],
+ "creatures": [
+ "Adolescent White wolf",
+ "Big Wolf",
+ "Desert wolf",
+ "Dire Wolf",
+ "Fenris wolf",
+ "Fenris wolf (Sköll)",
+ "Ice wolf",
+ "Jungle Wolf",
+ "White wolf",
+ "Wolf"
+ ],
+ "hidden-creatures": [
+ "Fenris wolf",
+ "Fenris wolf (Sköll)"
+ ],
+ "index": "Wolves",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Turael",
+ "Vannaka"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/White_Wolf_Mountain\" title=\"White Wolf Mountain\" target=\"_blank\">White Wolf Mountain<\/a>",
+ "<a href=\"https://runescape.wiki/w/Feldip_Hills\" title=\"Feldip Hills\" target=\"_blank\">Feldip Hills<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Armoured phantom#1",
+ "weakness": [],
+ "creatures": [
+ "Armoured phantom",
+ "Bound skeleton",
+ "Fetid zombie",
+ "Risen ghost"
+ ],
+ "hidden-creatures": [],
+ "index": "Zemouregal's undead",
+ "alias": [],
+ "equipment": [],
+ "masters": ["The Raptor"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Crypt_(Wilderness)\" title=\"Crypt (Wilderness)\" target=\"_blank\">Crypt<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fort_Forinthry\" title=\"Fort Forinthry\" target=\"_blank\">Fort Forinthry<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Zombie#Level 29",
+ "weakness": [],
+ "creatures": [
+ "Armoured zombie",
+ "Armoured zombie (The Shadow Reef)",
+ "Armoured zombie (Uncharted Isles)",
+ "Bloated monstrosity",
+ "Bossy McBossFace",
+ "Corpse archer",
+ "Corpse carrier",
+ "Corpse mage",
+ "Corpse spider",
+ "Crawling corpse torso",
+ "Crawling hand",
+ "Dragith Nurn",
+ "Dried zombie",
+ "Edimmu",
+ "Edimmu (elite)",
+ "Empowering zombie",
+ "Fetid zombie",
+ "General malpractitioner",
+ "Monkey Zombie",
+ "Mummy (Jaldraocht Pyramid)",
+ "Mummy (Ullek)",
+ "Putrid zombie (Rasial)",
+ "Small scarab",
+ "Soulless armoured zombie",
+ "Soulless unarmoured zombie",
+ "Summoned Zombie",
+ "Summoned Zombie (The Shadow Reef)",
+ "Summoned armoured zombie",
+ "Ulthven Keith",
+ "Undead Witch",
+ "Undead chicken",
+ "Undead cow",
+ "Undead giant (Battle of Forinthry)",
+ "Undead one",
+ "Undead pekin",
+ "Undead troll",
+ "Unstable zombie",
+ "Zogre",
+ "Zombie",
+ "Zombie (Lair of Tarn Razorlor)",
+ "Zombie (New Varrock)",
+ "Zombie (Stronghold of Security)",
+ "Zombie (Temple Trekking)",
+ "Zombie (The Shadow Reef)",
+ "Zombie (Uncharted Isles)",
+ "Zombie (Wilderness)",
+ "Zombie (Zogre Flesh Eaters)",
+ "Zombie cow (New Varrock)",
+ "Zombie hand",
+ "Zombie knight",
+ "Zombie pirate",
+ "Zombie swab",
+ "Zombie warrior"
+ ],
+ "hidden-creatures": [
+ "Zombie (Zogre Flesh Eaters)",
+ "Zombie cow (New Varrock)"
+ ],
+ "index": "Zombies",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Jacquelyn",
+ "Vannaka",
+ "The Raptor"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Gnome_Village_Dungeon\" title=\"Gnome Village Dungeon\" target=\"_blank\">Gnome Village Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Entrana_Dungeon\" title=\"Entrana Dungeon\" target=\"_blank\">Entrana Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Edgeville_Dungeon\" title=\"Edgeville Dungeon\" target=\"_blank\">Edgeville Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Graveyard_of_Shadows\" title=\"Graveyard of Shadows\" target=\"_blank\">Graveyard of Shadows<\/a>",
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Varrock_Sewers\" title=\"Varrock Sewers\" target=\"_blank\">Varrock Sewers<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wizards%27_Guild\" title=\"Wizards' Guild\" target=\"_blank\">Wizards' Guild<\/a>",
+ "<a href=\"https://runescape.wiki/w/Draynor_Sewers\" title=\"Draynor Sewers\" target=\"_blank\">Draynor Sewers<\/a>",
+ "<a href=\"https://runescape.wiki/w/Tarn%27s_Lair\" class=\"mw-redirect\" title=\"Tarn's Lair\" target=\"_blank\">lair of Tarn Razorlor<\/a>"
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "name": "Aberrant spectre",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Aberrant spectre#Pollnivneach Slayer Dungeon.png\" decoding=\"async\" loading=\"lazy\" width=\"157\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "60",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Pollnivneach Slayer Dungeon",
+ "slayer-exp": 123.19999694824219,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "224",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Aberrant spectre#Slayer Tower.png\" decoding=\"async\" loading=\"lazy\" width=\"157\" height=\"300\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "60",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Slayer Tower",
+ "slayer-exp": 109.4000015258789,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "208",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Abyssal beast",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Abyssal beast#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"168\" id=\"image-?\">",
+ "level": "119",
+ "defence": "85",
+ "slayer-level": "105",
+ "experience": 1950,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Abyssal_bane_equipment\" title=\"Abyssal bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Abyssal_head.png\" decoding=\"async\" loading=\"lazy\" width=\"22\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 643.5,
+ "max-melee": "1415",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "1415",
+ "name": "Default",
+ "slayer-exp": 1448.4000244140625,
+ "lifepoints": "39000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Abyssal demon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Abyssal demon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"257\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "85",
+ "experience": 425,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Abyssal_bane_equipment\" title=\"Abyssal bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Abyssal_head.png\" decoding=\"async\" loading=\"lazy\" width=\"22\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 140.1999969482422,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 278,
+ "lifepoints": "8500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Abyssal demon (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Abyssal demon (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"254\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "70",
+ "slayer-level": "85",
+ "experience": 1700,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Abyssal_bane_equipment\" title=\"Abyssal bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Abyssal_head.png\" decoding=\"async\" loading=\"lazy\" width=\"22\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 561,
+ "max-melee": "2016",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1069,
+ "lifepoints": "34000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Abyssal lord",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Abyssal lord#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"226\" id=\"image-?\">",
+ "level": "133",
+ "defence": "95",
+ "slayer-level": "115",
+ "experience": 3700,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Abyssal_bane_equipment\" title=\"Abyssal bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Abyssal_head.png\" decoding=\"async\" loading=\"lazy\" width=\"22\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1221,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "816",
+ "name": "Default",
+ "slayer-exp": 8235,
+ "lifepoints": "74000",
+ "max-ranged": "0",
+ "max-magic": "1163",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Abyssal savage",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Abyssal savage#Asylum.png\" decoding=\"async\" loading=\"lazy\" width=\"176\" height=\"300\" id=\"image-?\">",
+ "level": "111",
+ "defence": "75",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Abyssal_bane_equipment\" title=\"Abyssal bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Abyssal_head.png\" decoding=\"async\" loading=\"lazy\" width=\"22\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Asylum",
+ "slayer-exp": 423.20001220703125,
+ "lifepoints": "15000",
+ "max-ranged": "0",
+ "max-magic": "816",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Abyssal savage#Wilderness.png\" decoding=\"async\" loading=\"lazy\" width=\"176\" height=\"300\" id=\"image-?\">",
+ "level": "111",
+ "defence": "75",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Abyssal_bane_equipment\" title=\"Abyssal bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Abyssal_head.png\" decoding=\"async\" loading=\"lazy\" width=\"22\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Wilderness",
+ "slayer-exp": 423.20001220703125,
+ "lifepoints": "15000",
+ "max-ranged": "0",
+ "max-magic": "816",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Acheron mammoth",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Acheron mammoth#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "135",
+ "defence": "95",
+ "slayer-level": "96",
+ "experience": 2531.199951171875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 835.2000122070312,
+ "max-melee": "1819",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "8000",
+ "name": "Default",
+ "slayer-exp": 3628.800048828125,
+ "lifepoints": "50625",
+ "max-ranged": "4412",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Adamant dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Adamant dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"179\" id=\"image-?\">",
+ "level": "116",
+ "defence": "87",
+ "slayer-level": "1",
+ "experience": 1640.5999755859375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 541.2999877929688,
+ "max-melee": "1120",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1300",
+ "name": "Default",
+ "slayer-exp": 655.5999755859375,
+ "lifepoints": "32812",
+ "max-ranged": "1120",
+ "max-magic": "1120",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Airut",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Airut#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"282\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "90",
+ "slayer-level": "92",
+ "experience": 843.7000122070312,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 278.3999938964844,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1600",
+ "name": "Melee",
+ "slayer-exp": 800.2000122070312,
+ "lifepoints": "16875",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Airut#Ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"238\" id=\"image-?\">",
+ "level": "122",
+ "defence": "90",
+ "slayer-level": "92",
+ "experience": 843.7000122070312,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 278.3999938964844,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1600",
+ "name": "Ranged",
+ "slayer-exp": 800.2000122070312,
+ "lifepoints": "16875",
+ "max-ranged": "816",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ankou",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ankou#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"105\" height=\"300\" id=\"image-?\">",
+ "level": "54",
+ "defence": "38",
+ "slayer-level": "1",
+ "experience": 307.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 101.4000015258789,
+ "max-melee": "800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 98,
+ "lifepoints": "6150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ankou (Kili's Knowledge IV)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ankou (Kili's Knowledge IV)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"105\" height=\"300\" id=\"image-?\">",
+ "level": "72",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "624",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 313.6000061035156,
+ "lifepoints": "31000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ankou (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ankou (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"105\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 1177.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 388.5,
+ "max-melee": "1100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 314,
+ "lifepoints": "23550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Aquanite",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Aquanite#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"243\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "78",
+ "experience": 350,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 115.5,
+ "max-melee": "652",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "652",
+ "name": "Default",
+ "slayer-exp": 212.60000610351562,
+ "lifepoints": "7000",
+ "max-ranged": "652",
+ "max-magic": "652",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Aquanite (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Aquanite (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"243\" height=\"300\" id=\"image-?\">",
+ "level": "104",
+ "defence": "68",
+ "slayer-level": "78",
+ "experience": 1400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 462,
+ "max-melee": "1958",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1958",
+ "name": "Default",
+ "slayer-exp": 968,
+ "lifepoints": "28000",
+ "max-ranged": "1958",
+ "max-magic": "1958",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Armoured phantom",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Armoured phantom#1.png\" decoding=\"async\" loading=\"lazy\" width=\"204\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "87",
+ "slayer-level": "113",
+ "experience": 2625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 866.2000122070312,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "7000",
+ "name": "1",
+ "slayer-exp": 2500,
+ "lifepoints": "52500",
+ "max-ranged": "1745",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured phantom#2.png\" decoding=\"async\" loading=\"lazy\" width=\"131\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "87",
+ "slayer-level": "113",
+ "experience": 2625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 866.2000122070312,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "7000",
+ "name": "2",
+ "slayer-exp": 2500,
+ "lifepoints": "52500",
+ "max-ranged": "1745",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured phantom#3.png\" decoding=\"async\" loading=\"lazy\" width=\"180\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "87",
+ "slayer-level": "113",
+ "experience": 2625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 866.2000122070312,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "7000",
+ "name": "3",
+ "slayer-exp": 2500,
+ "lifepoints": "52500",
+ "max-ranged": "1745",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Capsarius",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Capsarius#1.png\" decoding=\"async\" loading=\"lazy\" width=\"107\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "81",
+ "experience": 187.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 61.79999923706055,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 146.60000610351562,
+ "lifepoints": "3750",
+ "max-ranged": "0",
+ "max-magic": "168",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Capsarius#2.png\" decoding=\"async\" loading=\"lazy\" width=\"108\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "81",
+ "experience": 187.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 61.79999923706055,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 146.60000610351562,
+ "lifepoints": "3750",
+ "max-ranged": "0",
+ "max-magic": "168",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Gladius",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Gladius#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "81",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 220.1999969482422,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "624",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Legio Primus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Legio Primus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"155\" height=\"300\" id=\"image-?\">",
+ "level": "304",
+ "defence": "85",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3300",
+ "name": "Default",
+ "slayer-exp": 1938.800048828125,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1102",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Legio Quartus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Legio Quartus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"166\" height=\"300\" id=\"image-?\">",
+ "level": "304",
+ "defence": "85",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1829.199951171875,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1102",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Legio Quintus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Legio Quintus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "304",
+ "defence": "85",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1829.199951171875,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1102",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Legio Secundus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Legio Secundus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"161\" height=\"300\" id=\"image-?\">",
+ "level": "304",
+ "defence": "85",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1829.199951171875,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1102",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Legio Sextus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Legio Sextus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"187\" height=\"300\" id=\"image-?\">",
+ "level": "304",
+ "defence": "85",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1829.199951171875,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1102",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Legio Tertius",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Legio Tertius#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"197\" height=\"300\" id=\"image-?\">",
+ "level": "304",
+ "defence": "85",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1829.199951171875,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1102",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Rorarius",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Rorarius#1.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "81",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "576",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Rorarius#2.png\" decoding=\"async\" loading=\"lazy\" width=\"229\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "81",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "576",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Scutarius",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Scutarius#1.png\" decoding=\"async\" loading=\"lazy\" width=\"222\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "80",
+ "slayer-level": "81",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 390.20001220703125,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Scutarius#2.png\" decoding=\"async\" loading=\"lazy\" width=\"198\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "80",
+ "slayer-level": "81",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 390.20001220703125,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Aviansie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Aviansie#Melee, level 89 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"208\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 491.79998779296875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 162.1999969482422,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee, level 89 (1)",
+ "slayer-exp": 170.39999389648438,
+ "lifepoints": "6400",
+ "max-ranged": "256",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Aviansie#Melee, level 89 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"208\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 491.79998779296875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 162.1999969482422,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee, level 89 (2)",
+ "slayer-exp": 187.8000030517578,
+ "lifepoints": "6400",
+ "max-ranged": "256",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Aviansie#Melee, level 92.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"208\" id=\"image-?\">",
+ "level": "92",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 542.2000122070312,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 178.89999389648438,
+ "max-melee": "264",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee, level 92",
+ "slayer-exp": 207.39999389648438,
+ "lifepoints": "6600",
+ "max-ranged": "264",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Aviansie#Ranged, level 89.png\" decoding=\"async\" loading=\"lazy\" width=\"292\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 491.79998779296875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 162.1999969482422,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged, level 89",
+ "slayer-exp": 170.39999389648438,
+ "lifepoints": "6400",
+ "max-ranged": "256",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Aviansie#Ranged, level 92.png\" decoding=\"async\" loading=\"lazy\" width=\"292\" height=\"300\" id=\"image-?\">",
+ "level": "92",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 542.2000122070312,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 178.89999389648438,
+ "max-melee": "264",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged, level 92",
+ "slayer-exp": 187.8000030517578,
+ "lifepoints": "6600",
+ "max-ranged": "264",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Aviansie#Ranged, level 95.png\" decoding=\"async\" loading=\"lazy\" width=\"292\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 340,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 112.19999694824219,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged, level 95",
+ "slayer-exp": 207.39999389648438,
+ "lifepoints": "6800",
+ "max-ranged": "272",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Flight Kilisa",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Flight Kilisa#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"236\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "250",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 363.79998779296875,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Flockleader Geerin",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Flockleader Geerin#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"201\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 363.79998779296875,
+ "lifepoints": "10000",
+ "max-ranged": "250",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kree'arra",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kree'arra#Hard Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"196\" height=\"300\" id=\"image-?\">",
+ "level": "580",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 2500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 825,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Hard Mode",
+ "slayer-exp": 3912,
+ "lifepoints": "100000",
+ "max-ranged": "3000",
+ "max-magic": "700",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kree'arra#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"196\" height=\"300\" id=\"image-?\">",
+ "level": "580",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 1875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 618.7000122070312,
+ "max-melee": "1676",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 2934.199951171875,
+ "lifepoints": "75000",
+ "max-ranged": "1080",
+ "max-magic": "1080",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kree'arra#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"196\" height=\"300\" id=\"image-?\">",
+ "level": "210",
+ "defence": "75",
+ "slayer-level": "N/A",
+ "experience": 2500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 825,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2000",
+ "name": "The World Wakes",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "3000",
+ "max-magic": "700",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Spiritual mage",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Spiritual mage#Zamorak.png\" decoding=\"async\" loading=\"lazy\" width=\"166\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "83",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Zamorak",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "280",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual mage#Armadyl.png\" decoding=\"async\" loading=\"lazy\" width=\"260\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "?",
+ "slayer-level": "83",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Armadyl",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "280",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual mage#Saradomin.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "?",
+ "slayer-level": "83",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Saradomin",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "350",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual mage#Bandos.png\" decoding=\"async\" loading=\"lazy\" width=\"278\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "?",
+ "slayer-level": "83",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Bandos",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "350",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual mage#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "83",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "The World Wakes",
+ "slayer-exp": 229,
+ "lifepoints": "1120",
+ "max-ranged": "0",
+ "max-magic": "280",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Spiritual ranger",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Spiritual ranger#Zamorak.png\" decoding=\"async\" loading=\"lazy\" width=\"142\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "63",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Zamorak",
+ "slayer-exp": 122,
+ "lifepoints": "7000",
+ "max-ranged": "280",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual ranger#Armadyl.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"251\" id=\"image-?\">",
+ "level": "98",
+ "defence": "35",
+ "slayer-level": "63",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Armadyl",
+ "slayer-exp": 122,
+ "lifepoints": "7000",
+ "max-ranged": "280",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual ranger#Saradomin.png\" decoding=\"async\" loading=\"lazy\" width=\"160\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "35",
+ "slayer-level": "63",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Saradomin",
+ "slayer-exp": 122,
+ "lifepoints": "7000",
+ "max-ranged": "280",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual ranger#Bandos.png\" decoding=\"async\" loading=\"lazy\" width=\"261\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "35",
+ "slayer-level": "63",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Bandos",
+ "slayer-exp": 122,
+ "lifepoints": "7000",
+ "max-ranged": "280",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual ranger#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"160\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "63",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "The World Wakes",
+ "slayer-exp": 122,
+ "lifepoints": "1120",
+ "max-ranged": "280",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Spiritual warrior",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Spiritual warrior#Zamorak.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "68",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Zamorak",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual warrior#Armadyl.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"238\" id=\"image-?\">",
+ "level": "98",
+ "defence": "35",
+ "slayer-level": "68",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Armadyl",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual warrior#Saradomin.png\" decoding=\"async\" loading=\"lazy\" width=\"235\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "35",
+ "slayer-level": "68",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Saradomin",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual warrior#Bandos.png\" decoding=\"async\" loading=\"lazy\" width=\"295\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "35",
+ "slayer-level": "68",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Bandos",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual warrior#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"235\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "68",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "The World Wakes",
+ "slayer-exp": 229,
+ "lifepoints": "1120",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Wingman Skree",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wingman Skree#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 363.79998779296875,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "900",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Banshee",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Banshee#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"226\" height=\"300\" id=\"image-?\">",
+ "level": "24",
+ "defence": "14",
+ "slayer-level": "15",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "360",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "990",
+ "name": "Default",
+ "slayer-exp": 46,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "440",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mighty banshee",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mighty banshee#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"198\" height=\"300\" id=\"image-?\">",
+ "level": "61",
+ "defence": "38",
+ "slayer-level": "15",
+ "experience": 307.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 101.4000015258789,
+ "max-melee": "860",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 89.4000015258789,
+ "lifepoints": "6150",
+ "max-ranged": "0",
+ "max-magic": "1020",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Basilisk",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Basilisk#Large.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"202\" id=\"image-?\">",
+ "level": "49",
+ "defence": "30",
+ "slayer-level": "40",
+ "experience": 240,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Basiliskbane_ammunition\" title=\"Basiliskbane ammunition\" target=\"_blank\"><img src=\"./images/susceptible/Basilisk_head.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"16\"><\/a>"
+ ],
+ "lifepoint-exp": 79.19999694824219,
+ "max-melee": "840",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Large",
+ "slayer-exp": 79.5999984741211,
+ "lifepoints": "4800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Basilisk#Small.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"187\" id=\"image-?\">",
+ "level": "49",
+ "defence": "30",
+ "slayer-level": "40",
+ "experience": 240,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Basiliskbane_ammunition\" title=\"Basiliskbane ammunition\" target=\"_blank\"><img src=\"./images/susceptible/Basilisk_head.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"16\"><\/a>"
+ ],
+ "lifepoint-exp": 79.19999694824219,
+ "max-melee": "840",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Small",
+ "slayer-exp": 79.5999984741211,
+ "lifepoints": "4800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Albino bat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Albino bat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"124\" id=\"image-?\">",
+ "level": "43",
+ "defence": "31",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "620",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 18,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Bat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"101\" id=\"image-?\">",
+ "level": "14",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 8.199999809265137,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "40",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant bat",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Giant bat#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"148\" id=\"image-?\">",
+ "level": "14",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal",
+ "slayer-exp": 18.799999237060547,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant bat#Brine Cavern.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"101\" id=\"image-?\">",
+ "level": "23",
+ "defence": "17",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "340",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Brine Cavern",
+ "slayer-exp": 10.199999809265137,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Warped bat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Warped bat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"92\" id=\"image-?\">",
+ "level": "16",
+ "defence": "12",
+ "slayer-level": "1",
+ "experience": 112.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 37.099998474121094,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "2250",
+ "max-ranged": "0",
+ "max-magic": "240",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Angry bear",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Angry bear#A Soul's Bane.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"248\" id=\"image-?\">",
+ "level": "40",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "175",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "A Soul's Bane",
+ "slayer-exp": 0,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Angry bear#Post-quest.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"248\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Post-quest",
+ "slayer-exp": 14,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Bear cub",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bear cub#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"216\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 7.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Black bear",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Black bear#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"241\" id=\"image-?\">",
+ "level": "23",
+ "defence": "17",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "340",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 10.199999809265137,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Grizzly bear",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Grizzly bear#Standard.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"244\" id=\"image-?\">",
+ "level": "32",
+ "defence": "23",
+ "slayer-level": "1",
+ "experience": 187.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 61.79999923706055,
+ "max-melee": "460",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Standard",
+ "slayer-exp": 13,
+ "lifepoints": "3750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Grizzly bear#Tirannwn.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"244\" id=\"image-?\">",
+ "level": "32",
+ "defence": "23",
+ "slayer-level": "1",
+ "experience": 187.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 61.79999923706055,
+ "max-melee": "460",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Tirannwn",
+ "slayer-exp": 16.600000381469727,
+ "lifepoints": "3750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Grizzly bear cub",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Grizzly bear cub#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"216\" id=\"image-?\">",
+ "level": "17",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Bird",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Bird#Black.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"124\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 35,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 11.5,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Black",
+ "slayer-exp": 6.800000190734863,
+ "lifepoints": "700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bird#Green.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"225\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 35,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 11.5,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Green",
+ "slayer-exp": 6.800000190734863,
+ "lifepoints": "700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Chicken",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Chicken#Brown.png\" decoding=\"async\" loading=\"lazy\" width=\"223\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "15",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Brown",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Chicken#White.png\" decoding=\"async\" loading=\"lazy\" width=\"260\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "15",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "White",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Chompy bird",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Chompy bird#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"300\" id=\"image-?\">",
+ "level": "2",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 15,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.900000095367432,
+ "max-melee": "6",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 19.399999618530273,
+ "lifepoints": "300",
+ "max-ranged": "8",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Duck",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Duck#Male.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"259\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Male",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Duck#Female.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"211\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Female",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Duck#Land.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"282\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Land",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Duckling",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Duckling#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"270\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Jubbly bird",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Jubbly bird#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"230\" height=\"300\" id=\"image-?\">",
+ "level": "11",
+ "defence": "8",
+ "slayer-level": "1",
+ "experience": 20,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "24",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 7.599999904632568,
+ "lifepoints": "400",
+ "max-ranged": "32",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mounted terrorbird gnome",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Mounted terrorbird gnome#Level 46.png\" decoding=\"async\" loading=\"lazy\" width=\"249\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 265,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 87.4000015258789,
+ "max-melee": "660",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 46",
+ "slayer-exp": 19.600000381469727,
+ "lifepoints": "5300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mounted terrorbird gnome#Level 53.png\" decoding=\"async\" loading=\"lazy\" width=\"249\" height=\"300\" id=\"image-?\">",
+ "level": "53",
+ "defence": "38",
+ "slayer-level": "1",
+ "experience": 307.5,
+ "susceptible": [],
+ "lifepoint-exp": 101.4000015258789,
+ "max-melee": "950",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 53",
+ "slayer-exp": 24.799999237060547,
+ "lifepoints": "6150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Oomlie bird",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Oomlie bird#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"233\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 570,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 188.10000610351562,
+ "max-melee": "1280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 85.19999694824219,
+ "lifepoints": "11400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Pekin",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Pekin#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "15",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Penguin (monster)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Penguin (monster)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"147\" height=\"300\" id=\"image-?\">",
+ "level": "8",
+ "defence": "6",
+ "slayer-level": "1",
+ "experience": 77.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 25.5,
+ "max-melee": "120",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 7,
+ "lifepoints": "1550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Pernicious parrot",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Pernicious parrot#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"130\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 185,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 61,
+ "max-melee": "900",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 34.20000076293945,
+ "lifepoints": "3700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Rooster",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Rooster#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "15",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Seagull",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Seagull#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"289\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Tenacious toucan",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Tenacious toucan#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"122\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 262.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 86.5999984741211,
+ "max-melee": "1200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 70,
+ "lifepoints": "5250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Terrorbird",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Terrorbird#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"265\" height=\"300\" id=\"image-?\">",
+ "level": "42",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 240,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 79.19999694824219,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 17.200000762939453,
+ "lifepoints": "4800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Undead chicken",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Undead chicken#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"231\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 35,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 11.5,
+ "max-melee": "75",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Undead pekin",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Undead pekin#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"230\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 35,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 11.5,
+ "max-melee": "75",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Balfrug Kreeyath",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Balfrug Kreeyath#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"227\" height=\"300\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 272.79998779296875,
+ "lifepoints": "7500",
+ "max-ranged": "0",
+ "max-magic": "750",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Black demon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Black demon#1.png\" decoding=\"async\" loading=\"lazy\" width=\"210\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 450,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 148.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 294.3999938964844,
+ "lifepoints": "9000",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black demon#2.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 850,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 280.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 294.3999938964844,
+ "lifepoints": "17000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black demon#3.png\" decoding=\"async\" loading=\"lazy\" width=\"218\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 850,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 280.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 294.3999938964844,
+ "lifepoints": "17000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black demon#4.png\" decoding=\"async\" loading=\"lazy\" width=\"227\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 850,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 280.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": 294.3999938964844,
+ "lifepoints": "17000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black demon#5.png\" decoding=\"async\" loading=\"lazy\" width=\"189\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 850,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 280.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "5",
+ "slayer-exp": 294.3999938964844,
+ "lifepoints": "17000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black demon#Wilderness.png\" decoding=\"async\" loading=\"lazy\" width=\"210\" height=\"300\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 850,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 280.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Wilderness",
+ "slayer-exp": 564.4000244140625,
+ "lifepoints": "17000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Alanogard the Black",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Alanogard the Black#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"259\" id=\"image-?\">",
+ "level": "117",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 9000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2970,
+ "max-melee": "1353",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "5000",
+ "name": "Default",
+ "slayer-exp": 9794,
+ "lifepoints": "180000",
+ "max-ranged": "1353",
+ "max-magic": "1353",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Baby black dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Baby black dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"221\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "150",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 43.20000076293945,
+ "lifepoints": "2500",
+ "max-ranged": "200",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Black dragon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Black dragon#1.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"229\" id=\"image-?\">",
+ "level": "100",
+ "defence": "72",
+ "slayer-level": "1",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "475",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "1",
+ "slayer-exp": 245,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "475",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black dragon#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "100",
+ "defence": "72",
+ "slayer-level": "1",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "475",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "2",
+ "slayer-exp": 245,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "475",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black dragon#3.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "100",
+ "defence": "72",
+ "slayer-level": "1",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "475",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "3",
+ "slayer-exp": 245,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "475",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black dragon#4.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "100",
+ "defence": "72",
+ "slayer-level": "1",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "475",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "4",
+ "slayer-exp": 245,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "475",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black dragon#5.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "100",
+ "defence": "72",
+ "slayer-level": "1",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "475",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "5",
+ "slayer-exp": 245,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "475",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Black dragon (Dragonkin Laboratory)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Black dragon (Dragonkin Laboratory)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"259\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 1950,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 643.5,
+ "max-melee": "1152",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 1550,
+ "lifepoints": "39000",
+ "max-ranged": "1152",
+ "max-magic": "1152",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "King Black Dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/King Black Dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"282\" height=\"300\" id=\"image-?\">",
+ "level": "276",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 2250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"
+ ],
+ "lifepoint-exp": 742.5,
+ "max-melee": "864",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4960",
+ "name": "Default",
+ "slayer-exp": 1050.5999755859375,
+ "lifepoints": "45000",
+ "max-ranged": "864",
+ "max-magic": "864",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Queen Black Dragon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Queen Black Dragon#Carapace.png\" decoding=\"async\" loading=\"lazy\" width=\"259\" height=\"300\" id=\"image-?\">",
+ "level": "900",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 900,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"
+ ],
+ "lifepoint-exp": 297,
+ "max-melee": "2480",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Magic\" title=\"Magic\" target=\"_blank\"><img src=\"./images/weakness/Magic_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "6500",
+ "name": "Carapace",
+ "slayer-exp": 1693.199951171875,
+ "lifepoints": "36000",
+ "max-ranged": "2480",
+ "max-magic": "2480",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Queen Black Dragon#Crystal.png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "900",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 900,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 297,
+ "max-melee": "2480",
+ "weakness": [
+ "<a href=\"https://runescape.wiki/w/Melee\" title=\"Melee\" target=\"_blank\"><img src=\"./images/weakness/Melee_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "max-spec": "6500",
+ "name": "Crystal",
+ "slayer-exp": 1693.199951171875,
+ "lifepoints": "36000",
+ "max-ranged": "2480",
+ "max-magic": "2480",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Queen Black Dragon#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "900",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 900,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 297,
+ "max-melee": "2480",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "6500",
+ "name": "Normal",
+ "slayer-exp": 1693.199951171875,
+ "lifepoints": "36000",
+ "max-ranged": "2480",
+ "max-magic": "2480",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Verak Lith",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Verak Lith#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"252\" height=\"300\" id=\"image-?\">",
+ "level": "1450",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 15000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 4950,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "9000",
+ "name": "Default",
+ "slayer-exp": 27438,
+ "lifepoints": "600000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Verak Little",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Verak Little#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"285\" id=\"image-?\">",
+ "level": "107",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 9000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 2970,
+ "max-melee": "1966",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4000",
+ "name": "Default",
+ "slayer-exp": 0,
+ "lifepoints": "180000",
+ "max-ranged": "1966",
+ "max-magic": "1966",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Bloodveld",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bloodveld#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"266\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "49",
+ "slayer-level": "50",
+ "experience": 512.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 169.10000610351562,
+ "max-melee": "680",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 84.4000015258789,
+ "lifepoints": "10250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Bloodveld (God Wars Dungeon)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bloodveld (God Wars Dungeon)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"266\" height=\"300\" id=\"image-?\">",
+ "level": "92",
+ "defence": "66",
+ "slayer-level": "50",
+ "experience": 330,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 108.9000015258789,
+ "max-melee": "264",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "6600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Bloodveld (Heart of Gielinor)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bloodveld (Heart of Gielinor)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "50",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "768",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mutated bloodveld",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Mutated bloodveld#A.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"280\" id=\"image-?\">",
+ "level": "81",
+ "defence": "65",
+ "slayer-level": "50",
+ "experience": 727.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 240,
+ "max-melee": "1000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "A",
+ "slayer-exp": 205.8000030517578,
+ "lifepoints": "14550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mutated bloodveld#B.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"287\" id=\"image-?\">",
+ "level": "81",
+ "defence": "65",
+ "slayer-level": "50",
+ "experience": 727.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 240,
+ "max-melee": "1000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "B",
+ "slayer-exp": 205.8000030517578,
+ "lifepoints": "14550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Baby blue dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Baby blue dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"248\" height=\"300\" id=\"image-?\">",
+ "level": "44",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 80,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 26.399999618530273,
+ "max-melee": "128",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 18.799999237060547,
+ "lifepoints": "1600",
+ "max-ranged": "0",
+ "max-magic": "128",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Blue dragon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Blue dragon#1.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"234\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "1",
+ "slayer-exp": 93.80000305175781,
+ "lifepoints": "5000",
+ "max-ranged": "N/A",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Blue dragon#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"247\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "2",
+ "slayer-exp": 93.80000305175781,
+ "lifepoints": "5000",
+ "max-ranged": "N/A",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Blue dragon#3.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"287\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "3",
+ "slayer-exp": 93.80000305175781,
+ "lifepoints": "5000",
+ "max-ranged": "N/A",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Blue dragon#4.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"230\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "4",
+ "slayer-exp": 93.80000305175781,
+ "lifepoints": "5000",
+ "max-ranged": "N/A",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Blue dragon#5.png\" decoding=\"async\" loading=\"lazy\" width=\"267\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "5",
+ "slayer-exp": 93.80000305175781,
+ "lifepoints": "5000",
+ "max-ranged": "N/A",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Vorkath",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Vorkath#Hard mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"174\" id=\"image-?\">",
+ "level": "789",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 60411.6015625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19935.80078125,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Hard mode",
+ "slayer-exp": 31340.5,
+ "lifepoints": "1500000",
+ "max-ranged": "1224",
+ "max-magic": "1224",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vorkath#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"174\" id=\"image-?\">",
+ "level": "789",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 60411.6015625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19935.80078125,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "8500",
+ "name": "Normal mode",
+ "slayer-exp": 31340.5,
+ "lifepoints": "750000",
+ "max-ranged": "1224",
+ "max-magic": "1224",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vorkath#Requiem for a Dragon.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"174\" id=\"image-?\">",
+ "level": "789",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Requiem for a Dragon",
+ "slayer-exp": 31340.5,
+ "lifepoints": "75001",
+ "max-ranged": "1224",
+ "max-magic": "1224",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vorkath#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"174\" id=\"image-?\">",
+ "level": "789",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 60411.6015625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19935.80078125,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": 31340.5,
+ "lifepoints": "375000",
+ "max-ranged": "1224",
+ "max-magic": "1224",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Bound skeleton",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Bound skeleton#1.png\" decoding=\"async\" loading=\"lazy\" width=\"276\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 600,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 198,
+ "max-melee": "1194",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 420,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bound skeleton#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"223\" id=\"image-?\">",
+ "level": "70",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 600,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 198,
+ "max-melee": "1194",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 420,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bound skeleton#3.png\" decoding=\"async\" loading=\"lazy\" width=\"252\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 600,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 198,
+ "max-melee": "1194",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 420,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Brine rat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Brine rat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "43",
+ "defence": "30",
+ "slayer-level": "47",
+ "experience": 240,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 79.19999694824219,
+ "max-melee": "640",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 43.20000076293945,
+ "lifepoints": "4800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Bronze dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bronze dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"218\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "409",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 124.5,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "409",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Camel Warrior",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Camel Warrior#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"278\" id=\"image-?\">",
+ "level": "132",
+ "defence": "93",
+ "slayer-level": "96",
+ "experience": 1006.2000122070312,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 332,
+ "max-melee": "912",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "2678",
+ "name": "Default",
+ "slayer-exp": 4768.7998046875,
+ "lifepoints": "20125",
+ "max-ranged": "931",
+ "max-magic": "931",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Catablepon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Catablepon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"261\" height=\"300\" id=\"image-?\">",
+ "level": "43",
+ "defence": "28",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "480",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 74.5,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "700",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cave bug",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Cave bug#Level 6.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "6",
+ "defence": "4",
+ "slayer-level": "7",
+ "experience": 32.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 10.699999809265137,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 6",
+ "slayer-exp": 7,
+ "lifepoints": "650",
+ "max-ranged": "120",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cave bug#Level 11.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"254\" id=\"image-?\">",
+ "level": "11",
+ "defence": "7",
+ "slayer-level": "7",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 11",
+ "slayer-exp": 8,
+ "lifepoints": "1650",
+ "max-ranged": "180",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Cave crawler",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Cave crawler#Level 24.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"241\" id=\"image-?\">",
+ "level": "24",
+ "defence": "15",
+ "slayer-level": "10",
+ "experience": 132.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 24",
+ "slayer-exp": 24.5,
+ "lifepoints": "2650",
+ "max-ranged": "400",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cave crawler#Level 59.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"241\" id=\"image-?\">",
+ "level": "59",
+ "defence": "40",
+ "slayer-level": "10",
+ "experience": 325,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 107.19999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 59",
+ "slayer-exp": 57.599998474121094,
+ "lifepoints": "6500",
+ "max-ranged": "900",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Cave horror",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cave horror#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "58",
+ "experience": 250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 82.5,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 99.4000015258789,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cave horror (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cave horror (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "75",
+ "slayer-level": "58",
+ "experience": 550,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 181.5,
+ "max-melee": "660",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 509,
+ "lifepoints": "11000",
+ "max-ranged": "0",
+ "max-magic": "660",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Unspeakable horror",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Unspeakable horror#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"208\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "58",
+ "experience": 650,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 214.5,
+ "max-melee": "720",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 440,
+ "lifepoints": "13000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Unspeakable horror (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Unspeakable horror (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"208\" height=\"300\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "58",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "768",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1241.5999755859375,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cave slime",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cave slime#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"257\" id=\"image-?\">",
+ "level": "22",
+ "defence": "19",
+ "slayer-level": "17",
+ "experience": 157.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 51.900001525878906,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 11,
+ "lifepoints": "3150",
+ "max-ranged": "240",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant slime",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Giant slime#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"272\" id=\"image-?\">",
+ "level": "106",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 6000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1980,
+ "max-melee": "1400",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal mode",
+ "slayer-exp": 5047,
+ "lifepoints": "120000",
+ "max-ranged": "1400",
+ "max-magic": "1400",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant slime#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"272\" id=\"image-?\">",
+ "level": "106",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 6000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1980,
+ "max-melee": "1400",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Story mode",
+ "slayer-exp": 2523.39990234375,
+ "lifepoints": "120000",
+ "max-ranged": "1400",
+ "max-magic": "1400",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Laboratory slime",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Laboratory slime#Adult (normal mode).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"272\" id=\"image-?\">",
+ "level": "90",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Adult (normal mode)",
+ "slayer-exp": 551,
+ "lifepoints": "20000",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Laboratory slime#Spawnling (normal mode).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"272\" id=\"image-?\">",
+ "level": "90",
+ "defence": "60",
+ "slayer-level": "N/A",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Spawnling (normal mode)",
+ "slayer-exp": -2,
+ "lifepoints": "9500",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Laboratory slime#Adult (story mode).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"272\" id=\"image-?\">",
+ "level": "90",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Adult (story mode)",
+ "slayer-exp": 275.3999938964844,
+ "lifepoints": "9500",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Laboratory slime#Spawnling (story mode).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"272\" id=\"image-?\">",
+ "level": "90",
+ "defence": "60",
+ "slayer-level": "N/A",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Spawnling (story mode)",
+ "slayer-exp": -2,
+ "lifepoints": "9500",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Astellarn",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Astellarn#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"188\" id=\"image-?\">",
+ "level": "1200",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 6250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2062.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2700",
+ "name": "Default",
+ "slayer-exp": 27400,
+ "lifepoints": "250000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Celestial dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Celestial dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"186\" id=\"image-?\">",
+ "level": "127",
+ "defence": "91",
+ "slayer-level": "1",
+ "experience": 1137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 375.29998779296875,
+ "max-melee": "1068",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 976.5999755859375,
+ "lifepoints": "22750",
+ "max-ranged": "0",
+ "max-magic": "1168",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Celestial dragon (Dragonkin Laboratory)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Celestial dragon (Dragonkin Laboratory)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"186\" id=\"image-?\">",
+ "level": "114",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 2400,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 792,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 2400,
+ "lifepoints": "48000",
+ "max-ranged": "1653",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Elegorn the Celestial",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Elegorn the Celestial#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"186\" id=\"image-?\">",
+ "level": "114",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 8750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2887.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 8800,
+ "lifepoints": "175000",
+ "max-ranged": "1296",
+ "max-magic": "1296",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Chaos Giant",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Chaos Giant#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "450",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 929.4000244140625,
+ "lifepoints": "22500",
+ "max-ranged": "450",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cockatrice",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cockatrice#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"297\" id=\"image-?\">",
+ "level": "31",
+ "defence": "25",
+ "slayer-level": "25",
+ "experience": 202.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 66.80000305175781,
+ "max-melee": "360",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 23.399999618530273,
+ "lifepoints": "4050",
+ "max-ranged": "400",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cockroach drone",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cockroach drone#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "4",
+ "defence": "3",
+ "slayer-level": "1",
+ "experience": 60,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 19.799999237060547,
+ "max-melee": "60",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6,
+ "lifepoints": "1200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cockroach soldier",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cockroach soldier#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"284\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 525,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 173.1999969482422,
+ "max-melee": "1000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 14,
+ "lifepoints": "10500",
+ "max-ranged": "1000",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cockroach worker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cockroach worker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"269\" id=\"image-?\">",
+ "level": "30",
+ "defence": "22",
+ "slayer-level": "1",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "440",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 12,
+ "lifepoints": "3600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Warped cockroach",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Warped cockroach#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"280\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 25,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 8.199999809265137,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "500",
+ "max-ranged": "20",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corrupted dust devil",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corrupted dust devil#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"192\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "76",
+ "slayer-level": "97",
+ "experience": 600,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 198,
+ "max-melee": "1123",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 679.7999877929688,
+ "lifepoints": "12000",
+ "max-ranged": "1123",
+ "max-magic": "1123",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corrupted kalphite guardian",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corrupted kalphite guardian#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"263\" height=\"300\" id=\"image-?\">",
+ "level": "110",
+ "defence": "78",
+ "slayer-level": "100",
+ "experience": 750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1152",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 494,
+ "lifepoints": "15000",
+ "max-ranged": "1152",
+ "max-magic": "1152",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corrupted kalphite marauder",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corrupted kalphite marauder#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"228\" height=\"300\" id=\"image-?\">",
+ "level": "110",
+ "defence": "78",
+ "slayer-level": "100",
+ "experience": 750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1152",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 494,
+ "lifepoints": "15000",
+ "max-ranged": "1152",
+ "max-magic": "1152",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corrupted lizard",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corrupted lizard#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"173\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "94",
+ "experience": 550,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 181.5,
+ "max-melee": "1094",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 533.4000244140625,
+ "lifepoints": "11000",
+ "max-ranged": "1094",
+ "max-magic": "1094",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corrupted scarab",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corrupted scarab#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"286\" height=\"300\" id=\"image-?\">",
+ "level": "101",
+ "defence": "72",
+ "slayer-level": "91",
+ "experience": 500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 165,
+ "max-melee": "700",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 389,
+ "lifepoints": "10000",
+ "max-ranged": "700",
+ "max-magic": "700",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corrupted scorpion",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corrupted scorpion#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"260\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "88",
+ "experience": 450,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 148.5,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 353.20001220703125,
+ "lifepoints": "9000",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corrupted worker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corrupted worker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"153\" height=\"300\" id=\"image-?\">",
+ "level": "113",
+ "defence": "80",
+ "slayer-level": "103",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1180",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 653,
+ "lifepoints": "15000",
+ "max-ranged": "1180",
+ "max-magic": "1180",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cow",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Cow#Standard (1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "2",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "40",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Standard (1)",
+ "slayer-exp": 3.299999952316284,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cow#Standard (2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"260\" id=\"image-?\">",
+ "level": "2",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "40",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Standard (2)",
+ "slayer-exp": 3.299999952316284,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cow#Standard (3).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"209\" id=\"image-?\">",
+ "level": "2",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "40",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Standard (3)",
+ "slayer-exp": 3.299999952316284,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cow#Zanaris.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"213\" id=\"image-?\">",
+ "level": "2",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "40",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Zanaris",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Cow calf",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cow calf#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"290\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 25,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 8.199999809265137,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 3.200000047683716,
+ "lifepoints": "500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Super Cow",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Super Cow#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"260\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 36.400001525878906,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Undead cow",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Undead cow#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"198\" id=\"image-?\">",
+ "level": "2",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 16.5,
+ "max-melee": "40",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Crawling hand",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#6a.png\" decoding=\"async\" loading=\"lazy\" width=\"236\" height=\"300\" id=\"image-?\">",
+ "level": "6",
+ "defence": "5",
+ "slayer-level": "5",
+ "experience": 72.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "6a",
+ "slayer-exp": 7.599999904632568,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#6b.png\" decoding=\"async\" loading=\"lazy\" width=\"248\" height=\"300\" id=\"image-?\">",
+ "level": "6",
+ "defence": "5",
+ "slayer-level": "5",
+ "experience": 72.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "6b",
+ "slayer-exp": 7.599999904632568,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#6c.png\" decoding=\"async\" loading=\"lazy\" width=\"259\" height=\"300\" id=\"image-?\">",
+ "level": "6",
+ "defence": "5",
+ "slayer-level": "5",
+ "experience": 72.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "6c",
+ "slayer-exp": 7.599999904632568,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#6d.png\" decoding=\"async\" loading=\"lazy\" width=\"257\" height=\"300\" id=\"image-?\">",
+ "level": "6",
+ "defence": "5",
+ "slayer-level": "5",
+ "experience": 72.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "6d",
+ "slayer-exp": 7.599999904632568,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#6e.png\" decoding=\"async\" loading=\"lazy\" width=\"277\" height=\"300\" id=\"image-?\">",
+ "level": "6",
+ "defence": "5",
+ "slayer-level": "5",
+ "experience": 72.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "6e",
+ "slayer-exp": 7.599999904632568,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#10a.png\" decoding=\"async\" loading=\"lazy\" width=\"269\" height=\"300\" id=\"image-?\">",
+ "level": "10",
+ "defence": "8",
+ "slayer-level": "5",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "10a",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#10b.png\" decoding=\"async\" loading=\"lazy\" width=\"273\" height=\"300\" id=\"image-?\">",
+ "level": "10",
+ "defence": "8",
+ "slayer-level": "5",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "10b",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#10c.png\" decoding=\"async\" loading=\"lazy\" width=\"278\" height=\"300\" id=\"image-?\">",
+ "level": "10",
+ "defence": "8",
+ "slayer-level": "5",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "10c",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#10d.png\" decoding=\"async\" loading=\"lazy\" width=\"265\" height=\"300\" id=\"image-?\">",
+ "level": "10",
+ "defence": "8",
+ "slayer-level": "5",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "10d",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#10e.png\" decoding=\"async\" loading=\"lazy\" width=\"271\" height=\"300\" id=\"image-?\">",
+ "level": "10",
+ "defence": "8",
+ "slayer-level": "5",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "10e",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeletal hand",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeletal hand#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"261\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "50",
+ "slayer-level": "5",
+ "experience": 420,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 138.60000610351562,
+ "max-melee": "800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 60.599998474121094,
+ "lifepoints": "8400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Zombie hand",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Zombie hand#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"285\" height=\"300\" id=\"image-?\">",
+ "level": "69",
+ "defence": "54",
+ "slayer-level": "5",
+ "experience": 460,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 151.8000030517578,
+ "max-melee": "880",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 73.19999694824219,
+ "lifepoints": "9200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Edimmu",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Edimmu#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "85",
+ "slayer-level": "90",
+ "experience": 1600,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 528,
+ "max-melee": "350",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 880.2000122070312,
+ "lifepoints": "32000",
+ "max-ranged": "0",
+ "max-magic": "350",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Edimmu (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Edimmu (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"172\" height=\"300\" id=\"image-?\">",
+ "level": "125",
+ "defence": "85",
+ "slayer-level": "90",
+ "experience": 4800,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 1584,
+ "max-melee": "1050",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 2044.5999755859375,
+ "lifepoints": "96000",
+ "max-ranged": "0",
+ "max-magic": "1050",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Frost dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Frost dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"223\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 425,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 140.1999969482422,
+ "max-melee": "500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "Varies",
+ "name": "Default",
+ "slayer-exp": 398.79998779296875,
+ "lifepoints": "8500",
+ "max-ranged": "500",
+ "max-magic": "500",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kal'gerion demon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon#Bloodchiller.png\" decoding=\"async\" loading=\"lazy\" width=\"167\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "Bloodchiller",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon#Riftsplitter.png\" decoding=\"async\" loading=\"lazy\" width=\"173\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "Riftsplitter",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon#Pummeller.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "Pummeller",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon#Thunderous.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "Thunderous",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon#Warmonger.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "Warmonger",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon#Rush of Blood.png\" decoding=\"async\" loading=\"lazy\" width=\"167\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "Rush of Blood",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Seeker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Seeker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "55",
+ "slayer-level": "71",
+ "experience": 1200,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 396,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1500",
+ "name": "Default",
+ "slayer-exp": 440.3999938964844,
+ "lifepoints": "24000",
+ "max-ranged": "0",
+ "max-magic": "250",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Soulgazer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Soulgazer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"227\" height=\"300\" id=\"image-?\">",
+ "level": "128",
+ "defence": "85",
+ "slayer-level": "99",
+ "experience": 2000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 660,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 1950.4000244140625,
+ "lifepoints": "40000",
+ "max-ranged": "0",
+ "max-magic": "738",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Bulbous crawler",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bulbous crawler#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "140",
+ "defence": "95",
+ "slayer-level": "106",
+ "experience": 1900,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 627,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "4000",
+ "name": "Default",
+ "slayer-exp": 2360,
+ "lifepoints": "38000",
+ "max-ranged": "2123",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Moss golem",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Moss golem#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"236\" height=\"300\" id=\"image-?\">",
+ "level": "140",
+ "defence": "95",
+ "slayer-level": "108",
+ "experience": 1750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 577.5,
+ "max-melee": "2123",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 2408.800048828125,
+ "lifepoints": "35000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Vinecrawler",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Vinecrawler#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "140",
+ "defence": "95",
+ "slayer-level": "104",
+ "experience": 1600,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 528,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "4000",
+ "name": "Default",
+ "slayer-exp": 2086,
+ "lifepoints": "32000",
+ "max-ranged": "0",
+ "max-magic": "2123",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Automaton Generator",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Automaton Generator#Post-quest.png\" decoding=\"async\" loading=\"lazy\" width=\"274\" height=\"300\" id=\"image-?\">",
+ "level": "115",
+ "defence": "80",
+ "slayer-level": "67",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2500",
+ "name": "Post-quest",
+ "slayer-exp": 624,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "510",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Automaton Generator#During The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"274\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "N/A",
+ "experience": 375,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2500",
+ "name": "During The World Wakes",
+ "slayer-exp": 0,
+ "lifepoints": "7500",
+ "max-ranged": "0",
+ "max-magic": "600",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Automaton Guardian",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Automaton Guardian#Post-quest.png\" decoding=\"async\" loading=\"lazy\" width=\"276\" height=\"300\" id=\"image-?\">",
+ "level": "115",
+ "defence": "80",
+ "slayer-level": "67",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "810",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1000",
+ "name": "Post-quest",
+ "slayer-exp": 624,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Automaton Guardian#During The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"276\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "N/A",
+ "experience": 375,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "During The World Wakes",
+ "slayer-exp": 0,
+ "lifepoints": "7500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Automaton Tracer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Automaton Tracer#Post-quest.png\" decoding=\"async\" loading=\"lazy\" width=\"242\" height=\"300\" id=\"image-?\">",
+ "level": "115",
+ "defence": "80",
+ "slayer-level": "67",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Post-quest",
+ "slayer-exp": 624,
+ "lifepoints": "20000",
+ "max-ranged": "510",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Automaton Tracer#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"242\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "N/A",
+ "experience": 375,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "The World Wakes",
+ "slayer-exp": 0,
+ "lifepoints": "7500",
+ "max-ranged": "600",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Crocodile",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Crocodile#77.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"132\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "116",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "77",
+ "slayer-exp": 44.400001525878906,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crocodile#40.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"132\" id=\"image-?\">",
+ "level": "40",
+ "defence": "29",
+ "slayer-level": "1",
+ "experience": 72.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "116",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "40",
+ "slayer-exp": 33.400001525878906,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Crocodile akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Crocodile akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"191\" id=\"image-?\">",
+ "level": "115",
+ "defence": "80",
+ "slayer-level": "111",
+ "experience": 900,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 297,
+ "max-melee": "1561",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4000",
+ "name": "Default",
+ "slayer-exp": 761.2000122070312,
+ "lifepoints": "18000",
+ "max-ranged": "1561",
+ "max-magic": "1561",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ol' Sawtooth",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ol' Sawtooth#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"132\" id=\"image-?\">",
+ "level": "120",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 6750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 2227.5,
+ "max-melee": "1966",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "135000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Sea crocodile",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Sea crocodile#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"132\" id=\"image-?\">",
+ "level": "77",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 634.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 209.3000030517578,
+ "max-melee": "936",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "15500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Sea crocodile#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"132\" id=\"image-?\">",
+ "level": "77",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": 387.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 127.80000305175781,
+ "max-melee": "?",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "7750",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Crystal Shapeshifter",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Crystal Shapeshifter#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"299\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "80",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "980",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1900",
+ "name": "Melee",
+ "slayer-exp": 1269.800048828125,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crystal Shapeshifter#Ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"237\" height=\"300\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "80",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "1900",
+ "name": "Ranged",
+ "slayer-exp": 1269.800048828125,
+ "lifepoints": "30000",
+ "max-ranged": "980",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crystal Shapeshifter#Magic.png\" decoding=\"async\" loading=\"lazy\" width=\"117\" height=\"300\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "80",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1900",
+ "name": "Magic",
+ "slayer-exp": 1269.800048828125,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "980",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Cyclops",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#57 (Stab).png\" decoding=\"async\" loading=\"lazy\" width=\"177\" height=\"300\" id=\"image-?\">",
+ "level": "57",
+ "defence": "41",
+ "slayer-level": "1",
+ "experience": 205,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 67.5999984741211,
+ "max-melee": "205",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "57 (Stab)",
+ "slayer-exp": 71.80000305175781,
+ "lifepoints": "4100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#68 (Stab).png\" decoding=\"async\" loading=\"lazy\" width=\"191\" height=\"300\" id=\"image-?\">",
+ "level": "68",
+ "defence": "49",
+ "slayer-level": "1",
+ "experience": 245,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 80.80000305175781,
+ "max-melee": "245",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "68 (Stab)",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "4900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#57 (Slash).png\" decoding=\"async\" loading=\"lazy\" width=\"179\" height=\"300\" id=\"image-?\">",
+ "level": "57",
+ "defence": "41",
+ "slayer-level": "1",
+ "experience": 205,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 67.5999984741211,
+ "max-melee": "205",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "57 (Slash)",
+ "slayer-exp": 71.80000305175781,
+ "lifepoints": "4100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#68 (Slash).png\" decoding=\"async\" loading=\"lazy\" width=\"176\" height=\"300\" id=\"image-?\">",
+ "level": "68",
+ "defence": "49",
+ "slayer-level": "1",
+ "experience": 245,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 80.80000305175781,
+ "max-melee": "245",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "68 (Slash)",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "4900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#57 (Crush).png\" decoding=\"async\" loading=\"lazy\" width=\"184\" height=\"300\" id=\"image-?\">",
+ "level": "57",
+ "defence": "41",
+ "slayer-level": "1",
+ "experience": 205,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 67.5999984741211,
+ "max-melee": "205",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "57 (Crush)",
+ "slayer-exp": 71.80000305175781,
+ "lifepoints": "4100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#68 (Crush).png\" decoding=\"async\" loading=\"lazy\" width=\"183\" height=\"300\" id=\"image-?\">",
+ "level": "68",
+ "defence": "49",
+ "slayer-level": "1",
+ "experience": 245,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 80.80000305175781,
+ "max-melee": "245",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "68 (Crush)",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "4900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#91 (God Wars Dungeon), 1.png\" decoding=\"async\" loading=\"lazy\" width=\"184\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 487.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 160.8000030517578,
+ "max-melee": "325",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "91 (God Wars Dungeon), 1",
+ "slayer-exp": 281.79998779296875,
+ "lifepoints": "9750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#91 (God Wars Dungeon), 2.png\" decoding=\"async\" loading=\"lazy\" width=\"166\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 487.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 160.8000030517578,
+ "max-melee": "325",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "91 (God Wars Dungeon), 2",
+ "slayer-exp": 281.79998779296875,
+ "lifepoints": "9750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Cyclossus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cyclossus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"187\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 630,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 207.89999389648438,
+ "max-melee": "960",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 350,
+ "lifepoints": "12600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dagannoth (Lighthouse)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Dagannoth (Lighthouse)#Level 77.png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "165",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 77",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "220",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dagannoth (Lighthouse)#Level 78.png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 140,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 46.20000076293945,
+ "max-melee": "224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 78",
+ "slayer-exp": 57.599998474121094,
+ "lifepoints": "2800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Dagannoth (Waterbirth Island)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Dagannoth (Waterbirth Island)#Melee (78).png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 140,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 46.20000076293945,
+ "max-melee": "224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee (78)",
+ "slayer-exp": 57.599998474121094,
+ "lifepoints": "2800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dagannoth (Waterbirth Island)#Melee (79).png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "79",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 140,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 46.20000076293945,
+ "max-melee": "224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee (79)",
+ "slayer-exp": 61,
+ "lifepoints": "2800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dagannoth (Waterbirth Island)#Blood Runs Deep (78).png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 140,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 46.20000076293945,
+ "max-melee": "224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Blood Runs Deep (78)",
+ "slayer-exp": -1,
+ "lifepoints": "2800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Dagannoth (Waterbirth Island, ranged)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Dagannoth (Waterbirth Island, ranged)#Ranged (78).png\" decoding=\"async\" loading=\"lazy\" width=\"254\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 140,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 46.20000076293945,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged (78)",
+ "slayer-exp": 57.599998474121094,
+ "lifepoints": "2800",
+ "max-ranged": "224",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dagannoth (Waterbirth Island, ranged)#Ranged (79).png\" decoding=\"async\" loading=\"lazy\" width=\"254\" height=\"300\" id=\"image-?\">",
+ "level": "79",
+ "defence": "57",
+ "slayer-level": "1",
+ "experience": 142.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 47,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged (79)",
+ "slayer-exp": 64,
+ "lifepoints": "2850",
+ "max-ranged": "171",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Dagannoth Prime",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dagannoth Prime#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "303",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 288.70001220703125,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1068,
+ "lifepoints": "35000",
+ "max-ranged": "0",
+ "max-magic": "1788",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dagannoth Rex",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dagannoth Rex#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"214\" id=\"image-?\">",
+ "level": "303",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 1750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 577.5,
+ "max-melee": "1788",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1068,
+ "lifepoints": "35000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dagannoth Supreme",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dagannoth Supreme#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"193\" height=\"300\" id=\"image-?\">",
+ "level": "303",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 875,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 288.70001220703125,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1068,
+ "lifepoints": "35000",
+ "max-ranged": "1788",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dagannoth fledgeling",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dagannoth fledgeling#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"178\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "208",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 0,
+ "lifepoints": "2600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dagannoth guardian",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dagannoth guardian#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"244\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 165,
+ "max-melee": "400",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 326.6000061035156,
+ "lifepoints": "10000",
+ "max-ranged": "400",
+ "max-magic": "400",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dagannoth spawn",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dagannoth spawn#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"243\" id=\"image-?\">",
+ "level": "65",
+ "defence": "47",
+ "slayer-level": "1",
+ "experience": 117.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 38.70000076293945,
+ "max-melee": "188",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 39.400001525878906,
+ "lifepoints": "2350",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dark beast",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Dark beast#8,500 life points.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "101",
+ "defence": "75",
+ "slayer-level": "90",
+ "experience": 425,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 140.1999969482422,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "8,500 life points",
+ "slayer-exp": 331.3999938964844,
+ "lifepoints": "8500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dark beast#19,000 life points.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "101",
+ "defence": "75",
+ "slayer-level": "90",
+ "experience": 950,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 313.5,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "19,000 life points",
+ "slayer-exp": 440,
+ "lifepoints": "19000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Dark beast (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dark beast (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "114",
+ "defence": "75",
+ "slayer-level": "90",
+ "experience": 1700,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 561,
+ "max-melee": "1800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1372.800048828125,
+ "lifepoints": "34000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant dark beast",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant dark beast#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"290\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 442.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 146,
+ "max-melee": "1327",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 415.6000061035156,
+ "lifepoints": "8850",
+ "max-ranged": "1327",
+ "max-magic": "1327",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cerberus Juvenile",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cerberus Juvenile#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "138",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 6000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1980,
+ "max-melee": "2570",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 10000,
+ "lifepoints": "120000",
+ "max-ranged": "2011",
+ "max-magic": "2011",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Gargoyle",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Gargoyle#Regular.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"164\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "75",
+ "experience": 335,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 110.5,
+ "max-melee": "268",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Regular",
+ "slayer-exp": 197.39999389648438,
+ "lifepoints": "6700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Gargoyle#Wilderness.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"164\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "75",
+ "experience": 675,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 222.6999969482422,
+ "max-melee": "1080",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Wilderness",
+ "slayer-exp": 197.39999389648438,
+ "lifepoints": "13500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Greater demon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Greater demon#1.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "1",
+ "slayer-exp": 135.39999389648438,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "566",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Greater demon#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "2",
+ "slayer-exp": 135.39999389648438,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "566",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Greater demon#3.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "3",
+ "slayer-exp": 135.39999389648438,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "566",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Greater demon#4.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "4",
+ "slayer-exp": 135.39999389648438,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "566",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Greater demon#5.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "5",
+ "slayer-exp": 135.39999389648438,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "566",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Greater demon ash lord",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Greater demon ash lord#The Zamorakian Undercity.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"250\" id=\"image-?\">",
+ "level": "157",
+ "defence": "110",
+ "slayer-level": "1",
+ "experience": 7000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2310,
+ "max-melee": "1564",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "The Zamorakian Undercity",
+ "slayer-exp": 7150,
+ "lifepoints": "140000",
+ "max-ranged": "1564",
+ "max-magic": "2570",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Greater demon ash lord#Wilderness.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"250\" id=\"image-?\">",
+ "level": "149",
+ "defence": "100",
+ "slayer-level": "1",
+ "experience": 5500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1815,
+ "max-melee": "1564",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Wilderness",
+ "slayer-exp": 7150,
+ "lifepoints": "110000",
+ "max-ranged": "1564",
+ "max-magic": "2570",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Greater demon berserker",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Greater demon berserker#The Zamorakian Undercity.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "166",
+ "defence": "110",
+ "slayer-level": "1",
+ "experience": 7000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2310,
+ "max-melee": "1564",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "The Zamorakian Undercity",
+ "slayer-exp": 7150,
+ "lifepoints": "140000",
+ "max-ranged": "1564",
+ "max-magic": "2570",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Greater demon berserker#Wilderness.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "159",
+ "defence": "104",
+ "slayer-level": "1",
+ "experience": 5500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1815,
+ "max-melee": "2793",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Wilderness",
+ "slayer-exp": 7150,
+ "lifepoints": "110000",
+ "max-ranged": "1564",
+ "max-magic": "1564",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Greater demon brute",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Greater demon brute#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "148",
+ "defence": "107",
+ "slayer-level": "1",
+ "experience": 5000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1650,
+ "max-melee": "2346",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "1564",
+ "max-magic": "1564",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Greater demon pyromancer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Greater demon pyromancer#The Zamorakian Undercity.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "132",
+ "defence": "98",
+ "slayer-level": "1",
+ "experience": 3500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1155,
+ "max-melee": "1564",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "The Zamorakian Undercity",
+ "slayer-exp": -1,
+ "lifepoints": "70000",
+ "max-ranged": "1564",
+ "max-magic": "2011",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Greater demon pyromancer#Wilderness.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "132",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 2500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 825,
+ "max-melee": "1564",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Wilderness",
+ "slayer-exp": -1,
+ "lifepoints": "50000",
+ "max-ranged": "1564",
+ "max-magic": "2011",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Greater demon sage",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Greater demon sage#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "146",
+ "defence": "104",
+ "slayer-level": "1",
+ "experience": 4500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1485,
+ "max-melee": "1564",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1564",
+ "max-magic": "2346",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Greater demon savage",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Greater demon savage#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "133",
+ "defence": "100",
+ "slayer-level": "1",
+ "experience": 4000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1320,
+ "max-melee": "2011",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 8000,
+ "lifepoints": "80000",
+ "max-ranged": "1564",
+ "max-magic": "1564",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Imp",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Imp#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"192\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 10,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 3.299999952316284,
+ "max-melee": "16",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Imp#God Wars Dungeon.png\" decoding=\"async\" loading=\"lazy\" width=\"192\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 10,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 3.299999952316284,
+ "max-melee": "16",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "God Wars Dungeon",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Imp scavenger",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Imp scavenger#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"219\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1650,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 544.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "33000",
+ "max-ranged": "1296",
+ "max-magic": "1296",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "K'ril Tsutsaroth",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/K'ril Tsutsaroth#Hard mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"196\" id=\"image-?\">",
+ "level": "650",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "840",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2000",
+ "name": "Hard mode",
+ "slayer-exp": 3912.39990234375,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "840",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/K'ril Tsutsaroth#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"196\" id=\"image-?\">",
+ "level": "650",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 2750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"
+ ],
+ "lifepoint-exp": 907.5,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "6600",
+ "name": "Normal",
+ "slayer-exp": 2151.800048828125,
+ "lifepoints": "55000",
+ "max-ranged": "0",
+ "max-magic": "1500",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/K'ril Tsutsaroth#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"282\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 2250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 742.5,
+ "max-melee": "840",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2000",
+ "name": "The World Wakes",
+ "slayer-exp": 1804,
+ "lifepoints": "45000",
+ "max-ranged": "0",
+ "max-magic": "840",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Kal'gerion demon (The Shadow Reef)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon (The Shadow Reef)#Bloodchiller.png\" decoding=\"async\" loading=\"lazy\" width=\"167\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Bloodchiller",
+ "slayer-exp": 3404,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon (The Shadow Reef)#Pummeller.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Pummeller",
+ "slayer-exp": 3404,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon (The Shadow Reef)#Riftsplitter.png\" decoding=\"async\" loading=\"lazy\" width=\"173\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Riftsplitter",
+ "slayer-exp": 3404,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon (The Shadow Reef)#Warmonger.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Warmonger",
+ "slayer-exp": 3404,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Lesser demon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Lesser demon#1.png\" decoding=\"async\" loading=\"lazy\" width=\"163\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "480",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Lesser demon#2.png\" decoding=\"async\" loading=\"lazy\" width=\"215\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "480",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Lesser demon#3.png\" decoding=\"async\" loading=\"lazy\" width=\"174\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "480",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Lesser demon#4.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "480",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Lesser demon#5.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "5",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "480",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Revenant demon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant demon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"131\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "1125",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 175,
+ "lifepoints": "7500",
+ "max-ranged": "1125",
+ "max-magic": "1125",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ripper Demon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ripper Demon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"291\" height=\"300\" id=\"image-?\">",
+ "level": "131",
+ "defence": "90",
+ "slayer-level": "96",
+ "experience": 1678.0999755859375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 553.7000122070312,
+ "max-melee": "950",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "32000",
+ "name": "Default",
+ "slayer-exp": 2721.60009765625,
+ "lifepoints": "33563",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Tormented demon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Tormented demon#Standard.png\" decoding=\"async\" loading=\"lazy\" width=\"179\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "950",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Standard",
+ "slayer-exp": 1136,
+ "lifepoints": "20000",
+ "max-ranged": "1150",
+ "max-magic": "1150",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Tormented demon#While Guthix Sleeps.png\" decoding=\"async\" loading=\"lazy\" width=\"149\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "950",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "While Guthix Sleeps",
+ "slayer-exp": 1136,
+ "lifepoints": "20000",
+ "max-ranged": "1150",
+ "max-magic": "1150",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Tstanon Karlak",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Tstanon Karlak#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"286\" height=\"300\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "365",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 272.79998779296875,
+ "lifepoints": "7500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Yor'Ger the Deceiver",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Yor'Ger the Deceiver#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "200",
+ "defence": "72",
+ "slayer-level": "0",
+ "experience": 9000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 2970,
+ "max-melee": "1425",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": 11368,
+ "lifepoints": "180000",
+ "max-ranged": "1425",
+ "max-magic": "1425",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Yor'Ger the Deceiver#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "?",
+ "slayer-level": "0",
+ "experience": -1,
+ "susceptible": [],
+ "lifepoint-exp": -1,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Zakl'n Gritch",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Zakl'n Gritch#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 375,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 150,
+ "lifepoints": "7500",
+ "max-ranged": "365",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Desert Lizard",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Desert Lizard#Green.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"183\" id=\"image-?\">",
+ "level": "30",
+ "defence": "22",
+ "slayer-level": "22",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "440",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Green",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "3600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Desert Lizard#Yellow.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"155\" id=\"image-?\">",
+ "level": "30",
+ "defence": "22",
+ "slayer-level": "22",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "440",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Yellow",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "3600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Desert Lizard#Brown.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"141\" id=\"image-?\">",
+ "level": "30",
+ "defence": "22",
+ "slayer-level": "22",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "440",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Brown",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "3600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Lizard",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Lizard#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"179\" id=\"image-?\">",
+ "level": "40",
+ "defence": "29",
+ "slayer-level": "22",
+ "experience": 232.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 76.69999694824219,
+ "max-melee": "580",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "4650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Small Lizard",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Small Lizard#Green.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"171\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "22",
+ "experience": 132.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Green",
+ "slayer-exp": 9.600000381469727,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Small Lizard#Yellow.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"215\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "22",
+ "experience": 132.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Yellow",
+ "slayer-exp": 9.600000381469727,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Desert strykewyrm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Desert strykewyrm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "103",
+ "defence": "74",
+ "slayer-level": "77",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "710",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "2000",
+ "name": "Default",
+ "slayer-exp": 376.6000061035156,
+ "lifepoints": "10000",
+ "max-ranged": "710",
+ "max-magic": "710",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Baby Dinosaur Skeleton",
+ "variants": []
+ },
+ {
+ "name": "Brutish dinosaur",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Brutish dinosaur#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"282\" id=\"image-?\">",
+ "level": "164",
+ "defence": "80",
+ "slayer-level": "99",
+ "experience": 3500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"
+ ],
+ "lifepoint-exp": 1155,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2757",
+ "name": "Normal",
+ "slayer-exp": 3100,
+ "lifepoints": "70000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Brutish dinosaur#Dinosaur invasion.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"282\" id=\"image-?\">",
+ "level": "164",
+ "defence": "80",
+ "slayer-level": "99",
+ "experience": 3500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"
+ ],
+ "lifepoint-exp": 1155,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2757",
+ "name": "Dinosaur invasion",
+ "slayer-exp": 3100,
+ "lifepoints": "70000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Feral Dinosaur",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Feral Dinosaur#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"187\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "90",
+ "experience": 2250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"
+ ],
+ "lifepoint-exp": 742.5,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal",
+ "slayer-exp": 1810,
+ "lifepoints": "45000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Feral Dinosaur#Dinosaur invasion.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"187\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "N/A",
+ "experience": 2250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 742.5,
+ "max-melee": "1224",
+ "weakness": [],
+ "max-spec": "N/A",
+ "name": "Dinosaur invasion",
+ "slayer-exp": -2,
+ "lifepoints": "45000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Orikalka",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Orikalka#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"255\" id=\"image-?\">",
+ "level": "888",
+ "defence": "96",
+ "slayer-level": "1",
+ "experience": 4750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"
+ ],
+ "lifepoint-exp": 1567.5,
+ "max-melee": "3129",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "4500",
+ "name": "Default",
+ "slayer-exp": 4500,
+ "lifepoints": "190000",
+ "max-ranged": "0",
+ "max-magic": "4500",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Osseous",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Osseous#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"283\" id=\"image-?\">",
+ "level": "888",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 17500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 5775,
+ "max-melee": "?",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Necromancy\" title=\"Necromancy\" target=\"_blank\"><img src=\"./images/weakness/s/Necromancy-icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "5100",
+ "name": "Default",
+ "slayer-exp": 394,
+ "lifepoints": "350000",
+ "max-ranged": "?",
+ "max-magic": "0",
+ "max-necromancy": "3129"
+ }]
+ },
+ {
+ "name": "Pthentraken",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Pthentraken#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"282\" id=\"image-?\">",
+ "level": "888",
+ "defence": "96",
+ "slayer-level": "1",
+ "experience": 4750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"
+ ],
+ "lifepoint-exp": 1567.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "5500",
+ "name": "Default",
+ "slayer-exp": 4545,
+ "lifepoints": "190000",
+ "max-ranged": "3500",
+ "max-magic": "3129",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Rathis",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Rathis#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"244\" id=\"image-?\">",
+ "level": "888",
+ "defence": "96",
+ "slayer-level": "1",
+ "experience": 4750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"
+ ],
+ "lifepoint-exp": 1567.5,
+ "max-melee": "3129",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "4500",
+ "name": "Default",
+ "slayer-exp": 4545,
+ "lifepoints": "190000",
+ "max-ranged": "3500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ripper dinosaur",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ripper dinosaur#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"208\" id=\"image-?\">",
+ "level": "176",
+ "defence": "80",
+ "slayer-level": "114",
+ "experience": 3250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "lifepoint-exp": 1072.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal",
+ "slayer-exp": 1904,
+ "lifepoints": "65000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ripper dinosaur#Dinosaur invasion.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"208\" id=\"image-?\">",
+ "level": "176",
+ "defence": "80",
+ "slayer-level": "N/A",
+ "experience": 3250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "lifepoint-exp": 1072.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Dinosaur invasion",
+ "slayer-exp": -2,
+ "lifepoints": "65000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Venomous dinosaur",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Venomous dinosaur#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"173\" id=\"image-?\">",
+ "level": "172",
+ "defence": "80",
+ "slayer-level": "105",
+ "experience": 1750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"
+ ],
+ "lifepoint-exp": 577.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal",
+ "slayer-exp": 1332,
+ "lifepoints": "35000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Venomous dinosaur#Dinosaur invasion.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"173\" id=\"image-?\">",
+ "level": "172",
+ "defence": "80",
+ "slayer-level": "N/A",
+ "experience": 1750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "lifepoint-exp": 577.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Dinosaur invasion",
+ "slayer-exp": -2,
+ "lifepoints": "35000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Guard dog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Guard dog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"275\" height=\"300\" id=\"image-?\">",
+ "level": "33",
+ "defence": "24",
+ "slayer-level": "1",
+ "experience": 60,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 19.799999237060547,
+ "max-melee": "96",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 13.399999618530273,
+ "lifepoints": "1200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Jackal",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Jackal#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"203\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "1",
+ "experience": 175,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 57.70000076293945,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 43.20000076293945,
+ "lifepoints": "3500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Shadow Hound",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Shadow Hound#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"288\" id=\"image-?\">",
+ "level": "67",
+ "defence": "48",
+ "slayer-level": "1",
+ "experience": 120,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 39.599998474121094,
+ "max-melee": "192",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 39.400001525878906,
+ "lifepoints": "2400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Wild dog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wild dog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"270\" height=\"300\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": [],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 14,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Baby red dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Baby red dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"233\" height=\"300\" id=\"image-?\">",
+ "level": "47",
+ "defence": "34",
+ "slayer-level": "1",
+ "experience": 85,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28,
+ "max-melee": "136",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 20.600000381469727,
+ "lifepoints": "1700",
+ "max-ranged": "0",
+ "max-magic": "136",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Black stone dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Black stone dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"156\" id=\"image-?\">",
+ "level": "2500",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 16250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"
+ ],
+ "lifepoint-exp": 5362.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4000",
+ "name": "Default",
+ "slayer-exp": 37600,
+ "lifepoints": "650000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Brutal green dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Brutal green dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"219\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1250",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1500",
+ "name": "Default",
+ "slayer-exp": 440,
+ "lifepoints": "15000",
+ "max-ranged": "0",
+ "max-magic": "1250",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dragonstone dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dragonstone dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"231\" id=\"image-?\">",
+ "level": "119",
+ "defence": "85",
+ "slayer-level": "95",
+ "experience": 2000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 660,
+ "max-melee": "1561",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1561",
+ "name": "Default",
+ "slayer-exp": 1448.4000244140625,
+ "lifepoints": "40000",
+ "max-ranged": "0",
+ "max-magic": "1561",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dragonstone dragon (Dragonkin Laboratory)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dragonstone dragon (Dragonkin Laboratory)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"231\" id=\"image-?\">",
+ "level": "111",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 2750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 907.5,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 5100,
+ "lifepoints": "55000",
+ "max-ranged": "1224",
+ "max-magic": "1224",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Green dragon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Green dragon#1.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"255\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "297",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "1",
+ "slayer-exp": 68.5999984741211,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "297",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Green dragon#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"259\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "297",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "2",
+ "slayer-exp": 68.5999984741211,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "297",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Green dragon#3.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"232\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "297",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "3",
+ "slayer-exp": 68.5999984741211,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "297",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Green dragon#4.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"299\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "297",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "4",
+ "slayer-exp": 68.5999984741211,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "297",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Green dragon#5.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"224\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "297",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "5",
+ "slayer-exp": 68.5999984741211,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "297",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Hydrix dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hydrix dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "133",
+ "defence": "95",
+ "slayer-level": "101",
+ "experience": 3000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 990,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3900",
+ "name": "Default",
+ "slayer-exp": 4768.7998046875,
+ "lifepoints": "60000",
+ "max-ranged": "0",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hydrix dragon (Dragonkin Laboratory)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hydrix dragon (Dragonkin Laboratory)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "118",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 3750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1237.5,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3900",
+ "name": "Default",
+ "slayer-exp": 17000,
+ "lifepoints": "75000",
+ "max-ranged": "1745",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Iron dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Iron dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"222\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "488",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 245,
+ "lifepoints": "7500",
+ "max-ranged": "0",
+ "max-magic": "488",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mithril dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mithril dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"265\" id=\"image-?\">",
+ "level": "112",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 890,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 293.70001220703125,
+ "max-melee": "1068",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2700",
+ "name": "Default",
+ "slayer-exp": 564.4000244140625,
+ "lifepoints": "17800",
+ "max-ranged": "1068",
+ "max-magic": "1068",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Nodon artificer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nodon artificer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"241\" id=\"image-?\">",
+ "level": "120",
+ "defence": "94",
+ "slayer-level": "92",
+ "experience": 1500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 495,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1598",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Nodon engineer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nodon engineer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"209\" id=\"image-?\">",
+ "level": "150",
+ "defence": "95",
+ "slayer-level": "92",
+ "experience": 6250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2062.5,
+ "max-melee": "1506",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 2769,
+ "lifepoints": "50000",
+ "max-ranged": "1506",
+ "max-magic": "1506",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Nodon guard",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nodon guard#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"248\" id=\"image-?\">",
+ "level": "120",
+ "defence": "94",
+ "slayer-level": "92",
+ "experience": 1500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 495,
+ "max-melee": "1598",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Nodon hunter",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nodon hunter#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"263\" id=\"image-?\">",
+ "level": "120",
+ "defence": "94",
+ "slayer-level": "92",
+ "experience": 1500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 495,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "30000",
+ "max-ranged": "1598",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Onyx dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Onyx dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"187\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "98",
+ "experience": 2500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 825,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1653.8",
+ "name": "Default",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Onyx dragon (Dragonkin Laboratory)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Onyx dragon (Dragonkin Laboratory)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"187\" id=\"image-?\">",
+ "level": "114",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 3000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 990,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 6050,
+ "lifepoints": "60000",
+ "max-ranged": "1296",
+ "max-magic": "1296",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Red dragon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Red dragon#1.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"252\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "396",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "396",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Red dragon#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "396",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "396",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Red dragon#3.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"226\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "396",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "396",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Red dragon#4.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"262\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "396",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "396",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Red dragon#5.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"235\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "396",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "5",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "396",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Red dragon (Dragonkin Laboratory)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Red dragon (Dragonkin Laboratory)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"271\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 1450,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 478.5,
+ "max-melee": "1080",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 1227,
+ "lifepoints": "29000",
+ "max-ranged": "1080",
+ "max-magic": "1080",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Rune dragon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Rune dragon#Armoured.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"234\" id=\"image-?\">",
+ "level": "127",
+ "defence": "90",
+ "slayer-level": "76",
+ "experience": 3412.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1126.0999755859375,
+ "max-melee": "1820",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "10000",
+ "name": "Armoured",
+ "slayer-exp": 2051,
+ "lifepoints": "68250",
+ "max-ranged": "1820",
+ "max-magic": "1820",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Rune dragon#Unarmoured.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "127",
+ "defence": "90",
+ "slayer-level": "76",
+ "experience": 3412.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1126.0999755859375,
+ "max-melee": "1820",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "10000",
+ "name": "Unarmoured",
+ "slayer-exp": 2051,
+ "lifepoints": "68250",
+ "max-ranged": "1820",
+ "max-magic": "1820",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Sangri the Red",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Sangri the Red#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"271\" id=\"image-?\">",
+ "level": "131",
+ "defence": "94",
+ "slayer-level": "1",
+ "experience": 8750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2887.5,
+ "max-melee": "1353",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4000",
+ "name": "Default",
+ "slayer-exp": 14077,
+ "lifepoints": "175000",
+ "max-ranged": "1353",
+ "max-magic": "1353",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Siege engine",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Siege engine#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"181\" id=\"image-?\">",
+ "level": "150",
+ "defence": "90",
+ "slayer-level": "92",
+ "experience": 2400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 792,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1505,
+ "lifepoints": "30000",
+ "max-ranged": "1653",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Steel dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Steel dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"264\" id=\"image-?\">",
+ "level": "100",
+ "defence": "72",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 165,
+ "max-melee": "508",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2100",
+ "name": "Default",
+ "slayer-exp": 350,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "508",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dust devil",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dust devil#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"175\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "61",
+ "slayer-level": "65",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 192.8000030517578,
+ "lifepoints": "8000",
+ "max-ranged": "244",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dust devil (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dust devil (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"175\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "61",
+ "slayer-level": "65",
+ "experience": 1600,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 528,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 684,
+ "lifepoints": "32000",
+ "max-ranged": "732",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Earth warrior",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Earth warrior#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "61",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 482.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 159.1999969482422,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 57.5,
+ "lifepoints": "9650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Earth warrior (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Earth warrior (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 1630,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 537.9000244140625,
+ "max-melee": "800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 295,
+ "lifepoints": "32600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cadarn magus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cadarn magus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"171\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1791",
+ "name": "Default",
+ "slayer-exp": 608,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "1083",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cadarn ranger",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cadarn ranger#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"141\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "1300",
+ "name": "Default",
+ "slayer-exp": 608,
+ "lifepoints": "10000",
+ "max-ranged": "1083",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Elf warrior",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Elf warrior#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 49.5,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee",
+ "slayer-exp": 73.5999984741211,
+ "lifepoints": "3000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Elf warrior#Range.png\" decoding=\"async\" loading=\"lazy\" width=\"126\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 160,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 52.79999923706055,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Range",
+ "slayer-exp": 89.4000015258789,
+ "lifepoints": "3200",
+ "max-ranged": "256",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Iorwerth guard",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Iorwerth guard#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"90\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "1899",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 608,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Iorwerth scout",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Iorwerth scout#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"107\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 608,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Knight of Ardougne (West Ardougne)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Knight of Ardougne (West Ardougne)#Surface.png\" decoding=\"async\" loading=\"lazy\" width=\"173\" height=\"300\" id=\"image-?\">",
+ "level": "33",
+ "defence": "24",
+ "slayer-level": "1",
+ "experience": 80,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 26.399999618530273,
+ "max-melee": "96",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Surface",
+ "slayer-exp": 0,
+ "lifepoints": "1200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Knight of Ardougne (West Ardougne)#Mourner Tunnels.png\" decoding=\"async\" loading=\"lazy\" width=\"173\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 203.3000030517578,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 67,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Mourner Tunnels",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Mourner (Mourner Tunnels)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mourner (Mourner Tunnels)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"221\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 81,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Seren archer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Seren archer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"192\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 334.20001220703125,
+ "lifepoints": "8000",
+ "max-ranged": "980",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Seren mage",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Seren mage#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"161\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 334.20001220703125,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "980",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Seren warrior",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Seren warrior#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"191\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "980",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 334.20001220703125,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Fetid zombie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Fetid zombie#1.png\" decoding=\"async\" loading=\"lazy\" width=\"128\" height=\"300\" id=\"image-?\">",
+ "level": "66",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "480",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 100,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Fetid zombie#2.png\" decoding=\"async\" loading=\"lazy\" width=\"130\" height=\"300\" id=\"image-?\">",
+ "level": "66",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "480",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 100,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Fever spider",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Fever spider#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"202\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "42",
+ "experience": 210,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 69.30000305175781,
+ "max-melee": "740",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "4200",
+ "max-ranged": "840",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Fire giant",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Fire giant#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"127\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 335,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 110.5,
+ "max-melee": "335",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 161.1999969482422,
+ "lifepoints": "6700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Flesh Crawler",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Flesh Crawler#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"262\" id=\"image-?\">",
+ "level": "26",
+ "defence": "22",
+ "slayer-level": "1",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 50,
+ "lifepoints": "3600",
+ "max-ranged": "320",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Big frog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Big frog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"140\" id=\"image-?\">",
+ "level": "18",
+ "defence": "20",
+ "slayer-level": "1",
+ "experience": 165,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 54.400001525878906,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 14.399999618530273,
+ "lifepoints": "3300",
+ "max-ranged": "120",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Frog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Frog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"265\" id=\"image-?\">",
+ "level": "67",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 235,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 77.5,
+ "max-melee": "800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "4700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Frogeel",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Frogeel#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"160\" id=\"image-?\">",
+ "level": "68",
+ "defence": "49",
+ "slayer-level": "1",
+ "experience": 410,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 135.3000030517578,
+ "max-melee": "720",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 41.400001525878906,
+ "lifepoints": "8200",
+ "max-ranged": "980",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant frog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Giant frog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"140\" id=\"image-?\">",
+ "level": "33",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 255,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 84.0999984741211,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 18.799999237060547,
+ "lifepoints": "5100",
+ "max-ranged": "300",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Plague frog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Plague frog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"253\" id=\"image-?\">",
+ "level": "17",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 19.200000762939453,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Swamp frog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Swamp frog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"140\" id=\"image-?\">",
+ "level": "11",
+ "defence": "12",
+ "slayer-level": "1",
+ "experience": 55,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 18.100000381469727,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 10,
+ "lifepoints": "1100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Fungal mage",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Fungal mage#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"204\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 63.599998474121094,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "232",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Fungal mage#Weakened.png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Weakened",
+ "slayer-exp": 63.599998474121094,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "116",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ganodermic beast",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ganodermic beast#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"282\" height=\"300\" id=\"image-?\">",
+ "level": "112",
+ "defence": "70",
+ "slayer-level": "95",
+ "experience": 625,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 565,
+ "lifepoints": "12500",
+ "max-ranged": "0",
+ "max-magic": "332",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ganodermic beast#Neem oil.png\" decoding=\"async\" loading=\"lazy\" width=\"255\" height=\"300\" id=\"image-?\">",
+ "level": "112",
+ "defence": "60",
+ "slayer-level": "95",
+ "experience": 625,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Neem oil",
+ "slayer-exp": 565,
+ "lifepoints": "12500",
+ "max-ranged": "0",
+ "max-magic": "166",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ganodermic runt",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ganodermic runt#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"297\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "95",
+ "experience": 625,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 564.4000244140625,
+ "lifepoints": "12500",
+ "max-ranged": "332",
+ "max-magic": "332",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ganodermic runt#Neem oil.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"268\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "95",
+ "experience": 625,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Neem oil",
+ "slayer-exp": 564.4000244140625,
+ "lifepoints": "12500",
+ "max-ranged": "166",
+ "max-magic": "166",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Gelatinous abomination",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Gelatinous abomination#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"164\" height=\"300\" id=\"image-?\">",
+ "level": "2",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 25,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 8.199999809265137,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 19,
+ "lifepoints": "500",
+ "max-ranged": "0",
+ "max-magic": "60",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ahrim the Blighted",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ahrim the Blighted#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"195\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 395,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "1260",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ahrim the Blighted#Rise of the Six.png\" decoding=\"async\" loading=\"lazy\" width=\"271\" height=\"300\" id=\"image-?\">",
+ "level": "650",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 412.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Rise of the Six",
+ "slayer-exp": 0,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "864",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ahrim the Blighted#Ritual of the Mahjarrat.png\" decoding=\"async\" loading=\"lazy\" width=\"195\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 412.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ritual of the Mahjarrat",
+ "slayer-exp": 395,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "864",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Akrisae the Doomed",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Akrisae the Doomed#Barrows.png\" decoding=\"async\" loading=\"lazy\" width=\"199\" height=\"300\" id=\"image-?\">",
+ "level": "115",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Barrows",
+ "slayer-exp": -1,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "2167",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Akrisae the Doomed#Gregorovic.png\" decoding=\"async\" loading=\"lazy\" width=\"199\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Gregorovic",
+ "slayer-exp": -1,
+ "lifepoints": "1000000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Akrisae the Doomed#Sliske's Endgame.png\" decoding=\"async\" loading=\"lazy\" width=\"199\" height=\"300\" id=\"image-?\">",
+ "level": "650",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": -1,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": -1,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Sliske's Endgame",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Dharok the Wretched",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Dharok the Wretched#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"143\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "1260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3150",
+ "name": "Normal",
+ "slayer-exp": 395,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dharok the Wretched#Ritual of the Mahjarrat.png\" decoding=\"async\" loading=\"lazy\" width=\"143\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3150",
+ "name": "Ritual of the Mahjarrat",
+ "slayer-exp": 395,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dharok the Wretched#Rise of the Six.png\" decoding=\"async\" loading=\"lazy\" width=\"228\" height=\"300\" id=\"image-?\">",
+ "level": "650",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3150",
+ "name": "Rise of the Six",
+ "slayer-exp": 0,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ghast",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ghast#Regular.png\" decoding=\"async\" loading=\"lazy\" width=\"275\" height=\"300\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "150",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Regular",
+ "slayer-exp": -1,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghast#Temple Trekking (Easy Route).png\" decoding=\"async\" loading=\"lazy\" width=\"275\" height=\"300\" id=\"image-?\">",
+ "level": "28",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": -1,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": -1,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Temple Trekking (Easy Route)",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghast#Temple Trekking (Medium Route).png\" decoding=\"async\" loading=\"lazy\" width=\"275\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": -1,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": -1,
+ "max-melee": "180",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Temple Trekking (Medium Route)",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghast#Temple Trekking (Hard Route).png\" decoding=\"async\" loading=\"lazy\" width=\"275\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": -1,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": -1,
+ "max-melee": "260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Temple Trekking (Hard Route)",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ghost",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ghost#1.png\" decoding=\"async\" loading=\"lazy\" width=\"182\" height=\"300\" id=\"image-?\">",
+ "level": "25",
+ "defence": "18",
+ "slayer-level": "1",
+ "experience": 59.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19.600000381469727,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 10,
+ "lifepoints": "900",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost#2.png\" decoding=\"async\" loading=\"lazy\" width=\"133\" height=\"300\" id=\"image-?\">",
+ "level": "25",
+ "defence": "18",
+ "slayer-level": "1",
+ "experience": 59.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19.600000381469727,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 10,
+ "lifepoints": "900",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost#3.png\" decoding=\"async\" loading=\"lazy\" width=\"182\" height=\"300\" id=\"image-?\">",
+ "level": "25",
+ "defence": "18",
+ "slayer-level": "1",
+ "experience": 59.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19.600000381469727,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 10,
+ "lifepoints": "900",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost#4.png\" decoding=\"async\" loading=\"lazy\" width=\"126\" height=\"300\" id=\"image-?\">",
+ "level": "25",
+ "defence": "18",
+ "slayer-level": "1",
+ "experience": 59.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19.600000381469727,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": 10,
+ "lifepoints": "900",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost#5.png\" decoding=\"async\" loading=\"lazy\" width=\"132\" height=\"300\" id=\"image-?\">",
+ "level": "25",
+ "defence": "18",
+ "slayer-level": "1",
+ "experience": 59.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19.600000381469727,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "5",
+ "slayer-exp": 10,
+ "lifepoints": "900",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost#6.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "25",
+ "defence": "18",
+ "slayer-level": "1",
+ "experience": 59.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19.600000381469727,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "6",
+ "slayer-exp": 10,
+ "lifepoints": "900",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost#7.png\" decoding=\"async\" loading=\"lazy\" width=\"115\" height=\"300\" id=\"image-?\">",
+ "level": "25",
+ "defence": "18",
+ "slayer-level": "1",
+ "experience": 59.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19.600000381469727,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "7",
+ "slayer-exp": 10,
+ "lifepoints": "900",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ghost (Abandoned Mine)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ghost (Abandoned Mine)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "42",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": -1,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": -1,
+ "max-melee": "120",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ghost (Ourania Runecrafting Altar)",
+ "variants": []
+ },
+ {
+ "name": "Ghost (Shattered Worlds)",
+ "variants": []
+ },
+ {
+ "name": "Ghost (Spirit of Summer)",
+ "variants": []
+ },
+ {
+ "name": "Ghost (Stronghold of Security)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ghost (Stronghold of Security)#1.png\" decoding=\"async\" loading=\"lazy\" width=\"150\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 265,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 87.4000015258789,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 69,
+ "lifepoints": "5300",
+ "max-ranged": "0",
+ "max-magic": "825",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost (Stronghold of Security)#2.png\" decoding=\"async\" loading=\"lazy\" width=\"133\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 265,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 87.4000015258789,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 69,
+ "lifepoints": "5300",
+ "max-ranged": "0",
+ "max-magic": "825",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost (Stronghold of Security)#3.png\" decoding=\"async\" loading=\"lazy\" width=\"115\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 265,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 87.4000015258789,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 69,
+ "lifepoints": "5300",
+ "max-ranged": "0",
+ "max-magic": "825",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost (Stronghold of Security)#4.png\" decoding=\"async\" loading=\"lazy\" width=\"126\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 265,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 87.4000015258789,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": 69,
+ "lifepoints": "5300",
+ "max-ranged": "0",
+ "max-magic": "825",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost (Stronghold of Security)#5.png\" decoding=\"async\" loading=\"lazy\" width=\"133\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 265,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 87.4000015258789,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "5",
+ "slayer-exp": 69,
+ "lifepoints": "5300",
+ "max-ranged": "0",
+ "max-magic": "825",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ghost healer",
+ "variants": []
+ },
+ {
+ "name": "Ghostly troll bruiser",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ghostly troll bruiser#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 20.799999237060547,
+ "lifepoints": "1800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ghostly troll thrower",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ghostly troll thrower#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"242\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 20.799999237060547,
+ "lifepoints": "1800",
+ "max-ranged": "100",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ghostly warrior",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ghostly warrior#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"133\" height=\"300\" id=\"image-?\">",
+ "level": "61",
+ "defence": "44",
+ "slayer-level": "1",
+ "experience": 110,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 36.29999923706055,
+ "max-melee": "176",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 32.599998474121094,
+ "lifepoints": "2200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Guthan the Infested",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Guthan the Infested#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"102\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 881.4000244140625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 290.79998779296875,
+ "max-melee": "1260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 395,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Guthan the Infested#Ritual of the Mahjarrat.png\" decoding=\"async\" loading=\"lazy\" width=\"102\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ritual of the Mahjarrat",
+ "slayer-exp": -1,
+ "lifepoints": "3750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Guthan the Infested#Rise of the Six.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"276\" id=\"image-?\">",
+ "level": "650",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 7149.60009765625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 2359.300048828125,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Rise of the Six",
+ "slayer-exp": 0,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Karil the Tainted",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Karil the Tainted#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"161\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 395,
+ "lifepoints": "12000",
+ "max-ranged": "1260",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Karil the Tainted#Rise of the Six.png\" decoding=\"async\" loading=\"lazy\" width=\"270\" height=\"300\" id=\"image-?\">",
+ "level": "650",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 412.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "8000",
+ "name": "Rise of the Six",
+ "slayer-exp": 0,
+ "lifepoints": "50000",
+ "max-ranged": "864",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Linza the Disgraced",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Linza the Disgraced#Barrows.png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 3750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 1237.5,
+ "max-melee": "1200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Barrows",
+ "slayer-exp": 440,
+ "lifepoints": "150000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Linza the Disgraced#Sliske's Endgame.png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Sliske's Endgame",
+ "slayer-exp": -1,
+ "lifepoints": "150000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Masuta the Descended",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Masuta the Descended#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"205\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "85",
+ "slayer-level": "?",
+ "experience": 9750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 3217.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "195000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant cyclops",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant cyclops#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"117\" height=\"300\" id=\"image-?\">",
+ "level": "60",
+ "defence": "43",
+ "slayer-level": "1",
+ "experience": 322.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 106.4000015258789,
+ "max-melee": "967",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 93.19999694824219,
+ "lifepoints": "6450",
+ "max-ranged": "967",
+ "max-magic": "967",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"161\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 517.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 170.6999969482422,
+ "max-melee": "1552",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 712.4000244140625,
+ "lifepoints": "10350",
+ "max-ranged": "1552",
+ "max-magic": "1552",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant goblin",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Revenant goblin#16.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"294\" id=\"image-?\">",
+ "level": "16",
+ "defence": "12",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "270",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "16",
+ "slayer-exp": 27.799999237060547,
+ "lifepoints": "1800",
+ "max-ranged": "270",
+ "max-magic": "270",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Revenant goblin#19.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"294\" id=\"image-?\">",
+ "level": "19",
+ "defence": "20",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 49.5,
+ "max-melee": "450",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "19",
+ "slayer-exp": 28.399999618530273,
+ "lifepoints": "3000",
+ "max-ranged": "450",
+ "max-magic": "450",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Revenant goblin#22.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"294\" id=\"image-?\">",
+ "level": "22",
+ "defence": "20",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 49.5,
+ "max-melee": "450",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "22",
+ "slayer-exp": 29.600000381469727,
+ "lifepoints": "3000",
+ "max-ranged": "450",
+ "max-magic": "450",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Revenant goblin#28.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"294\" id=\"image-?\">",
+ "level": "28",
+ "defence": "20",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 49.5,
+ "max-melee": "450",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "28",
+ "slayer-exp": 34.599998474121094,
+ "lifepoints": "3000",
+ "max-ranged": "450",
+ "max-magic": "450",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Revenant hellhound",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant hellhound#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 352.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 116.30000305175781,
+ "max-melee": "1057",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 122.19999694824219,
+ "lifepoints": "7050",
+ "max-ranged": "1057",
+ "max-magic": "1057",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant hobgoblin",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant hobgoblin#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"162\" height=\"300\" id=\"image-?\">",
+ "level": "44",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 240,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 79.19999694824219,
+ "max-melee": "720",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 56.599998474121094,
+ "lifepoints": "4800",
+ "max-ranged": "720",
+ "max-magic": "720",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant icefiend",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant icefiend#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"194\" height=\"300\" id=\"image-?\">",
+ "level": "37",
+ "defence": "27",
+ "slayer-level": "1",
+ "experience": 202.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 66.80000305175781,
+ "max-melee": "607",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 45.599998474121094,
+ "lifepoints": "4050",
+ "max-ranged": "607",
+ "max-magic": "607",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant imp",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant imp#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"273\" height=\"300\" id=\"image-?\">",
+ "level": "14",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 75,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 24.700000762939453,
+ "max-melee": "225",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 25,
+ "lifepoints": "1500",
+ "max-ranged": "225",
+ "max-magic": "225",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant knight",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant knight#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"161\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 487.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 160.8000030517578,
+ "max-melee": "1462",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 552.7999877929688,
+ "lifepoints": "9750",
+ "max-ranged": "1462",
+ "max-magic": "1462",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant ork",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant ork#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"174\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 412.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 136.10000610351562,
+ "max-melee": "1237",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 269.20001220703125,
+ "lifepoints": "8250",
+ "max-ranged": "1237",
+ "max-magic": "1237",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant pyrefiend",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant pyrefiend#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"199\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "29",
+ "slayer-level": "1",
+ "experience": 217.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 71.69999694824219,
+ "max-melee": "652",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 50.20000076293945,
+ "lifepoints": "4350",
+ "max-ranged": "652",
+ "max-magic": "652",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant vampyre",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant vampyre#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"163\" height=\"300\" id=\"image-?\">",
+ "level": "47",
+ "defence": "34",
+ "slayer-level": "1",
+ "experience": 255,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 84.0999984741211,
+ "max-melee": "765",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 62.20000076293945,
+ "lifepoints": "5100",
+ "max-ranged": "765",
+ "max-magic": "765",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant werewolf",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant werewolf#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"171\" height=\"300\" id=\"image-?\">",
+ "level": "53",
+ "defence": "38",
+ "slayer-level": "1",
+ "experience": 285,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 94,
+ "max-melee": "855",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 74.4000015258789,
+ "lifepoints": "5700",
+ "max-ranged": "855",
+ "max-magic": "855",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Risen ghost",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Risen ghost#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"196\" height=\"300\" id=\"image-?\">",
+ "level": "101",
+ "defence": "70",
+ "slayer-level": "85",
+ "experience": 1500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 495,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1000,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1117",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Shade",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Shade#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"135\" height=\"300\" id=\"image-?\">",
+ "level": "52",
+ "defence": "44",
+ "slayer-level": "1",
+ "experience": 362.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 119.5999984741211,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 70,
+ "lifepoints": "7250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Shadow warrior",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Shadow warrior#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"107\" height=\"300\" id=\"image-?\">",
+ "level": "65",
+ "defence": "47",
+ "slayer-level": "1",
+ "experience": 390,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 128.6999969482422,
+ "max-melee": "940",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 113,
+ "lifepoints": "7800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Torag the Corrupted",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Torag the Corrupted#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"149\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "1260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Normal",
+ "slayer-exp": 395,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Torag the Corrupted#Rise of the Six.png\" decoding=\"async\" loading=\"lazy\" width=\"179\" height=\"300\" id=\"image-?\">",
+ "level": "650",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Rise of the Six",
+ "slayer-exp": 0,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Tormented soul (Uncharted Isles)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Tormented soul (Uncharted Isles)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"150\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "268",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 98.5999984741211,
+ "lifepoints": "1000",
+ "max-ranged": "268",
+ "max-magic": "268",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Tormented wraith",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Tormented wraith#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"117\" height=\"300\" id=\"image-?\">",
+ "level": "42",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "270",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 52,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "120",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Tortured soul (Port Phasmatys)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Tortured soul (Port Phasmatys)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "53",
+ "defence": "38",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 49.5,
+ "max-melee": "114",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 38.79999923706055,
+ "lifepoints": "3000",
+ "max-ranged": "0",
+ "max-magic": "152",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Verac the Defiled",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Verac the Defiled#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "1260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": -1,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Verac the Defiled#Rise of the Six.png\" decoding=\"async\" loading=\"lazy\" width=\"166\" height=\"300\" id=\"image-?\">",
+ "level": "650",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Rise of the Six",
+ "slayer-exp": 0,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Wight",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wight#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"218\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 132,
+ "max-melee": "980",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Wight (Missing, Presumed Death)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wight (Missing, Presumed Death)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 17.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 5.699999809265137,
+ "max-melee": "25",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "350",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Wight ranger",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wight ranger#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"194\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 132,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "8000",
+ "max-ranged": "980",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Wight ranger (Sliske's Endgame)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Wight ranger (Sliske's Endgame)#78.png\" decoding=\"async\" loading=\"lazy\" width=\"212\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": 206.25,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 68,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "78",
+ "slayer-exp": -1,
+ "lifepoints": "4125",
+ "max-ranged": "192",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Wight ranger (Sliske's Endgame)#78 (Weak in slash).png\" decoding=\"async\" loading=\"lazy\" width=\"212\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": 206.25,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 68,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "78 (Weak in slash)",
+ "slayer-exp": -1,
+ "lifepoints": "4125",
+ "max-ranged": "1676.3",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Wight ranger (Sliske's Endgame)#85.png\" decoding=\"async\" loading=\"lazy\" width=\"212\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": 206.25,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 68,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "85",
+ "slayer-exp": -1,
+ "lifepoints": "4125",
+ "max-ranged": "384",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Ghoul",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ghoul#Brown.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "50",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 325,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 107.19999694824219,
+ "max-melee": "620",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Brown",
+ "slayer-exp": 35.79999923706055,
+ "lifepoints": "6500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghoul#Blue.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "50",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 325,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 107.19999694824219,
+ "max-melee": "620",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Blue",
+ "slayer-exp": 35.79999923706055,
+ "lifepoints": "6500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ghoul (Paterdomus)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ghoul (Paterdomus)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "33",
+ "defence": "24",
+ "slayer-level": "1",
+ "experience": 60,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 19.799999237060547,
+ "max-melee": "96",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "1200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ravenous ghoul",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ravenous ghoul#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"257\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 725,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 239.1999969482422,
+ "max-melee": "595",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 440,
+ "lifepoints": "14500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ravenous ghoul (Mazchna)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ravenous ghoul (Mazchna)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 475,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 156.6999969482422,
+ "max-melee": "480",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 440,
+ "lifepoints": "9500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Arch-Glacor",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Arch-Glacor#Hard mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"233\" id=\"image-?\">",
+ "level": "7000",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 1625,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 536.2000122070312,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "32000",
+ "name": "Hard mode",
+ "slayer-exp": 4810,
+ "lifepoints": "65000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Arch-Glacor#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"233\" id=\"image-?\">",
+ "level": "7000",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 1625,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 536.2000122070312,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "32000",
+ "name": "Normal mode",
+ "slayer-exp": 4810,
+ "lifepoints": "65000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Bolstered Glacyte",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bolstered Glacyte#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"269\" height=\"300\" id=\"image-?\">",
+ "level": "131",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "950",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "1250",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Enduring glacyte",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Enduring glacyte#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"298\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 333.29998779296875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 109.9000015258789,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 0,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Glacor",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Glacor#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"265\" height=\"300\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 2000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 660,
+ "max-melee": "1266",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "Varies",
+ "name": "Default",
+ "slayer-exp": 1881,
+ "lifepoints": "40000",
+ "max-ranged": "1266",
+ "max-magic": "1266",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Glacyte",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Glacyte#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"269\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "80",
+ "slayer-level": "84",
+ "experience": 250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 82.5,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee",
+ "slayer-exp": 182,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Glacyte#Magic.png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "80",
+ "slayer-level": "84",
+ "experience": 250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 82.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic",
+ "slayer-exp": 182,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Glacyte (Arch-Glacor)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Glacyte (Arch-Glacor)#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"269\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee",
+ "slayer-exp": -1,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Glacyte (Arch-Glacor)#Magic.png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 82.5,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic",
+ "slayer-exp": -1,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Sapping glacyte",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Sapping glacyte#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"296\" id=\"image-?\">",
+ "level": "114",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 333.29998779296875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 109.9000015258789,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 0,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Unstable glacyte",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Unstable glacyte#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"289\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 333.29998779296875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 109.9000015258789,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "Varies",
+ "name": "Default",
+ "slayer-exp": 0,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Angry goblin",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Angry goblin#A Soul's Bane.png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "45",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "A Soul's Bane",
+ "slayer-exp": 0,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Angry goblin#Post-quest.png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Post-quest",
+ "slayer-exp": 14,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Brokeface",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Brokeface#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"198\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "150",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cave goblin (monster)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cave goblin (monster)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"172\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 2.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0.800000011920929,
+ "max-melee": "4",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "50",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cave goblin guard",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Cave goblin guard#Club.png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "60",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Club",
+ "slayer-exp": 9.600000381469727,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cave goblin guard#Spear.png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "60",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Spear",
+ "slayer-exp": 9.600000381469727,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Cave goblin miner",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Cave goblin miner#Mining.png\" decoding=\"async\" loading=\"lazy\" width=\"208\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": [],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Mining",
+ "slayer-exp": 6.800000190734863,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cave goblin miner#Slacking off.png\" decoding=\"async\" loading=\"lazy\" width=\"208\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": [],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Slacking off",
+ "slayer-exp": 6.800000190734863,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Goblin",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Goblin#Level 2.png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "2",
+ "defence": "2",
+ "slayer-level": "1",
+ "experience": 27.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 9,
+ "max-melee": "40",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Level 2",
+ "slayer-exp": -1,
+ "lifepoints": "550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin#Level 5.png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Level 5",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin#Level 11.png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "11",
+ "defence": "8",
+ "slayer-level": "1",
+ "experience": 87.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "160",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Level 11",
+ "slayer-exp": -1,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin#Level 1 (Slayer challenge).png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 2.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0.800000011920929,
+ "max-melee": "4",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Level 1 (Slayer challenge)",
+ "slayer-exp": -1,
+ "lifepoints": "50",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin#Level 5 (Slayer challenge).png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 10,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3.299999952316284,
+ "max-melee": "16",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Level 5 (Slayer challenge)",
+ "slayer-exp": -1,
+ "lifepoints": "200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin#Level 11 (Slayer challenge).png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "11",
+ "defence": "8",
+ "slayer-level": "1",
+ "experience": 20,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "32",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Level 11 (Slayer challenge)",
+ "slayer-exp": -1,
+ "lifepoints": "400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Goblin (Goblin Village)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Red (1).png\" decoding=\"async\" loading=\"lazy\" width=\"271\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Red (1)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Red (2).png\" decoding=\"async\" loading=\"lazy\" width=\"273\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Red (2)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Red (3).png\" decoding=\"async\" loading=\"lazy\" width=\"196\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Red (3)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Red (4).png\" decoding=\"async\" loading=\"lazy\" width=\"280\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Red (4)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Red (5).png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Red (5)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Red (6).png\" decoding=\"async\" loading=\"lazy\" width=\"170\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Red (6)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Green (1).png\" decoding=\"async\" loading=\"lazy\" width=\"271\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Green (1)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Green (2).png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Green (2)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Green (3).png\" decoding=\"async\" loading=\"lazy\" width=\"273\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Green (3)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Green (4).png\" decoding=\"async\" loading=\"lazy\" width=\"196\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Green (4)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Green (5).png\" decoding=\"async\" loading=\"lazy\" width=\"164\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Green (5)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Green (6).png\" decoding=\"async\" loading=\"lazy\" width=\"170\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Green (6)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Goblin (God Wars Dungeon)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Goblin (God Wars Dungeon)#Sword.png\" decoding=\"async\" loading=\"lazy\" width=\"205\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Sword",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (God Wars Dungeon)#Warhammer.png\" decoding=\"async\" loading=\"lazy\" width=\"201\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Warhammer",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (God Wars Dungeon)#Banner.png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Banner",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (God Wars Dungeon)#Spear.png\" decoding=\"async\" loading=\"lazy\" width=\"189\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Spear",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (God Wars Dungeon)#Battleaxe.png\" decoding=\"async\" loading=\"lazy\" width=\"200\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Battleaxe",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Goblin (Stronghold of Security)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Stronghold of Security)#Level 5 (a).png\" decoding=\"async\" loading=\"lazy\" width=\"220\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 5 (a)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Stronghold of Security)#Level 5 (b).png\" decoding=\"async\" loading=\"lazy\" width=\"211\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 5 (b)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Stronghold of Security)#Level 5 (c).png\" decoding=\"async\" loading=\"lazy\" width=\"213\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 5 (c)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Stronghold of Security)#Level 5 (d).png\" decoding=\"async\" loading=\"lazy\" width=\"213\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 5 (d)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Stronghold of Security)#Level 5 (e).png\" decoding=\"async\" loading=\"lazy\" width=\"213\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 5 (e)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Stronghold of Security)#Level 5 (f).png\" decoding=\"async\" loading=\"lazy\" width=\"213\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 5 (f)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Guard (cave goblin)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Guard (cave goblin)#Club.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Club",
+ "slayer-exp": 29.600000381469727,
+ "lifepoints": "2100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Guard (cave goblin)#Spear.png\" decoding=\"async\" loading=\"lazy\" width=\"146\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Spear",
+ "slayer-exp": 29.600000381469727,
+ "lifepoints": "2100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Lumpnose",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Lumpnose#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1800",
+ "max-ranged": "150",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Sergeant Grimspike",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Sergeant Grimspike#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"222\" height=\"300\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 273.70001220703125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 90.30000305175781,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 199.1999969482422,
+ "lifepoints": "5475",
+ "max-ranged": "365",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Sergeant Steelwill",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Sergeant Steelwill#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"206\" height=\"300\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 273.70001220703125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 90.30000305175781,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 199.1999969482422,
+ "lifepoints": "5475",
+ "max-ranged": "0",
+ "max-magic": "365",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Sergeant Strongstack",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Sergeant Strongstack#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"266\" height=\"300\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 273.70001220703125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 90.30000305175781,
+ "max-melee": "365",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 199.1999969482422,
+ "lifepoints": "5475",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skoblin",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skoblin#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"163\" height=\"300\" id=\"image-?\">",
+ "level": "19",
+ "defence": "14",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 9.399999618530273,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Stinkears",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Stinkears#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"203\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1800",
+ "max-ranged": "0",
+ "max-magic": "150",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Gorak",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Gorak#Gorak Plane.png\" decoding=\"async\" loading=\"lazy\" width=\"224\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Gorak Plane",
+ "slayer-exp": 49.79999923706055,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Gorak#God Wars Dungeon.png\" decoding=\"async\" loading=\"lazy\" width=\"224\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 598.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 197.5,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "God Wars Dungeon",
+ "slayer-exp": 207.39999389648438,
+ "lifepoints": "6800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Gorak#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"224\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 598.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 197.5,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "The World Wakes",
+ "slayer-exp": -1,
+ "lifepoints": "6800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Butcher demon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Butcher demon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"233\" height=\"300\" id=\"image-?\">",
+ "level": "118",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 5000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1650,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 5680.2001953125,
+ "lifepoints": "100000",
+ "max-ranged": "1653",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Champion of Infernus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Champion of Infernus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"195\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 1136,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "816",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Chaos Demon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Chaos Demon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "100",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 247.5,
+ "max-melee": "2212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "15000",
+ "max-ranged": "2212",
+ "max-magic": "2212",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Chaos Demon Savage",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Chaos Demon Savage#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "141",
+ "defence": "110",
+ "slayer-level": "1",
+ "experience": 3500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1155,
+ "max-melee": "2011",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 8000,
+ "lifepoints": "70000",
+ "max-ranged": "1564",
+ "max-magic": "1564",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Denizen of Infernus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Denizen of Infernus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "127",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 6000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1980,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 10000,
+ "lifepoints": "120000",
+ "max-ranged": "864",
+ "max-magic": "1656",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Greater demon (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Greater demon (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"250\" id=\"image-?\">",
+ "level": "92",
+ "defence": "59",
+ "slayer-level": "1",
+ "experience": 1200,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 396,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 619.7999877929688,
+ "lifepoints": "24000",
+ "max-ranged": "0",
+ "max-magic": "1065",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kor'Vath the Blightbringer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kor'Vath the Blightbringer#140,000 life points.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1650,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "140,000 life points",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "566.4",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kor'Vath the Blightbringer#170,000 life points.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1650,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "170,000 life points",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "566.4",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kor'Vath the Blightbringer#400,000 life points.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1650,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "400,000 life points",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "566.4",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "La'Kalor the Unbroken",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/La'Kalor the Unbroken#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1650,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "566.4",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Shara'Kor the Widowmaker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Shara'Kor the Widowmaker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1650,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "566.4",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Grifolapine",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Grifolapine#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"270\" height=\"300\" id=\"image-?\">",
+ "level": "103",
+ "defence": "74",
+ "slayer-level": "88",
+ "experience": 370,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 122.0999984741211,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 279,
+ "lifepoints": "7400",
+ "max-ranged": "296",
+ "max-magic": "296",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Grifolapine#Neem oil.png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "103",
+ "defence": "74",
+ "slayer-level": "88",
+ "experience": 370,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 122.0999984741211,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Neem oil",
+ "slayer-exp": 279,
+ "lifepoints": "7400",
+ "max-ranged": "148",
+ "max-magic": "148",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Grifolaroo",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Grifolaroo#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"234\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "82",
+ "experience": 385,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 127,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 323.20001220703125,
+ "lifepoints": "7700",
+ "max-ranged": "308",
+ "max-magic": "308",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Grifolaroo#Neem oil.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "82",
+ "experience": 385,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 127,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Neem oil",
+ "slayer-exp": 323.20001220703125,
+ "lifepoints": "7700",
+ "max-ranged": "154",
+ "max-magic": "154",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Giant worm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Giant worm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"211\" id=\"image-?\">",
+ "level": "72",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 325,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 107.19999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 117.4000015258789,
+ "lifepoints": "6500",
+ "max-ranged": "0",
+ "max-magic": "600",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Grotworm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Grotworm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"211\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 372.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 122.9000015258789,
+ "max-melee": "900",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 102.80000305175781,
+ "lifepoints": "7450",
+ "max-ranged": "0",
+ "max-magic": "900",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mature grotworm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mature grotworm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"199\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 640,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 211.1999969482422,
+ "max-melee": "1400",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "12800",
+ "max-ranged": "0",
+ "max-magic": "1400",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Young grotworm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Young grotworm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"186\" id=\"image-?\">",
+ "level": "28",
+ "defence": "20",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 11.399999618530273,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "400",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Harpie Bug Swarm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Harpie Bug Swarm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"275\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "33",
+ "experience": 112.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 37.099998474121094,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 34,
+ "lifepoints": "2250",
+ "max-ranged": "180",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Harpie Bug Swarm (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Harpie Bug Swarm (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"275\" id=\"image-?\">",
+ "level": "72",
+ "defence": "45",
+ "slayer-level": "33",
+ "experience": 450,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 148.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 313,
+ "lifepoints": "9000",
+ "max-ranged": "540",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hellhound",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Hellhound#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "92",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 165,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 54.400001525878906,
+ "max-melee": "264",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 93.80000305175781,
+ "lifepoints": "3300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Hellhound#God Wars Dungeon.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "95",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 475,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 156.6999969482422,
+ "max-melee": "1080",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "God Wars Dungeon",
+ "slayer-exp": 207.39999389648438,
+ "lifepoints": "9500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Hellhound#Level 105.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 475,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 156.6999969482422,
+ "max-melee": "1080",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 105",
+ "slayer-exp": 371,
+ "lifepoints": "9500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Hellhound (Heart of Gielinor)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hellhound (Heart of Gielinor)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "768",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 334.20001220703125,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hellhound (The Zamorakian Undercity)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hellhound (The Zamorakian Undercity)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "104",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 450,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 148.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 800,
+ "lifepoints": "9000",
+ "max-ranged": "14",
+ "max-magic": "14",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hellhound (summoned)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hellhound (summoned)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "104",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 450,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 148.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "9000",
+ "max-ranged": "14",
+ "max-magic": "14",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hellhound Alpha",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hellhound Alpha#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "113",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "1584",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "20000",
+ "max-ranged": "14",
+ "max-magic": "14",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hellhound Hunter",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hellhound Hunter#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "111",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 600,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 198,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "12000",
+ "max-ranged": "14",
+ "max-magic": "14",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hellhound Hunter (summoned)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hellhound Hunter (summoned)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "111",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 600,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 198,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "12000",
+ "max-ranged": "14",
+ "max-magic": "14",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hill Giant",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hill Giant#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"143\" height=\"300\" id=\"image-?\">",
+ "level": "26",
+ "defence": "22",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "450",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 37.599998474121094,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hobgoblin",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Hobgoblin#Level 15.png\" decoding=\"async\" loading=\"lazy\" width=\"221\" height=\"300\" id=\"image-?\">",
+ "level": "15",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 33,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 15",
+ "slayer-exp": 35,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Hobgoblin#Level 18.png\" decoding=\"async\" loading=\"lazy\" width=\"293\" height=\"300\" id=\"image-?\">",
+ "level": "18",
+ "defence": "12",
+ "slayer-level": "1",
+ "experience": 112.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 37.099998474121094,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 18",
+ "slayer-exp": 39,
+ "lifepoints": "2250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Hobgoblin#Level 91 (GWD).png\" decoding=\"async\" loading=\"lazy\" width=\"265\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 487.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 160.8000030517578,
+ "max-melee": "325",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 91 (GWD)",
+ "slayer-exp": 268.6000061035156,
+ "lifepoints": "9750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Hobgoblin (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hobgoblin (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"226\" height=\"300\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 252.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 83.30000305175781,
+ "max-melee": "500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "5050",
+ "max-ranged": "460",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ice giant",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ice giant#Level 47 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "47",
+ "defence": "37",
+ "slayer-level": "1",
+ "experience": 372.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 122.9000015258789,
+ "max-melee": "750",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 47 (1)",
+ "slayer-exp": 80.80000305175781,
+ "lifepoints": "7450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ice giant#Level 47 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"143\" height=\"300\" id=\"image-?\">",
+ "level": "47",
+ "defence": "37",
+ "slayer-level": "1",
+ "experience": 372.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 122.9000015258789,
+ "max-melee": "750",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 47 (2)",
+ "slayer-exp": 80.80000305175781,
+ "lifepoints": "7450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ice strykewyrm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ice strykewyrm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "106",
+ "defence": "76",
+ "slayer-level": "93",
+ "experience": 1250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 412.5,
+ "max-melee": "729",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2000",
+ "name": "Default",
+ "slayer-exp": 693.2000122070312,
+ "lifepoints": "25000",
+ "max-ranged": "729",
+ "max-magic": "729",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ice warrior",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ice warrior#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"142\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "26",
+ "slayer-level": "1",
+ "experience": 210,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 69.30000305175781,
+ "max-melee": "640",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 25.799999237060547,
+ "lifepoints": "4200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ice warrior#Ice Queen's Lair.png\" decoding=\"async\" loading=\"lazy\" width=\"142\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "26",
+ "slayer-level": "1",
+ "experience": 210,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 69.30000305175781,
+ "max-melee": "640",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ice Queen's Lair",
+ "slayer-exp": 25.799999237060547,
+ "lifepoints": "4200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Icelord",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Icelord#ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"219\" height=\"300\" id=\"image-?\">",
+ "level": "42",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 75,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 24.700000762939453,
+ "max-melee": "90",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "ranged",
+ "slayer-exp": 60,
+ "lifepoints": "1500",
+ "max-ranged": "120",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Icelord#melee.png\" decoding=\"async\" loading=\"lazy\" width=\"219\" height=\"300\" id=\"image-?\">",
+ "level": "42",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 75,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 24.700000762939453,
+ "max-melee": "120",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "melee",
+ "slayer-exp": 60,
+ "lifepoints": "1500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Icefiend",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Icefiend#Ice Mountain.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ice Mountain",
+ "slayer-exp": 7,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "500",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Icefiend#God Wars Dungeon.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "God Wars Dungeon",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Icefiend#Ice Mountain (melting).png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ice Mountain (melting)",
+ "slayer-exp": 7,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "500",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Icefiend (Ghorrock)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Icefiend (Ghorrock)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 362.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 119.5999984741211,
+ "max-melee": "1540",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 335,
+ "lifepoints": "7250",
+ "max-ranged": "1540",
+ "max-magic": "1540",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Infernal Mage",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Infernal Mage#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"145\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "40",
+ "slayer-level": "45",
+ "experience": 325,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 107.19999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 91,
+ "lifepoints": "6500",
+ "max-ranged": "0",
+ "max-magic": "1040",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Infernal Mage (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Infernal Mage (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"145\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "50",
+ "slayer-level": "45",
+ "experience": 1050,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 346.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 596,
+ "lifepoints": "21000",
+ "max-ranged": "0",
+ "max-magic": "1240",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Jelly",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Jelly#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "61",
+ "defence": "49",
+ "slayer-level": "52",
+ "experience": 410,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 135.3000030517578,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 93,
+ "lifepoints": "8200",
+ "max-ranged": "760",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Jungle horror",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Jungle horror#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"221\" height=\"300\" id=\"image-?\">",
+ "level": "48",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 240,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 79.19999694824219,
+ "max-melee": "1000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 41.5,
+ "lifepoints": "4800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Quetzathog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Quetzathog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "85",
+ "slayer-level": "0",
+ "experience": 7275,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 2400.699951171875,
+ "max-melee": "2376",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "145500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Sea horror",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Sea horror#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 4178.2001953125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1378.800048828125,
+ "max-melee": "482",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal mode",
+ "slayer-exp": 1388,
+ "lifepoints": "35500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Sea horror#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 887.5,
+ "susceptible": [],
+ "lifepoint-exp": 292.79998779296875,
+ "max-melee": "482",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Story mode",
+ "slayer-exp": 1388,
+ "lifepoints": "17750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Jungle strykewyrm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Jungle strykewyrm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"224\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "73",
+ "experience": 425,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 140.1999969482422,
+ "max-melee": "643",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "1800",
+ "name": "Default",
+ "slayer-exp": 249.8000030517578,
+ "lifepoints": "8500",
+ "max-ranged": "643",
+ "max-magic": "643",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Exiled Kalphite Queen",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Exiled Kalphite Queen#First form.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"243\" id=\"image-?\">",
+ "level": "356",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 2500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 825,
+ "max-melee": "1100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "First form",
+ "slayer-exp": 2055,
+ "lifepoints": "50000",
+ "max-ranged": "1100",
+ "max-magic": "1100",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Exiled Kalphite Queen#Second form.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"191\" id=\"image-?\">",
+ "level": "356",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 2500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 825,
+ "max-melee": "1100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Second form",
+ "slayer-exp": 2055,
+ "lifepoints": "50000",
+ "max-ranged": "1100",
+ "max-magic": "1100",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Exiled kalphite guardian",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Exiled kalphite guardian#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"272\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Exiled kalphite marauder",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Exiled kalphite marauder#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"278\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "280",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Exiled kalphite marauder#Kalphite King.png\" decoding=\"async\" loading=\"lazy\" width=\"278\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "1676",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Kalphite King",
+ "slayer-exp": 229,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "720",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Exiled kalphite paragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Exiled kalphite paragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"279\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "240",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Exiled kalphite soldier",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Exiled kalphite soldier#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"248\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 147,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Exiled kalphite worker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Exiled kalphite worker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"230\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 270,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 89.0999984741211,
+ "max-melee": "188",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 109.80000305175781,
+ "lifepoints": "5400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kalphite Guardian",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Kalphite Guardian#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"247\" height=\"300\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "1",
+ "experience": 260,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 85.80000305175781,
+ "max-melee": "208",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 95,
+ "lifepoints": "5200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kalphite King",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kalphite King#Magic.png\" decoding=\"async\" loading=\"lazy\" width=\"262\" height=\"300\" id=\"image-?\">",
+ "level": "2500",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 6500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 2145,
+ "max-melee": "2560",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2500",
+ "name": "Magic",
+ "slayer-exp": 3963,
+ "lifepoints": "260000",
+ "max-ranged": "1280",
+ "max-magic": "2560",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kalphite King#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"248\" height=\"300\" id=\"image-?\">",
+ "level": "2500",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 6500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 2145,
+ "max-melee": "2560",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2500",
+ "name": "Melee",
+ "slayer-exp": 3963,
+ "lifepoints": "260000",
+ "max-ranged": "1280",
+ "max-magic": "2560",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kalphite King#Ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"275\" id=\"image-?\">",
+ "level": "2500",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 6500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 2145,
+ "max-melee": "2560",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "2500",
+ "name": "Ranged",
+ "slayer-exp": 3963,
+ "lifepoints": "260000",
+ "max-ranged": "1280",
+ "max-magic": "2560",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Kalphite Queen",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kalphite Queen#First form.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"244\" id=\"image-?\">",
+ "level": "333",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "980",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "First form",
+ "slayer-exp": 1309.4000244140625,
+ "lifepoints": "40000",
+ "max-ranged": "980",
+ "max-magic": "980",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kalphite Queen#Second form.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"152\" id=\"image-?\">",
+ "level": "333",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "980",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Second form",
+ "slayer-exp": 1309.4000244140625,
+ "lifepoints": "40000",
+ "max-ranged": "980",
+ "max-magic": "980",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Kalphite Soldier",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Kalphite Soldier#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "65",
+ "defence": "47",
+ "slayer-level": "1",
+ "experience": 235,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 77.5,
+ "max-melee": "188",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 75.4000015258789,
+ "lifepoints": "4700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kalphite Worker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Kalphite Worker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"299\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 210,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 69.30000305175781,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 59.29999923706055,
+ "lifepoints": "4200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Killerwatt",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Killerwatt#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "55",
+ "defence": "44",
+ "slayer-level": "37",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "450",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 32.599998474121094,
+ "lifepoints": "3600",
+ "max-ranged": "510",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kurask",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kurask#Examine #1.png\" decoding=\"async\" loading=\"lazy\" width=\"297\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "70",
+ "experience": 280,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 92.4000015258789,
+ "max-melee": "224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Examine #1",
+ "slayer-exp": 115,
+ "lifepoints": "5600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kurask#Examine #2.png\" decoding=\"async\" loading=\"lazy\" width=\"297\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "70",
+ "experience": 280,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 92.4000015258789,
+ "max-melee": "224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Examine #2",
+ "slayer-exp": 115,
+ "lifepoints": "5600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Engorged lava strykewyrm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Engorged lava strykewyrm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"207\" height=\"300\" id=\"image-?\">",
+ "level": "113",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 9250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 3052.5,
+ "max-melee": "1400",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 29105,
+ "lifepoints": "185000",
+ "max-ranged": "1400",
+ "max-magic": "1400",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Lava strykewyrm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Lava strykewyrm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"207\" height=\"300\" id=\"image-?\">",
+ "level": "115",
+ "defence": "80",
+ "slayer-level": "94",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "1788",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "Varies",
+ "name": "Default",
+ "slayer-exp": 1872,
+ "lifepoints": "30000",
+ "max-ranged": "1152",
+ "max-magic": "1152",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Lava strykewyrm (Dragonkin Laboratory)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Lava strykewyrm (Dragonkin Laboratory)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"207\" height=\"300\" id=\"image-?\">",
+ "level": "101",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "1117",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 3100,
+ "lifepoints": "30000",
+ "max-ranged": "1117",
+ "max-magic": "1117",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "WildyWyrm (2015, historical)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/WildyWyrm (2015, historical)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"207\" height=\"300\" id=\"image-?\">",
+ "level": "92",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "2212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4700",
+ "name": "Default",
+ "slayer-exp": 16462.599609375,
+ "lifepoints": "1000000",
+ "max-ranged": "1425",
+ "max-magic": "1425",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Lesser demon (Wizards' Tower)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Lesser demon (Wizards' Tower)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"284\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 82.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "200",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Living rock patriarch",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Living rock patriarch#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"214\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 320,
+ "lifepoints": "25000",
+ "max-ranged": "1000",
+ "max-magic": "1000",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Living rock protector",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Living rock protector#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"296\" id=\"image-?\">",
+ "level": "92",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 275,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 90.69999694824219,
+ "max-melee": "500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 156,
+ "lifepoints": "5500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Living rock striker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Living rock striker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"286\" height=\"300\" id=\"image-?\">",
+ "level": "92",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 275,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 90.69999694824219,
+ "max-melee": "264",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 156,
+ "lifepoints": "5500",
+ "max-ranged": "500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Wyvern",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wyvern#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"227\" id=\"image-?\">",
+ "level": "127",
+ "defence": "91",
+ "slayer-level": "96",
+ "experience": 1125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1310",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1878.800048828125,
+ "lifepoints": "22500",
+ "max-ranged": "1310",
+ "max-magic": "1310",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Wyvern (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wyvern (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"227\" id=\"image-?\">",
+ "level": "133",
+ "defence": "95",
+ "slayer-level": "96",
+ "experience": 2250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 742.5,
+ "max-melee": "1339",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 2654,
+ "lifepoints": "45000",
+ "max-ranged": "1339",
+ "max-magic": "1339",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Minotaur",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Minotaur#Level 12.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "12",
+ "defence": "8",
+ "slayer-level": "1",
+ "experience": 87.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 12",
+ "slayer-exp": 16.600000381469727,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Minotaur#Level 15.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "15",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 33,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 15",
+ "slayer-exp": 46.400001525878906,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Minotaur#Level 44 (Slayer challenge).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "44",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 80,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 26.399999618530273,
+ "max-melee": "128",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 44 (Slayer challenge)",
+ "slayer-exp": -2,
+ "lifepoints": "1600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Mogre",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mogre#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"198\" height=\"300\" id=\"image-?\">",
+ "level": "45",
+ "defence": "39",
+ "slayer-level": "32",
+ "experience": 315,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 103.9000015258789,
+ "max-melee": "625",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 27,
+ "lifepoints": "6300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Molanisk",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Molanisk#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"230\" id=\"image-?\">",
+ "level": "44",
+ "defence": "38",
+ "slayer-level": "39",
+ "experience": 307.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 101.4000015258789,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 49.599998474121094,
+ "lifepoints": "6150",
+ "max-ranged": "500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Moss giant",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Moss giant#Common (1).png\" decoding=\"async\" loading=\"lazy\" width=\"160\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "625",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Common (1)",
+ "slayer-exp": 60,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Moss giant#Common (2).png\" decoding=\"async\" loading=\"lazy\" width=\"183\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "625",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Common (2)",
+ "slayer-exp": 60,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Moss giant#Common (3).png\" decoding=\"async\" loading=\"lazy\" width=\"164\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "625",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Common (3)",
+ "slayer-exp": 60,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Moss giant#Common (4).png\" decoding=\"async\" loading=\"lazy\" width=\"167\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "625",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Common (4)",
+ "slayer-exp": 60,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Moss giant#Common (5).png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "625",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Common (5)",
+ "slayer-exp": 60,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Moss giant#Glarial's Tomb.png\" decoding=\"async\" loading=\"lazy\" width=\"160\" height=\"300\" id=\"image-?\">",
+ "level": "24",
+ "defence": "20",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "216",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Glarial's Tomb",
+ "slayer-exp": 60,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Bladed muspah",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bladed muspah#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"235\" id=\"image-?\">",
+ "level": "150",
+ "defence": "75",
+ "slayer-level": "76",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ancient_Magicks\" title=\"Ancient Magicks\" target=\"_blank\"><img src=\"./images/susceptible/Ice_Barrage_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 469,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Force muspah",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Force muspah#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"249\" id=\"image-?\">",
+ "level": "150",
+ "defence": "75",
+ "slayer-level": "76",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ancient_Magicks\" title=\"Ancient Magicks\" target=\"_blank\"><img src=\"./images/susceptible/Ice_Barrage_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 469,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "500",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Throwing muspah",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Throwing muspah#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"270\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "75",
+ "slayer-level": "76",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ancient_Magicks\" title=\"Ancient Magicks\" target=\"_blank\"><img src=\"./images/susceptible/Ice_Barrage_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 469,
+ "lifepoints": "20000",
+ "max-ranged": "500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mutated jadinko baby",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mutated jadinko baby#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"218\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "80",
+ "experience": 167.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 55.20000076293945,
+ "max-melee": "268",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 98.5999984741211,
+ "lifepoints": "3350",
+ "max-ranged": "0",
+ "max-magic": "268",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mutated jadinko guard",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mutated jadinko guard#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"195\" id=\"image-?\">",
+ "level": "96",
+ "defence": "69",
+ "slayer-level": "86",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 188.39999389648438,
+ "lifepoints": "6000",
+ "max-ranged": "500",
+ "max-magic": "500",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mutated jadinko male",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mutated jadinko male#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"271\" id=\"image-?\">",
+ "level": "100",
+ "defence": "72",
+ "slayer-level": "91",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 209.60000610351562,
+ "lifepoints": "6000",
+ "max-ranged": "600",
+ "max-magic": "600",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mutated zygomite",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Mutated zygomite#Level 58.png\" decoding=\"async\" loading=\"lazy\" width=\"242\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "57",
+ "experience": 105,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 58",
+ "slayer-exp": 31,
+ "lifepoints": "2100",
+ "max-ranged": "168",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mutated zygomite#Level 65.png\" decoding=\"async\" loading=\"lazy\" width=\"242\" height=\"300\" id=\"image-?\">",
+ "level": "65",
+ "defence": "47",
+ "slayer-level": "57",
+ "experience": 125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 65",
+ "slayer-exp": 42,
+ "lifepoints": "2500",
+ "max-ranged": "188",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Nechryael",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nechryael#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"256\" height=\"300\" id=\"image-?\">",
+ "level": "96",
+ "defence": "69",
+ "slayer-level": "80",
+ "experience": 400,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 132,
+ "max-melee": "276",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 251.60000610351562,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Nechryael (Heart of Gielinor)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nechryael (Heart of Gielinor)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "80",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "768",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 251.60000610351562,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Nechryael (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nechryael (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"256\" height=\"300\" id=\"image-?\">",
+ "level": "106",
+ "defence": "69",
+ "slayer-level": "80",
+ "experience": 1600,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 528,
+ "max-melee": "828",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 1120,
+ "lifepoints": "32000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Nightmare",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nightmare#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"164\" height=\"300\" id=\"image-?\">",
+ "level": "128",
+ "defence": "92",
+ "slayer-level": "80",
+ "experience": 1750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 577.5,
+ "max-melee": "1324",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1540,
+ "lifepoints": "35000",
+ "max-ranged": "1324",
+ "max-magic": "1324",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Blood nihil",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Blood nihil#boss.png\" decoding=\"async\" loading=\"lazy\" width=\"299\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "76",
+ "experience": 1250,
+ "susceptible": [],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "boss",
+ "slayer-exp": 705.4000244140625,
+ "lifepoints": "25000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Blood nihil#normal.png\" decoding=\"async\" loading=\"lazy\" width=\"299\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "76",
+ "experience": 1250,
+ "susceptible": [],
+ "lifepoint-exp": 412.5,
+ "max-melee": "768",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Magic\" title=\"Magic\" target=\"_blank\"><img src=\"./images/weakness/Magic_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "normal",
+ "slayer-exp": 705.4000244140625,
+ "lifepoints": "25000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ice nihil",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ice nihil#boss.png\" decoding=\"async\" loading=\"lazy\" width=\"290\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "boss",
+ "slayer-exp": 564,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "1000",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ice nihil#normal.png\" decoding=\"async\" loading=\"lazy\" width=\"290\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "normal",
+ "slayer-exp": 564,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Shadow nihil",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Shadow nihil#boss.png\" decoding=\"async\" loading=\"lazy\" width=\"285\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1500",
+ "name": "boss",
+ "slayer-exp": 423,
+ "lifepoints": "15000",
+ "max-ranged": "1000",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Shadow nihil#normal.png\" decoding=\"async\" loading=\"lazy\" width=\"285\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Melee\" title=\"Melee\" target=\"_blank\"><img src=\"./images/weakness/Melee_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1500",
+ "name": "normal",
+ "slayer-exp": 423,
+ "lifepoints": "15000",
+ "max-ranged": "768",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Smoke nihil",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Smoke nihil#boss.png\" decoding=\"async\" loading=\"lazy\" width=\"299\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "boss",
+ "slayer-exp": 564,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "1000",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Smoke nihil#normal.png\" decoding=\"async\" loading=\"lazy\" width=\"299\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "normal",
+ "slayer-exp": 564,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Kerapac, the bound",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kerapac, the bound#Hard mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"225\" id=\"image-?\">",
+ "level": "3000",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 11250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 3712.5,
+ "max-melee": "1339",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Hard mode",
+ "slayer-exp": 16700,
+ "lifepoints": "450000",
+ "max-ranged": "1339",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kerapac, the bound#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"225\" id=\"image-?\">",
+ "level": "3000",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "1339",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": 16700,
+ "lifepoints": "200000",
+ "max-ranged": "1339",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Nodon enforcer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nodon enforcer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"237\" id=\"image-?\">",
+ "level": "200",
+ "defence": "99",
+ "slayer-level": "92",
+ "experience": 12500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 4125,
+ "max-melee": "1561",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3300",
+ "name": "Default",
+ "slayer-exp": 4003,
+ "lifepoints": "100000",
+ "max-ranged": "1561",
+ "max-magic": "1561",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Enclave guard",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Enclave guard#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"299\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 580,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 191.39999389648438,
+ "max-melee": "278",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 190,
+ "lifepoints": "11600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ogre",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ogre#Kandarin(Level 67).png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "48",
+ "slayer-level": "1",
+ "experience": 240,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 79.19999694824219,
+ "max-melee": "288",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Kandarin(Level 67)",
+ "slayer-exp": 88.4000015258789,
+ "lifepoints": "4800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ogre#Combat Camp(56).png\" decoding=\"async\" loading=\"lazy\" width=\"229\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 33,
+ "max-melee": "310",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Combat Camp(56)",
+ "slayer-exp": 34,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ogre#God Wars Dungeon(86).png\" decoding=\"async\" loading=\"lazy\" width=\"189\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 465,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 153.39999389648438,
+ "max-melee": "310",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "God Wars Dungeon(86)",
+ "slayer-exp": 232,
+ "lifepoints": "9300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ogre chieftain",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ogre chieftain#Version 1.png\" decoding=\"async\" loading=\"lazy\" width=\"285\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 612,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 201.89999389648438,
+ "max-melee": "278",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Version 1",
+ "slayer-exp": 200,
+ "lifepoints": "11600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ogre chieftain#Version 2.png\" decoding=\"async\" loading=\"lazy\" width=\"285\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 612,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 201.89999389648438,
+ "max-melee": "278",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Version 2",
+ "slayer-exp": 200,
+ "lifepoints": "11600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ogre chieftain#Version 3.png\" decoding=\"async\" loading=\"lazy\" width=\"285\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 612,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 201.89999389648438,
+ "max-melee": "278",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Version 3",
+ "slayer-exp": 200,
+ "lifepoints": "11600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ogress",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ogress#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 33,
+ "lifepoints": "2100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ogress champion",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ogress champion#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"175\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "48",
+ "slayer-level": "1",
+ "experience": 120,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 39.599998474121094,
+ "max-melee": "192",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 44,
+ "lifepoints": "2400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ogress warrior",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ogress warrior#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"173\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 112.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 37.099998474121094,
+ "max-melee": "180",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 38.20000076293945,
+ "lifepoints": "2250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skogre",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skogre#1.png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Brutal_arrows\" title=\"Brutal arrows\" target=\"_blank\"><img src=\"./images/susceptible/s/Steel_brutal_2.png\" decoding=\"async\" loading=\"lazy\" width=\"19\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 26.799999237060547,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skogre#2.png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Brutal_arrows\" title=\"Brutal arrows\" target=\"_blank\"><img src=\"./images/susceptible/s/Steel_brutal_2.png\" decoding=\"async\" loading=\"lazy\" width=\"19\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 26.799999237060547,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skogre#3.png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Brutal_arrows\" title=\"Brutal arrows\" target=\"_blank\"><img src=\"./images/susceptible/s/Steel_brutal_2.png\" decoding=\"async\" loading=\"lazy\" width=\"19\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 26.799999237060547,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zogre",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zogre#1.png\" decoding=\"async\" loading=\"lazy\" width=\"224\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Brutal_arrows\" title=\"Brutal arrows\" target=\"_blank\"><img src=\"./images/susceptible/s/Steel_brutal_2.png\" decoding=\"async\" loading=\"lazy\" width=\"19\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "160",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 28,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zogre#2.png\" decoding=\"async\" loading=\"lazy\" width=\"261\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Brutal_arrows\" title=\"Brutal arrows\" target=\"_blank\"><img src=\"./images/susceptible/s/Steel_brutal_2.png\" decoding=\"async\" loading=\"lazy\" width=\"19\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 28,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zogre#3.png\" decoding=\"async\" loading=\"lazy\" width=\"244\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Brutal_arrows\" title=\"Brutal arrows\" target=\"_blank\"><img src=\"./images/susceptible/s/Steel_brutal_2.png\" decoding=\"async\" loading=\"lazy\" width=\"19\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 28,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Otherworldly being",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Otherworldly being#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"133\" height=\"300\" id=\"image-?\">",
+ "level": "55",
+ "defence": "35",
+ "slayer-level": "1",
+ "experience": 282.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 93.19999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 34,
+ "lifepoints": "5650",
+ "max-ranged": "0",
+ "max-magic": "900",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Pyrefiend",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Pyrefiend#Level 38.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "38",
+ "defence": "25",
+ "slayer-level": "30",
+ "experience": 202.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 66.80000305175781,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 38",
+ "slayer-exp": 32.599998474121094,
+ "lifepoints": "4050",
+ "max-ranged": "0",
+ "max-magic": "600",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Pyrefiend#God Wars Dungeon.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "92",
+ "defence": "66",
+ "slayer-level": "30",
+ "experience": 330,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 108.9000015258789,
+ "max-melee": "264",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "God Wars Dungeon",
+ "slayer-exp": -1,
+ "lifepoints": "6600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Pyrefiend (The Zamorakian Undercity)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Pyrefiend (The Zamorakian Undercity)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "113",
+ "defence": "75",
+ "slayer-level": "30",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "576",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "8000",
+ "max-ranged": "576",
+ "max-magic": "1267",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Pyrefiend (summoned)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Pyrefiend (summoned)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "113",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 400,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 132,
+ "max-melee": "576",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "8000",
+ "max-ranged": "576",
+ "max-magic": "1267",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Seething Pyrefiend",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Seething Pyrefiend#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "75",
+ "slayer-level": "30",
+ "experience": 800,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 264,
+ "max-melee": "576",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "16000",
+ "max-ranged": "576",
+ "max-magic": "1411",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Smoulders",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Smoulders#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "129",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 9000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2970,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "180000",
+ "max-ranged": "0",
+ "max-magic": "176",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Smoulders, the Revenger",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Smoulders, the Revenger#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "152",
+ "defence": "91",
+ "slayer-level": "?",
+ "experience": 9000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2970,
+ "max-melee": "1414",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "180000",
+ "max-ranged": "2113",
+ "max-magic": "2388",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Angry giant rat",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Angry giant rat#A Soul's Bane.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"219\" id=\"image-?\">",
+ "level": "45",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "A Soul's Bane",
+ "slayer-exp": -1,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Angry giant rat#Post-quest (1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"199\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Post-quest (1)",
+ "slayer-exp": 14,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Angry giant rat#Post-quest (2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"215\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Post-quest (2)",
+ "slayer-exp": 14,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Crypt rat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Crypt rat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"162\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dungeon rat",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Dungeon rat#Level 11 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"234\" id=\"image-?\">",
+ "level": "11",
+ "defence": "8",
+ "slayer-level": "1",
+ "experience": 20,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "32",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 11 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dungeon rat#Level 11 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"238\" id=\"image-?\">",
+ "level": "11",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 32.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 10.699999809265137,
+ "max-melee": "52",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 11 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dungeon rat#Level 11 (3).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"180\" id=\"image-?\">",
+ "level": "11",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 32.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 10.699999809265137,
+ "max-melee": "52",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 11 (3)",
+ "slayer-exp": -1,
+ "lifepoints": "650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dungeon rat#Level 18 (brown).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"148\" id=\"image-?\">",
+ "level": "18",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 32.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 10.699999809265137,
+ "max-melee": "52",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 18 (brown)",
+ "slayer-exp": -1,
+ "lifepoints": "650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dungeon rat#Level 18 (grey).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"148\" id=\"image-?\">",
+ "level": "18",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 32.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 10.699999809265137,
+ "max-melee": "52",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 18 (grey)",
+ "slayer-exp": -1,
+ "lifepoints": "650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dungeon rat#Level 18 (brown, arrows).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"199\" id=\"image-?\">",
+ "level": "18",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 32.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 10.699999809265137,
+ "max-melee": "52",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 18 (brown, arrows)",
+ "slayer-exp": -1,
+ "lifepoints": "650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Giant crypt rat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Giant crypt rat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"202\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "330",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant rat",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Giant rat#Level 7 (grey).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"148\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 72.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 7 (grey)",
+ "slayer-exp": -1,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant rat#Level 7 (brown).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"140\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 72.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 7 (brown)",
+ "slayer-exp": -1,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant rat#Level 7 (grey, arrows).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"215\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 72.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 7 (grey, arrows)",
+ "slayer-exp": -1,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant rat#Level 7 (brown, arrows).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"199\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 72.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 7 (brown, arrows)",
+ "slayer-exp": -1,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant rat#Level 9 (Stronghold of Security, 1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"262\" id=\"image-?\">",
+ "level": "9",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 9 (Stronghold of Security, 1)",
+ "slayer-exp": -1,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant rat#Level 9 (Stronghold of Security, 2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "9",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 9 (Stronghold of Security, 2)",
+ "slayer-exp": -1,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant rat#Level 9 (Stronghold of Security, 3).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"195\" id=\"image-?\">",
+ "level": "9",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 9 (Stronghold of Security, 3)",
+ "slayer-exp": -1,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Rat",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Rat#Common.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"208\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 2.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0.800000011920929,
+ "max-melee": "4",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Common",
+ "slayer-exp": -1,
+ "lifepoints": "50",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Rat#Stronghold of Security.png\" decoding=\"async\" loading=\"lazy\" width=\"211\" height=\"156\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 2.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0.800000011920929,
+ "max-melee": "4",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Stronghold of Security",
+ "slayer-exp": -1,
+ "lifepoints": "50",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Rat#Ratcatchers.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"208\" id=\"image-?\">",
+ "level": "N/A",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.399999618530273,
+ "susceptible": [],
+ "lifepoint-exp": 4,
+ "max-melee": "−20",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Ratcatchers",
+ "slayer-exp": -1,
+ "lifepoints": "10",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Warped rat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Warped rat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "12",
+ "defence": "9",
+ "slayer-level": "1",
+ "experience": 95,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 31.299999237060547,
+ "max-melee": "180",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 8,
+ "lifepoints": "1900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Slasher Demon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Slasher Demon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"291\" height=\"300\" id=\"image-?\">",
+ "level": "138",
+ "defence": "99",
+ "slayer-level": "96",
+ "experience": 3356.300048828125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1107.5,
+ "max-melee": "979",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "32000",
+ "name": "Default",
+ "slayer-exp": 5299.7998046875,
+ "lifepoints": "67126",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Rock slug",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Rock slug#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"170\" id=\"image-?\">",
+ "level": "28",
+ "defence": "25",
+ "slayer-level": "20",
+ "experience": 202.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 66.80000305175781,
+ "max-melee": "375",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 33.599998474121094,
+ "lifepoints": "4050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Elite rune dragon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Elite rune dragon#Armoured.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"236\" id=\"image-?\">",
+ "level": "130",
+ "defence": "92",
+ "slayer-level": "1",
+ "experience": 5259.39990234375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1735.5999755859375,
+ "max-melee": "2992",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Armoured",
+ "slayer-exp": 3399,
+ "lifepoints": "105188",
+ "max-ranged": "2992",
+ "max-magic": "2992",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Elite rune dragon#Unarmoured.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "130",
+ "defence": "92",
+ "slayer-level": "1",
+ "experience": 5259.39990234375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1735.5999755859375,
+ "max-melee": "2992",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Unarmoured",
+ "slayer-exp": 3399,
+ "lifepoints": "105188",
+ "max-ranged": "2992",
+ "max-magic": "2992",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Locust lancer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Locust lancer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"264\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 91,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Locust ranger",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Locust ranger#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"276\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "165",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 100,
+ "lifepoints": "2750",
+ "max-ranged": "220",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Locust rider",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Locust rider#Melee (1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"264\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 135,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 44.5,
+ "max-melee": "810",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (1)",
+ "slayer-exp": -1,
+ "lifepoints": "2700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Locust rider#Range (1).png\" decoding=\"async\" loading=\"lazy\" width=\"277\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 270,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 89.0999984741211,
+ "max-melee": "364",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Range (1)",
+ "slayer-exp": -1,
+ "lifepoints": "5400",
+ "max-ranged": "486",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Locust rider#Melee (2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"264\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 270,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 89.0999984741211,
+ "max-melee": "364",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (2)",
+ "slayer-exp": -1,
+ "lifepoints": "5400",
+ "max-ranged": "486",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Locust rider#Range (2).png\" decoding=\"async\" loading=\"lazy\" width=\"277\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 270,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 89.0999984741211,
+ "max-melee": "364",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Range (2)",
+ "slayer-exp": -1,
+ "lifepoints": "5400",
+ "max-ranged": "486",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Locust rider#Melee (3).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"264\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "?",
+ "experience": 270,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 89.0999984741211,
+ "max-melee": "364",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (3)",
+ "slayer-exp": -1,
+ "lifepoints": "5400",
+ "max-ranged": "486",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Locust rider#Range (3).png\" decoding=\"async\" loading=\"lazy\" width=\"277\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "?",
+ "experience": 270,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 89.0999984741211,
+ "max-melee": "364",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Range (3)",
+ "slayer-exp": -1,
+ "lifepoints": "5400",
+ "max-ranged": "486",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Scabaras lancer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Scabaras lancer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"200\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 55,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Scabaras mage",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Scabaras mage#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"176\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "618",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 55,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "825",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Scabaras ranger",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Scabaras ranger#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"210\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 275,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 90.69999694824219,
+ "max-melee": "165",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 109.5,
+ "lifepoints": "5500",
+ "max-ranged": "220",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Scarab akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Scarab akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"281\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "80",
+ "slayer-level": "109",
+ "experience": 1100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 363,
+ "max-melee": "921",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 715,
+ "lifepoints": "22000",
+ "max-ranged": "921",
+ "max-magic": "921",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Scarab mage",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Scarab mage#Sophanem Dungeon.png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "0",
+ "experience": 135,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 44.5,
+ "max-melee": "607",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Sophanem Dungeon",
+ "slayer-exp": 55,
+ "lifepoints": "2700",
+ "max-ranged": "0",
+ "max-magic": "810",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Scarab mage#Contact!.png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "?",
+ "experience": 135,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 44.5,
+ "max-melee": "900",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Contact!",
+ "slayer-exp": 55,
+ "lifepoints": "5400",
+ "max-ranged": "0",
+ "max-magic": "1215",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Scarab mage#Dominion Tower.png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "?",
+ "experience": 135,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 44.5,
+ "max-melee": "900",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Dominion Tower",
+ "slayer-exp": 55,
+ "lifepoints": "5400",
+ "max-ranged": "0",
+ "max-magic": "1215",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Scarab mage#Rumble Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "?",
+ "experience": 135,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 44.5,
+ "max-melee": "900",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Rumble Mode",
+ "slayer-exp": 55,
+ "lifepoints": "5400",
+ "max-ranged": "0",
+ "max-magic": "1215",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Small scarab",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Small scarab#Uzer Mastaba.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"235\" id=\"image-?\">",
+ "level": "42",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 75,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 24.700000762939453,
+ "max-melee": "120",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Uzer Mastaba",
+ "slayer-exp": 17,
+ "lifepoints": "1500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Small scarab#Zombie (1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"244\" id=\"image-?\">",
+ "level": "42",
+ "defence": "36",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "108",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Zombie (1)",
+ "slayer-exp": 17,
+ "lifepoints": "1800",
+ "max-ranged": "144",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Small scarab#Zombie (2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"284\" id=\"image-?\">",
+ "level": "42",
+ "defence": "36",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "108",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Zombie (2)",
+ "slayer-exp": 17,
+ "lifepoints": "1800",
+ "max-ranged": "144",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Small scarab#Zombie (3).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"235\" id=\"image-?\">",
+ "level": "42",
+ "defence": "36",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "108",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Zombie (3)",
+ "slayer-exp": 17,
+ "lifepoints": "1800",
+ "max-ranged": "144",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Small scarab#Do No Evil.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "50",
+ "defence": "36",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "108",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Do No Evil",
+ "slayer-exp": -1,
+ "lifepoints": "1800",
+ "max-ranged": "144",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Grave scorpion",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Grave scorpion#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"254\" id=\"image-?\">",
+ "level": "14",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 7.199999809265137,
+ "lifepoints": "1000",
+ "max-ranged": "200",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "King Scorpion",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/King Scorpion#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"295\" id=\"image-?\">",
+ "level": "22",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "360",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 48,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Pit Scorpion",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Pit Scorpion#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"298\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 162.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 53.599998474121094,
+ "max-melee": "800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 26.799999237060547,
+ "lifepoints": "3250",
+ "max-ranged": "800",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Poison Scorpion",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Poison Scorpion#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"296\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "1",
+ "experience": 282.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 93.19999694824219,
+ "max-melee": "700",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "5650",
+ "max-ranged": "700",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Scorpion",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Scorpion#Level 14.png\" decoding=\"async\" loading=\"lazy\" width=\"298\" height=\"300\" id=\"image-?\">",
+ "level": "14",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 33,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 14",
+ "slayer-exp": 25,
+ "lifepoints": "2000",
+ "max-ranged": "200",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Scorpion#Level 26 (Stronghold of Security, 1).png\" decoding=\"async\" loading=\"lazy\" width=\"298\" height=\"300\" id=\"image-?\">",
+ "level": "26",
+ "defence": "19",
+ "slayer-level": "1",
+ "experience": 157.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 51.900001525878906,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 26 (Stronghold of Security, 1)",
+ "slayer-exp": -1,
+ "lifepoints": "3150",
+ "max-ranged": "475",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Scorpion#Level 26 (Stronghold of Security, 2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"296\" id=\"image-?\">",
+ "level": "26",
+ "defence": "19",
+ "slayer-level": "1",
+ "experience": 157.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 51.900001525878906,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 26 (Stronghold of Security, 2)",
+ "slayer-exp": -1,
+ "lifepoints": "3150",
+ "max-ranged": "475",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Scorpion (Ape Atoll)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Scorpion (Ape Atoll)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"294\" height=\"300\" id=\"image-?\">",
+ "level": "14",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "1000",
+ "max-ranged": "200",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Sea Snake Hatchling",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Sea Snake Hatchling#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"92\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "40",
+ "experience": 175,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 57.70000076293945,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 50,
+ "lifepoints": "3500",
+ "max-ranged": "225",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Sea Snake Young",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Sea Snake Young#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"129\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "40",
+ "experience": 225,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 85,
+ "lifepoints": "4500",
+ "max-ranged": "225",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Blissful shadow",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Blissful shadow#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"281\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1152",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 564.4000244140625,
+ "lifepoints": "15000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Manifest shadow",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Manifest shadow#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"292\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 929.4000244140625,
+ "lifepoints": "15000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Shadow (Temple of Light)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Shadow (Temple of Light)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"141\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1.600000023841858,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 103.5999984741211,
+ "lifepoints": "100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Truthful shadow",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Truthful shadow#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"294\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1008",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "15000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeletal Wyvern",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeletal Wyvern#1.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"267\" id=\"image-?\">",
+ "level": "109",
+ "defence": "78",
+ "slayer-level": "72",
+ "experience": 625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "1100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2000",
+ "name": "1",
+ "slayer-exp": 510.79998779296875,
+ "lifepoints": "12500",
+ "max-ranged": "1100",
+ "max-magic": "1100",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeletal Wyvern#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"255\" id=\"image-?\">",
+ "level": "109",
+ "defence": "78",
+ "slayer-level": "72",
+ "experience": 625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "1100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2000",
+ "name": "2",
+ "slayer-exp": 510.79998779296875,
+ "lifepoints": "12500",
+ "max-ranged": "1100",
+ "max-magic": "1100",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeletal Wyvern#3.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"251\" id=\"image-?\">",
+ "level": "109",
+ "defence": "78",
+ "slayer-level": "72",
+ "experience": 625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "1100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2000",
+ "name": "3",
+ "slayer-exp": 510.79998779296875,
+ "lifepoints": "12500",
+ "max-ranged": "1100",
+ "max-magic": "1100",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeletal Wyvern#4.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "109",
+ "defence": "78",
+ "slayer-level": "72",
+ "experience": 625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "1100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2000",
+ "name": "4",
+ "slayer-exp": 510.79998779296875,
+ "lifepoints": "12500",
+ "max-ranged": "1100",
+ "max-magic": "1100",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Bossy McBossFace's First mate",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bossy McBossFace's First mate#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"175\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "78",
+ "slayer-level": "1",
+ "experience": 1100,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 363,
+ "max-melee": "1886.4",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "22000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant skeleton (Shadow Dungeon)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Giant skeleton (Shadow Dungeon)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 49.5,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 70,
+ "lifepoints": "3000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant skeleton (Tarn's Lair)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Giant skeleton (Tarn's Lair)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 49.5,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 70,
+ "lifepoints": "3000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Huge skeleton",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Huge skeleton#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "113",
+ "defence": "72",
+ "slayer-level": "0",
+ "experience": 600,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 198,
+ "max-melee": "1684.8",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": 608,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Huge skeleton#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "113",
+ "defence": "72",
+ "slayer-level": "0",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "1684.8",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": 608,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeletal miner",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeletal miner#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"177\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "1",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeletal shielder",
+ "variants": []
+ },
+ {
+ "name": "Skeleton",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton#Level 15.png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "15",
+ "defence": "11",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "44",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 15",
+ "slayer-exp": 8.800000190734863,
+ "lifepoints": "2100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton#Level 16.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "16",
+ "defence": "12",
+ "slayer-level": "1",
+ "experience": 30,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 9.899999618530273,
+ "max-melee": "48",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 16",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton#Level 32.png\" decoding=\"async\" loading=\"lazy\" width=\"299\" height=\"300\" id=\"image-?\">",
+ "level": "32",
+ "defence": "23",
+ "slayer-level": "1",
+ "experience": 57.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 18.899999618530273,
+ "max-melee": "92",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 32",
+ "slayer-exp": 13,
+ "lifepoints": "1150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton#Level 46.png\" decoding=\"async\" loading=\"lazy\" width=\"166\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 265,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 87.4000015258789,
+ "max-melee": "660",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 46",
+ "slayer-exp": 39.400001525878906,
+ "lifepoints": "5300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton#Level 51.png\" decoding=\"async\" loading=\"lazy\" width=\"239\" height=\"300\" id=\"image-?\">",
+ "level": "51",
+ "defence": "37",
+ "slayer-level": "1",
+ "experience": 297.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 98.0999984741211,
+ "max-melee": "740",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 51",
+ "slayer-exp": 47.20000076293945,
+ "lifepoints": "5950",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton#Level 58.png\" decoding=\"async\" loading=\"lazy\" width=\"204\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 58",
+ "slayer-exp": 29.600000381469727,
+ "lifepoints": "2100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton (Ape Atoll)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton (Ape Atoll)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"175\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 102.4000015258789,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton (Barrows)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Barrows)#86.png\" decoding=\"async\" loading=\"lazy\" width=\"130\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 155,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "372",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "86",
+ "slayer-exp": 77.19999694824219,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Barrows)#88.png\" decoding=\"async\" loading=\"lazy\" width=\"130\" height=\"300\" id=\"image-?\">",
+ "level": "88",
+ "defence": "63",
+ "slayer-level": "1",
+ "experience": 157.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 51.900001525878906,
+ "max-melee": "378",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "88",
+ "slayer-exp": 81,
+ "lifepoints": "3150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton (Dark Warriors' Fortress)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Dark Warriors' Fortress)#1.png\" decoding=\"async\" loading=\"lazy\" width=\"292\" height=\"300\" id=\"image-?\">",
+ "level": "32",
+ "defence": "23",
+ "slayer-level": "1",
+ "experience": 57.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 18.899999618530273,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": -1,
+ "lifepoints": "1150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Dark Warriors' Fortress)#2.png\" decoding=\"async\" loading=\"lazy\" width=\"273\" height=\"300\" id=\"image-?\">",
+ "level": "32",
+ "defence": "23",
+ "slayer-level": "1",
+ "experience": 57.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 18.899999618530273,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": -1,
+ "lifepoints": "1150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton (Heart of Gielinor)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton (Heart of Gielinor)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"228\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "980",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 334.20001220703125,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton (Lumbridge Catacombs)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton (Lumbridge Catacombs)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"145\" height=\"300\" id=\"image-?\">",
+ "level": "15",
+ "defence": "11",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 8.800000190734863,
+ "lifepoints": "2100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton (Tarn's Lair)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Tarn's Lair)#1.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"296\" id=\"image-?\">",
+ "level": "79",
+ "defence": "57",
+ "slayer-level": "1",
+ "experience": 142.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 47,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "1",
+ "slayer-exp": 60.599998474121094,
+ "lifepoints": "2850",
+ "max-ranged": "0",
+ "max-magic": "228",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Tarn's Lair)#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"284\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "2",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Tarn's Lair)#8.png\" decoding=\"async\" loading=\"lazy\" width=\"182\" height=\"300\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "1",
+ "experience": 130,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 42.900001525878906,
+ "max-melee": "208",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "8",
+ "slayer-exp": 47.400001525878906,
+ "lifepoints": "2600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton (Temple Trekking)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Temple Trekking)#18.png\" decoding=\"async\" loading=\"lazy\" width=\"286\" height=\"300\" id=\"image-?\">",
+ "level": "18",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 8.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 2.799999952316284,
+ "max-melee": "7",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "18",
+ "slayer-exp": 2.4000000953674316,
+ "lifepoints": "170",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Temple Trekking)#Helmet.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 35,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 11.5,
+ "max-melee": "28",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Helmet",
+ "slayer-exp": 18.600000381469727,
+ "lifepoints": "700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Temple Trekking)#No helmet.png\" decoding=\"async\" loading=\"lazy\" width=\"277\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 35,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 11.5,
+ "max-melee": "28",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "No helmet",
+ "slayer-exp": 18.600000381469727,
+ "lifepoints": "700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton (Ullek)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Ullek)#Warhammer.png\" decoding=\"async\" loading=\"lazy\" width=\"231\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Warhammer",
+ "slayer-exp": -1,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Ullek)#Axe.png\" decoding=\"async\" loading=\"lazy\" width=\"223\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Axe",
+ "slayer-exp": -1,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Ullek)#Round shield.png\" decoding=\"async\" loading=\"lazy\" width=\"215\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Round shield",
+ "slayer-exp": -1,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Ullek)#Square shield.png\" decoding=\"async\" loading=\"lazy\" width=\"255\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Square shield",
+ "slayer-exp": -1,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Ullek)#Mace.png\" decoding=\"async\" loading=\"lazy\" width=\"234\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Mace",
+ "slayer-exp": -1,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton (Uncharted Isles)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Uncharted Isles)#Melee (With Weapons).png\" decoding=\"async\" loading=\"lazy\" width=\"205\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 550,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 181.5,
+ "max-melee": "1515",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee (With Weapons)",
+ "slayer-exp": 98.5999984741211,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Uncharted Isles)#Melee (Without Weapons).png\" decoding=\"async\" loading=\"lazy\" width=\"149\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 550,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 181.5,
+ "max-melee": "1515",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee (Without Weapons)",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Uncharted Isles)#Ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 550,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 181.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "1515",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton Archer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton Archer#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "100",
+ "defence": "67",
+ "slayer-level": "0",
+ "experience": 729,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 240.5,
+ "max-melee": "369",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "10000",
+ "max-ranged": "369",
+ "max-magic": "369",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton Archer#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": -1,
+ "susceptible": [],
+ "lifepoint-exp": -1,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton Mage",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton Mage#Level 19.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"296\" id=\"image-?\">",
+ "level": "19",
+ "defence": "14",
+ "slayer-level": "1",
+ "experience": 35,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 11.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 19",
+ "slayer-exp": 9.399999618530273,
+ "lifepoints": "700",
+ "max-ranged": "0",
+ "max-magic": "56",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton Mage#Level 49.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"296\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "1",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 49",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "140",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton archer (Ancient Awakening)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton archer (Ancient Awakening)#1 (Ancient Awakening).png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 535.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 176.6999969482422,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "1 (Ancient Awakening)",
+ "slayer-exp": 0,
+ "lifepoints": "10710",
+ "max-ranged": "1500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton archer (Ancient Awakening)#2 (Ancient Awakening).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"270\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 535.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 176.6999969482422,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "2 (Ancient Awakening)",
+ "slayer-exp": 0,
+ "lifepoints": "10710",
+ "max-ranged": "1500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton archer (Ancient Awakening)#1 (Ungael combat activity).png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 765,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 252.39999389648438,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "1 (Ungael combat activity)",
+ "slayer-exp": 0,
+ "lifepoints": "15300",
+ "max-ranged": "1500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton archer (Ancient Awakening)#2 (Ungael combat activity).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"270\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 765,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 252.39999389648438,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "2 (Ungael combat activity)",
+ "slayer-exp": 0,
+ "lifepoints": "15300",
+ "max-ranged": "1500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton brute",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton brute#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "88",
+ "defence": "63",
+ "slayer-level": "1",
+ "experience": 157.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 51.900001525878906,
+ "max-melee": "252",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 81,
+ "lifepoints": "3150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton fremennik",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton fremennik#Level 23.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "23",
+ "defence": "17",
+ "slayer-level": "1",
+ "experience": 42.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 14,
+ "max-melee": "102",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 23",
+ "slayer-exp": 10.199999809265137,
+ "lifepoints": "850",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton fremennik#Level 28.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "28",
+ "defence": "22",
+ "slayer-level": "1",
+ "experience": 55,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 18.100000381469727,
+ "max-melee": "132",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 28",
+ "slayer-exp": 11.399999618530273,
+ "lifepoints": "1100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton fremennik#Level 30.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "30",
+ "defence": "22",
+ "slayer-level": "1",
+ "experience": 55,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 18.100000381469727,
+ "max-melee": "132",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 30",
+ "slayer-exp": 12.600000381469727,
+ "lifepoints": "1100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton heavy",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton heavy#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"265\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 160,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 52.79999923706055,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 85.19999694824219,
+ "lifepoints": "3200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton hero",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton hero#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"232\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 49.79999923706055,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton knight",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton knight#Ancient Awakening.png\" decoding=\"async\" loading=\"lazy\" width=\"243\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 787.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 259.79998779296875,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ancient Awakening",
+ "slayer-exp": 0,
+ "lifepoints": "15750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton knight#Ungael combat activity (standard).png\" decoding=\"async\" loading=\"lazy\" width=\"243\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (standard)",
+ "slayer-exp": 0,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton knight#Ungael combat activity (hard).png\" decoding=\"async\" loading=\"lazy\" width=\"243\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (hard)",
+ "slayer-exp": 0,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton ranger (Ancient Awakening)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton ranger (Ancient Awakening)#Ancient Awakening.png\" decoding=\"async\" loading=\"lazy\" width=\"247\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 670.25,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 221.10000610351562,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ancient Awakening",
+ "slayer-exp": 0,
+ "lifepoints": "13405",
+ "max-ranged": "1875",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton ranger (Ancient Awakening)#Ungael combat activity (standard).png\" decoding=\"async\" loading=\"lazy\" width=\"247\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 957.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 315.8999938964844,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (standard)",
+ "slayer-exp": 0,
+ "lifepoints": "19150",
+ "max-ranged": "1875",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton ranger (Ancient Awakening)#Ungael combat activity (hard).png\" decoding=\"async\" loading=\"lazy\" width=\"247\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1436.25,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 473.8999938964844,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (hard)",
+ "slayer-exp": 0,
+ "lifepoints": "28725",
+ "max-ranged": "1875",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton thug",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton thug#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"132\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 73.5999984741211,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton warlord",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton warlord#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"249\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 162.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 53.599998474121094,
+ "max-melee": "260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 89.4000015258789,
+ "lifepoints": "3250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton warrior (Ancient Awakening)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton warrior (Ancient Awakening)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"274\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "?",
+ "experience": 603.9000244140625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 199.1999969482422,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "15300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton warrior (Rasial)",
+ "variants": []
+ },
+ {
+ "name": "Summoned skeleton",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Summoned skeleton#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"177\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 450,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 148.5,
+ "max-melee": "1415",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": 1165,
+ "lifepoints": "9000",
+ "max-ranged": "1415",
+ "max-magic": "1415",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Summoned skeleton#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"177\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 225,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "1415",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": 1165,
+ "lifepoints": "4500",
+ "max-ranged": "1415",
+ "max-magic": "1415",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Summoned skeleton archer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Summoned skeleton archer#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "2000",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Summoned skeleton archer#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "?",
+ "slayer-level": "0",
+ "experience": 50,
+ "susceptible": [],
+ "lifepoint-exp": 16.5,
+ "max-melee": "?",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Training dummy",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Permanent.png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Permanent",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to air, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to air, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to air, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to air, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to air, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to air, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to water, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to water, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to water, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to water, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to water, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to water, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to earth, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to earth, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to earth, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to earth, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to earth, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to earth, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to fire, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to fire, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to fire, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to fire, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to fire, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to fire, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to nothing, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to nothing, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to nothing, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to nothing, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to nothing, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to nothing, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to stab, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to stab, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to stab, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to stab, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to stab, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to stab, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to slash, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to slash, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to slash, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to slash, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to slash, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to slash, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to crush, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to crush, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to crush, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to crush, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to crush, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to crush, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to nothing, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to nothing, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to nothing, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to nothing, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to nothing, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to nothing, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to arrows, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to arrows, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to arrows, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to arrows, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to arrows, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to arrows, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to bolts, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to bolts, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to bolts, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to bolts, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to bolts, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to bolts, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to thrown, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to thrown, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to thrown, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to thrown, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to thrown, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to thrown, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to nothing, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to nothing, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to nothing, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to nothing, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to nothing, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to nothing, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Dragon (magic).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Dragon (magic)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Dragon (ranged).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Dragon (ranged)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Dragon (melee).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Dragon (melee)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Undead (magic).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Undead (magic)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Undead (ranged).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Undead (ranged)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Undead (melee).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Undead (melee)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Demon (magic).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Demon (magic)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Demon (ranged).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Demon (ranged)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Demon (melee).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Demon (melee)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Abyssal demon (magic).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Abyssal demon (magic)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Abyssal demon (ranged).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Abyssal demon (ranged)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Abyssal demon (melee).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Abyssal demon (melee)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Wallasalki (magic).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Wallasalki (magic)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Wallasalki (ranged).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Wallasalki (ranged)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Wallasalki (melee).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Wallasalki (melee)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Basilisk (magic).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Basilisk (magic)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Basilisk (ranged).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Basilisk (ranged)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Basilisk (melee).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Basilisk (melee)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Revenant (magic).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Revenant (magic)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Revenant (ranged).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Revenant (ranged)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Revenant (melee).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Revenant (melee)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Undead one",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Undead one#Skeleton (level 44).png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "44",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 72.5999984741211,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "192",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Skeleton (level 44)",
+ "slayer-exp": 18.799999237060547,
+ "lifepoints": "1600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead one#Skeleton (level 46).png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 75.9000015258789,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 25,
+ "max-melee": "132",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Skeleton (level 46)",
+ "slayer-exp": 19.600000381469727,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead one#Zombie (level 44).png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "44",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 72.5999984741211,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "128",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Zombie (level 44)",
+ "slayer-exp": 18.799999237060547,
+ "lifepoints": "1600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead one#Zombie (level 46).png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 75.9000015258789,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 25,
+ "max-melee": "132",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Zombie (level 46)",
+ "slayer-exp": 19.600000381469727,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Warped skeleton",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Warped skeleton#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"181\" height=\"300\" id=\"image-?\">",
+ "level": "113",
+ "defence": "72",
+ "slayer-level": "0",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "1684.8",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1684.8",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped skeleton#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"181\" height=\"300\" id=\"image-?\">",
+ "level": "113",
+ "defence": "72",
+ "slayer-level": "0",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1684.8",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "15000",
+ "max-ranged": "0",
+ "max-magic": "1684.8",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Feline akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Feline akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"235\" id=\"image-?\">",
+ "level": "109",
+ "defence": "76",
+ "slayer-level": "107",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1166",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 536.2000122070312,
+ "lifepoints": "15000",
+ "max-ranged": "1166",
+ "max-magic": "1166",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Gorilla akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Gorilla akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"227\" height=\"300\" id=\"image-?\">",
+ "level": "111",
+ "defence": "70",
+ "slayer-level": "113",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1300",
+ "name": "Default",
+ "slayer-exp": 705.4000244140625,
+ "lifepoints": "20000",
+ "max-ranged": "1296",
+ "max-magic": "1296",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Imperial mage akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Imperial mage akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"174\" height=\"300\" id=\"image-?\">",
+ "level": "130",
+ "defence": "92",
+ "slayer-level": "117",
+ "experience": 1250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 1780.5999755859375,
+ "lifepoints": "25000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Imperial ranger akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Imperial ranger akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"172\" height=\"300\" id=\"image-?\">",
+ "level": "130",
+ "defence": "92",
+ "slayer-level": "117",
+ "experience": 1250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 1780.5999755859375,
+ "lifepoints": "25000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Imperial warrior akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Imperial warrior akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"243\" height=\"300\" id=\"image-?\">",
+ "level": "130",
+ "defence": "92",
+ "slayer-level": "117",
+ "experience": 1250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 1780.5999755859375,
+ "lifepoints": "25000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Oreb, the Magister",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Oreb, the Magister#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"234\" height=\"300\" id=\"image-?\">",
+ "level": "899",
+ "defence": "90",
+ "slayer-level": "0",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1425",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 8000,
+ "lifepoints": "200000",
+ "max-ranged": "1425",
+ "max-magic": "1425",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Salawa akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Salawa akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"242\" height=\"300\" id=\"image-?\">",
+ "level": "106",
+ "defence": "73",
+ "slayer-level": "105",
+ "experience": 625,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "1152",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 508.3999938964844,
+ "lifepoints": "12500",
+ "max-ranged": "1152",
+ "max-magic": "1152",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "The Magister",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/The Magister#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"259\" height=\"300\" id=\"image-?\">",
+ "level": "899",
+ "defence": "90",
+ "slayer-level": "115",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1425",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4000",
+ "name": "Default",
+ "slayer-exp": 8000,
+ "lifepoints": "200000",
+ "max-ranged": "1425",
+ "max-magic": "1425",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Soulgazer (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Soulgazer (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"227\" height=\"300\" id=\"image-?\">",
+ "level": "135",
+ "defence": "90",
+ "slayer-level": "99",
+ "experience": 6000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 1980,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 5849.2001953125,
+ "lifepoints": "120000",
+ "max-ranged": "0",
+ "max-magic": "1738",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corpse spider",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corpse spider#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"255\" id=\"image-?\">",
+ "level": "4",
+ "defence": "3",
+ "slayer-level": "1",
+ "experience": 30,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 9.899999618530273,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "600",
+ "max-ranged": "60",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Crypt spider",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Crypt spider#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"236\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 112.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 37.099998474121094,
+ "max-melee": "270",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 34.20000076293945,
+ "lifepoints": "2250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Deadly red spider",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Deadly red spider#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"209\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 307.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 101.4000015258789,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 103.5999984741211,
+ "lifepoints": "6150",
+ "max-ranged": "1360",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant crypt spider",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Giant crypt spider#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"171\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 49.5,
+ "max-melee": "360",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 70,
+ "lifepoints": "3000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant spider",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Giant spider#Level 2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"224\" id=\"image-?\">",
+ "level": "2",
+ "defence": "2",
+ "slayer-level": "1",
+ "experience": 27.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 9,
+ "max-melee": "40",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 2",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "550",
+ "max-ranged": "40",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant spider#Level 33.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"224\" id=\"image-?\">",
+ "level": "33",
+ "defence": "24",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "480",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 33",
+ "slayer-exp": 13.399999618530273,
+ "lifepoints": "3900",
+ "max-ranged": "480",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant spider#Level 29.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"218\" id=\"image-?\">",
+ "level": "29",
+ "defence": "19",
+ "slayer-level": "1",
+ "experience": 157.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 51.900001525878906,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 29",
+ "slayer-exp": 31.200000762939453,
+ "lifepoints": "3150",
+ "max-ranged": "480",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ice spider",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ice spider#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"162\" id=\"image-?\">",
+ "level": "42",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 120,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 39.599998474121094,
+ "max-melee": "440",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 17.200000762939453,
+ "lifepoints": "2400",
+ "max-ranged": "600",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Jungle spider",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Jungle spider#Common.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"261\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 272.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 89.9000015258789,
+ "max-melee": "1240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Common",
+ "slayer-exp": 77,
+ "lifepoints": "5450",
+ "max-ranged": "1240",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Jungle spider#Musa Point.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"261\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.20000076293945,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 12.199999809265137,
+ "max-melee": "56",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Musa Point",
+ "slayer-exp": 9,
+ "lifepoints": "750",
+ "max-ranged": "56",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Jungle spider#Ape Atoll.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"223\" id=\"image-?\">",
+ "level": "88",
+ "defence": "63",
+ "slayer-level": "1",
+ "experience": 312.29998779296875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 103,
+ "max-melee": "189",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ape Atoll",
+ "slayer-exp": -1,
+ "lifepoints": "3150",
+ "max-ranged": "252",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Jungle spider#Jade Vine (level 42).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"288\" id=\"image-?\">",
+ "level": "42",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 66.9000015258789,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 22,
+ "max-melee": "90",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Jade Vine (level 42)",
+ "slayer-exp": -1,
+ "lifepoints": "1500",
+ "max-ranged": "120",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Jungle spider#Jade Vine (level 49).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"288\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "1",
+ "experience": 83.0999984741211,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 27.399999618530273,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Jade Vine (level 49)",
+ "slayer-exp": -1,
+ "lifepoints": "1750",
+ "max-ranged": "140",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Jungle spider#Tai Bwo Wannai Cleanup.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"261\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 272.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 89.9000015258789,
+ "max-melee": "1240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Tai Bwo Wannai Cleanup",
+ "slayer-exp": -1,
+ "lifepoints": "5450",
+ "max-ranged": "1240",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Lava spider",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Lava spider#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"216\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal mode",
+ "slayer-exp": 491,
+ "lifepoints": "15000",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Lava spider#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"216\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Story mode",
+ "slayer-exp": 245.5,
+ "lifepoints": "15000",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Poison spider",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Poison spider#Common.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"254\" id=\"image-?\">",
+ "level": "53",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 185,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 61,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Common",
+ "slayer-exp": 34.20000076293945,
+ "lifepoints": "3700",
+ "max-ranged": "600",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Poison spider#Observatory.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"254\" id=\"image-?\">",
+ "level": "15",
+ "defence": "11",
+ "slayer-level": "1",
+ "experience": 27.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 9,
+ "max-melee": "33",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Observatory",
+ "slayer-exp": 8.800000190734863,
+ "lifepoints": "550",
+ "max-ranged": "44",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Shadow spider",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Shadow spider#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"173\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "132",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 19.600000381469727,
+ "lifepoints": "1650",
+ "max-ranged": "132",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Spider",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Spider#Common.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"186\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 2.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0.800000011920929,
+ "max-melee": "4",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Common",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "50",
+ "max-ranged": "4",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spider#Underground Pass.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"243\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 2.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0.800000011920929,
+ "max-melee": "3",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Underground Pass",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "50",
+ "max-ranged": "4",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spider#Ape Atoll.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"285\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 2.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0.800000011920929,
+ "max-melee": "3",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ape Atoll",
+ "slayer-exp": 17.600000381469727,
+ "lifepoints": "50",
+ "max-ranged": "4",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spider#Stronghold of Security.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"243\" id=\"image-?\">",
+ "level": "15",
+ "defence": "11",
+ "slayer-level": "1",
+ "experience": 52.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 17.299999237060547,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Stronghold of Security",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "1050",
+ "max-ranged": "220",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Spyndra",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Spyndra#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"216\" id=\"image-?\">",
+ "level": "107",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 9000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 2970,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "180000",
+ "max-ranged": "816",
+ "max-magic": "816",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spyndra#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"216\" id=\"image-?\">",
+ "level": "107",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 9000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 2970,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Story mode",
+ "slayer-exp": 3760.89990234375,
+ "lifepoints": "180000",
+ "max-ranged": "816",
+ "max-magic": "816",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Veil-ripper Ozharakha",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Veil-ripper Ozharakha#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "135",
+ "defence": "90",
+ "slayer-level": "99",
+ "experience": 7500,
+ "susceptible": [],
+ "lifepoint-exp": 2475,
+ "max-melee": "1104",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 25000,
+ "lifepoints": "150000",
+ "max-ranged": "1104",
+ "max-magic": "1104",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Suqah",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Suqah#Level 73 (Dual wielding swords).png\" decoding=\"async\" loading=\"lazy\" width=\"289\" height=\"300\" id=\"image-?\">",
+ "level": "73",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": [],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "380",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 73 (Dual wielding swords)",
+ "slayer-exp": 47.400001525878906,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "380",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Suqah#Level 74.png\" decoding=\"async\" loading=\"lazy\" width=\"279\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": [],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 74",
+ "slayer-exp": 49.79999923706055,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Suqah#Level 74 (Magic).png\" decoding=\"async\" loading=\"lazy\" width=\"279\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": [],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 74 (Magic)",
+ "slayer-exp": 49.79999923706055,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Suqah#Level 79.png\" decoding=\"async\" loading=\"lazy\" width=\"279\" height=\"300\" id=\"image-?\">",
+ "level": "79",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 79",
+ "slayer-exp": 57.599998474121094,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Terror dog",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Terror dog#Level 65.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "65",
+ "defence": "47",
+ "slayer-level": "40",
+ "experience": 235,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 77.5,
+ "max-melee": "188",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 65",
+ "slayer-exp": 75.4000015258789,
+ "lifepoints": "4700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Terror dog#Level 61.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "61",
+ "defence": "44",
+ "slayer-level": "40",
+ "experience": 220,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 72.5999984741211,
+ "max-melee": "176",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 61",
+ "slayer-exp": 65.19999694824219,
+ "lifepoints": "4400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ice troll",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ice troll#Troll Romance.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"280\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "38",
+ "experience": 525,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 173.1999969482422,
+ "max-melee": "1200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Troll Romance",
+ "slayer-exp": 70,
+ "lifepoints": "10500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ice troll#Desert Treasure.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"280\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "38",
+ "experience": 525,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 173.1999969482422,
+ "max-melee": "1200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Desert Treasure",
+ "slayer-exp": 70,
+ "lifepoints": "10500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ice troll female",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ice troll female#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"274\" height=\"300\" id=\"image-?\">",
+ "level": "68",
+ "defence": "49",
+ "slayer-level": "1",
+ "experience": 410,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 135.3000030517578,
+ "max-melee": "720",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 41.5,
+ "lifepoints": "8200",
+ "max-ranged": "980",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ice troll grunt",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ice troll grunt#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"193\" height=\"300\" id=\"image-?\">",
+ "level": "68",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 420,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 138.60000610351562,
+ "max-melee": "1000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "8400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ice troll male",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ice troll male#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"275\" height=\"300\" id=\"image-?\">",
+ "level": "68",
+ "defence": "49",
+ "slayer-level": "1",
+ "experience": 410,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 135.3000030517578,
+ "max-melee": "980",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 41.5,
+ "lifepoints": "8200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ice troll runt",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ice troll runt#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"271\" id=\"image-?\">",
+ "level": "53",
+ "defence": "38",
+ "slayer-level": "1",
+ "experience": 307.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 101.4000015258789,
+ "max-melee": "760",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 24.799999237060547,
+ "lifepoints": "6150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kraka",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Kraka#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"274\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 657.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 216.89999389648438,
+ "max-melee": "1800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 70,
+ "lifepoints": "13150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mountain troll",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mountain troll#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"259\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 460,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 151.8000030517578,
+ "max-melee": "1620",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 52.20000076293945,
+ "lifepoints": "9200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mountain troll (well)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mountain troll (well)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"259\" height=\"300\" id=\"image-?\">",
+ "level": "9",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 7,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Pee Hat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Pee Hat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"290\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 657.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 216.89999389648438,
+ "max-melee": "1800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 70,
+ "lifepoints": "13150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "River troll",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/River troll#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"215\" height=\"300\" id=\"image-?\">",
+ "level": "N/A",
+ "defence": "130",
+ "slayer-level": "1",
+ "experience": 172.1999969482422,
+ "susceptible": [],
+ "lifepoint-exp": 56.79999923706055,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 89.4000015258789,
+ "lifepoints": "1700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Rock (monster)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Rock (monster)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"272\" height=\"300\" id=\"image-?\">",
+ "level": "88",
+ "defence": "63",
+ "slayer-level": "1",
+ "experience": 1395,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 460.29998779296875,
+ "max-melee": "1890",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 81,
+ "lifepoints": "27900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Stick",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Stick#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"268\" id=\"image-?\">",
+ "level": "85",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 670,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 221.10000610351562,
+ "max-melee": "1830",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 73.5999984741211,
+ "lifepoints": "13400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Stove",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Stove#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"230\" height=\"300\" id=\"image-?\">",
+ "level": "4",
+ "defence": "3",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "129",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Thrower Troll",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Thrower Troll#Death Plateau.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 472.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 155.89999389648438,
+ "max-melee": "1435",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Death Plateau",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "9450",
+ "max-ranged": "1225",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Thrower Troll#Trollheim.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 472.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 155.89999389648438,
+ "max-melee": "1435",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Trollheim",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "9450",
+ "max-ranged": "1225",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Troll brute",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll brute#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"265\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 12.800000190734863,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Troll brute (Davendale)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll brute (Davendale)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"182\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 20,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "72",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Troll chucker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll chucker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"158\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 12.800000190734863,
+ "lifepoints": "250",
+ "max-ranged": "20",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Troll chucker (Davendale)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll chucker (Davendale)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"163\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": 20,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "0",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "72",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Troll general",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Troll general#Sword.png\" decoding=\"async\" loading=\"lazy\" width=\"272\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 727.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 240,
+ "max-melee": "1950",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Sword",
+ "slayer-exp": 89.4000015258789,
+ "lifepoints": "14550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Troll general#Hammer.png\" decoding=\"async\" loading=\"lazy\" width=\"263\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 727.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 240,
+ "max-melee": "1950",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Hammer",
+ "slayer-exp": 89.4000015258789,
+ "lifepoints": "14550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Troll general#Club.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"295\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 727.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 240,
+ "max-melee": "1950",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Club",
+ "slayer-exp": 89.4000015258789,
+ "lifepoints": "14550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Troll lout",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll lout#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"224\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 20,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "72",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Troll shaman",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll shaman#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"231\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "20",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Troll shaman (Davendale)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll shaman (Davendale)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"238\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": 20,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "0",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Troll spectator",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll spectator#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"255\" height=\"300\" id=\"image-?\">",
+ "level": "65",
+ "defence": "47",
+ "slayer-level": "1",
+ "experience": 390,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 128.6999969482422,
+ "max-melee": "1175",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 37.599998474121094,
+ "lifepoints": "7800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Undead troll",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 77.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 77",
+ "slayer-exp": -1,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 81 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"175\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "232",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 81 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 81 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "232",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 81 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 81 (3).png\" decoding=\"async\" loading=\"lazy\" width=\"192\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "232",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 81 (3)",
+ "slayer-exp": -1,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 81 (4).png\" decoding=\"async\" loading=\"lazy\" width=\"188\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "232",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 81 (4)",
+ "slayer-exp": -1,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 81 (5).png\" decoding=\"async\" loading=\"lazy\" width=\"183\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "232",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 81 (5)",
+ "slayer-exp": -1,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 86 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"187\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 155,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "248",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 86 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 86 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"187\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 155,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "248",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 86 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 86 (3).png\" decoding=\"async\" loading=\"lazy\" width=\"210\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 155,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "248",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 86 (3)",
+ "slayer-exp": -1,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 95 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"193\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 170,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 56.099998474121094,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 95 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 95 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 170,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 56.099998474121094,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 95 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 95 (3).png\" decoding=\"async\" loading=\"lazy\" width=\"191\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 170,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 56.099998474121094,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 95 (3)",
+ "slayer-exp": -1,
+ "lifepoints": "3400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 95 (4).png\" decoding=\"async\" loading=\"lazy\" width=\"176\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 170,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 56.099998474121094,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 95 (4)",
+ "slayer-exp": -1,
+ "lifepoints": "3400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 95 (5).png\" decoding=\"async\" loading=\"lazy\" width=\"207\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 170,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 56.099998474121094,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 95 (5)",
+ "slayer-exp": -1,
+ "lifepoints": "3400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 95 (6).png\" decoding=\"async\" loading=\"lazy\" width=\"210\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 170,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 56.099998474121094,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 95 (6)",
+ "slayer-exp": -1,
+ "lifepoints": "3400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 95 (7).png\" decoding=\"async\" loading=\"lazy\" width=\"201\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 170,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 56.099998474121094,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 95 (7)",
+ "slayer-exp": -1,
+ "lifepoints": "3400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Turoth",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Turoth#60 - Small.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"284\" id=\"image-?\">",
+ "level": "60",
+ "defence": "44",
+ "slayer-level": "55",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "840",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "60 - Small",
+ "slayer-exp": 52,
+ "lifepoints": "3600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Turoth#60 - Large.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"298\" id=\"image-?\">",
+ "level": "60",
+ "defence": "44",
+ "slayer-level": "55",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "840",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "60 - Large",
+ "slayer-exp": 52,
+ "lifepoints": "3600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Turoth#68 - Male.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"258\" id=\"image-?\">",
+ "level": "68",
+ "defence": "50",
+ "slayer-level": "55",
+ "experience": 210,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 69.30000305175781,
+ "max-melee": "960",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "68 - Male",
+ "slayer-exp": 70.80000305175781,
+ "lifepoints": "4200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Turoth#68 - Female.png\" decoding=\"async\" loading=\"lazy\" width=\"284\" height=\"300\" id=\"image-?\">",
+ "level": "68",
+ "defence": "50",
+ "slayer-level": "55",
+ "experience": 210,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 69.30000305175781,
+ "max-melee": "960",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "68 - Female",
+ "slayer-exp": 70.80000305175781,
+ "lifepoints": "4200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "TzHaar-Hur",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/TzHaar-Hur#Level 86.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"290\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 155,
+ "susceptible": [],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "310",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 86",
+ "slayer-exp": 77.5,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/TzHaar-Hur#Level 98.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"290\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 175,
+ "susceptible": [],
+ "lifepoint-exp": 57.70000076293945,
+ "max-melee": "210",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 98",
+ "slayer-exp": 0,
+ "lifepoints": "3500",
+ "max-ranged": "0",
+ "max-magic": "280",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "TzHaar-Ket",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/TzHaar-Ket#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"271\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 155,
+ "susceptible": [],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "248",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 77.5,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "TzHaar-Mej",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/TzHaar-Mej#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"270\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 155,
+ "susceptible": [],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 77.5,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "310",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "TzHaar-Xil",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/TzHaar-Xil#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"279\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "0",
+ "experience": 155,
+ "susceptible": [],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "248",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee",
+ "slayer-exp": 77.5,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/TzHaar-Xil#Ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"279\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "0",
+ "experience": 155,
+ "susceptible": [],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged",
+ "slayer-exp": 77.5,
+ "lifepoints": "3100",
+ "max-ranged": "248",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Animated spade",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Animated spade#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"83\" height=\"300\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "1",
+ "experience": 130,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 42.900001525878906,
+ "max-melee": "208",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "2600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Armoured zombie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"116\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 310,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 102.30000305175781,
+ "max-melee": "297",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee",
+ "slayer-exp": 154.39999389648438,
+ "lifepoints": "6200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#Ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "144",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged",
+ "slayer-exp": 154.39999389648438,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#Ritual of the Mahjarrat.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "144",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ritual of the Mahjarrat",
+ "slayer-exp": 154.39999389648438,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"116\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "144",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "The World Wakes",
+ "slayer-exp": 154.39999389648438,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#One of a Kind.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "144",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "One of a Kind",
+ "slayer-exp": 154.39999389648438,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#Dishonour among Thieves.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "144",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Dishonour among Thieves",
+ "slayer-exp": 154.39999389648438,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#Dimension of Disaster.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "42",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "144",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Dimension of Disaster",
+ "slayer-exp": 154.39999389648438,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#New Foundations.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "144",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "New Foundations",
+ "slayer-exp": 9.600000381469727,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Bloated monstrosity",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Bloated monstrosity#Normal mode (trio).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode (trio)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bloated monstrosity#Normal mode (duo).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode (duo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bloated monstrosity#Normal mode (solo).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode (solo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bloated monstrosity#Story mode (trio).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode (trio)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bloated monstrosity#Story mode (duo).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode (duo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bloated monstrosity#Story mode (solo).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode (solo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Corpse archer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corpse archer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"132\" height=\"300\" id=\"image-?\">",
+ "level": "18",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 117.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 38.70000076293945,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "2350",
+ "max-ranged": "260",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corpse carrier",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Corpse carrier#Normal mode (trio).png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode (trio)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Corpse carrier#Normal mode (duo).png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode (duo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Corpse carrier#Normal mode (solo).png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode (solo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Corpse carrier#Story mode (trio).png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode (trio)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Corpse carrier#Story mode (duo).png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode (duo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Corpse carrier#Story mode (solo).png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode (solo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Corpse mage",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corpse mage#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 9,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "300",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Crawling corpse torso",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Crawling corpse torso#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"231\" id=\"image-?\">",
+ "level": "9",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 40,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 13.199999809265137,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 16.600000381469727,
+ "lifepoints": "800",
+ "max-ranged": "0",
+ "max-magic": "140",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dragith Nurn",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dragith Nurn#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"142\" height=\"300\" id=\"image-?\">",
+ "level": "26",
+ "defence": "19",
+ "slayer-level": "1",
+ "experience": 395,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 130.3000030517578,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 11,
+ "lifepoints": "7900",
+ "max-ranged": "280",
+ "max-magic": "380",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "General malpractitioner",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/General malpractitioner#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"129\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 49.5,
+ "max-melee": "180",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "3000",
+ "max-ranged": "240",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Graveside Phantom",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Graveside Phantom#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "104",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "768",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Magic axe",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Magic axe#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"267\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "1",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Monkey Zombie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Monkey Zombie#72.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"300\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "1",
+ "experience": 130,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 42.900001525878906,
+ "max-melee": "208",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "72",
+ "slayer-exp": 47.400001525878906,
+ "lifepoints": "2600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Monkey Zombie#75.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "75",
+ "slayer-exp": 52.20000076293945,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Monkey Zombie#77.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "77",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Mummy (Jaldraocht Pyramid)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#1.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#2.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#3.png\" decoding=\"async\" loading=\"lazy\" width=\"141\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#4.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#1 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"147\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (on fire)",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#2 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"147\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2 (on fire)",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#3 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3 (on fire)",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#4 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4 (on fire)",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#Ashes.png\" decoding=\"async\" loading=\"lazy\" width=\"150\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ashes",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#Jaldraocht sarcophagus.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Jaldraocht sarcophagus",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Mummy (Ullek)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#1.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#2.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#3.png\" decoding=\"async\" loading=\"lazy\" width=\"141\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#4.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#1 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"147\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (on fire)",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#2 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"147\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2 (on fire)",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#3 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3 (on fire)",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#4 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4 (on fire)",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#Ashes.png\" decoding=\"async\" loading=\"lazy\" width=\"150\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ashes",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Phantom sorcerer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Phantom sorcerer#1 (Ancient Awakening).png\" decoding=\"async\" loading=\"lazy\" width=\"221\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 787.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 259.79998779296875,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (Ancient Awakening)",
+ "slayer-exp": 0,
+ "lifepoints": "15750",
+ "max-ranged": "0",
+ "max-magic": "1875",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Phantom sorcerer#1 (standard Ungael combat activity).png\" decoding=\"async\" loading=\"lazy\" width=\"221\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (standard Ungael combat activity)",
+ "slayer-exp": 0,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "1875",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Phantom sorcerer#1 (hard Ungael combat activity).png\" decoding=\"async\" loading=\"lazy\" width=\"221\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (hard Ungael combat activity)",
+ "slayer-exp": 0,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "1875",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Phantom wizard",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Phantom wizard#1 (Ancient Awakening).png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 535.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 176.6999969482422,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (Ancient Awakening)",
+ "slayer-exp": 0,
+ "lifepoints": "10710",
+ "max-ranged": "0",
+ "max-magic": "1500",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Phantom wizard#1 (Ungael combat activity).png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 765,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 252.39999389648438,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (Ungael combat activity)",
+ "slayer-exp": 0,
+ "lifepoints": "15300",
+ "max-ranged": "0",
+ "max-magic": "1500",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Possessed pickaxe",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Possessed pickaxe#Abandoned Mine.png\" decoding=\"async\" loading=\"lazy\" width=\"174\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Abandoned Mine",
+ "slayer-exp": -1,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Possessed pickaxe#Lair of Tarn Razorlor.png\" decoding=\"async\" loading=\"lazy\" width=\"174\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": 175,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 57.70000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Lair of Tarn Razorlor",
+ "slayer-exp": -1,
+ "lifepoints": "3500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Possessed pickaxe#Dominion Tower.png\" decoding=\"async\" loading=\"lazy\" width=\"174\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": -1,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": -1,
+ "max-melee": "210",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Dominion Tower",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Possessed pickaxe (Lava Flow Mine)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Possessed pickaxe (Lava Flow Mine)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"174\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 20,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Putrid zombie (Rasial)",
+ "variants": []
+ },
+ {
+ "name": "Soulless armoured zombie",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Soulless armoured zombie#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "N/A",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "288",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "10000000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Soulless unarmoured zombie",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Soulless unarmoured zombie#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "N/A",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": -1,
+ "susceptible": [],
+ "lifepoint-exp": -1,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Taraket the Necromancer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Taraket the Necromancer#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"160\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 10000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 3300,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "400000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Taraket the Necromancer#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"160\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 10000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 3300,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "400000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Undead giant (Battle of Forinthry)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Undead giant (Battle of Forinthry)#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"192\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "90",
+ "slayer-level": "?",
+ "experience": 3063.75,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1011,
+ "max-melee": "3000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "61275",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead giant (Battle of Forinthry)#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"192\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "90",
+ "slayer-level": "?",
+ "experience": 6127.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 2022,
+ "max-melee": "3000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "122550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Unstable zombie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Unstable zombie#Ancient Awakening.png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 787.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 259.79998779296875,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ancient Awakening",
+ "slayer-exp": 0,
+ "lifepoints": "15750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Unstable zombie#Ungael combat activity (standard).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (standard)",
+ "slayer-exp": 0,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Unstable zombie#Ungael combat activity (hard).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (hard)",
+ "slayer-exp": 0,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zombie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie#Level 12.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "12",
+ "defence": "9",
+ "slayer-level": "1",
+ "experience": 30.899999618530273,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 10.100000381469727,
+ "max-melee": "36",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 12",
+ "slayer-exp": 8,
+ "lifepoints": "450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie#Level 22.png\" decoding=\"async\" loading=\"lazy\" width=\"121\" height=\"300\" id=\"image-?\">",
+ "level": "22",
+ "defence": "16",
+ "slayer-level": "1",
+ "experience": 38.099998474121094,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 12.5,
+ "max-melee": "64",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 22",
+ "slayer-exp": 8,
+ "lifepoints": "800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie#Level 22 (Graveyard of Shadows).png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "22",
+ "defence": "16",
+ "slayer-level": "1",
+ "experience": 38.099998474121094,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 12.5,
+ "max-melee": "64",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 22 (Graveyard of Shadows)",
+ "slayer-exp": 8,
+ "lifepoints": "800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie#Level 29.png\" decoding=\"async\" loading=\"lazy\" width=\"127\" height=\"300\" id=\"image-?\">",
+ "level": "29",
+ "defence": "21",
+ "slayer-level": "1",
+ "experience": 46.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 15.300000190734863,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 29",
+ "slayer-exp": 9.800000190734863,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie#Level 29 (Entrana).png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "29",
+ "defence": "21",
+ "slayer-level": "1",
+ "experience": 46.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 15.300000190734863,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 29 (Entrana)",
+ "slayer-exp": 8,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie#Level 29 (Graveyard of Shadows).png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "29",
+ "defence": "21",
+ "slayer-level": "1",
+ "experience": 46.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 15.300000190734863,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 29 (Graveyard of Shadows)",
+ "slayer-exp": 12,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zombie (New Varrock)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Zombie (New Varrock)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"130\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 1.2000000476837158,
+ "susceptible": [],
+ "lifepoint-exp": 0.30000001192092896,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "25",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Zombie cow (New Varrock)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie cow (New Varrock)#Boss.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"220\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Boss",
+ "slayer-exp": -1,
+ "lifepoints": "50",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie cow (New Varrock)#Regular.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"220\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 10,
+ "susceptible": [],
+ "lifepoint-exp": 3.299999952316284,
+ "max-melee": "28",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Regular",
+ "slayer-exp": -1,
+ "lifepoints": "200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Zombie knight",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie knight#Ancient Awakening.png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 787.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 259.79998779296875,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ancient Awakening",
+ "slayer-exp": 0,
+ "lifepoints": "15750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie knight#Ungael combat activity (standard).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (standard)",
+ "slayer-exp": 0,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie knight#Ungael combat activity (hard).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (hard)",
+ "slayer-exp": 0,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zombie pirate",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie pirate#Level 49.png\" decoding=\"async\" loading=\"lazy\" width=\"141\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "1",
+ "experience": 83.0999984741211,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 27.399999618530273,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 49",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie pirate#Level 50.png\" decoding=\"async\" loading=\"lazy\" width=\"203\" height=\"300\" id=\"image-?\">",
+ "level": "50",
+ "defence": "36",
+ "slayer-level": "1",
+ "experience": 86.69999694824219,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 28.600000381469727,
+ "max-melee": "144",
+ "weakness": [
+ "<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"
+ ],
+ "max-spec": "0",
+ "name": "Level 50",
+ "slayer-exp": 11.199999809265137,
+ "lifepoints": "1800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie pirate#Pieces of Hate.png\" decoding=\"async\" loading=\"lazy\" width=\"141\" height=\"300\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 54,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 17.799999237060547,
+ "max-melee": "120",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Pieces of Hate",
+ "slayer-exp": 0,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zombie swab",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Zombie swab#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"121\" height=\"300\" id=\"image-?\">",
+ "level": "47",
+ "defence": "34",
+ "slayer-level": "1",
+ "experience": 79.80000305175781,
+ "susceptible": [],
+ "lifepoint-exp": 26.299999237060547,
+ "max-melee": "136",
+ "weakness": [
+ "<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"
+ ],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 22,
+ "lifepoints": "1700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Zombie warrior",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie warrior#1 (Ancient Awakening).png\" decoding=\"async\" loading=\"lazy\" width=\"132\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 535.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 176.6999969482422,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "1 (Ancient Awakening)",
+ "slayer-exp": 0,
+ "lifepoints": "10710",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie warrior#2 (Ancient Awakening).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 535.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 176.6999969482422,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "2 (Ancient Awakening)",
+ "slayer-exp": 0,
+ "lifepoints": "10710",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie warrior#1 (Ungael combat activity).png\" decoding=\"async\" loading=\"lazy\" width=\"132\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 765,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 252.39999389648438,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "1 (Ungael combat activity)",
+ "slayer-exp": 0,
+ "lifepoints": "15300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie warrior#2 (Ungael combat activity).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 765,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 252.39999389648438,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "2 (Ungael combat activity)",
+ "slayer-exp": 0,
+ "lifepoints": "15300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Angry vampyre",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Angry vampyre#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"270\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 29.600000381469727,
+ "lifepoints": "2100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Feral vampyre",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Feral vampyre#Standard.png\" decoding=\"async\" loading=\"lazy\" width=\"250\" height=\"300\" id=\"image-?\">",
+ "level": "61",
+ "defence": "44",
+ "slayer-level": "1",
+ "experience": 110,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 36.29999923706055,
+ "max-melee": "176",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Standard",
+ "slayer-exp": 32.599998474121094,
+ "lifepoints": "2200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Feral vampyre#Spider.png\" decoding=\"async\" loading=\"lazy\" width=\"250\" height=\"300\" id=\"image-?\">",
+ "level": "61",
+ "defence": "44",
+ "slayer-level": "1",
+ "experience": 110,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 36.29999923706055,
+ "max-melee": "176",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Spider",
+ "slayer-exp": 32.599998474121094,
+ "lifepoints": "2200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Vampyre",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Vampyre#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"250\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 170.39999389648438,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Vampyre Juvenile",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Vampyre Juvenile#Burgh de Rott.png\" decoding=\"async\" loading=\"lazy\" width=\"150\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [],
+ "lifepoint-exp": 33,
+ "max-melee": "160",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Burgh de Rott",
+ "slayer-exp": 28,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vampyre Juvenile#Meiyerditch.png\" decoding=\"async\" loading=\"lazy\" width=\"121\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "?",
+ "experience": 100,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 33,
+ "max-melee": "160",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Meiyerditch",
+ "slayer-exp": 28,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Vampyre Juvinate",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Vampyre Juvinate#Burgh de Rott (Level 58).png\" decoding=\"async\" loading=\"lazy\" width=\"116\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": [],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Burgh de Rott (Level 58)",
+ "slayer-exp": 210,
+ "lifepoints": "2100",
+ "max-ranged": "168",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vampyre Juvinate#Burgh de Rott (Level 63).png\" decoding=\"async\" loading=\"lazy\" width=\"116\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 487.5,
+ "susceptible": [],
+ "lifepoint-exp": 160.8000030517578,
+ "max-melee": "576",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Burgh de Rott (Level 63)",
+ "slayer-exp": 210,
+ "lifepoints": "9750",
+ "max-ranged": "576",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vampyre Juvinate#Meiyerditch.png\" decoding=\"async\" loading=\"lazy\" width=\"116\" height=\"300\" id=\"image-?\">",
+ "level": "61",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 487.5,
+ "susceptible": [],
+ "lifepoint-exp": 160.8000030517578,
+ "max-melee": "576",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Meiyerditch",
+ "slayer-exp": 210,
+ "lifepoints": "9750",
+ "max-ranged": "576",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vampyre Juvinate#Darkmeyer.png\" decoding=\"async\" loading=\"lazy\" width=\"116\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 487.5,
+ "susceptible": [],
+ "lifepoint-exp": 160.8000030517578,
+ "max-melee": "576",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Darkmeyer",
+ "slayer-exp": 210,
+ "lifepoints": "9750",
+ "max-ranged": "576",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Devil's snare",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Devil's snare#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"274\" id=\"image-?\">",
+ "level": "220",
+ "defence": "70",
+ "slayer-level": "90",
+ "experience": 2100,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 693,
+ "max-melee": "1152",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 1760,
+ "lifepoints": "42000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Lampenflora",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Lampenflora#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"249\" height=\"300\" id=\"image-?\">",
+ "level": "216",
+ "defence": "70",
+ "slayer-level": "102",
+ "experience": 1250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 412.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3600",
+ "name": "Default",
+ "slayer-exp": 1331.800048828125,
+ "lifepoints": "25000",
+ "max-ranged": "0",
+ "max-magic": "1296",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Liverworts",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Liverworts#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "228",
+ "defence": "70",
+ "slayer-level": "110",
+ "experience": 3000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 990,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "4104",
+ "name": "Default",
+ "slayer-exp": 3338.39990234375,
+ "lifepoints": "60000",
+ "max-ranged": "1368",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Luminous snaggler",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Luminous snaggler#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"200\" id=\"image-?\">",
+ "level": "224",
+ "defence": "70",
+ "slayer-level": "95",
+ "experience": 2900,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 957,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "6900",
+ "name": "Default",
+ "slayer-exp": 1664.800048828125,
+ "lifepoints": "58000",
+ "max-ranged": "0",
+ "max-magic": "2300",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Vyrelady",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Vyrelady#1.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "1",
+ "slayer-exp": 340,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelady#2.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "2",
+ "slayer-exp": 340,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelady#3.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "3",
+ "slayer-exp": 340,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelady#4.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "4",
+ "slayer-exp": 340,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelady#5.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "5",
+ "slayer-exp": 340,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelady#6.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "6",
+ "slayer-exp": 340,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Vyrelord",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Vyrelord#1.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "1",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelord#2.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "2",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelord#3.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "3",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelord#4.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "4",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelord#5.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "5",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelord#6.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "6",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Vyrewatch",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 70.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 70",
+ "slayer-exp": 43.20000076293945,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "200",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 72.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "1",
+ "experience": 130,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 42.900001525878906,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 72",
+ "slayer-exp": 47.400001525878906,
+ "lifepoints": "2600",
+ "max-ranged": "0",
+ "max-magic": "208",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 75.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 135,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 44.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 75",
+ "slayer-exp": 52.20000076293945,
+ "lifepoints": "2700",
+ "max-ranged": "0",
+ "max-magic": "216",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 78.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 140,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 46.20000076293945,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 78",
+ "slayer-exp": 57.599998474121094,
+ "lifepoints": "2800",
+ "max-ranged": "0",
+ "max-magic": "224",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 86.png\" decoding=\"async\" loading=\"lazy\" width=\"103\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "?",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 86",
+ "slayer-exp": 238.6999969482422,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "595",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 91.png\" decoding=\"async\" loading=\"lazy\" width=\"103\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "?",
+ "experience": 528,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 174.1999969482422,
+ "max-melee": "260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 91",
+ "slayer-exp": 364.5,
+ "lifepoints": "10560",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Temple Trekking (Easy Route).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "?",
+ "experience": 175,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 57.70000076293945,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Temple Trekking (Easy Route)",
+ "slayer-exp": -1,
+ "lifepoints": "3500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Temple Trekking (Medium Route).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "?",
+ "experience": 325,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 107.19999694824219,
+ "max-melee": "260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Temple Trekking (Medium Route)",
+ "slayer-exp": -1,
+ "lifepoints": "6500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Temple Trekking (Hard Route).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "97",
+ "defence": "60",
+ "slayer-level": "?",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Temple Trekking (Hard Route)",
+ "slayer-exp": -1,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 70 (East of Burgh de Rott).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "70",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": 406,
+ "susceptible": [],
+ "lifepoint-exp": 133.89999389648438,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Level 70 (East of Burgh de Rott)",
+ "slayer-exp": -1,
+ "lifepoints": "8120",
+ "max-ranged": "0",
+ "max-magic": "?",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 72 (East of Burgh de Rott).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "72",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": 422.5,
+ "susceptible": [],
+ "lifepoint-exp": 139.39999389648438,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Level 72 (East of Burgh de Rott)",
+ "slayer-exp": -1,
+ "lifepoints": "8450",
+ "max-ranged": "0",
+ "max-magic": "?",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 75 (East of Burgh de Rott).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "75",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": 438.5,
+ "susceptible": [],
+ "lifepoint-exp": 144.6999969482422,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Level 75 (East of Burgh de Rott)",
+ "slayer-exp": -1,
+ "lifepoints": "8770",
+ "max-ranged": "0",
+ "max-magic": "?",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 78 (East of Burgh de Rott).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "78",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": 455,
+ "susceptible": [],
+ "lifepoint-exp": 150.10000610351562,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Level 78 (East of Burgh de Rott)",
+ "slayer-exp": -1,
+ "lifepoints": "9100",
+ "max-ranged": "0",
+ "max-magic": "?",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Wall beast",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wall beast#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "45",
+ "defence": "34",
+ "slayer-level": "35",
+ "experience": 272.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 89.9000015258789,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 20.600000381469727,
+ "lifepoints": "5450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Warped terrorbird",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#1.png\" decoding=\"async\" loading=\"lazy\" width=\"239\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#1 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"236\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#2.png\" decoding=\"async\" loading=\"lazy\" width=\"218\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#2 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"224\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "2 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#3.png\" decoding=\"async\" loading=\"lazy\" width=\"229\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#3 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"230\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "3 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#4.png\" decoding=\"async\" loading=\"lazy\" width=\"215\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#4 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"209\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "4 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#5.png\" decoding=\"async\" loading=\"lazy\" width=\"265\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "5",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#5 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"242\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "5 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#6.png\" decoding=\"async\" loading=\"lazy\" width=\"239\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "6",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#6 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"246\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "6 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#7.png\" decoding=\"async\" loading=\"lazy\" width=\"212\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "7",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#7 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "7 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#8.png\" decoding=\"async\" loading=\"lazy\" width=\"250\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "8",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#8 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"263\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "8 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#9.png\" decoding=\"async\" loading=\"lazy\" width=\"250\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "9",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#9 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"232\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "9 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#10.png\" decoding=\"async\" loading=\"lazy\" width=\"220\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "10",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#10 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"212\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "10 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Warped tortoise",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Warped tortoise#Immune.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"199\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "56",
+ "experience": 260,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 85.80000305175781,
+ "max-melee": "156",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Immune",
+ "slayer-exp": 95,
+ "lifepoints": "5200",
+ "max-ranged": "0",
+ "max-magic": "208",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped tortoise#Vulnerable.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"183\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "56",
+ "experience": 260,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 85.80000305175781,
+ "max-melee": "156",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Vulnerable",
+ "slayer-exp": 95,
+ "lifepoints": "5200",
+ "max-ranged": "0",
+ "max-magic": "208",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Maelstrom, Raging Waterfiend",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Maelstrom, Raging Waterfiend#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"218\" height=\"300\" id=\"image-?\">",
+ "level": "142",
+ "defence": "77",
+ "slayer-level": "?",
+ "experience": 9000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2970,
+ "max-melee": "1414",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 10000,
+ "lifepoints": "180000",
+ "max-ranged": "2113",
+ "max-magic": "2388",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Torrential Waterfiend",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Torrential Waterfiend#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"218\" height=\"300\" id=\"image-?\">",
+ "level": "118",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 900,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 297,
+ "max-melee": "1414",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "18000",
+ "max-ranged": "1727",
+ "max-magic": "1727",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Torrential Waterfiend (summoned)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Torrential Waterfiend (summoned)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"286\" height=\"300\" id=\"image-?\">",
+ "level": "118",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 900,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 297,
+ "max-melee": "1414",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "18000",
+ "max-ranged": "1727",
+ "max-magic": "1727",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Waterfiend",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Waterfiend#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"215\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 132,
+ "max-melee": "800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 335,
+ "lifepoints": "8000",
+ "max-ranged": "800",
+ "max-magic": "800",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Waterfiend (Ghorrock)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Waterfiend (Ghorrock)#102.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 132,
+ "max-melee": "739",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "102",
+ "slayer-exp": 290.79998779296875,
+ "lifepoints": "8000",
+ "max-ranged": "739",
+ "max-magic": "739",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Waterfiend (Ghorrock)#107.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "720",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "107",
+ "slayer-exp": -1,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "720",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Waterfiend (Temple of Aminishi)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Waterfiend (Temple of Aminishi)#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 700,
+ "susceptible": [],
+ "lifepoint-exp": 231,
+ "max-melee": "936",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "14000",
+ "max-ranged": "936",
+ "max-magic": "936",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Waterfiend (Temple of Aminishi)#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 700,
+ "susceptible": [],
+ "lifepoint-exp": 231,
+ "max-melee": "936",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "14000",
+ "max-ranged": "936",
+ "max-magic": "936",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Waterfiend (The Zamorakian Undercity)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Waterfiend (The Zamorakian Undercity)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"218\" height=\"300\" id=\"image-?\">",
+ "level": "111",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 450,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 148.5,
+ "max-melee": "1414",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 600,
+ "lifepoints": "9000",
+ "max-ranged": "1506",
+ "max-magic": "1506",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Waterfiend (elite)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Waterfiend (elite)#Ancient Cavern.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "111",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 1600,
+ "susceptible": [],
+ "lifepoint-exp": 528,
+ "max-melee": "2400",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Ancient Cavern",
+ "slayer-exp": 1181.4000244140625,
+ "lifepoints": "32000",
+ "max-ranged": "2400",
+ "max-magic": "2400",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Waterfiend (elite)#Ghorrock.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "111",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 1600,
+ "susceptible": [],
+ "lifepoint-exp": 528,
+ "max-melee": "2400",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Ghorrock",
+ "slayer-exp": 1181.4000244140625,
+ "lifepoints": "32000",
+ "max-ranged": "2400",
+ "max-magic": "2400",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Waterfiend (summoned)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Waterfiend (summoned)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"286\" height=\"300\" id=\"image-?\">",
+ "level": "111",
+ "defence": "77",
+ "slayer-level": "?",
+ "experience": 450,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 148.5,
+ "max-melee": "1414",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "9000",
+ "max-ranged": "1506",
+ "max-magic": "1506",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Werewolf",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Boris.png\" decoding=\"async\" loading=\"lazy\" width=\"184\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 112.5,
+ "susceptible": [],
+ "lifepoint-exp": 37.099998474121094,
+ "max-melee": "225",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Boris",
+ "slayer-exp": 34.5,
+ "lifepoints": "2250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Imre.png\" decoding=\"async\" loading=\"lazy\" width=\"187\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Imre",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Yuri.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Yuri",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Joseph.png\" decoding=\"async\" loading=\"lazy\" width=\"184\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Joseph",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Nikolai.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Nikolai",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Eduard.png\" decoding=\"async\" loading=\"lazy\" width=\"188\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Eduard",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Lev.png\" decoding=\"async\" loading=\"lazy\" width=\"184\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Lev",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Georgy.png\" decoding=\"async\" loading=\"lazy\" width=\"183\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Georgy",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Svetlana.png\" decoding=\"async\" loading=\"lazy\" width=\"161\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Svetlana",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Irina.png\" decoding=\"async\" loading=\"lazy\" width=\"158\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Irina",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Alexis.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Alexis",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Milla.png\" decoding=\"async\" loading=\"lazy\" width=\"162\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Milla",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Galina.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Galina",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Sofiya.png\" decoding=\"async\" loading=\"lazy\" width=\"161\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Sofiya",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Ksenia.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ksenia",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Yadviga.png\" decoding=\"async\" loading=\"lazy\" width=\"149\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Yadviga",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Nikita.png\" decoding=\"async\" loading=\"lazy\" width=\"155\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Nikita",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Vera.png\" decoding=\"async\" loading=\"lazy\" width=\"157\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Vera",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Zoja.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Zoja",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Liliya.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Liliya",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#God Wars Dungeon (male).png\" decoding=\"async\" loading=\"lazy\" width=\"160\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "God Wars Dungeon (male)",
+ "slayer-exp": 171,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#God Wars Dungeon (female).png\" decoding=\"async\" loading=\"lazy\" width=\"146\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "God Wars Dungeon (female)",
+ "slayer-exp": 171,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Adolescent White wolf",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Adolescent White wolf#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"282\" height=\"300\" id=\"image-?\">",
+ "level": "6",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "120",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 7,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Big Wolf",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Big Wolf#White.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"241\" id=\"image-?\">",
+ "level": "20",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 147.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 48.599998474121094,
+ "max-melee": "340",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "White",
+ "slayer-exp": 18,
+ "lifepoints": "2950",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Big Wolf#Grey.png\" decoding=\"async\" loading=\"lazy\" width=\"264\" height=\"300\" id=\"image-?\">",
+ "level": "20",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 147.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 48.599998474121094,
+ "max-melee": "340",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Grey",
+ "slayer-exp": 18,
+ "lifepoints": "2950",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Desert wolf",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Desert wolf#Brown.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"223\" id=\"image-?\">",
+ "level": "12",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Brown",
+ "slayer-exp": 8.800000190734863,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Desert wolf#Grey.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"247\" id=\"image-?\">",
+ "level": "12",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Grey",
+ "slayer-exp": 8.800000190734863,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Dire Wolf",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dire Wolf#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "43",
+ "defence": "29",
+ "slayer-level": "1",
+ "experience": 232.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 76.69999694824219,
+ "max-melee": "660",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 19.600000381469727,
+ "lifepoints": "4650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Fenris wolf",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Fenris wolf#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"294\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "31",
+ "slayer-level": "1",
+ "experience": 247.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 81.5999984741211,
+ "max-melee": "700",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "4950",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Fenris wolf (Sköll)",
+ "variants": []
+ },
+ {
+ "name": "Ice wolf",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ice wolf#58.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"276\" id=\"image-?\">",
+ "level": "58",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 325,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 107.19999694824219,
+ "max-melee": "880",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "58",
+ "slayer-exp": 45.400001525878906,
+ "lifepoints": "6500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ice wolf#72.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"276\" id=\"image-?\">",
+ "level": "72",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 420,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 138.60000610351562,
+ "max-melee": "1350",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "72",
+ "slayer-exp": 207.39999389648438,
+ "lifepoints": "8400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Jungle Wolf",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Jungle Wolf#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"278\" id=\"image-?\">",
+ "level": "78",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 460,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 151.8000030517578,
+ "max-melee": "1160",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 81,
+ "lifepoints": "9200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "White wolf",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/White wolf#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"282\" height=\"300\" id=\"image-?\">",
+ "level": "12",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 12.600000381469727,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Wolf",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Wolf#Level 8 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"252\" height=\"300\" id=\"image-?\">",
+ "level": "8",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "160",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 8 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Wolf#Level 8 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "8",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "160",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 8 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Wolf#Level 11 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"241\" id=\"image-?\">",
+ "level": "11",
+ "defence": "6",
+ "slayer-level": "1",
+ "experience": 77.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 25.5,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 11 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "1550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Wolf#Level 11 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"241\" id=\"image-?\">",
+ "level": "11",
+ "defence": "6",
+ "slayer-level": "1",
+ "experience": 77.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 25.5,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 11 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "1550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Armoured zombie (The Shadow Reef)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie (The Shadow Reef)#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "?",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "864",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": 841,
+ "lifepoints": "20000",
+ "max-ranged": "739",
+ "max-magic": "739",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie (The Shadow Reef)#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "77",
+ "slayer-level": "?",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "864",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "20000",
+ "max-ranged": "739",
+ "max-magic": "739",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Armoured zombie (Uncharted Isles)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie (Uncharted Isles)#Docile (Throwing Axes).png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 16.5,
+ "max-melee": "268",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Docile (Throwing Axes)",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "268",
+ "max-magic": "268",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie (Uncharted Isles)#Docile (Sword and Shield).png\" decoding=\"async\" loading=\"lazy\" width=\"116\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 16.5,
+ "max-melee": "268",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Docile (Sword and Shield)",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "268",
+ "max-magic": "268",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie (Uncharted Isles)#Aggressive.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 16.5,
+ "max-melee": "268",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Aggressive",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "268",
+ "max-magic": "268",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Bossy McBossFace",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bossy McBossFace#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"281\" id=\"image-?\">",
+ "level": "123",
+ "defence": "72",
+ "slayer-level": "0",
+ "experience": 9000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2970,
+ "max-melee": "1966",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "180000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dried zombie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Dried zombie#Parched.png\" decoding=\"async\" loading=\"lazy\" width=\"133\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "48",
+ "slayer-level": "1",
+ "experience": 120,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 39.599998474121094,
+ "max-melee": "192",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Parched",
+ "slayer-exp": 41,
+ "lifepoints": "2400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dried zombie#Unmoisturised.png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "48",
+ "slayer-level": "1",
+ "experience": 120,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 39.599998474121094,
+ "max-melee": "192",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Unmoisturised",
+ "slayer-exp": 41,
+ "lifepoints": "2400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dried zombie#Dried.png\" decoding=\"async\" loading=\"lazy\" width=\"129\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "48",
+ "slayer-level": "1",
+ "experience": 120,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 39.599998474121094,
+ "max-melee": "192",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Dried",
+ "slayer-exp": 41,
+ "lifepoints": "2400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Empowering zombie",
+ "variants": []
+ },
+ {
+ "name": "Summoned Zombie",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Summoned Zombie#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"95\" height=\"300\" id=\"image-?\">",
+ "level": "12",
+ "defence": "9",
+ "slayer-level": "1",
+ "experience": 22.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 7.400000095367432,
+ "max-melee": "36",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 8,
+ "lifepoints": "450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Summoned Zombie (The Shadow Reef)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Summoned Zombie (The Shadow Reef)#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"148\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "0",
+ "experience": 600,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 198,
+ "max-melee": "368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "8000",
+ "max-ranged": "368",
+ "max-magic": "368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Summoned Zombie (The Shadow Reef)#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"148\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "?",
+ "slayer-level": "0",
+ "experience": -1,
+ "susceptible": [],
+ "lifepoint-exp": -1,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Summoned armoured zombie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Summoned armoured zombie#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "0",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "864",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "10000",
+ "max-ranged": "864",
+ "max-magic": "864",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Summoned armoured zombie#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "?",
+ "slayer-level": "0",
+ "experience": -1,
+ "susceptible": [],
+ "lifepoint-exp": -1,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ulthven Keith",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ulthven Keith#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"286\" id=\"image-?\">",
+ "level": "117",
+ "defence": "72",
+ "slayer-level": "0",
+ "experience": 9000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2970,
+ "max-melee": "1966",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "180000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Undead Witch",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Undead Witch#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"114\" height=\"300\" id=\"image-?\">",
+ "level": "170",
+ "defence": "75",
+ "slayer-level": "0",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "Varies",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead Witch#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"114\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "?",
+ "slayer-level": "0",
+ "experience": -1,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": -1,
+ "max-melee": "?",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zombie (Lair of Tarn Razorlor)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#72.png\" decoding=\"async\" loading=\"lazy\" width=\"102\" height=\"300\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "1",
+ "experience": 130,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 42.900001525878906,
+ "max-melee": "208",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "72",
+ "slayer-exp": -1,
+ "lifepoints": "2600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#74 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"101\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "74 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#74 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"101\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "74 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#75 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"101\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "75 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#75 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"101\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "75 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#77 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"96\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "77 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#77 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"122\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "77 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#78 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"121\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "78 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#78 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "78 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#79 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"113\" height=\"300\" id=\"image-?\">",
+ "level": "79",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "79 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#79 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"113\" height=\"300\" id=\"image-?\">",
+ "level": "79",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "79 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#82 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "82 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#82 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "82 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#82 (3).png\" decoding=\"async\" loading=\"lazy\" width=\"107\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "82 (3)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#84 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"113\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "84 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#84 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"113\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "84 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#85 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"111\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "85 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#85 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "85 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Zombie (Stronghold of Security)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Stronghold of Security)#Level 12.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "12",
+ "defence": "9",
+ "slayer-level": "1",
+ "experience": 95,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 31.299999237060547,
+ "max-melee": "180",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 12",
+ "slayer-exp": -1,
+ "lifepoints": "1900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Stronghold of Security)#Level 21.png\" decoding=\"async\" loading=\"lazy\" width=\"248\" height=\"300\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 21",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zombie (Temple Trekking)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Zombie (Temple Trekking)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"96\" height=\"300\" id=\"image-?\">",
+ "level": "28",
+ "defence": "20",
+ "slayer-level": "?",
+ "experience": 50,
+ "susceptible": [],
+ "lifepoint-exp": 16.5,
+ "max-melee": "0",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Zombie (The Shadow Reef)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie (The Shadow Reef)#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"148\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "67",
+ "slayer-level": "0",
+ "experience": 600,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 198,
+ "max-melee": "384",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": 504,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (The Shadow Reef)#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"148\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "67",
+ "slayer-level": "0",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "384",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": 504,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zombie (Uncharted Isles)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Uncharted Isles)#Male.png\" decoding=\"async\" loading=\"lazy\" width=\"127\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 236,
+ "susceptible": [],
+ "lifepoint-exp": 77.80000305175781,
+ "max-melee": "1515",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Male",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Uncharted Isles)#Female.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 236,
+ "susceptible": [],
+ "lifepoint-exp": 77.80000305175781,
+ "max-melee": "1515",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Female",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Uncharted Isles)#Aggressive.png\" decoding=\"async\" loading=\"lazy\" width=\"127\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 236,
+ "susceptible": [],
+ "lifepoint-exp": 77.80000305175781,
+ "max-melee": "1515",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Aggressive",
+ "slayer-exp": -1,
+ "lifepoints": "4950",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Zombie (Wilderness)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Wilderness)#Level 22 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"131\" height=\"300\" id=\"image-?\">",
+ "level": "22",
+ "defence": "16",
+ "slayer-level": "?",
+ "experience": 40,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 13.199999809265137,
+ "max-melee": "64",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 22 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Wilderness)#Level 22 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"127\" height=\"300\" id=\"image-?\">",
+ "level": "22",
+ "defence": "21",
+ "slayer-level": "?",
+ "experience": 52.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 17.299999237060547,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 22 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Wilderness)#Level 22 (3).png\" decoding=\"async\" loading=\"lazy\" width=\"130\" height=\"300\" id=\"image-?\">",
+ "level": "22",
+ "defence": "21",
+ "slayer-level": "?",
+ "experience": 52.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 17.299999237060547,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 22 (3)",
+ "slayer-exp": -1,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Wilderness)#Level 29 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"127\" height=\"300\" id=\"image-?\">",
+ "level": "29",
+ "defence": "21",
+ "slayer-level": "?",
+ "experience": 52.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 17.299999237060547,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 29 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Wilderness)#Level 29 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"128\" height=\"300\" id=\"image-?\">",
+ "level": "29",
+ "defence": "21",
+ "slayer-level": "?",
+ "experience": 52.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 17.299999237060547,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 29 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Wilderness)#Level 29 (3).png\" decoding=\"async\" loading=\"lazy\" width=\"130\" height=\"300\" id=\"image-?\">",
+ "level": "29",
+ "defence": "21",
+ "slayer-level": "?",
+ "experience": 52.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 17.299999237060547,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 29 (3)",
+ "slayer-exp": -1,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Wilderness)#Level 29 (4).png\" decoding=\"async\" loading=\"lazy\" width=\"128\" height=\"300\" id=\"image-?\">",
+ "level": "29",
+ "defence": "21",
+ "slayer-level": "?",
+ "experience": 52.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 17.299999237060547,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 29 (4)",
+ "slayer-exp": -1,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Zombie (Zogre Flesh Eaters)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Zombie (Zogre Flesh Eaters)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"118\" height=\"300\" id=\"image-?\">",
+ "level": "36",
+ "defence": "26",
+ "slayer-level": "?",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "156",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "The Ambassador",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/The Ambassador#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"145\" height=\"300\" id=\"image-?\">",
+ "level": "5500",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 25000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 8250,
+ "max-melee": "3300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "9000",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "1000000",
+ "max-ranged": "2200",
+ "max-magic": "10000",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/The Ambassador#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"145\" height=\"300\" id=\"image-?\">",
+ "level": "5500",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 25000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 8250,
+ "max-melee": "330",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "900",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "500000",
+ "max-ranged": "220",
+ "max-magic": "1000",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Araxxi",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Araxxi#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "3000",
+ "defence": "80",
+ "slayer-level": "-4",
+ "experience": 2500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 825,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "10700",
+ "name": "Default",
+ "slayer-exp": -4,
+ "lifepoints": "100000",
+ "max-ranged": "1653",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Chaos Elemental",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Chaos Elemental#F2P.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"228\" id=\"image-?\">",
+ "level": "305",
+ "defence": "69",
+ "slayer-level": "?",
+ "experience": 862,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 284.3999938964844,
+ "max-melee": "1104",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "F2P",
+ "slayer-exp": -1,
+ "lifepoints": "17250",
+ "max-ranged": "1104",
+ "max-magic": "1104",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Chaos Elemental#P2P.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"228\" id=\"image-?\">",
+ "level": "305",
+ "defence": "69",
+ "slayer-level": "?",
+ "experience": 862,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 284.3999938964844,
+ "max-melee": "1104",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "P2P",
+ "slayer-exp": -1,
+ "lifepoints": "17250",
+ "max-ranged": "1104",
+ "max-magic": "1104",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Commander Zilyana",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Aftermath.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Aftermath",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Battle of the Monolith.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Battle of the Monolith",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Council of Burthorpe.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Council of Burthorpe",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Extinction.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Extinction",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Gower Quest.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Gower Quest",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Missing, Presumed Death.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Missing, Presumed Death",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Once Upon a Time in Gielinor.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Once Upon a Time in Gielinor",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Ritual of the Mahjarrat.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Ritual of the Mahjarrat",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Senntisten.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Senntisten",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "The World Wakes",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ }
+ ]
+ },
+ {
+ "name": "Croesus",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Croesus#Active.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"255\" id=\"image-?\">",
+ "level": "6000",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Active",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Croesus#Dormant.png\" decoding=\"async\" loading=\"lazy\" width=\"267\" height=\"300\" id=\"image-?\">",
+ "level": "6000",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Dormant",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ }
+ ]
+ },
+ {
+ "name": "Corporeal Beast",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corporeal Beast#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"253\" height=\"300\" id=\"image-?\">",
+ "level": "785",
+ "defence": "75",
+ "slayer-level": "-4",
+ "experience": 2500,
+ "susceptible": [],
+ "lifepoint-exp": 825,
+ "max-melee": "3000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -4,
+ "lifepoints": "100000",
+ "max-ranged": "720",
+ "max-magic": "720",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "General Graardor",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/General Graardor#Hard mode.png\" decoding=\"async\" loading=\"lazy\" width=\"208\" height=\"300\" id=\"image-?\">",
+ "level": "624",
+ "defence": "72",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Hard mode",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/General Graardor#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"208\" height=\"300\" id=\"image-?\">",
+ "level": "624",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 2000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 660,
+ "max-melee": "7000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": -1,
+ "lifepoints": "40000",
+ "max-ranged": "1676",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/General Graardor#The Mighty Fall.png\" decoding=\"async\" loading=\"lazy\" width=\"266\" height=\"300\" id=\"image-?\">",
+ "level": "210",
+ "defence": "72",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4800",
+ "name": "The Mighty Fall",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/General Graardor#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"208\" height=\"300\" id=\"image-?\">",
+ "level": "210",
+ "defence": "72",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "The World Wakes",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Giant mole",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Giant mole#Hard Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"288\" id=\"image-?\">",
+ "level": "230",
+ "defence": "45",
+ "slayer-level": "?",
+ "experience": 1950,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 643.5,
+ "max-melee": "720",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2800",
+ "name": "Hard Mode",
+ "slayer-exp": -1,
+ "lifepoints": "78000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant mole#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"288\" id=\"image-?\">",
+ "level": "230",
+ "defence": "45",
+ "slayer-level": "?",
+ "experience": 1950,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 643.5,
+ "max-melee": "720",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2800",
+ "name": "Normal",
+ "slayer-exp": -1,
+ "lifepoints": "78000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Gregorovic",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Gregorovic#Challenge Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"203\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "2300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2300",
+ "name": "Challenge Mode",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "2300",
+ "max-magic": "1800",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Gregorovic#Normal Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"203\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "2300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2300",
+ "name": "Normal Mode",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "2300",
+ "max-magic": "1800",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Gregorovic#Sliske's Endgame.png\" decoding=\"async\" loading=\"lazy\" width=\"203\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Sliske's Endgame",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "1152",
+ "max-magic": "1152",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Har-Aken",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Har-Aken#Head.png\" decoding=\"async\" loading=\"lazy\" width=\"298\" height=\"300\" id=\"image-?\">",
+ "level": "800",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 3750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1237.5,
+ "max-melee": "1152",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Head",
+ "slayer-exp": -1,
+ "lifepoints": "150000",
+ "max-ranged": "1152",
+ "max-magic": "1152",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Har-Aken#Magic Tentacle.png\" decoding=\"async\" loading=\"lazy\" width=\"113\" height=\"300\" id=\"image-?\">",
+ "level": "800",
+ "defence": "76",
+ "slayer-level": "?",
+ "experience": 350,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 115.5,
+ "max-melee": "820",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Magic Tentacle",
+ "slayer-exp": -1,
+ "lifepoints": "7000",
+ "max-ranged": "1094",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Har-Aken#Ranged Tentacle.png\" decoding=\"async\" loading=\"lazy\" width=\"134\" height=\"300\" id=\"image-?\">",
+ "level": "800",
+ "defence": "76",
+ "slayer-level": "?",
+ "experience": 350,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 115.5,
+ "max-melee": "820",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged Tentacle",
+ "slayer-exp": -1,
+ "lifepoints": "7000",
+ "max-ranged": "1094",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Helwyr",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Helwyr#Challenge Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"219\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "6000",
+ "name": "Challenge Mode",
+ "slayer-exp": -1,
+ "lifepoints": "300000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Helwyr#Normal Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"219\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Normal Mode",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Hermod, the Spirit of War",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Hermod, the Spirit of War#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"234\" height=\"300\" id=\"image-?\">",
+ "level": "732",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Necromancy\" title=\"Necromancy\" target=\"_blank\"><img src=\"./images/weakness/s/Necromancy-icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2250",
+ "name": "Normal",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "1750"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Hermod, the Spirit of War#Quest.png\" decoding=\"async\" loading=\"lazy\" width=\"234\" height=\"300\" id=\"image-?\">",
+ "level": "732",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Necromancy\" title=\"Necromancy\" target=\"_blank\"><img src=\"./images/weakness/s/Necromancy-icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2250",
+ "name": "Quest",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "1750"
+ }
+ ]
+ },
+ {
+ "name": "Nex",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Nex#Magic.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "1001",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1250",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "8000",
+ "name": "Magic",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "1250",
+ "max-magic": "1250",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Nex#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"282\" height=\"300\" id=\"image-?\">",
+ "level": "1001",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1250",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "8000",
+ "name": "Melee",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "1250",
+ "max-magic": "1250",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Nex#Ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"292\" height=\"300\" id=\"image-?\">",
+ "level": "1001",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1250",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "8000",
+ "name": "Ranged",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "1250",
+ "max-magic": "1250",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Nex#Standard.png\" decoding=\"async\" loading=\"lazy\" width=\"271\" height=\"300\" id=\"image-?\">",
+ "level": "1001",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1250",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "8000",
+ "name": "Standard",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "1250",
+ "max-magic": "1250",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Nex: Angel of Death",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nex: Angel of Death#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "7000",
+ "defence": "99",
+ "slayer-level": "-4",
+ "experience": 75000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 24750,
+ "max-melee": "2123",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "75000",
+ "name": "Default",
+ "slayer-exp": -4,
+ "lifepoints": "3000000",
+ "max-ranged": "2123",
+ "max-magic": "2123",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Raksha, the Shadow Colossus",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Raksha, the Shadow Colossus#During fight.png\" decoding=\"async\" loading=\"lazy\" width=\"231\" height=\"300\" id=\"image-?\">",
+ "level": "6000",
+ "defence": "85",
+ "slayer-level": "?",
+ "experience": 40000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 13200,
+ "max-melee": "2570",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "During fight",
+ "slayer-exp": -1,
+ "lifepoints": "800000",
+ "max-ranged": "2570",
+ "max-magic": "2570",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Raksha, the Shadow Colossus#During fight (duo).png\" decoding=\"async\" loading=\"lazy\" width=\"231\" height=\"300\" id=\"image-?\">",
+ "level": "6000",
+ "defence": "85",
+ "slayer-level": "?",
+ "experience": 40000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 13200,
+ "max-melee": "2570",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "During fight (duo)",
+ "slayer-exp": -1,
+ "lifepoints": "1600000",
+ "max-ranged": "2570",
+ "max-magic": "2570",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Raksha, the Shadow Colossus#Shackled.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"212\" id=\"image-?\">",
+ "level": "6000",
+ "defence": "85",
+ "slayer-level": "?",
+ "experience": 40000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 13200,
+ "max-melee": "2570",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Shackled",
+ "slayer-exp": -1,
+ "lifepoints": "N/A",
+ "max-ranged": "2570",
+ "max-magic": "2570",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Raksha, the Shadow Colossus#Subdued.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"179\" id=\"image-?\">",
+ "level": "6000",
+ "defence": "85",
+ "slayer-level": "?",
+ "experience": 40000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 13200,
+ "max-melee": "2570",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Subdued",
+ "slayer-exp": -1,
+ "lifepoints": "N/A",
+ "max-ranged": "2570",
+ "max-magic": "2570",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Rasial, the First Necromancer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Rasial, the First Necromancer#Alpha vs Omega.png\" decoding=\"async\" loading=\"lazy\" width=\"207\" height=\"300\" id=\"image-?\">",
+ "level": "8462",
+ "defence": "95",
+ "slayer-level": "?",
+ "experience": 20000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 6600,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11500",
+ "name": "Alpha vs Omega",
+ "slayer-exp": -1,
+ "lifepoints": "400000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "2300"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Rasial, the First Necromancer#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"207\" height=\"300\" id=\"image-?\">",
+ "level": "8462",
+ "defence": "95",
+ "slayer-level": "?",
+ "experience": 18000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 5940,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11500",
+ "name": "Normal",
+ "slayer-exp": -1,
+ "lifepoints": "800000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "2300"
+ }
+ ]
+ },
+ {
+ "name": "Seiryu the Azure Serpent",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Seiryu the Azure Serpent#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"148\" id=\"image-?\">",
+ "level": "10000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "7500000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Seiryu the Azure Serpent#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"148\" id=\"image-?\">",
+ "level": "10000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 187500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 61875,
+ "max-melee": "?",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "3750000",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Solak",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Solak#Left arm.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "2000",
+ "defence": "60",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "12000",
+ "name": "Left arm",
+ "slayer-exp": -1,
+ "lifepoints": "45000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Solak#Left leg.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "2000",
+ "defence": "60",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "12000",
+ "name": "Left leg",
+ "slayer-exp": -1,
+ "lifepoints": "35000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Solak#Right arm.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "2000",
+ "defence": "60",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "12000",
+ "name": "Right arm",
+ "slayer-exp": -1,
+ "lifepoints": "45000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Solak#Right leg.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "2000",
+ "defence": "60",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "12000",
+ "name": "Right leg",
+ "slayer-exp": -1,
+ "lifepoints": "35000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Solak#Solak.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "7000",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 200000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 66000,
+ "max-melee": "4000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "12000",
+ "name": "Solak",
+ "slayer-exp": -1,
+ "lifepoints": "2000000",
+ "max-ranged": "4000",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Solak#Withering.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "7000",
+ "defence": "60",
+ "slayer-level": "?",
+ "experience": 8000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 2640,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "12000",
+ "name": "Withering",
+ "slayer-exp": -1,
+ "lifepoints": "125000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Telos, the Warden",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Telos, the Warden#Dormant.png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "2000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": -2,
+ "susceptible": [],
+ "lifepoint-exp": -2,
+ "max-melee": "N/A",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Dormant",
+ "slayer-exp": -1,
+ "lifepoints": "N/A",
+ "max-ranged": "N/A",
+ "max-magic": "N/A",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Telos, the Warden#Phase 5.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"135\" id=\"image-?\">",
+ "level": "2000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "Varies",
+ "name": "Phase 5",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "1324",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Telos, the Warden#Standard.png\" decoding=\"async\" loading=\"lazy\" width=\"201\" height=\"300\" id=\"image-?\">",
+ "level": "2000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 20000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 6600,
+ "max-melee": "1324",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "5555",
+ "name": "Standard",
+ "slayer-exp": -1,
+ "lifepoints": "400000",
+ "max-ranged": "0",
+ "max-magic": "1324",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Nymora, the Vengeful",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Nymora, the Vengeful#Normal Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"173\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 12500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 4125,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal Mode",
+ "slayer-exp": -1,
+ "lifepoints": "250000",
+ "max-ranged": "816",
+ "max-magic": "816",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Nymora, the Vengeful#Challenge Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"173\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "864",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Challenge Mode",
+ "slayer-exp": -1,
+ "lifepoints": "350000",
+ "max-ranged": "864",
+ "max-magic": "864",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Avaryss, the Unceasing",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Avaryss, the Unceasing#Challenge Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"177\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 17500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 5775,
+ "max-melee": "864",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Challenge Mode",
+ "slayer-exp": -1,
+ "lifepoints": "350000",
+ "max-ranged": "864",
+ "max-magic": "864",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Avaryss, the Unceasing#Daughter of Chaos.png\" decoding=\"async\" loading=\"lazy\" width=\"177\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "N/A",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "N/A",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Daughter of Chaos",
+ "slayer-exp": -1,
+ "lifepoints": "500000",
+ "max-ranged": "N/A",
+ "max-magic": "N/A",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Avaryss, the Unceasing#Normal Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"177\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 12500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4125,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "7140",
+ "name": "Normal Mode",
+ "slayer-exp": -1,
+ "lifepoints": "250000",
+ "max-ranged": "816",
+ "max-magic": "816",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "TzKal-Zuk",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/TzKal-Zuk#Hard Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"232\" id=\"image-?\">",
+ "level": "14000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 15000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4950,
+ "max-melee": "1837",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "15000",
+ "name": "Hard Mode",
+ "slayer-exp": -1,
+ "lifepoints": "1200000",
+ "max-ranged": "1837",
+ "max-magic": "1837",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/TzKal-Zuk#Normal Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"232\" id=\"image-?\">",
+ "level": "14000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 15000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4950,
+ "max-melee": "1837",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "15000",
+ "name": "Normal Mode",
+ "slayer-exp": -1,
+ "lifepoints": "600000",
+ "max-ranged": "1837",
+ "max-magic": "1837",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "TzTok-Jad",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/TzTok-Jad#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"212\" height=\"300\" id=\"image-?\">",
+ "level": "702",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [],
+ "lifepoint-exp": 330,
+ "max-melee": "8000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1309,
+ "lifepoints": "40000",
+ "max-ranged": "8000",
+ "max-magic": "8000",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Vindicta",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Vindicta#Hard mode.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "85",
+ "slayer-level": "?",
+ "experience": 15000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4950,
+ "max-melee": "4500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Hard mode",
+ "slayer-exp": -1,
+ "lifepoints": "300000",
+ "max-ranged": "2500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vindicta#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "3000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "1500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Vorago",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Vorago#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "10000",
+ "defence": "90",
+ "slayer-level": "-4",
+ "experience": 6250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 2062.5,
+ "max-melee": "3000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Default",
+ "slayer-exp": -4,
+ "lifepoints": "250000",
+ "max-ranged": "5000",
+ "max-magic": "5000",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Zamorak, Lord of Chaos",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zamorak, Lord of Chaos#Hard mode.png\" decoding=\"async\" loading=\"lazy\" width=\"290\" height=\"300\" id=\"image-?\">",
+ "level": "14000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 15000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 4950,
+ "max-melee": "1819",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Hard mode",
+ "slayer-exp": -1,
+ "lifepoints": "300000",
+ "max-ranged": "1819",
+ "max-magic": "1819",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zamorak, Lord of Chaos#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"290\" height=\"300\" id=\"image-?\">",
+ "level": "14000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 15000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 4950,
+ "max-melee": "1819",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "300000",
+ "max-ranged": "1819",
+ "max-magic": "1819",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zamorak, Lord of Chaos#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"290\" height=\"300\" id=\"image-?\">",
+ "level": "14000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 15000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 4950,
+ "max-melee": "1819",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "150000",
+ "max-ranged": "1819",
+ "max-magic": "1819",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zemouregal",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Defender of Varrock (1).png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Defender of Varrock (1)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Defender of Varrock (2).png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Defender of Varrock (2)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Ritual of the Mahjarrat.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Ritual of the Mahjarrat",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Ritual of the Mahjarrat (fort, skeletal).png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Ritual of the Mahjarrat (fort, skeletal)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Ritual of the Mahjarrat (fort).png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Ritual of the Mahjarrat (fort)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Nadir.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Nadir",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "The World Wakes",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Missing, Presumed Death.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Missing, Presumed Death",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Dishonour among Thieves.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Dishonour among Thieves",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Dishonour among Thieves (lair).png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Dishonour among Thieves (lair)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Dishonour among Thieves (lair, examinable).png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Dishonour among Thieves (lair, examinable)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Dishonour among Thieves (cutscene).png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Dishonour among Thieves (cutscene)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Dimension of Disaster.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Dimension of Disaster",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Children of Mah.png\" decoding=\"async\" loading=\"lazy\" width=\"153\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Children of Mah",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Children of Mah (examinable).png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Children of Mah (examinable)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Children of Mah (Freneskae cutscene).png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Children of Mah (Freneskae cutscene)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#TzekHaar Front.png\" decoding=\"async\" loading=\"lazy\" width=\"150\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "TzekHaar Front",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Daughter of Chaos.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Daughter of Chaos",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Succession.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Succession",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Succession (skeletal).png\" decoding=\"async\" loading=\"lazy\" width=\"231\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Succession (skeletal)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Unwelcome Guests.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Unwelcome Guests",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Dead and Buried.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Dead and Buried",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Ancient Awakening.png\" decoding=\"async\" loading=\"lazy\" width=\"226\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Ancient Awakening",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Battle of Forinthry.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Battle of Forinthry",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Requiem for a Dragon.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Requiem for a Dragon",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "task-counts": {
+ "Gelatinous abominations": "10-20",
+ "Trolls": "10-20",
+ "Wolves": "10-20",
+ "Cave bugs": "10-20",
+ "Cows": "10-25",
+ "Birds": "10-20",
+ "Crawling hands": "10-20"
+ },
+ "name": "Turael",
+ "id": 1,
+ "url": "https://runescape.wiki/w/Turael"
+ },
+ {
+ "task-counts": {
+ "Frogs": "15-30",
+ "Goblins": "15-30",
+ "Bats": "15-30",
+ "Ghosts": "15-25",
+ "Skeletons": "15-25",
+ "Spiders": "15-25",
+ "Zombies": "15-30",
+ "Cave slimes": "10-25",
+ "Cave bugs": "15-30",
+ "Cows": "15-30",
+ "Rats": "15-30",
+ "Birds": "15-30"
+ },
+ "name": "Jacquelyn",
+ "id": 2,
+ "url": "https://runescape.wiki/w/Jacquelyn"
+ },
+ {
+ "task-counts": {
+ "Frogs": "40-60",
+ "Bats": "40-60",
+ "Hill giants": "40-60",
+ "Wall beasts": "10-20",
+ "Zombies": "40-60",
+ "Cave slimes": "40-60",
+ "Mogres": "40-60",
+ "Moss giants": "40-60",
+ "Hobgoblins": "40-60",
+ "Bears": "20-40",
+ "Ice warriors": "40-60",
+ "Ghosts": "40-70",
+ "Skeletons": "40-60",
+ "Icefiends": "40-60",
+ "Minotaurs": "40-60",
+ "Scorpions": "40-60",
+ "Spiders": "40-60",
+ "Wolves": "40-60",
+ "Grotworms": "40-60",
+ "Kalphite": "40-60",
+ "Catablepon": "40-60",
+ "Fleshcrawlers": "40-60",
+ "Ice giants": "40-60",
+ "Cockroaches": "40-60"
+ },
+ "name": "Vannaka",
+ "id": 3,
+ "url": "https://runescape.wiki/w/Vannaka"
+ },
+ {
+ "task-counts": {
+ "Demons": "45-90",
+ "Aviansies": "50-110",
+ "Lesser demons": "120-180",
+ "Abyssal Demons": "140-260",
+ "Skeletons": "95-125",
+ "Undead": "130-170",
+ "Black demons": "110-160",
+ "Dark beasts": "120-180",
+ "Dragons": "60-90",
+ "Grotworms": "140-190",
+ "Zemouregal's undead": "110-150",
+ "Hellhounds": "70-110",
+ "Living wyverns": "40-65",
+ "Fire giants": "110-160",
+ "Ankou": "80-120",
+ "Dagannoth": "190-250",
+ "Zombies": "100-140",
+ "Fetid zombies": "140-170",
+ "Armoured phantoms": "45-55",
+ "Ghosts": "160-180",
+ "Green dragons": "70-120",
+ "Acheron mammoths": "20-45",
+ "Risen ghosts": "90-120",
+ "Aberrant spectres": "50-80",
+ "Kalphite": "65-110",
+ "Black dragons": "70-120",
+ "Camel warriors": "30-55",
+ "Greater demons": "140-200",
+ "Bound skeletons": "120-140",
+ "Ripper demons": "40-65"
+ },
+ "name": "The Raptor",
+ "id": 4,
+ "url": "https://runescape.wiki/w/The_Raptor"
+ },
+ {
+ "task-counts": {
+ "Desert lizards": "50-90",
+ "Werewolves": "50-90",
+ "Killerwatts": "60-100",
+ "Lesser demons": "60-100",
+ "Moss giants": "50-90",
+ "Banshees": "50-90",
+ "Ice warriors": "40-60",
+ "Shades": "60-100",
+ "Cockatrice": "50-90",
+ "Earth warriors": "35-55",
+ "Grotworms": "60-100",
+ "Jellies": "60-100",
+ "Otherworldly beings": "60-100",
+ "Bloodveld": "60-100",
+ "Cyclopes": "50-90",
+ "Basilisks": "60-100",
+ "Shadow warriors": "60-100",
+ "Brine rats": "60-100",
+ "Ice giants": "50-90",
+ "Cave crawlers": "50-90",
+ "Jungle horrors": "60-100",
+ "Ogres": "60-100",
+ "Ankou": "60-100",
+ "Sea snakes": "60-100",
+ "Infernal mages": "60-100",
+ "Turoth": "60-100",
+ "Crocodiles": "50-90",
+ "Green dragons": "35-55",
+ "Vampyres": "50-90",
+ "Aberrant spectres": "60-100",
+ "Dogs": "50-90",
+ "Molanisks": "50-90",
+ "Rockslugs": "50-90",
+ "Ghouls": "60-100",
+ "Pyrefiends": "60-100"
+ },
+ "name": "Mazchna",
+ "id": 5,
+ "url": "https://runescape.wiki/w/Mazchna"
+ },
+ {
+ "task-counts": {
+ "Warped tortoises": "110-170",
+ "Dust devils": "110-170",
+ "Elves": "60-90",
+ "Cave horrors": "110-170",
+ "Lesser demons": "110-170",
+ "Crawling hands": "110-170",
+ "Gargoyles": "110-170",
+ "Banshees": "110-170",
+ "Grifolaroos": "50-65",
+ "Jungle strykewyrms": "80-110",
+ "Trolls": "110-170",
+ "Grotworms": "70-110",
+ "Jellies": "110-170",
+ "Bloodveld": "110-170",
+ "Basilisks": "110-170",
+ "Shadow warriors": "110-170",
+ "Harpie bug swarms": "110-170",
+ "Brine rats": "110-170",
+ "Fever spiders": "110-170",
+ "Cave crawlers": "110-170",
+ "Fire giants": "110-170",
+ "Jungle horrors": "110-170",
+ "Grifolapines": "50-65",
+ "Mutated zygomites": "30-60",
+ "Dagannoth": "110-170",
+ "Blue dragons": "110-170",
+ "Infernal mages": "110-170",
+ "Bronze dragons": "30-60",
+ "Turoth": "110-170",
+ "Kurask": "110-170",
+ "Aberrant spectres": "110-170",
+ "Kalphite": "110-170",
+ "Fungal magi": "80-105",
+ "Vyrewatch": "80-110"
+ },
+ "name": "Chaeldar",
+ "id": 6,
+ "url": "https://runescape.wiki/w/Chaeldar"
+ },
+ {
+ "task-counts": {
+ "Desert lizards": "150-250",
+ "Warped tortoises": "120-185",
+ "Dust devils": "120-185",
+ "Elves": "60-90",
+ "Cave horrors": "120-185",
+ "Spiritual warriors": "120-185",
+ "Aviansies": "50-100",
+ "Gargoyles": "120-195",
+ "Banshees": "120-185",
+ "Grifolaroos": "55-75",
+ "Red dragons": "30-60",
+ "Spiritual mages": "120-185",
+ "Jungle strykewyrms": "90-120",
+ "Abyssal Demons": "120-185",
+ "Trolls": "120-185",
+ "Scorpions": "150-250",
+ "Nechryael": "120-185",
+ "Black demons": "120-185",
+ "Grotworms": "70-120",
+ "Bloodveld": "120-185",
+ "Cres's creations": "65-80",
+ "Basilisks": "120-185",
+ "Cave crawlers": "120-185",
+ "Hellhounds": "120-185",
+ "Fire giants": "120-185",
+ "Grifolapines": "55-75",
+ "Scabarites": "30-60",
+ "Mutated jadinkos": "80-130",
+ "Dagannoth": "120-185",
+ "Blue dragons": "120-185",
+ "Aquanites": "120-185",
+ "Iron dragons": "30-60",
+ "Corrupted creatures": "175-300",
+ "Turoth": "120-185",
+ "Crocodiles": "150-250",
+ "Kurask": "120-185",
+ "Desert strykewyrms": "90-110",
+ "Soul devourers": "175-300",
+ "Terror dogs": "30-60",
+ "Aberrant spectres": "120-185",
+ "Kalphite": "120-185",
+ "Fungal magi": "90-110",
+ "Greater demons": "120-185",
+ "Vyrewatch": "90-120"
+ },
+ "name": "Sumona",
+ "id": 7,
+ "url": "https://runescape.wiki/w/Sumona"
+ },
+ {
+ "task-counts": {
+ "Dust devils": "130-200",
+ "Waterfiends": "130-200",
+ "Aviansies": "100-125",
+ "Celestial dragons": "125-150",
+ "Ganodermic creatures": "55-70",
+ "Gargoyles": "130-200",
+ "Grifolaroos": "60-85",
+ "Airut": "125-150",
+ "Spiritual mages": "130-200",
+ "Jungle strykewyrms": "90-120",
+ "Abyssal Demons": "130-200",
+ "Nechryael": "130-200",
+ "Black demons": "130-200",
+ "Dark beasts": "130-200",
+ "Grotworms": "80-120",
+ "Bloodveld": "130-200",
+ "Cres's creations": "65-80",
+ "Skeletal wyverns": "40-80",
+ "Suqahs": "40-80",
+ "Hellhounds": "130-200",
+ "Fire giants": "130-200",
+ "Grifolapines": "60-85",
+ "Scabarites": "40-80",
+ "Mutated jadinkos": "120-200",
+ "Dagannoth": "130-200",
+ "Goraks": "40-80",
+ "Aquanites": "130-200",
+ "Iron dragons": "40-80",
+ "Desert strykewyrms": "90-140",
+ "Ascension members": "100-125",
+ "Aberrant spectres": "130-200",
+ "Kalphite": "130-200",
+ "Black dragons": "40-80",
+ "Warped terrorbirds": "130-200",
+ "Steel dragons": "40-80",
+ "Edimmu": "130-200",
+ "Fungal magi": "100-200",
+ "Greater demons": "130-200",
+ "Ice strykewyrms": "100-200",
+ "Mithril dragons": "4-8",
+ "Vyrewatch": "90-120"
+ },
+ "name": "Duradel",
+ "id": 8,
+ "url": "https://runescape.wiki/w/Duradel"
+ },
+ {
+ "task-counts": {
+ "Chaos giants": "60-100",
+ "TzHaar": "80-110",
+ "Warped tortoises": "150-240",
+ "Elves": "120-150",
+ "Glacors": "50-70",
+ "Waterfiends": "170-250",
+ "Adamant dragons": "40-50",
+ "Aviansies": "125-150",
+ "Kal'gerion demons": "50-100",
+ "Muspah": "125-150",
+ "Grifolaroos": "65-80",
+ "Airut": "125-150",
+ "Spiritual mages": "150-240",
+ "Stalker creatures": "120-170",
+ "Nechryael": "140-220",
+ "Black demons": "190-250",
+ "Cres's creations": "65-80",
+ "Skeletal wyverns": "40-90",
+ "Gemstone dragons": "60-100",
+ "Hellhounds": "130-220",
+ "Lava strykewyrms": "50-100",
+ "Living wyverns": "30-55",
+ "Fire giants": "170-250",
+ "Mutated jadinkos": "160-220",
+ "Nihil": "40-90",
+ "Corrupted creatures": "150-250",
+ "Terror dogs": "60-70",
+ "Ascension members": "100-125",
+ "Camel warriors": "25-45",
+ "Greater demons": "150-250",
+ "Ice strykewyrms": "100-200",
+ "Vyrewatch": "90-130",
+ "Dust devils": "150-250",
+ "Tormented demons": "40-60",
+ "Celestial dragons": "125-150",
+ "Ganodermic creatures": "70-90",
+ "Gargoyles": "150-250",
+ "Jungle strykewyrms": "90-130",
+ "Abyssal Demons": "150-250",
+ "Living rock creatures": "120-170",
+ "Dark beasts": "150-250",
+ "Grotworms": "80-150",
+ "Bloodveld": "180-250",
+ "Suqahs": "50-100",
+ "Grifolapines": "65-80",
+ "Nightmare creatures": "100-120",
+ "Dagannoth": "170-240",
+ "Blue dragons": "120-200",
+ "Aquanites": "160-200",
+ "Iron dragons": "60-110",
+ "Desert strykewyrms": "90-160",
+ "Soul devourers": "150-250",
+ "Acheron mammoths": "20-45",
+ "Aberrant spectres": "150-250",
+ "Kalphite": "170-250",
+ "Black dragons": "40-90",
+ "Steel dragons": "40-100",
+ "Edimmu": "150-250",
+ "Ripper demons": "50-75",
+ "Mithril dragons": "30-35"
+ },
+ "name": "Kuradal",
+ "id": 9,
+ "url": "https://runescape.wiki/w/Kuradal"
+ },
+ {
+ "task-counts": {
+ "Chaos giants": "80-120",
+ "TzHaar": "95-130",
+ "Elves": "150-180",
+ "Glacors": "60-85",
+ "Nodon dragonkin": "90-130",
+ "Waterfiends": "205-300",
+ "Adamant dragons": "40-60",
+ "Aviansies": "150-180",
+ "Kal'gerion demons": "60-120",
+ "Muspah": "150-180",
+ "Crystal shapeshifters": "110-150",
+ "Airut": "150-180",
+ "Stalker creatures": "140-190",
+ "Nechryael": "170-265",
+ "Black demons": "230-300",
+ "Cres's creations": "80-100",
+ "Gemstone dragons": "80-130",
+ "Lava strykewyrms": "60-120",
+ "Living wyverns": "40-65",
+ "Mutated jadinkos": "195-265",
+ "Nihil": "50-110",
+ "Corrupted creatures": "150-250",
+ "Ascension members": "120-150",
+ "Camel warriors": "35-55",
+ "Greater demons": "180-300",
+ "Ice strykewyrms": "120-240",
+ "Vyrewatch": "110-155",
+ "Tormented demons": "50-75",
+ "Celestial dragons": "150-180",
+ "Ganodermic creatures": "85-110",
+ "Gargoyles": "180-300",
+ "Abyssal Demons": "180-300",
+ "Dark beasts": "180-300",
+ "Grotworms": "100-180",
+ "Creatures of the Lost Grove": "100-120",
+ "Nightmare creatures": "110-160",
+ "Dagannoth": "205-290",
+ "Rune dragons": "50-75",
+ "Aquanites": "195-240",
+ "Iron dragons": "75-130",
+ "Shadow creatures": "100-150",
+ "Desert strykewyrms": "110-190",
+ "Soul devourers": "150-250",
+ "Acheron mammoths": "30-55",
+ "Kalphite": "205-300",
+ "Black dragons": "50-110",
+ "Steel dragons": "50-125",
+ "Edimmu": "170-265",
+ "Ripper demons": "60-85",
+ "Mithril dragons": "30-50"
+ },
+ "name": "Morvran",
+ "id": 10,
+ "url": "https://runescape.wiki/w/Morvran"
+ },
+ {
+ "task-counts": {
+ "Chaos giants": "80-120",
+ "Elves": "150-180",
+ "Glacors": "60-85",
+ "Nodon dragonkin": "110-150",
+ "Adamant dragons": "40-60",
+ "Aviansies": "150-180",
+ "Kal'gerion demons": "60-120",
+ "Muspah": "150-180",
+ "Crystal shapeshifters": "110-150",
+ "Airut": "150-180",
+ "Stalker creatures": "140-190",
+ "Black demons": "230-300",
+ "Dragons": "101-150",
+ "Cres's creations": "80-100",
+ "Gemstone dragons": "80-130",
+ "Lava strykewyrms": "60-120",
+ "Living wyverns": "40-65",
+ "Mutated jadinkos": "195-265",
+ "Nihil": "50-110",
+ "Corrupted creatures": "150-250",
+ "Armoured phantoms": "55-65",
+ "Vile blooms": "70-110",
+ "Ascension members": "120-150",
+ "Camel warriors": "35-55",
+ "Greater demons": "180-300",
+ "Ice strykewyrms": "120-240",
+ "Vyrewatch": "110-155",
+ "Demons": "101-150",
+ "Tormented demons": "50-75",
+ "Celestial dragons": "150-180",
+ "Ganodermic creatures": "85-110",
+ "Gargoyles": "180-300",
+ "Abyssal Demons": "180-300",
+ "Undead": "120-160",
+ "Dark beasts": "180-300",
+ "Creatures of the Lost Grove": "100-120",
+ "Dinosaurs": "70-110",
+ "Nightmare creatures": "110-162",
+ "Dagannoth": "205-290",
+ "Rune dragons": "50-75",
+ "Aquanites": "195-240",
+ "Iron dragons": "75-130",
+ "Shadow creatures": "100-150",
+ "Soul devourers": "150-250",
+ "Acheron mammoths": "30-55",
+ "Risen ghosts": "120-160",
+ "Creatures of Daemonheim": "101-150",
+ "Kalphite": "205-300",
+ "Black dragons": "50-110",
+ "Steel dragons": "50-125",
+ "Strykewyrms": "101-150",
+ "Edimmu": "170-265",
+ "Ripper demons": "60-85",
+ "Mithril dragons": "30-50"
+ },
+ "name": "Laniakea",
+ "id": 11,
+ "url": "https://runescape.wiki/w/Laniakea"
+ },
+ {
+ "task-counts": {
+ "Soulgazers": "140-190",
+ "Glacors": "70-100",
+ "Abyssal beasts": "140-200",
+ "Kal'gerion demons": "60-120",
+ "Gargoyles": "180-300",
+ "Greater demon berserkers and ash lords": "50-80",
+ "Hydrix dragons": "90-140",
+ "Revenants": "50-80",
+ "Abyssal Demons": "180-300",
+ "Abyssal lords": "100-150",
+ "Abyssal savages": "180-250",
+ "Acheron mammoths": "40-60",
+ "Black demons": "200-280",
+ "Dark beasts": "180-300",
+ "Onyx dragons": "100-150",
+ "Ripper demons": "70-95",
+ "Ice strykewyrms": "100-150",
+ "Lava strykewyrms": "60-120",
+ "Living wyverns": "50-75"
+ },
+ "name": "Mandrith",
+ "id": 12,
+ "url": "https://runescape.wiki/w/Mandrith"
+ }
+]
--- /dev/null
+[
+ {
+ "default-creature": "Araxxi#Default",
+ "weakness": [],
+ "creatures": ["Araxxi"],
+ "hidden-creatures": [],
+ "index": "Araxxi",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Arch-Glacor#Normal mode",
+ "weakness": [],
+ "creatures": ["Arch-Glacor"],
+ "hidden-creatures": [],
+ "index": "Arch-Glacor",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Black stone dragon#Default",
+ "weakness": [],
+ "creatures": ["Black stone dragon"],
+ "hidden-creatures": [],
+ "index": "Black stone dragon",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Chaos Elemental#P2P",
+ "weakness": [],
+ "creatures": ["Chaos Elemental"],
+ "hidden-creatures": [],
+ "index": "Chaos Elemental",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "weakness": [],
+ "creatures": ["Commander Zilyana"],
+ "hidden-creatures": [],
+ "index": "Commander Zilyana",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Corporeal Beast#Default",
+ "weakness": [],
+ "creatures": ["Corporeal Beast"],
+ "hidden-creatures": [],
+ "index": "Corporeal Beast",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Croesus#Active",
+ "weakness": [],
+ "creatures": ["Croesus"],
+ "hidden-creatures": [],
+ "index": "Croesus",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Dagannoth Rex#Default",
+ "weakness": [],
+ "creatures": [
+ "Dagannoth Prime",
+ "Dagannoth Rex",
+ "Dagannoth Supreme"
+ ],
+ "hidden-creatures": [],
+ "index": "Dagannoth Kings",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "General Graardor#Normal",
+ "weakness": [],
+ "creatures": ["General Graardor"],
+ "hidden-creatures": [],
+ "index": "General Graardor",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Giant mole#Normal",
+ "weakness": [],
+ "creatures": ["Giant mole"],
+ "hidden-creatures": [],
+ "index": "Giant mole",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Gregorovic#Normal Mode",
+ "weakness": [],
+ "creatures": ["Gregorovic"],
+ "hidden-creatures": [],
+ "index": "Gregorovic",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Har-Aken#Head",
+ "weakness": [],
+ "creatures": ["Har-Aken"],
+ "hidden-creatures": [],
+ "index": "Har-Aken",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Helwyr#Normal Mode",
+ "weakness": [],
+ "creatures": ["Helwyr"],
+ "hidden-creatures": [],
+ "index": "Helwyr",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Hermod, the Spirit of War#Normal",
+ "weakness": [],
+ "creatures": ["Hermod, the Spirit of War"],
+ "hidden-creatures": [],
+ "index": "Hermod, the Spirit of War",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "K'ril Tsutsaroth#Normal",
+ "weakness": [],
+ "creatures": ["K'ril Tsutsaroth"],
+ "hidden-creatures": [],
+ "index": "K'ril Tsutsaroth",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Kalphite King#Magic",
+ "weakness": [],
+ "creatures": ["Kalphite King"],
+ "hidden-creatures": [],
+ "index": "Kalphite King",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Kalphite Queen#First form",
+ "weakness": [],
+ "creatures": ["Kalphite Queen"],
+ "hidden-creatures": [],
+ "index": "Kalphite Queen",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Kerapac, the bound#Normal mode",
+ "weakness": [],
+ "creatures": ["Kerapac, the bound"],
+ "hidden-creatures": [],
+ "index": "Kerapac, the bound",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "King Black Dragon#Default",
+ "weakness": [],
+ "creatures": ["King Black Dragon"],
+ "hidden-creatures": [],
+ "index": "King Black Dragon",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Kree'arra#Normal",
+ "weakness": [],
+ "creatures": ["Kree'arra"],
+ "hidden-creatures": [],
+ "index": "Kree'arra",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Legio Primus#Default",
+ "weakness": [],
+ "creatures": [
+ "Legio Primus",
+ "Legio Quartus",
+ "Legio Quintus",
+ "Legio Secundus",
+ "Legio Sextus",
+ "Legio Tertius"
+ ],
+ "hidden-creatures": [],
+ "index": "Legiones",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Nex#Standard",
+ "weakness": [],
+ "creatures": ["Nex"],
+ "hidden-creatures": [],
+ "index": "Nex",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Nex: Angel of Death#Default",
+ "weakness": [],
+ "creatures": ["Nex: Angel of Death"],
+ "hidden-creatures": [],
+ "index": "Nex: Angel of Death",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Queen Black Dragon#Normal",
+ "weakness": [],
+ "creatures": ["Queen Black Dragon"],
+ "hidden-creatures": [],
+ "index": "Queen Black Dragon",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Raksha, the Shadow Colossus#During fight",
+ "weakness": [],
+ "creatures": ["Raksha, the Shadow Colossus"],
+ "hidden-creatures": [],
+ "index": "Raksha, the Shadow Colossus",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Rasial, the First Necromancer#Normal",
+ "weakness": [],
+ "creatures": ["Rasial, the First Necromancer"],
+ "hidden-creatures": [],
+ "index": "Rasial, the First Necromancer",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Orikalka#Default",
+ "weakness": [],
+ "creatures": [
+ "Orikalka",
+ "Osseous",
+ "Pthentraken",
+ "Rathis"
+ ],
+ "hidden-creatures": [],
+ "index": "Rex Matriarchs",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Seiryu the Azure Serpent#Normal mode",
+ "weakness": [],
+ "creatures": ["Seiryu the Azure Serpent"],
+ "hidden-creatures": [],
+ "index": "Seiryu the Azure Serpent",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Solak#Solak",
+ "weakness": [],
+ "creatures": ["Solak"],
+ "hidden-creatures": [],
+ "index": "Solak",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Telos, the Warden#Standard",
+ "weakness": [],
+ "creatures": ["Telos, the Warden"],
+ "hidden-creatures": [],
+ "index": "Telos, the Warden",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "The Ambassador#Normal mode",
+ "weakness": [],
+ "creatures": ["The Ambassador"],
+ "hidden-creatures": [],
+ "index": "The Ambassador",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Dharok the Wretched#Normal",
+ "weakness": [],
+ "creatures": [
+ "Ahrim the Blighted",
+ "Akrisae the Doomed",
+ "Dharok the Wretched",
+ "Guthan the Infested",
+ "Karil the Tainted",
+ "Linza the Disgraced",
+ "Torag the Corrupted",
+ "Verac the Defiled"
+ ],
+ "hidden-creatures": [],
+ "index": "The Barrows Brothers",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Dharok the Wretched#Normal",
+ "weakness": [],
+ "creatures": [
+ "Ahrim the Blighted",
+ "Dharok the Wretched",
+ "Guthan the Infested",
+ "Karil the Tainted",
+ "Torag the Corrupted",
+ "Verac the Defiled"
+ ],
+ "hidden-creatures": [],
+ "index": "The Barrows: Rise of the Six",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "The Magister#Default",
+ "weakness": [],
+ "creatures": ["The Magister"],
+ "hidden-creatures": [],
+ "index": "The Magister",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Avaryss, the Unceasing#Normal Mode",
+ "weakness": [],
+ "creatures": [
+ "Avaryss, the Unceasing",
+ "Nymora, the Vengeful"
+ ],
+ "hidden-creatures": [],
+ "index": "Twin Furies",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "TzKal-Zuk#Normal Mode",
+ "weakness": [],
+ "creatures": ["TzKal-Zuk"],
+ "hidden-creatures": [],
+ "index": "TzKal-Zuk",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "TzTok-Jad#Default",
+ "weakness": [],
+ "creatures": ["TzTok-Jad"],
+ "hidden-creatures": [],
+ "index": "TzTok-Jad",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Vindicta#Normal mode",
+ "weakness": [],
+ "creatures": ["Vindicta"],
+ "hidden-creatures": [],
+ "index": "Vindicta",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Vorago#Default",
+ "weakness": [],
+ "creatures": ["Vorago"],
+ "hidden-creatures": [],
+ "index": "Vorago",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Zamorak, Lord of Chaos#Normal mode",
+ "weakness": [],
+ "creatures": ["Zamorak, Lord of Chaos"],
+ "hidden-creatures": [],
+ "index": "Zamorak, Lord of Chaos",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Vorkath#Normal mode",
+ "weakness": [],
+ "creatures": [
+ "Vorkath",
+ "Zemouregal"
+ ],
+ "hidden-creatures": [],
+ "index": "Zemouregal & Vorkath",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ }
+]
--- /dev/null
+{
+ "version": "0.0.17"
+}
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html>
+
+<head>
+ <title>Slayer Assistant</title>
+ <link rel="icon" href="./images/icon.png" type="image/png">
+ <link rel="stylesheet" href="./styles/default/index.css">
+</head>
+
+<body id="nis" class="nis">
+</body>
+<script src="./main.js"></script>
+</html>
\ No newline at end of file
--- /dev/null
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(typeof exports === 'object' && typeof module === 'object')
+ module.exports = factory((function webpackLoadOptionalExternalModule() { try { return require("sharp"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require("canvas"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require("electron/common"); } catch(e) {} }()));
+ else if(typeof define === 'function' && define.amd)
+ define(["sharp", "canvas", "electron/common"], factory);
+ else if(typeof exports === 'object')
+ exports["SlayerAssistant"] = factory((function webpackLoadOptionalExternalModule() { try { return require("sharp"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require("canvas"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require("electron/common"); } catch(e) {} }()));
+ else
+ root["SlayerAssistant"] = factory(root["sharp"], root["canvas"], root["electron/common"]);
+})(self, (__WEBPACK_EXTERNAL_MODULE_sharp__, __WEBPACK_EXTERNAL_MODULE_canvas__, __WEBPACK_EXTERNAL_MODULE_electron_common__) => {
+return /******/ (() => { // webpackBootstrap
+/******/ var __webpack_modules__ = ({
+
+/***/ "./images/data/reaper_collapsed_OSL.data.png":
+/*!***************************************************!*\
+ !*** ./images/data/reaper_collapsed_OSL.data.png ***!
+ \***************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAVXG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKKrnKwAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAElUlEQVRYw92YTWgcZRjHfzsz+5HdzczuJumuJS3VSkI/AlaFgmK1PVStIJTSQy9FELy0gqIgIhYlUFHpQQ9tQZFCKWLVQ/FQ60GFUtAG0dqvNG0sRtc07WZ3Z3Zmdmd2Z8bDdiabTWJjipD4v8z7Mc/H+/m8zz/06p5dHrchdyYA0CoGvSt60coltIoBQMOt06h7JJJJACzLwK7VEMQosWiETFcGVdMBUOQkplmlVq1imhVy2Vygc+TK5aAudybu2O77oFVMnnwsyQPrN6KW4yB0MifcCiF7iND+fXu8H88OkU5349o1VENHFMM4Th0lkUSIxCiVCswX85X1/5urvV3Pb9d/55N3t2DWltHwVkEoMrcTng32JSR/tjVNDYzJsjI10Jo1p47ZJsTXoRo6GPqcsrKszDpwv32GDyEw1Bs4ngjh9JRAKAahKHgWeLWWAVaR/LLj1BkbywMwNpanI9bcotWaEfxv2XZQjkYiXL12nWhk5gwqioKqqli2Pa2/te7bmqu93Qe77nDu/BDr+w28RnNSQkIExCwISXB1cCbw3KaPIa+IpMjJaVvk50v5EHeNPP8Fdr8BZz4qeAe/tPn1WhzPq/H23g2sWrmai1eGGTx0HkVR6O8t88L2BIJpVpFlhXS6G0VRWOw49UOVc6NZUqkcHYleTnz/F43aCF99e4munpWsXf8Q48YAZ87pCLVqlVKp0NzfqrroB/fUth1YtonjuFh2nQ0DywlHQqy7z2OyWMYydAqTt3h4IIdgmpXgAmg9U4sVXekI772coSMRYuvm+xm4Z4TXD/zC4w92sPVRhZJe4YPBZ0kIfyDlsjny4zcRxfCsl8Niw9Gjx3j6kQTvv7QJt6Fx+DOH4TGZL04rPL+9j7pVoFE8wqmzIoIfpGeLOYsR3/y0mlc+dLlw4TSm/idqxcbDYdJIoZcvMjxymdcOCYzXn0HqXdHL1dFRlgpi0TCuu4J3jqq8uCPP3p1J9uIBo1wY0fn45HKW53pYt7YfSSuXAkE/rix2CIKAnExy4FOLG4Uqoijguh49mTir700gigJauYTkb8t0uptbN8tLZgU9z+G7z3czdL7AeAEycp2+zq8ZPBYP3seSf1tqmjrtNbLYIYph3hw8zM7NFhuzMFGEgycl6o5AWALTrCD19a8hP34Tx6kviVDgIyyJXBtfxVtH6jQcF0kU0E2N/r5mf1//mulnbimEgumrJxDviAZ1x50qa+VSMxSIYnjGw3gpwvdfFMNoFQMh05UJ8qeltnLtiEYiQRKQ6cog+PncUgnid0KQT2o6Av9jCH4+93+CKIZR5CRScbIYpPYdsQT79+3xipNFapaN61hEYjGW9WTnRf60EkrzJYzaSahlPVkWav/48RMBVVGcLBJ6btc2DyCb7cHQdXSjCjCD37gToaMkmqxYKym0EJl0unvB9uV0mkQyycTELQCkVCpOuWwyPHz5H1mqVsWtDvg3rWrogbPth/vfyMw1qPnoUm8TUul0N6lUHKlR9zg7NDQjiPukTfsXQFV1bKtBWStNk2knlRYiczf2p2LddbY8sYm/ATWM+pwqaFlsAAAAAElFTkSuQmCC")
+
+/***/ }),
+
+/***/ "./images/data/reaper_collapsed_RS3.data.png":
+/*!***************************************************!*\
+ !*** ./images/data/reaper_collapsed_RS3.data.png ***!
+ \***************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAXKm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQRroAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAFsUlEQVRYw9WYXYglRxXHf11d3dX39p3vnZ3sRtZ8sZF86K4JRo2oD+JDFGEhYlDfonnOQ4jowz7qg/omq0YQCYgo+CCDUUEkGgzCIOaDXU1wY3CdZDc7M3vvnXvvVHV9tA99u2auIaJvMweaunWr6lT/65w+dc4/+cwXHqt3rl9FpCkAaSppxXvHQQnek+UKAFuZ+Ptgv229d9R1QMocAOcq6lDPzDnYAjO6236rx1nHE48scuaeBxj0uyDmeEcJuyTVBvLvr1ziX69fRgiBSFOctYTgWVhawWiNsxUyywnBI0RzAJXRAMgsI1cKPZngnCVXBUKkOFsBUHS7OLt/QJXRcZ/2sBo9eRyTWT6zJ0CnWzLc2eJ95x9hPBxAssR/lURRJ8sIgFwVhBDIlSJXBVJmDG5sIzMZN2tfztmKbq8XwU5GI5yzFJ0ygm5FTyYNiOlLdns9RJoiRPOEEAghxINyzlIZjcxyVFEQfLPH7qAPwHhwFae3IQzAX2+esAt11bTxvwHUe0gpGzcUQuCsQxVFfIzWpKmMfQDnPd5aTt12mvFoNDMmM4kqStI0wU2t4q0FQBUFznvyokOCIE2TGX0A8wuLhANrllePY7RGFQWpELz48gb33DmmdluNgUQO6RqIHoQR+GvUoTFEUu+Q3HX/R+qrm/8keE85N8/m5b8mHGL54w969YWfV/zhJUUnM3zj8fu45dTtXHzlb5y/cAnrEj5+xvLYubJxSyFSRJpGCxxmeeb5CesbS+y6OW74k/zi2Tdw+lXWf3eJ0L2VvWSF9Y0lfv/nYQMOwE1d4bDLpz79MGk9oQ41lTacvfckWZ5w9201zlbYyqDSwAfPnkRIKamMJlfFkQC3spTzw/M3cf975vnyZ+/i3hOv8tVvv8DH3t/h3IdrPvTeE/zsu5+jFFeQzrlptPRHAtzTT/+Yhx4s+ebjHyW4Id/7qefZl3LueG6ZR8+dxpot3M6PeOZPgnhjC5FitD704J767btZf/4qT3z+OW551wqD3Yr5Mmd7vMiof5F/XNnhWz9xaHUfydkHP1Ffef0yldEcW7uJ1y7+5VBHy8XjN9eJENR2wtcfHXL37b04dvHyiK98v0NeLnPq1juQxmhkJoHiSFiuTRGtTfnaUzm7ozGJENR1YHmppFN2EXmGMbpxS2cdldFH4ipor6xQjXjhl19i4+Ut3tyC5XnL6blf89CTGmebHFUqVcRoeRTAAewO+qSp4snzF/jiJy0PrMG1HfjOrxSORZzRKFU0lgvBx/zx0FtOpAjhSWXG+sYiv3lRIURCZSpWjq8RwnaM/M03J7OmIvCH/zpovasymk63SeC99yRCEKZuKwFjNEKpImbq/ghkKUZr9N64qSKm3iazPCbpMZVUBcIYjRDpkQkozlYUnTLWlvvuKlBFMa0L08ZyHFFpC9pcqWnNGN7+fZa9eSqjmVtYPDL33EEw7TUmswyjGxyV0ZS9+f1KfG8yJs2yQw9KZvmUIchmKv9OtyTNMvYm41gEyPFouM9x6D3uPPOB2k4DS9Ep0Xvjt7XZ9BDSKfnjXYW1lt7cPKPdYVzrXUUq8zhedMqZ+W2/1WmtjW2r4+D8LMtIZY7eG7N8bC3qb9cP+jcilvFo2Fzirf9WxnDtjU1CCAghprxKwbDfn3Im/Th33z08wXuKbpe33tyk6JQ4WxFCoNvrURkTSaNWX5s09He2Yx15sDLJlaIyhspsRivkSjEaDiLgnetvUXS7TEajmIAc3CtGS+fsTHrTslAHy6CG0PGRqZKZJARPZTQhhBmWq33Z0XAw4zrdXg9nK/LpgQbvp4yZiGE9eB+JpRZIZRouR4gm9WrnOuuYW1gEYHBjez/YONvklsdWV/8/n5cS5xwtseSc+5/XvJN4V9Et55lMRjO86X/qWFldwznHwtIKShWRVx3tDjh+4uaZ+cdWV/k3rAQo1Oy03j4AAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./images/data/reaper_expanded_OSL.data.png":
+/*!**************************************************!*\
+ !*** ./images/data/reaper_expanded_OSL.data.png ***!
+ \**************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAa4G5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3ePXqQAAAYVub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqIw0NAAANGG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+dZ7WgAAAAZub1BFAAAAAAAA7Gu72AAAAAlub1BFAAAAAAAAAAAAoYpy1QAAAAdub1BFAAAAAAAAAFrm3tAAAAh/SURBVHja7ZxvbBt3Gcc/vnNsJ3Z8sZM0aedMZR0J7VqgA2looMGKNHXrNGma9mIgjaIheNEiDRWpmvivakyA9gJerEUgNFQNhIAXE0JjvABENQGtEGXr2qysILUN6R8n9p3vj3323fHCvYu9JKV/k3P3fKQo9tm/ex4/9/j8u+f33Dfx5V1PBFwiP5gFwKhZlCZKGNUKRs0CoOU3aTUDsrkcAI2GhVuvo6hpMukUxeEiumECoOVz2LZD3XGw7RrjY+PRPk++dSJ6nh/M/t/tK+nDzbQlcb28LcvxeOSTRT64+R706gAogyyLXyPhHiHx7a/vCv52+AiFwgi+W0e3TFS1D89romVzKKkMlUqZK+VKx4bvW277SvqwErau9r3vtrhWqhY/+c427PoaWsF6SKSWdyRwwT1OMvxGGYYefeh8XltI5Hpj2X0slfDhPnTLBMtcdmw+ry35YcLtK+nDStiSuF7eVrPhY+nn8AIV+goLLyYykEhD0ICg3pHADom9T38mmJ4+AcDp0zPRa/2Z9hTCqVvRtobrRo/TqRQN1yWdWvwN0TQNXdcXvb7c+5fbvpI+rJQtievSthIJlb07M2ye2kSQKLbzVkmBOgZKDnwTvPMEfntsIpgnqeVzXT81/zg+k+C6mWH1mbkFbd3acX3yK/Daj8rBC792ef3tAYKgzrd2b2X97Rt4861p9u1/A03TmCpV+fyjWRTbdsjnNQqFETRNQxBWk1f/6vD6v9cyNDROf7bEy3/6L636SX7zh+MMj97Ops0fYtbawmv/NFHqjkOlUm7PTXRdoiesKtsfeox6w8TzfBpuk61b1tGXSnDXHQFz81Ualkl57iIf3jKOYtu1aBLeORcRhNVguJDiu18q0p9N8MD9d7Jl7Umeef4oH7+7nwc+qlExa3x/3yNklTMkx8fGmZm9gKr2LTnhFoSV5ODBl3jw3izfe/o+/JbBgV94TJ/O86tDGk89OkmzUaY1/yKvHlZRwuLxUrVBQVhpfv/3Dez5gc+xY4ewzbPoNZcAjzlrCLP6JtMnT7B3v8JscwfJ0kSJf506JVETYkEm3YfvT/DcQZ0vPjbD7sdz7CYATnHspMmPX1nHuvFR7to0RdKoVqKBYU1OEFYTRVHI53I8//MG58oOqqrg+wGjxQE2vCeLqioY1QrJcNpQKIxw8UJVIifEgiDw+OMvn+TIG2Vmy1DMN5kc/B37XhoA2n0iybDaYBh61yqIIKwmqtrH1/Yd4PH7G9wzBufn4YVXkjQ9hb4k2HaN5OTURmZmL+B5TSmVCbGhL6ny9ux6vvlik5bnk1QVTNtgarL9+uTUxu45r5TKhHidfRUG+tPRc89feGxUK+1Smar2AciZV4g1YX6qah9GzUIpDhej3ks58wpxJp1KRU1kxeEiStjPK4sUQi8Q9RQbJoqEQ+hVlLCfVxB650KuDy2fW+jnBaSfV4g1YX7m8xq27Sz08wLSzyvEmjA/K5UydcdZ6OftLEUIQhzpzE/brqGEmgJhKUIQ4kpnfo6PjXcvUghCr1ywGTULpTRRkhqv0FN4XpPSRAnFqFbQsm3pHennFeJMmJ9aNrfQ26CkMhQKIxIdIfYUCiMoqUx72pAfzEalMunnFeJMmJ+VSpn8YHbhBkzfrUt0hNgT5ml0wQaXxNMEIeaEeRpdsIXlB0GIO2GeRjdgdgrtfeFTOwIJkRBHDh89GvWeGzVrsW7DD3/2W4mSEEu2broNWKjzJsM6r26ZYR0tIWES4kh/JhtAR503mUpjXlKtllKZEGfC/DTrDZKpNMnOfl5dN4mHgLEgLEbTtGgxraufV/R5hbij6zq+W1/czyv6vELcabhuVOft6ueVW9+FuBPe+g4d/bxh+UEQ4k6Yp13Lw4LQS3QtD4P08wrxpjM/o35eQPp5hZ4gzFOjZi1UG0SfV4g7Tt3CMPSFasPk1MZoIiylMiHONFw3umCbnNrYPeeVUpkQZzrzU/R5hZ4784Lo8wo9euYVfV6hZxF9XuGWQPR5hZ5D9HmFnkP0eYWeRfR5hZ5F9HmFnkX0eYVb4oJN9HmFnkT0eYWeQ/R5hZ5G9HmFnkT0eYWeRvR5hZ5F9HmFnuWy+rz33j0ZACRV9aY5oCSW2Lfqt/977UY3P/BWNCihT9dr1/N9qoZFparz3Ofex54DJ1i7poiW68cPgmuO643y73K0vIV9x/H41yyjS593UZ03qao31fHlj7qy6om7bGCvkCAIcOou5y7qfHXnBO9f4/Dpj5U4d7GK02gSBMGq+ncl9MLxj22dd6UT90bSbHqUKzU+sjnLwx9o4lbLPDzVxx2jaeaqNVqeL7/713H8F9V546DP6wde9NerXx4/CDDtOs2mw7OfHcVzdPyWS70yx57tt2FbNk7dxQ+C2H65V+WMexXH/536vFE/b6EwsmL9vJ1Oxilhr8uXIMBttfjGU3cyWugnOThKZmQdmcIwY8UBdu14L82mB9eQvDfEv5ieXa/mM4X6vGE/bzLs59WyOXRdZzCbf1dOD67Xn0QiQbY/zbM/Pcsz+xt4HVMEVVXIDaQZKQySSCRuiXitRrxDfV7dMhkpaiShveRWqZTpz2TZ/uA25ufmqTdcfK9BKpNhzegY4Y2aWj6HbTvUHQfbrjE+No5RsyhNlDCqFcJFj+Jw8arHtPwma0bHxL7YX9L+oT//Bd0yo1aGxM4nHgoAxsZGsUwT03IAoiXjzvraUt1n4fbwok9JZaKx1zImdEzsi/13jlm3dpxsLsf58xfbc/ShoQGqVZvp6RPLFoU9r9nlRKeBsO6mW2bkTGdJ42rHLBc0sS/2z5w9E+1raGiAZKsZcPjIEaC7U73huqRTqUX/23MPE7fRompUusaEpYzwqvBaxoh9sX85++1bgf7Dtk/cx/8A/EcyrqMdMKAAAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./images/data/reaper_expanded_RS3.data.png":
+/*!**************************************************!*\
+ !*** ./images/data/reaper_expanded_RS3.data.png ***!
+ \**************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAe825vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz2Q1aAAABhW5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKojDQ0AAA0Ybm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD51ntaAAAABm5vUEUAAAAAAADsa7vYAAAACW5vUEUAAAAAAAAAAAChinLVAAAAB25vUEUAAAAAAAAAWube0AAAD3VJREFUeNrtXWuobddV/tZ8rLX24+xzzj335t7cpOmNaaJN0+ZVaDWlthCQVi0EFdGCSpUo4o/+0BZ/GPwjAR8IovUFPgoiKiI1UBVsNRSLcCmWliS2GtMm5nlfZ5+z99prPpc/5hpzz71z06Zau/e9zA8u+9y11nyNMdZcY4455hjFBz74cHf5wktgnAMAOBcgOGeRwjsHWVYAAKNV/Dv9P/06Z9F1HkKUAABrNTrfrTyT/gJYqZv+n9ZD/eFcwDkL7xwY5/H/1HejFRjnK/fT8VSDAdRiEcdEz6T9IXqk46Y20v6l46W+Ufn1OtO6v1Z767RepzH1Ix0zje9a5V8zO8ZHPniAe+56B6aHQ4Dt4DXhj1Ho8xD/+aUn8d9feRqMMTDOYY2B9w67+wdQbQtrNIQs4b0DY4HAWrUAACElyqpC2zSw1qCsajDGYY0GANTDIaxZElCrNrZDxAz1lPGekOVKmwAwGI4wPz4CgBUmW2MgpIR3DkKWyXUNxjnKqoJWKvbJe4+yquNz7WIOxni8RmNc7//6c1R/2v+qrnE8PVzpD9UjZAkhBbRSK/1mjEdapvQnujaz2VXpxThfKZvyS6v2muQfug533/EDmB9NgWIfXxNFha44AQYAZVX3jK1QVjWEkJheuQQhxQoTtArEGI7HkRjNbAZrDerBKBIlCkfTROICwHA8joRnjMN7D+99JKS1Blq1URi8C20cTw8jkegalWGM90zXPdEEvPewxqwIrpAlhuNxL8ShP2VV92N34bpz8N71wlbGvgshsbO7t1J22YdAn0UzD3X1ghuEyCeMsrDGREElIWOMrdCfMdYLpgq8kGUsFwTCw7vQX+p/yq9rlX/OGsynL8G2lwA/BdyF8M8fA50Ov/HaFOgWKN72zvd0Lzz31cjgqg6zS1XXUO1yMHTdOgdnDHb3DzCfzWCNivea+QxVPQLnBWz/Vrqe8FVdx2sFGDgvVuoDACkl/FoZ6gP9XdU1nOvAefGqe0JWsEatMID6lj7rXIcOHoLzV9XBpYztr4NLGcsIWcUxUP1cyjhmapfupf1Ix5XWuV4mpVtap3UOop/B1vufjvta4l9zfIxf/WmLu779TnTFidAOKwF+GmBjwM8A9zI6H17EoruM4s63v6t76fln4Z3DaGeC559+qkBGxobwL3847j721xqPf6HEUGo8+uH7ce6W2/DEl/4dj3zsSRhb4D33GDz80CioDTR1p29+RsYm8MnPNnjs/D5anMQri5P4xD+/ANt+GY99+kn44a1YFAd47Pw+Hv/cURBeUp4zMjaN7/2+HwTvGjhnYbXGvW89C1kWeMu3dbBGw2iFinu8896zYEIIaNWurMIzMjaFg/0Sf/TIGdx3+wg/8yN34603fhm/+Bufx3ffN8BD39XhO992I/7yd38YI/YchLU2rrgzMjaNj3/8z/D+B0b4tQ+/G94e4ff+wuHxL1Z402dO4CcfugNGXYS9/Cf45L8yRIs2Y3xldZqRsQn8wT++EX/72RfxCz/6GZy7+QDTY41RLXBpvofZ4RN45rnL+PU/t2ir+1Hc+8CD3XNfeRpatTh5+gz+64l/y9aGjI3hzLnbO6MNbDvFoz81w1tuG8d7Tzw9w0d/f4BydAK33PomCKVaCCkA1Hnmzdg4rLEoigIoJB754yEuX56hYAUKFNjfH2EwGoKVEkq1QW2wxkKrNpvKMrYC3juUJcfn/uYncP6LF/HiReDExOCOnb/H+z/SwprgQyGqqo7Whiy8GVshuFUFrYCf/6XfwY99j8U7TgMvXwZ+++8qWOzBqhZVVYeZl/b2MzI2DXJIKqsan3riJvzD5zXq4QhtM8f+wSl4f2npX6JUCyFkcG5x2VyWsVm0TRNNt0ZrjCd7WMznkGUNj+CVJkTQeVlV1dFTyOVdtoyNqw0+eAb2E6lqg/edVi2cMUtXhqoOMy/5hmadN2PzakMNayzq4RBlVaNdzHvXUImqrnu/YR5m3kyujG1CVdewRqNtGggpUA9GKKvqqs+y0XgCrVrs7O5lO2/GxrFo5sGB3hrMjqb9IQOLsqqg2iCnWrUYjSfLkxSLZh6dqTMyNoVwQsP1M27dH0XSmB1NwaWMJ1aCtaFtYqHxeJKpl7FxpO65Wql4TGk8nsQjRKptwswbzn05zGezTLmMjYLO9lV1Hc/KkUFhPpv1ZwyDPxmz1vanVPmrzn9lZGzC2kBqLB0Y3dnd6zfSVHJo1AZndNHrutlUlrF5lUFH1SBoBSWmVy6hHoyifAopIYQIzuhLPSJbGzI2CzpKH+Jk8GjXTeWTMR5m3lAgbwtnbI/aYI1Gu5jHmXbv5KkVGY2+DUKIZIquMvUyNr5gA4DxZBfH00OUVY3Z9LAP5rKUTyFEWLDp3iE9DaKRkbEpjHYmMVoP+Tl478F50YfNamGtDf68QkhYY7POm7EVasP8+KgPJeXQzGY4efoMVNv2sdcshJCJYw4Puxp5hy1j06jqGqOdSVQdvHdo5rO4A+x9iCy5dInsV3PZJTJj0zieHkYNoG0a7O4foG0a+CQmGmOJSyT5S+7uH2TqZWxcbSCLAuMci2Ye7+3uH8QdOKXaoPPSFly7mOO9P/TjXSZhxjbiq09+IcpqVdUQztkY61W1Lf7pr/40UyljK3HTbW+OdmDnLB3A9LBGk1E428sythUdRbgHQF5l2bch49qwRKTyygBAViGEvXNZ3c3YXpB8krwyzgVUs4g7GBkZ2wrOC3jvoZoFOBdB511Po5SRsa1IsxEJpdq4d5y3hzO2GSGGQ1isKdUuvcpE3hrOuAZAciqECDpvmi8sI2PbEdZnvc6b81FkXDs6bzhhEWbfmK3RZTtvxtaDUukKWQY7787uHoTIOm/GNaDz9ql0AYDNZ0cxxE5GxvYv2Eosmjnms6PezstC9susNmRsM9bzSLOqD+Sb+k1mZGwrFs08rM+iM3ofyDdHRs/YZpB8eueW8XmFLMPR4rxNnLHN+i7n/RH4cqk2WKMhZJm9yjK2Gs51IXav0aunhwHkQHsZ26029PK5cnqYopRka0PGtWBt0H0eNiZkGU1l2assY5uh2jbG7RWyBKPDl4tmnmfejK2feSmsvzU66LwAVmKiZmRsK2K4U9WC7R+cioH2MjK2HRRob//gFNiVSxdCsramyZsUGdttbXAupne9cunCahLBvEmRsdWz7pp8RlMZ4xyyzMGlM7YXsqzAOF+ayoDlSYrZ0TRTKGNrQfK5TCLYn6LI1oaMa8XaQFEiGRAyDmZ/3oxtB8koZcgUQogYIdI5mymUsbVo5rM+iXa9zMNmjQYATPb2cOLGWzprDISUsMZE/YI8z9Z/vXfwLgQCTp+P5o3+OfKfEFJGtzZql/6uh0M0SQpZxhiELNEu5qgHo5U2KaUnRVDRqo3n8MjRiIKp0I6M9x6MsXgNQKyL6ibQuOrhELOjaWzfe4/heAytVCxH9WnVQpYl9KIB93P85s/eiZ/7rafAqhFEWaGqa2iloFUb2y+rKtZP9CI6lFWYaebHR2CcR9UupTl9OYlf67/XE/+GozEuX3gl9MtaOknhk86aUCHjYIzFDQzqIOWvoLCoQQfxUZEOKebDoNYdfpYC42NdqcDMjqbw3i0V8sQ0EjLALNMOhFOkbOmLLGSsyzsXLSgxoiDny+eTnF6kQxGDKA9zOFHtYc3q16isasyOpnFsADAcj0OM47KCbhdomxl+5eFzuOeGFh967xugF3NYrdD2p1VIULVqwbmIviVEN2tsPGQ4vXIJo51J8qK4yNSr8et65t9yYvGvtjbQmzXamazMRFqpGGZd9ycvyqqODC+TvBZEiHR2IYcfIsZwPI6EJ4aQgxC9ofRMyuyyP7JEQkcDCgzxcRaguuIJkSQlqPcutqFV2+e3NXGmCJ+lqiemhFYt6sGoF4Ky17XkCiO1UglTFR68f4Lvv9tAH17EB75D4q6bB/DWAEWxMtsLIaHaNvqWCFlitDOBkAKqbdEu5vEZEpYwq5ZRUNf5db3z76rWhlTqqbPpW1RWFawxGE92ceLUDcknQy7zuEkeiVJWNbjk8S0N12Vfj0U9HEJIiXo4jLMKDS4QWUWhCp5EDGVVxQEJKWM5EryUwNQPGjQxn8rUw2FM0lwmtm6aDalfKSiRM9UrpIhlvQuJnUfC4NEP3QC3mMJbjfbKJXz0fTdDdC28dfDW9kIn4gxEzCRBodmevKfSr6LoM+LQ53SdX9cz/0i4ydrAz91x1y+//MKzYJyjKBhUu0DX+f7tNTC615GsgfcesiwxvXIZXdehYAXKqkJRhM9T0W/YWaNhrYHVvQ5VAM5aVINBZAx9QroudHgwCrNb0X/yVLsIyeQWDbx36LoOWikMRiMYreGcQ8EKcCFhtMZgNIL3HgUr4KyNguichSyr2F6qIoTPUgh3xYVAUTBQmgNrDBjn4ELAGg1ZVuFva9B1HoxztIsGzllwLuC7DvAOjz78Rtx3+wCFkNB+Am2G2N0b4/TJCc4/s4C1pq8z0PPUmbM4nh6iGtT9LN6i60IOMto0Ivp0XRfLCSlRFCz2h/jlnLtu+ceFgNFhzXD2DbeiuPPt7+peePYZCFlisreHV158fkX/oAUJvXVaqfj2pAsfimRCbxC9IeniAQAG4xHmR0cYT3ZDuaaJn4ygO1JGThkXTEQw+pSliwh6260xcSG1fM5EvYqu0SIhXQikC42Tp8/glRefj6rC+gKPXgCqO+rTBYPWLaxqYbRC13kURYGu6yCEBOMCKArsnTydqBkuqiXpl+Fq7RAdaHYl+tJCh/hFqsb1yL+Tp8/g6PAQ1micvaUX3ldefL7/xFTY3duH6TtaD0ZxpZj+yl6J5qKPqG41jDEY70wwOz6KZZ3V4KKM90n3Wf8/1WmMib+prkTPSynBxXL1SvWn5eNWYv9s2pazOt5f7/t6X9bLUpvpM1TPOo3SRQnRhOpM76VlqG/rNKB2Xosn6/SiPl+P/Lt88eVo5bnhxptQ3PvAg90z//HUitnkW2FSSt+4dWWeZohvpkmJZpB0Zktn1nS1nc5ar9eElM5YmzQBrv9ej/yzRuPW298cFmypCeNbYlIiover3rBy1pExlDT5m2FSCouPKlmdi2gOKqsa9XAYFxCpGShdeVN/aSxLm6eI92nF/PVMSLSg+f8yAV7P/IsThzVQqkXx7vc91F28cOF173IIIULG7T4otbX2dZd5LTirMRxN0DQzcC5es460vaqq447g7Hi68rkGEBdS3yi+Xl//r2W/Ufr9b8dxvfPv5KlT+B8FiFlLoxQJ6gAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./images/data/slayer_collapsed_OSL.data.png":
+/*!***************************************************!*\
+ !*** ./images/data/slayer_collapsed_OSL.data.png ***!
+ \***************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAXWm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALW4o8EAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAFNklEQVRYw92YaWxUVRTHf/OWWTqvM53ptNOBVpaCLAo0ERqQILhEwEACiYnBxIiJ3wgJGhPBKAlI+KhGTEAxhEQxBgyRoAgRiQGRpUqlu0AFStuhU2Z5s79Z+vxQZugaKmAy8P/y3jvvnXvOefeee+75G95Zt0bnNmzFVgDCkRiVVZWEQ0HCkRgAmb40mbSOVVEA0LQYqWQSQTRhNhlxljpRw1EA7DaFeDxBMpEgHo9Q4a7Ij3np79b8s63Yelf5UB+0ZBaDKBGJxglHVDJaCoMg033zFlbXBHbu+JgPt24j/s8pDNs3r9PPna/D4XDRl0qixqKIokw2m8ZuVRCMZoLBW4wVY9XNfTeafKRxNC2NPxil0+tHNlupnjABk6WYxpYG5tUuYPsnOzn63ddcvFhPV90xpNzfDofVvDGbzX4n0KQ2aiAj/ZDcGGosCrHoqLo2m33EwHPygT4ICY1EMsX1zl6cpR72ffEWU8ZPxVxWzrnG65w9W8ezy1Zw+pej1J35Df3aCZp6+jC8u+F1va2tFYCOjq68EYu5f4kmkrG8TEul8vcmoxEtlcJkNA5z0G63o6rqsPejfT+aPOdDNB4hqCaYNH0uX21ZiS/pos+gIFiK0JH4fPceMqIZxSLS097A4RN/8PySWiS7TRm0ROpbugzcN7p40LAVK/qO91dz02+hs9eLL55ikseBWTbx2urn+PbgT5T4G6iZOZ2sfxxZSUSKxxPYbPb+paRG/xfHHgRWL1vM+ZMX2Hu8mWgoxIGt6/CKBjZs20VbUyNvrFqEUL2UL4+dprxPoPFiK0IykSAYvNW/vlWVQoXHU05LRy+vrnyRRXOfoLvIxfotu2mq/5P5s6s519iOzaLw9DSZqGxnzoyJCPF4JL8BDMypQoOvN0A4koJwF97OaxRJEgFfd38SdHrp9oUoLy3hmyNt1Hpg9iQnUoW7gi6vD1GUR0zqQsHVbj+GTAyj1ku7P8OVlhbefGUFlzv9VI1zsvSF5eza9SmlLgWpahYNfzUg5ArkSDWnkNDc3MINX4RzV25iFGBxzWwqyxWWL5yKQ0ixcdNGjLrORx+sp0RP0VzfhFBZVcnDAKtZwl1ShNcX4dq166x9bxsRNcrPh37g/JlTvL12Ga4KDwcPH0HMenl5dTVSOBQcVlcKES5HMVdvdPPkzCm0Xu7gQksbF5ovoWNgxZIadnx2kJpF81k4y0Nx1UQeaz99Z1k6HK6CnjmzScbjstF2pQPJaMLuLEPLZFEjMQ4cOc3kp+awakElPREre/d8z6Z97Ui53TIcVgedRgoNBoMBi9lEpdtJQkuRTmeZ6ClFEAwktDTHfv2dH4+fpFgpwm63MrdmKtLj02bQ5fWRzaYLuhT0BwiyLCLLFnRdB/oPUzZFx2lX8If8VE8ejyyJ1NbOG5xzhVwKRprJgfcmo0Sx1YLZJAMQUYP9OSeK8rCD8cOInP+iKBOOxBCcpc58//QwzdxIMBmN+SbAWepEyPVzhV7Ex4p8PxmOIvAIQ8j1c48SRFHGblOQAv5AvrW3mK1s37xOD/gDJLUUfVkNo9lMeZl7TOTPQDJnrITRUAKovMzNvdrfv/9QnqoI+AMY1q55SQdwu8uIRaNEYwmAYfzG3Qgdu7WfFRtICt2LTu6kdC/2bQ4HVkWhp6cXAKmkpIhQKE6ORxlNeeDAAx3I7bRqLJp3dmhy/xed0YIay1jqbULK4XBRUlKElEnrnK+rG1bEc6TN0GuOjkhpGULh4CCdoaTSvejcj/07te4qzy15hn8B0nEpIgoaSy8AAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./images/data/slayer_collapsed_RS3.data.png":
+/*!***************************************************!*\
+ !*** ./images/data/slayer_collapsed_RS3.data.png ***!
+ \***************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAYyG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgO3bMAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAGeklEQVRYw9WYXWwcVxXHf3PnzsfOfnhjr22SNMjOR1OC6gRIS2gJX6ooRS7qAwIET0gRL6gSj+UBoZaKB4RQhVQRRKmQqBACVPEApUiABDSQNECCE7upiI1J7Nhexx+7O7s7H3dmeJid8W4lJHhbjrS6c/fee2bOOX/dc85f+8TnvpBsb64jdB0AXZdkEkWKfomjCMO0AAgDP3/un2djFCmSJEZKEwClApI4GdjTPwIDurN5v54oUsRxTBxFdNsuge+hCQ2h6WzV15iaPsx3n3+Orz3zLJ2lPyJvvrnAyvIiQgiErqPCkDiOGNk3hu95qDBAGiZxHCFE6oDA9wCQhoFpWXidDkqFmJaNEDoqDACwHQcV7jko8L38PZmzUj1mviYNc+CdAAWnSLvV7BkWEnQ7jI5VuXd6CrtQ4drCHO898xBff+47vPqzl7ALBludEAlgWjaB72E7Tv5xjZ0tSpWR1OthgND1/AOcUgm32UAIm47rEscRdqGI121jF4q5MV6nM+AYp1Qi8P3cSSoM873SMAh8jziOMS0by7Zpt5pIw6TV2IUkQQU+J45N842vnuPowWPY4xNcuvYvLl68zIc/NsuF377K5T+/RrL8Oy7fCpBSpjAUQqBChWXb+c/3PHRd5nMAFUVEYcjbD99L23UH1qQhsewiuq6helGJegZYto2KIky7gIZA17UBfQCVkSpx35nR8Ql8z8MwTUKvw8mZ+3np6Vnq3ghrOx2EV2eyWmb99jI/fPEFSgWdsLnGy39pcXD6KNqJ0+9P1ldvEUcRxXKF1cU3NIZQTKuQXH7lm3jNAiub29Q7AdP792EbFgiNH7/8K8aCOaYO3Mcvfn+F1+/KFJYZTLIIDKN85vGP8Pof/sYPfjOPu7vLT5/5Imu6xpeePc+N69f4/BNnEUce5YVfX2Ai0fEbdxHZ4X78D6McODDBwq1NPvv4Rzl7+p3ccWo8+fT3uH7lr5yZOcKla4tUCiUeOm7gGiOcPX0cIaUk8D1Myx5q4zY2t2m2AmiusrayjCMl2/U7AKyurHGnvsvEWJUfvXKDB/fDzPQoUimFadn5tTussrSyhR63Mf1NFrcUNxcWOPfpWf6xssWhA6M8+shjnD//bcZqJeSh+5m7OrcHSyF0fM8bWuPmFt7gdr3FpZvrmAI+eGqGeyZKPPbwMfaJgKe+/BRmkvCtrzxJNQmYv3Id7V0PP5LcXl4k8D1qk29jaf7KcN6WTil54MRhlv65TJQITr7jCB//wLu5eulPuN0On/rkLBcX6rSbG9xXS6i762kq2L67kee4YU0FlbHJJA4DzsxMcePmbbp+FxJBgsbsh06x9PdFTp09wwNHTcqHpogXL6SwVKHKS6phFadUBl3y2tUlNMOiXB2nG0bsNFx+8ssLHH7PSZ543z1stIq8+P2fc+75+RSWi2/OY1o2lWp1aGFZOzidZAV46PsITUMTAmkYtFtNiGMKtkEQKGJNMH3sRBq5OI7yYndYJa07I6Q0MUwLyykSJwlCN6jWJrCKJcq1/chCEWmY2E4R6fseUhppRxANdzpQYUh5pJgbaxeKaWC6AaCh6TIt1EWE73sIy7IRuo4Qel6wDqOk7VVazHvdNtIwcrRJw8yLdCF0hK5jWTbC9z2ESNuZYa4tAz/tLVUYYBeKeT28l6cFlm332jI9jRz/J5JCMO6DaNrQmlbavfev5QYXSxUC36M8Uh3qCiVrqnPKo2dMlsakYeB7qR2B71EsVdLImZZNt9NGN4zhvy0NE2nIvHPPpOAU0Q2DbqedO0G23eaeAq/L8VMPJmHvYumnDvpHo+cEvUf+RCogDENK5Qpuq5mfjVSALs18PaMg3jrPdIZhmI+Zjv79hmGgSxOv22a0Npnrz843dndyW9puE2lZdo7fwPfZuLNKHMcIIXI+o7m72+NBdvO9e/CIiKMI23Gor61iF4qoMCCO4wHOJPsv42tMy2Z3eyvvI/s7E9OyCHyfwF/No2BaFm6zkRu8vVnHdhw6rptzLv3vym9LpfZSQJoWxAD7lHUNGSxSjEviOMpJnX6WK/tYt9kYgI5TKqHCALPn0DiKeoyZyK/1OIrwOp2ByAV+yuUIoadcTG+vChXlkSoAjZ2tvctGhfi+h6yNj/9v+UZKlFJkxJJS6r8+858kUgFOsUKn4w7wpm/VMTY+iVKKkX1jWJad86puq8HE/oOD5dr4OP8GnWaF+iWIoRwAAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./images/data/slayer_expanded_OSL.data.png":
+/*!**************************************************!*\
+ !*** ./images/data/slayer_expanded_OSL.data.png ***!
+ \**************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAafG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAejEs8AAABhW5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKojDQ0AAA0Ybm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD51ntaAAAABm5vUEUAAAAAAADsa7vYAAAACW5vUEUAAAAAAAAAAAChinLVAAAAB25vUEUAAAAAAAAAWube0AAACUVJREFUeNrtnX2MHHUZxz87O/t2u7dzu/fe7im0tKUIpWptKoggGilSEpqYGDDGEkn8oyFBMREMakDA/9SICUUMwSjEBEM0CEJEYsAKbZVCX0/oQWnveu3dbXdn9n12Z8c/tjO3x93VXgt7s+X5JJe7m5vfPL995tnZZ57fM9/zfW/rzTaniHdGATByBVJDKYxsBiNXAKBWr1Kr2kRjMQAqlQJmuYziDxEOBUl2J9GNPABaPEaxWKJcKlEs5hjoH3CP+dZ/D7q/xzuj/3d7K+fwYdoSv56ZrXiXxvETaXL5IorPR6VSoVIxOfTOEboGV/DwQz/nJ/fdT/GdV/A9+KOt9o6du0gkeqibZfRCHr8/gGVV0aIxlGCYTGaKM+VMxzr7zbe9lXNoha2F7vtR9GulUiWdyTM6niYYibLsYx8n3BFn7/49rFu/gQd/8TDP//H3vPnmbsZ2vYDqvKMMQ3dfdDyuTQdyuTKvsbkC3jmGXshDIT/v2Hhcm/PFONtbOYdW2BK/zm+rq6ubvGEwfHSMZPcSnvj1d7ho6QrCvX3s2Pser722iy9s3MT2vz/Prlf/iX34JfadqOP7/h3ftIeHDwJw5MiYe8BIuJFClMqF6XeGabo/h4JBKqZJKBicNRlN09B1fdbf59t/vu2tnEOrbIlfZ9sqlSsUSjUuvHgdv7v3RibKPdR9MZRIBzYqjzz6GDV/mFjEz4mRPTzz0r/54jXrUbV4bMZHze4DYz7OmTEWn7Hz0Nb569d4Z8x+6J7NHE9HGJ0cZ6JocuFggnAgxDc2X8sfnv4rXek9rL3kYqz0EizVj1oslojHtcbHgZ73iIOEjxqbN17Nzpdf5/EX95PPZnnqvq2M+33ccf82hvft5dabrkJZfh2/eWE7fXWFvW8eRCmXSmQyU43cRNfFi8KiMDjYx4Ejk9xy45e5at0nONbRw+33Psq+3f9hw5rl7Ng7QjwS44pVAfIBjctXX4BSLObcJLw5FxGEVjIxeRIjZ4IxxvjoYTpUlZMTxxqJyug4xyay9HV38eRzw6wfhDUXJlEH+gcYG5/A7w/MmXALQit491gaX61AsDLJSLrGoQMHuO1rm3h7NM3QkiTXfel6tm37Jd09MdShy9jzxh4Up3g8V21QEFrF/v0HODqRY8eh4wQVuHrtGlJ9Ma6/cgUJxeSuu+8iaNv87Ie302Wb7N+9DyU1lBLPCYtONKzS39XB+ESOw4ffY8sP7ien5/nbn//Czldf4btbNtIzMMjTzzyH3xrnq5uXoxrZjHsApyYnCK2mJ9HJu0ePceklF3Hw7SO8fmCY1/e/hY2PTdes5aFfPc3aqzZw5WWDdA5dwMdGtk+nDYlEj3hQWDTCoQCDPXGGDx1BDYbQkr1UahZ6rsBTz21n2acv56bPpjiRi/L4Y3/i7idGUJ1qg2HoM1ZBBKGV+Hw+IuEQqf4kpYpJtWpxwWA3iuKjVKnywj/+xbMvvkxnrANNi7Ju7QrUlatWMzY+gWVVpVQmLHIAQyDgJxCIYNs20FjsjcdsklqMdDbN8mVLCah+1q//zMycV0plgpeuxM0/h4IqndEI4VAAgJyeaeS8fn9jg1x5BS/jxKffH8DIFVCS3Um391KuvIKXCQWDbhNZsjuJ4vTzyiKF0A64PcVGHkXcIbQritPPKwjtgt8fQIvHUJr7eTVNE88InsWJz3hco1gsTffzAtLPK3gaJz4zmSnKpdJ0P29zKUIQWk3NsqhZ1mn3aY7PYjGH4mgKOKUIQVgsVL//tH9vjs+B/oGZixSC4NXAff8Nm5ErNPp5pcYrtBOWVSU1lEIxshm0aEN6R/p5BS/jxKcWjWFkT/U2KMGw9PMKbUEi0YMSDDfShnhn1C2VST+v4GWc+Mxkpoh3RqefpKibZfGO4HmcOHVv2OCUeJogeBwnTt0bNqf8IAhex4lTI5tBdeq8Trns27fcYIuLBC+y84033N5zI1dATQ2leHtkxN3hkSefFS8JnuSTlywFpuu8qlPn1Qt5p47mEzcJXiQSjtrQVOdVgyHyp1SrpVQmeBknPvPlCmowJPq8QvugaZq7mDajn1f0eQWvo+s6dbM8u59X9HkFr1MxTbfOO6OfVx59F7yO8+g7NPXzOuUHQfA6TpzOWB4WhHZixvIwSD+v4G2a49Pt5wXR5xXaAydOjVxhutog+ryC1ymVCxiGPl1tWLlqtZsIS6lM8DIV03Rv2FauWj0z55VSmeBlmuPTzXlFn1dolysviD6v0KZXXtHnFdoW0ecVzgtEn1doO0SfV2g7RJ9XaFtEn1doW0SfV2hbRJ9XOC9u2ESfV2hLRJ9XaDtEn1doa0SfV2hLRJ9XaGtEn1doW0SfV2hbTqvPe8WnVtqwsP+LtVAU3xzH9tcb361Go1vdtlrqFGdO52rXqtfJGgUyWZ2f3nYxd247yGBfEi0WoW7bZ+3XD2p+p6P5P1B68fznCsYMfd5ZdV7V7/9QJz7/WVcWPXDndewZYts2pbLJ8Umde7YMsaavxNc/l+L4ZJZSpYpt24s6vzOhHc6/Z+u8rQ7cD5Jq1WIqk2PDpVE2XV7FzE6xaVWAZb0h0tkcNasun/vncP5n1Xm9oM9bty33q13fPHXbJl8sU62WeODWXqySTr1mUs6kuXPjUoqFIqWySd22PfvmXpQr7gLO//v1ed1+3kSip2X9vM2T9FLAntNcbBuzVuPH37qI3kQEtbOXcM8Swolu+pMdbL1hBdWqBWcRvB/I/Dx6dV3Ia3L0eZ1+XtXp59WiMXRdpzMa/0imB+c6H5/PRzQS4oHfjnL3wxWsphTB71eIdYToSXTi8/nOC38thr8dfV69kKcnqaFCY8ktk5kiEo6y8fprOZk+SbliUrcqBMNh+nr7cR7U1OIxisUS5VKJYjHHQP8ARq5AaiiFkc3gLHoku5MLHlOrV+nr7Rf7Yn9O+6+8/Cp6Ie+2Mvi23PwVG6C/v5dCPk++UAJwl4yb62tzdZ85252bPiUYdseezRhnYmJf7L9/zJLBAaKxGCdOTDZy9K6uDrLZIsPDB+ctCltWdcYkmg04dTe9kHcn01zSWOiY+Zwm9sX+0dGj7rG6ujpQa1Wbnbt2ATM71SumSSgYnPW9kXvkMSs1skZmxhinlOHcFZ7NGLEv9k9nv/Eo0Ltce83n+R+bCm28wSXdjwAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./images/data/slayer_expanded_RS3.data.png":
+/*!**************************************************!*\
+ !*** ./images/data/slayer_expanded_RS3.data.png ***!
+ \**************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAehm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYX5ysAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAQyklEQVR42u1da4wlx1X+uh7dfR9zZ2Zndvbh127sTWxjr53YRCaOQyxZBIMTBQmIBD8QIfIPIBL/CD9AJARZAgmiSBGOAhFIEUIyivIDQkA8xGPBD4Gdtb12FK8fa++ud2ZnZ+6de/t2V1dV86P61O17vSYOhJm7q/qk0b1zu7u66pzTp0+dOnVO9LGff7i6tPEmGOcAAM4FCMZoNGGNgYwTAECpCv+9+T99GqNRVRZCxAAArRUqW02d0/wEMNU2/d9sh/rDuYAxGtYYMM79/9T3UhVgnE8db44nabVQjMd+THROsz9Ej+a46R7N/jXHS32j62fbbLb9P91vltazNKZ+NMdM47vS+WetxXi0g1IpqCJHxCKwiOPSxgXccOQIvvylL+B3Pvd5ZC//K8RL3zmFN149DcYYGOfQZQlrDRaXV1DkOXSpIGQMaw0YcwRWRQ4AEFIiThLkWQatS8RJCsY4dKkAAGm7DV1OCKiK3N+HiOnaif0xIeOpewJAq93BaGcAAFNM1mUJISWsMRAybvyuwDhHnCRQReH7ZK1FnKT+vHw8AmPc/0ZjnO3/7HnUfrP/SZpip7891R9qR8gYQgqoopjqN2Pc07JJf6JrNhxell6M86lrm/xSRX7F8s8ag1LlyEc7WFldxrvfdRRpuoBnT53E++/5AB75wh/hW3/5NaQtic2shACAOEmhihxpu+0739/aRLe3OMUs6mC728Vw0AdjKbLhENYapK0O8vEIaaszEY4smyJcu9v1wkSdJwgpa8I7AUvSFKOdAYSMsdPfvixhSACoj0RwascJBffXCCmQZ5lnPjHLWuMZQczw2soaCCHRWehhtDPwxGeMTwmptQZxkvp7NYXS9U83hJZBFXl9f+bPT9ttp40YhyoK/7CoIoeQcqpda8zUwzThV3pF8k/lY6g8w203H8Pv/dYv4aZrjiHdv4Ynnn0Njz/+FO7/8Ydw4h++haf+499QvfqPeOqMQnT8ng9X515/zTeapI4gSZqiyHPfOfpdGwNTllhcXsFoOIQuC38sGw2RpB1wHkHXwmDqASZp6n+LwMB5NNUeAEgpYWeuoT7Q9yRNYUwFzqO3HBMygS6LqVcl9a15rjEVKlgIzt/SBpfS338WXEp/jZCJHwO1z6X0Y6b70rFmP5rjarY5e02Tbs02tTEQ9UM02//muK8U/kkpsX1xHbfffhxf++xPYj1fhY26YK02Kgh8+StfheYpui2OC6dP4ut/9ySuOXoTolvv/mD15tkzsMags9DD2dMvRAgI2EV0llYrnWd48q9/H/mghTc2LmE9Uzh6aBmpTAAW4S++/jdYUSdx5PDN+Kt/fhpPXhTObCDV3XzyAwJ2CyyK8ImH7seT//Jf+NO/fx7D7W089rlfwXke4dc+/yhefO5Z/OLH7wO78SP44789gbWKo+hfBGsazwEBewFrLQ4dXsOpMxv4uY/+GO67+4dwrr2KT3/2K3ju6f/EPcdvxBPPnkav1cUH3iMxlIu47+73gAkh/OQhIGAvoEuF9Y1LGOwoYHAW5994FW0hcGn9HADg7BvncW59G2srS/jzb76I9x8Cjh/dB6G1Rpyk3q0RELDrZgMXePnsJrgZIS42cHpT46VTp/CpTzyE776xiesO78NHHngQjz76RaysdiGuux0nnzk5MRsY41Oz04CA3ULSauOZk8/h9fUdPPHSm4gZ8KN3Hse1a108eO8xLDOFz/zGZxBXFf7gNz+NpUrh+aefQ/Teex+oXn/1NFSRY/XAQbz8/NPB2xCwq1g+cG2VDQe465Yb8Morr8FUDHfcciN+4kPvwzNP/DuG4ww/+9MP4fFT6xgNLuDm1Qrrwzedq+zSxQvQpUaSpsFVFrDr2Hfo+spoDVOMcc/xo3jxpTMYF2OgYqgQ4aEP34mXv30ad953D374phgL1x2BPX3CmQ261H7lJiBg170NxkDKGDLt4MS3XwZEjIXl/RiXBlv9IR775gm866478PEfuRYXdjr46p98A5/60vPObDj9necRJyl6S0vBbAjYdXT3rVVCuNVJRABnzAXmqKJehteIqgpJzKGUho0Yjh671S1SWGt8bEBAwK4Lb28ReZbBWot2t4tsOEScthCnbVhr0On1sLO1hYXFRfS3LsEag7TdASuKHEJIF9FkgrssYPdBgssYQ55ltevWQhU5Wu0O+pubEDJGxEUdYBWjKHKwJEl9lJUJq2wBewCK4nPRZhZCCh/lV+QuxFMVOUxZgjEOxjmSJHWal2JDQ2xDwF6BQkddWKlG2m4jTlLk4xHiJIWQEkma1mGd3GneQLaAufA4WAtrjQu9LFUdSyyQtjqIk+TyAt/p9qCKHAuLS2GFLWBPQMH2uiwxzkYuaF2XGA760KWCLjXiJEGROzlVRY5Ot+c0b5ykGGcjH0wdELDbaLU7botRvbPFady03oqkMBz0waXEOBv5IDJW5Fltc3B0u71AxYBdR7vbRX9rE1o7h0EzPFcVBbQukbY66HZ7Pva8yDOneYUUsNZgNBwGSgbsOrLh0Alnb9FvIE1St7+Q/lSRY1TvtxPS7ZBmWut6lyp/y/6vgIDd8jRMbNvUm7GqcLufFxaX6oU0t+KWDYfQWrtgdFHbusFVFrAnwss59u1fg5DC7XRmk+3xQsbob20ibXW8fAopIYRwmndiRwRvQ8BeaF6O9fNnfdIR+o1SMszKJ2PcaV4AYRdFwJ6CBHS0M/C5L/LxyGvapdX9UzJK35kQoqGik0DJgD2xeRljPp4BcME6O/1txEmKYX+7TvAykU9vNjgnsZhKohEQsJvQukS72wUAdBZ6yLOsVqguzsFaC86jOm1WDq01RJKkEEJClzrYvAF7Amtt7SZzKa5GOwO/XJwNh1g9cBBFnte51zSEkI3AHO5WNcIKW8BeYPXAQQwHfR8c1lnoedPBWoNsNPQrwNa6zJKTkMh6NhdCIgP2Auvnz4IxjsXlFez0t70FkGcZFpdXXLxvIycaY42QSIqXXFxeCZQM2IMJG0er20F/a3M63SznGGcjf97i8opfgSuK3Nm8tASXj0e4/2d+oQrkDJhHvHbqpJfVJEkhjNHQpUKcuBSU//TYnwUqBcwlrrnxFu8HNkbTBkwLXSpyCgd/WcC8oqIM9wAoqizENgTMP5qxDV54ZeI2wBkTzN2A+QXJJ8kr41ygyMZ+BSMgYF7BeQRrLYpsDM4pM/pMGaWAgHlFsxqRKIrcrx2H5eGAeYbL4eAma0WRT6LKRFgaDrgCQHIqhHA2L0lzQMCVADc/E5MiggEBV4bNyxEntc1LVRVpx2ZAwDyDSukKGTs/78LiEnx+1ICAebZ5hcTC4pLTwqPhwKfYCQiY/wlbjHE2wmg4mFTATNI0mA0Bc43ZOtIsqWuwNeMmAwLmFeNs5OZnPhi9TuQbMqMHzDNIPq0xk/y8QsZua3FYJg6YZ3uX83oLfDwxG3SpIGQcosoC5hrGVC53b6mmdw8DCIn2AubbbKjlc2r3MGUpCd6GgCvB26CK3GleIWPvKgtRZQHzjCLPfd5eIWMw2nw5zkZB8wbMvealtP66VM7mBTCVEzUgYF7h050WOdjyyn6faC8gYN5BifaWV/aDbW1uuGJtWRYWKQLm29tgjC/vurW5MV1EMCxSBMy11p2RT+8qY5xDxiG5dMD8QsYJGOcTVxkw2UkxHPQDhQLmFiSfkyKC9S6K4G0IuFK8DZQlkgGu4mCI5w2Yd5CMUoVMIYTwGSKN0YFCAXOLbDT0hQaFEBBauxSnANBbWsK+Q9dXuix9FW6yLyjybPbTWgNrXCLg5vnevVGfR/ETQkof1kb3pe9pu42sUUKWMQYhY+TjEdJWZ+qeVNKTMqioIvf78CjQiJKp0IqMtdZXnZlKYsy4b5tA40rbbQwHfX9/ay3a3S5UUfjrqD1V5JBxDDXOwO0If/jLt+JXv/gCWNKBiBMkaQpVFFBF7u8fJ4lvn+hFdIgTp2lGOwMwzr1p16Q5vTmJX7OfVxP/2p0uLm2su35pTTspbKOzpa++zRjzCxjUQapfQWlRnQ1ivSHtynC6Qc0G/EwExvq2mgIzHPRhrZkY5A3XiKsAMyk74HaRskksspC+LWuM96D4jIKcT85v1PQiG4oYRHWY3Y5qC11Ov43iJPX1EwjtbtflOI4TqHyMPBvidx8+gjvXcnzy/uugxiNoVSCvd6uQoKoiB+fCx5YQ3XSp/SbD/tYmOgu9xoNiPFMvx6+rmX8TxWLf6m2gJ6uz0JvSRKoofJp1Ve+8iJPUMzxu1LUgQjS1CwX8EDGoZJEuS88QChCiJ5TOaTI7rrcskdDRgBxDrNcC1JbfIdIoCWqt8fdQRV7Xty29pnCvpaQmpoQqcqStTi0EcW1rySlGqqJoMLXAA3f18NE7Sqjti/jYzRK3XduC1SUQRVPaXgiJIs99bImQMToLPQgpUOQ58vHIn0PC4rRq7AV1ll9XO/8u621oSj11tvkUxUkCXZbo9haxb/9a45UhJ3XcJPdEiZMUXHL/lLrfZd2ORtpuQ0iJtN32WoUG54hceKFykUQMcZL4AQkp/XUkeE0CUz9o0MR8uiZtt32R5rjh6yZtSP1qggo5U7tCCn+tNa6wc0eUeOSTazDjPqxWyLc28esPXgtR5bDawGpdC53wGoiYSYJC2p6ip5pvRVFXxKHX6Sy/rmb+kXCTt4Efefdtv33h3BkwzhFFDEU+RlXZ+uktUaraRtIlrLWQcYz+1iVUVYWIRYiTBFHkXk9RvWCnSwWtS2hV21ARYLRG0mp5xtArpKpch1sdp92i+pVX5GNXTG6cwVqDqqqgigKtTgelUjDGIGIRuJAolUKr04G1FhGLYLT2gmiMhowTf7+mieBeSy7dFRcCUcRAZQ50WYJxDi5cMWcZJ+67LlFVFoxz5OMMxmhXM7eqAGvwyMM34H3HWoiEhLI9qLKNxaUuDqz28NQrY2hd1m06eu4/eBg7/W0krdRXgKwqV4OMFo2IPlVV+euElIgi5vtD/DLGXLX840KgVG7OcPi6o4huvfuD1bkzr0DIGL2lJayfPztlf9CEhJ46VRT+6WlOfCiTCT1B9IQ0Jw8A0Op2MBoM0O0tuuuyzL8ynO1IFTmlnzARwehV1pxE0NOuy9JPpCbnld6uot9oktCcCDQnGqsHDmL9/FlvKsxO8OgBoLa9PR0xKJVDFzlKVaCqLKIoQlVVEEKCcQFEEZZWDzTMDOPNkuab4XL3ITqQdiX60kSH+EWmxtXIv9UDBzHY3oYuFQ5fXwvv+vmz9SsmweLSMsq6o2mr42eKzU9ZG9Fc1BnVtUJZlugu9DDcGfhrjVbgIvbHyfaZ/Z/aLMvSfzZtJTpfSgkuJrNXar95vV9KrM9t3sto5Y/P9n22L7PX0j2b51A7szRqTkqIJtRm81jzGurbLA3oPm/Hk1l6UZ+vRv5dunjBe3nWDl2D6L33PlC98t0Xptwmu+FSaj5xs8Y8aYgfpEuJNEhTszU1a3O23dRa79SF1NRYe+kCnP28GvmnS4Wjx25xE7amC2NXXEpE9HrW62bOyjOGiib/IFxKbvKRNGbnwruD4iRF2m77CUTTDdSceVN/aSwTn6fwx2nG/L1cSDSh+f9yAV7N/POKQ5coihzRhx78qerixsY7XuUQQriK23VSaq31O77m7WC0QrvTQ5YNwbl42zaa90uS1K8IDnf6U69rAH4i9f3ie/X1/3rt90u//+04rnb+re7fj/8GO6Pn3eR9G3UAAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./modules/SearchAlgorithm.ts":
+/*!************************************!*\
+ !*** ./modules/SearchAlgorithm.ts ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ SearchAlgorithm: () => (/* binding */ SearchAlgorithm),
+/* harmony export */ SearchData: () => (/* binding */ SearchData)
+/* harmony export */ });
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var SearchData = /** @class */ (function () {
+ function SearchData() {
+ this.reaper = false;
+ this.task = 'Dragons';
+ this.probability = 0;
+ }
+ return SearchData;
+}());
+
+var SearchAlgorithm = /** @class */ (function () {
+ function SearchAlgorithm() {
+ this.data = new SearchData();
+ }
+ // Lookup best possible assignment based on input string
+ SearchAlgorithm.prototype.lookup = function (lookup_1) {
+ return __awaiter(this, arguments, void 0, function (lookup, skipReaper) {
+ var probabilities, reapersResponse, reapers, _i, reapers_1, a, _a, _b, b, assignmentsResponse, assignments, _c, assignments_1, a, _d, _e, b, _f, _g, b, key, aliasKeys, _h, aliasKeys_1, aliasKey, creatureKeys, _j, creatureKeys_1, creatureKey;
+ if (skipReaper === void 0) { skipReaper = false; }
+ return __generator(this, function (_k) {
+ switch (_k.label) {
+ case 0:
+ probabilities = {};
+ if (!!skipReaper) return [3 /*break*/, 3];
+ return [4 /*yield*/, fetch("./data/reapers.json")];
+ case 1:
+ reapersResponse = _k.sent();
+ return [4 /*yield*/, reapersResponse.json()];
+ case 2:
+ reapers = _k.sent();
+ for (_i = 0, reapers_1 = reapers; _i < reapers_1.length; _i++) {
+ a = reapers_1[_i];
+ probabilities[a["index"]] = {
+ reaper: true,
+ index: Math.round(this.similarity(a["index"], lookup) * 10000) / 100,
+ creatures: {}
+ };
+ for (_a = 0, _b = a["creatures"]; _a < _b.length; _a++) {
+ b = _b[_a];
+ probabilities[a["index"]].creatures[b] = Math.round(this.similarity(b, lookup) * 10000) / 175;
+ }
+ }
+ _k.label = 3;
+ case 3: return [4 /*yield*/, fetch("./data/assignments.json")];
+ case 4:
+ assignmentsResponse = _k.sent();
+ return [4 /*yield*/, assignmentsResponse.json()];
+ case 5:
+ assignments = _k.sent();
+ for (_c = 0, assignments_1 = assignments; _c < assignments_1.length; _c++) {
+ a = assignments_1[_c];
+ probabilities[a["index"]] = {
+ reaper: false,
+ index: Math.round(this.similarity(a["index"], lookup) * 10000) / 125,
+ alias: {},
+ creatures: {}
+ };
+ for (_d = 0, _e = a["alias"]; _d < _e.length; _d++) {
+ b = _e[_d];
+ probabilities[a["index"]].alias[b] = Math.round(this.similarity(b, lookup) * 10000) / 150;
+ }
+ for (_f = 0, _g = a["creatures"]; _f < _g.length; _f++) {
+ b = _g[_f];
+ probabilities[a["index"]].creatures[b] = Math.round(this.similarity(b, lookup) * 10000) / 175;
+ }
+ }
+ // Find highest likelihood of the search
+ for (key in probabilities) {
+ if (probabilities[key].index > this.data.probability) {
+ this.data.task = key;
+ this.data.reaper = probabilities[key].reaper;
+ this.data.probability = probabilities[key].index;
+ }
+ if (probabilities[key].alias) {
+ aliasKeys = Object.keys(probabilities[key].alias);
+ for (_h = 0, aliasKeys_1 = aliasKeys; _h < aliasKeys_1.length; _h++) {
+ aliasKey = aliasKeys_1[_h];
+ if (probabilities[key].alias[aliasKey] > this.data.probability) {
+ this.data.task = key;
+ this.data.reaper = probabilities[key].reaper;
+ this.data.probability = probabilities[key].alias[aliasKey];
+ }
+ }
+ }
+ if (probabilities[key].creatures) {
+ creatureKeys = Object.keys(probabilities[key].creatures);
+ for (_j = 0, creatureKeys_1 = creatureKeys; _j < creatureKeys_1.length; _j++) {
+ creatureKey = creatureKeys_1[_j];
+ if (probabilities[key].creatures[creatureKey] > this.data.probability) {
+ this.data.task = key;
+ this.data.reaper = probabilities[key].reaper;
+ this.data.probability = probabilities[key].creatures[creatureKey];
+ }
+ }
+ }
+ }
+ return [2 /*return*/, this.data];
+ }
+ });
+ });
+ };
+ // Check the similarity of 2 strings
+ SearchAlgorithm.prototype.similarity = function (s1, s2) {
+ var longer = s1;
+ var shorter = s2;
+ if (s1.length < s2.length) {
+ longer = s2;
+ shorter = s1;
+ }
+ var longerLength = longer.length;
+ if (longerLength === 0)
+ return 1.0;
+ return (longerLength - this.editDistance(longer, shorter)) / parseFloat('' + longerLength);
+ };
+ // Calculate the edit distance between 2 strings
+ SearchAlgorithm.prototype.editDistance = function (s1, s2) {
+ s1 = s1.toLowerCase();
+ s2 = s2.toLowerCase();
+ var costs = [];
+ for (var i = 0; i <= s1.length; i++) {
+ var lastValue = i;
+ for (var j = 0; j <= s2.length; j++) {
+ if (i === 0) {
+ costs[j] = j;
+ }
+ else if (j > 0) {
+ var newValue = costs[j - 1];
+ if (s1.charAt(i - 1) !== s2.charAt(j - 1)) {
+ newValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1;
+ }
+ costs[j - 1] = lastValue;
+ lastValue = newValue;
+ }
+ }
+ if (i > 0) {
+ costs[s2.length] = lastValue;
+ }
+ }
+ return costs[s2.length];
+ };
+ return SearchAlgorithm;
+}());
+
+
+
+/***/ }),
+
+/***/ "./modules/SlayerDialogReader.ts":
+/*!***************************************!*\
+ !*** ./modules/SlayerDialogReader.ts ***!
+ \***************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ SlayerDialogReader: () => (/* binding */ SlayerDialogReader)
+/* harmony export */ });
+/* harmony import */ var alt1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! alt1 */ "../node_modules/alt1/dist/base/index.js");
+/* harmony import */ var alt1__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(alt1__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var alt1_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! alt1/dialog */ "../node_modules/alt1/dist/dialog/index.js");
+/* harmony import */ var alt1_dialog__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(alt1_dialog__WEBPACK_IMPORTED_MODULE_1__);
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+
+var SlayerData = /** @class */ (function () {
+ function SlayerData() {
+ this.selectYourOwn = false;
+ this.ticket = false;
+ this.reaper = false;
+ this.count = [];
+ this.task = [];
+ }
+ return SlayerData;
+}());
+var SlayerDialogReader = /** @class */ (function () {
+ function SlayerDialogReader() {
+ }
+ SlayerDialogReader.prototype.read = function () {
+ return __awaiter(this, arguments, void 0, function (buffer) {
+ var data, box, msg, countText, e, countText, e, i, msg, countText;
+ if (buffer === void 0) { buffer = null; }
+ return __generator(this, function (_a) {
+ if (!buffer) {
+ buffer = alt1__WEBPACK_IMPORTED_MODULE_0__.captureHoldFullRs();
+ }
+ if (!this.dialogReader) {
+ this.dialogReader = new (alt1_dialog__WEBPACK_IMPORTED_MODULE_1___default())();
+ }
+ this.data = new SlayerData();
+ data = this.dialogReader.find(buffer);
+ if (!data)
+ return [2 /*return*/, null];
+ box = this.dialogReader.read(buffer);
+ if (!box)
+ return [2 /*return*/, null];
+ if (box.text && (!box.opts || box.opts.length !== 2)) {
+ msg = box.text.toString();
+ // Parsing logic for various types of dialogs
+ if (msg.toLowerCase().includes("select your own task")) {
+ this.data.selectYourOwn = true;
+ }
+ if (msg.toLowerCase().includes("require you to collect")) {
+ this.data.reaper = true;
+ countText = msg.substring(msg.indexOf("collect ") + 8, msg.indexOf(" souls"));
+ this.data.count[0] = parseInt(countText);
+ this.data.task[0] = msg.substring(msg.indexOf("battle: ") + 8, msg.indexOf(". Can"));
+ }
+ if (msg.toLowerCase().includes("new task is to kill")) {
+ e = msg.substring(msg.indexOf("kill ") + 5, msg.length - 1);
+ countText = e.substring(0, e.includes(",") ? e.indexOf(",") : e.indexOf(" "));
+ this.data.count[0] = parseInt(countText);
+ this.data.task[0] = e.substring((e.includes(",") ? e.indexOf(",") : e.indexOf(" ")) + 1);
+ }
+ if (msg.toLowerCase().includes("still need to kill")) {
+ e = msg.substring(msg.indexOf("kill ") + 5);
+ this.data.count[0] = parseInt(e.substring(0, e.indexOf(" ")));
+ this.data.task[0] = e.substring(e.indexOf(" ") + 1, e.includes(".") ? e.indexOf(".") : e.length - 1);
+ }
+ if (msg.toLowerCase().includes("still hunting")) {
+ this.data.task[0] = msg.substring(msg.indexOf("hunting ") + 8, msg.indexOf(";"));
+ }
+ }
+ if (box.opts && box.opts.length === 2 && (box.title && box.title.toLowerCase().includes("change your assigned slayer task"))) {
+ this.data.ticket = true;
+ for (i = 0; i < box.opts.length; i++) {
+ msg = box.opts[i].text;
+ countText = msg.substring(0, msg.indexOf(' '));
+ this.data.count[i] = parseInt(countText);
+ this.data.task[i] = msg.substring(msg.indexOf(' ') + 1, msg.includes('(') ? msg.indexOf('(') - 1 : msg.length);
+ }
+ }
+ return [2 /*return*/, this.data];
+ });
+ });
+ };
+ return SlayerDialogReader;
+}());
+
+
+
+/***/ }),
+
+/***/ "./modules/UICounterReader.ts":
+/*!************************************!*\
+ !*** ./modules/UICounterReader.ts ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ UICounterData: () => (/* binding */ UICounterData),
+/* harmony export */ UICounterReader: () => (/* binding */ UICounterReader)
+/* harmony export */ });
+/* harmony import */ var alt1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! alt1 */ "../node_modules/alt1/dist/base/index.js");
+/* harmony import */ var alt1__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(alt1__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var alt1_ocr__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! alt1/ocr */ "../node_modules/alt1/dist/ocr/index.js");
+/* harmony import */ var alt1_ocr__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(alt1_ocr__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings */ "./modules/settings.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+
+
+var imgs = alt1__WEBPACK_IMPORTED_MODULE_1__.webpackImages({
+ slayer_expanded_RS3: __webpack_require__(/*! ../images/data/slayer_expanded_RS3.data.png */ "./images/data/slayer_expanded_RS3.data.png"),
+ slayer_expanded_OSL: __webpack_require__(/*! ../images/data/slayer_expanded_OSL.data.png */ "./images/data/slayer_expanded_OSL.data.png"),
+ reaper_expanded_RS3: __webpack_require__(/*! ../images/data/reaper_expanded_RS3.data.png */ "./images/data/reaper_expanded_RS3.data.png"),
+ reaper_expanded_OSL: __webpack_require__(/*! ../images/data/reaper_expanded_OSL.data.png */ "./images/data/reaper_expanded_OSL.data.png"),
+ slayer_collapsed_RS3: __webpack_require__(/*! ../images/data/slayer_collapsed_RS3.data.png */ "./images/data/slayer_collapsed_RS3.data.png"),
+ slayer_collapsed_OSL: __webpack_require__(/*! ../images/data/slayer_collapsed_OSL.data.png */ "./images/data/slayer_collapsed_OSL.data.png"),
+ reaper_collapsed_RS3: __webpack_require__(/*! ../images/data/reaper_collapsed_RS3.data.png */ "./images/data/reaper_collapsed_RS3.data.png"),
+ reaper_collapsed_OSL: __webpack_require__(/*! ../images/data/reaper_collapsed_OSL.data.png */ "./images/data/reaper_collapsed_OSL.data.png"),
+});
+var UICounterData = /** @class */ (function () {
+ function UICounterData() {
+ }
+ return UICounterData;
+}());
+
+var UICounterReader = /** @class */ (function () {
+ function UICounterReader() {
+ this.countFont = null;
+ this.taskFont = null;
+ this.data = null;
+ }
+ UICounterReader.prototype.read = function (buffer) {
+ return __awaiter(this, void 0, void 0, function () {
+ var _a, _b, width, height, _i, _c, match, countText;
+ return __generator(this, function (_d) {
+ switch (_d.label) {
+ case 0:
+ if (!buffer)
+ buffer = alt1__WEBPACK_IMPORTED_MODULE_1__.captureHoldFullRs();
+ if (!!this.countFont) return [3 /*break*/, 2];
+ _a = this;
+ return [4 /*yield*/, fetch(__webpack_require__(/*! ../fonts/aa_10px_mono.fontmeta.json */ "./fonts/aa_10px_mono.fontmeta.json")).then(function (r) { return r.json(); })];
+ case 1:
+ _a.countFont = _d.sent();
+ _d.label = 2;
+ case 2:
+ if (!!this.taskFont) return [3 /*break*/, 4];
+ _b = this;
+ return [4 /*yield*/, fetch(__webpack_require__(/*! ../fonts/aa_8px_mono.fontmeta.json */ "./fonts/aa_8px_mono.fontmeta.json")).then(function (r) { return r.json(); })];
+ case 3:
+ _b.taskFont = _d.sent();
+ _d.label = 4;
+ case 4:
+ // Reset data for next search
+ this.pos = [];
+ this.data = null;
+ // Look for all UI Elements until we find one, then the rest will get skipped
+ this.findUIElement(buffer, imgs.slayer_collapsed_OSL, { reaper: false, collapsed: true, OS: true });
+ this.findUIElement(buffer, imgs.slayer_expanded_OSL, { reaper: false, collapsed: false, OS: true });
+ this.findUIElement(buffer, imgs.slayer_collapsed_RS3, { reaper: false, collapsed: true, OS: false });
+ this.findUIElement(buffer, imgs.slayer_expanded_RS3, { reaper: false, collapsed: false, OS: false });
+ this.findUIElement(buffer, imgs.reaper_collapsed_OSL, { reaper: true, collapsed: true, OS: true });
+ this.findUIElement(buffer, imgs.reaper_expanded_OSL, { reaper: true, collapsed: false, OS: true });
+ this.findUIElement(buffer, imgs.reaper_collapsed_RS3, { reaper: true, collapsed: true, OS: false });
+ this.findUIElement(buffer, imgs.reaper_expanded_RS3, { reaper: true, collapsed: false, OS: false });
+ // If we don't find any data or we found too many matches then return
+ if (!this.data && this.pos.length == 0)
+ return [2 /*return*/, null];
+ width = this.data.collapsed ? imgs.slayer_collapsed_OSL.width : imgs.slayer_expanded_OSL.width;
+ height = this.data.collapsed ? imgs.slayer_collapsed_OSL.height : imgs.slayer_expanded_OSL.height;
+ // Loop the results and return the data we find
+ for (_i = 0, _c = this.pos; _i < _c.length; _i++) {
+ match = _c[_i];
+ // Overlay a rectangle around the matched area on screen if we're running in alt1
+ if (window.alt1 && alt1.permissionOverlay && _settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.ui.counter)
+ alt1.overLayRect(alt1__WEBPACK_IMPORTED_MODULE_1__.mixColor(255, 255, 255), match.x, match.y, width, height, 500, 3);
+ // Get the pixel data for the matched area
+ this.data.img = buffer.toData(match.x, match.y, width, height);
+ countText = alt1_ocr__WEBPACK_IMPORTED_MODULE_2__.findReadLine(this.data.img, this.countFont, this.data.OS ? [[255, 152, 31]] : [[255, 203, 5]], this.data.collapsed ? 10 : 72, 15, 30, 3);
+ this.data.count = parseInt(countText.text);
+ if (!this.data.collapsed)
+ this.data.task = alt1_ocr__WEBPACK_IMPORTED_MODULE_2__.findReadLine(this.data.img, this.taskFont, this.data.OS ? [[255, 152, 31]] : [[255, 203, 5]], 9, 28, 156, 3).text;
+ }
+ return [2 /*return*/, (!this.pos || this.pos.length == 0) ? null : this.data];
+ }
+ });
+ });
+ };
+ UICounterReader.prototype.findUIElement = function (buffer, img, mode) {
+ if (!this.data && this.pos.length == 0)
+ this.pos = buffer.findSubimage(img);
+ if (!this.data && this.pos.length > 0)
+ this.data = { reaper: mode.reaper, collapsed: mode.collapsed, OS: mode.OS, img: null, count: -1, task: null };
+ };
+ return UICounterReader;
+}());
+
+
+
+/***/ }),
+
+/***/ "./modules/data/assignnments.ts":
+/*!**************************************!*\
+ !*** ./modules/data/assignnments.ts ***!
+ \**************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ get: () => (/* binding */ get),
+/* harmony export */ getIndexList: () => (/* binding */ getIndexList)
+/* harmony export */ });
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+// Fetch a single assignment based on the index or alias
+function get(assignment) {
+ return __awaiter(this, void 0, void 0, function () {
+ var response, data, _i, data_1, a, _a, _b, b, error_1;
+ return __generator(this, function (_c) {
+ switch (_c.label) {
+ case 0:
+ _c.trys.push([0, 3, , 4]);
+ return [4 /*yield*/, fetch("./data/assignments.json")];
+ case 1:
+ response = _c.sent();
+ return [4 /*yield*/, response.json()];
+ case 2:
+ data = _c.sent();
+ for (_i = 0, data_1 = data; _i < data_1.length; _i++) {
+ a = data_1[_i];
+ if (a["index"].toLowerCase() === assignment.toLowerCase()) {
+ return [2 /*return*/, a];
+ }
+ for (_a = 0, _b = a["alias"]; _a < _b.length; _a++) {
+ b = _b[_a];
+ if (b.toLowerCase() === assignment.toLowerCase()) {
+ return [2 /*return*/, a];
+ }
+ }
+ }
+ return [2 /*return*/, null];
+ case 3:
+ error_1 = _c.sent();
+ console.error("Error fetching data:", error_1);
+ return [2 /*return*/, null];
+ case 4: return [2 /*return*/];
+ }
+ });
+ });
+}
+// Get an array of the index
+function getIndexList() {
+ return __awaiter(this, void 0, void 0, function () {
+ var dataList, response, data, _i, data_2, a, error_2;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 3, , 4]);
+ dataList = "";
+ return [4 /*yield*/, fetch("./data/assignments.json")];
+ case 1:
+ response = _a.sent();
+ return [4 /*yield*/, response.json()];
+ case 2:
+ data = _a.sent();
+ for (_i = 0, data_2 = data; _i < data_2.length; _i++) {
+ a = data_2[_i];
+ dataList += "<option>".concat(a["index"], "</option>\n\r");
+ }
+ return [2 /*return*/, dataList];
+ case 3:
+ error_2 = _a.sent();
+ console.error("Error fetching data:", error_2);
+ return [2 /*return*/, ""];
+ case 4: return [2 /*return*/];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./modules/data/creatures.ts":
+/*!***********************************!*\
+ !*** ./modules/data/creatures.ts ***!
+ \***********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ get: () => (/* binding */ get)
+/* harmony export */ });
+/* harmony import */ var _extrafuncs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../extrafuncs */ "./modules/extrafuncs.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+// Assuming decodeHtml function is defined or imported elsewhere
+
+// Fetch a single creature based on the name
+function get(creature) {
+ return __awaiter(this, void 0, void 0, function () {
+ var response, data, _i, data_1, a, error_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 3, , 4]);
+ return [4 /*yield*/, fetch("./data/creatures.json")];
+ case 1:
+ response = _a.sent();
+ return [4 /*yield*/, response.json()];
+ case 2:
+ data = _a.sent();
+ for (_i = 0, data_1 = data; _i < data_1.length; _i++) {
+ a = data_1[_i];
+ if ((0,_extrafuncs__WEBPACK_IMPORTED_MODULE_0__.decodeHtml)(a["name"].toLowerCase()) === creature.toLowerCase()) {
+ return [2 /*return*/, a];
+ }
+ }
+ return [2 /*return*/, null];
+ case 3:
+ error_1 = _a.sent();
+ console.error("Error fetching data:", error_1);
+ return [2 /*return*/, null];
+ case 4: return [2 /*return*/];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./modules/data/masters.ts":
+/*!*********************************!*\
+ !*** ./modules/data/masters.ts ***!
+ \*********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ get: () => (/* binding */ get)
+/* harmony export */ });
+/* harmony import */ var _extrafuncs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../extrafuncs */ "./modules/extrafuncs.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+// Assuming decodeHtml function is defined or imported elsewhere
+
+// Fetch a single master based on the name
+function get(master) {
+ return __awaiter(this, void 0, void 0, function () {
+ var response, data, _i, data_1, a, error_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 3, , 4]);
+ return [4 /*yield*/, fetch("./data/masters.json")];
+ case 1:
+ response = _a.sent();
+ return [4 /*yield*/, response.json()];
+ case 2:
+ data = _a.sent();
+ for (_i = 0, data_1 = data; _i < data_1.length; _i++) {
+ a = data_1[_i];
+ if ((0,_extrafuncs__WEBPACK_IMPORTED_MODULE_0__.decodeHtml)(a["name"].toLowerCase()) === master.toLowerCase()) {
+ return [2 /*return*/, a];
+ }
+ }
+ return [2 /*return*/, null];
+ case 3:
+ error_1 = _a.sent();
+ console.error("Error fetching data:", error_1);
+ return [2 /*return*/, null];
+ case 4: return [2 /*return*/];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./modules/data/reapers.ts":
+/*!*********************************!*\
+ !*** ./modules/data/reapers.ts ***!
+ \*********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ get: () => (/* binding */ get),
+/* harmony export */ getIndexList: () => (/* binding */ getIndexList)
+/* harmony export */ });
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+// Fetch a single reaper based on the index or alias
+function get(reaper) {
+ return __awaiter(this, void 0, void 0, function () {
+ var response, data, _i, data_1, a, error_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 3, , 4]);
+ return [4 /*yield*/, fetch("./data/reapers.json")];
+ case 1:
+ response = _a.sent();
+ return [4 /*yield*/, response.json()];
+ case 2:
+ data = _a.sent();
+ for (_i = 0, data_1 = data; _i < data_1.length; _i++) {
+ a = data_1[_i];
+ if (a["index"].toLowerCase() === reaper.toLowerCase()) {
+ return [2 /*return*/, a];
+ }
+ }
+ return [2 /*return*/, null];
+ case 3:
+ error_1 = _a.sent();
+ console.error("Error fetching data:", error_1);
+ return [2 /*return*/, null];
+ case 4: return [2 /*return*/];
+ }
+ });
+ });
+}
+// Get an array of the index as HTML option elements
+function getIndexList() {
+ return __awaiter(this, void 0, void 0, function () {
+ var dataList, response, data, _i, data_2, a, error_2;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 3, , 4]);
+ dataList = "";
+ return [4 /*yield*/, fetch("./data/reapers.json")];
+ case 1:
+ response = _a.sent();
+ return [4 /*yield*/, response.json()];
+ case 2:
+ data = _a.sent();
+ for (_i = 0, data_2 = data; _i < data_2.length; _i++) {
+ a = data_2[_i];
+ dataList += "<option>".concat(a["index"], "</option>\n\r");
+ }
+ return [2 /*return*/, dataList];
+ case 3:
+ error_2 = _a.sent();
+ console.error("Error fetching data:", error_2);
+ return [2 /*return*/, ""];
+ case 4: return [2 /*return*/];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./modules/data/variants.ts":
+/*!**********************************!*\
+ !*** ./modules/data/variants.ts ***!
+ \**********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ get: () => (/* binding */ get)
+/* harmony export */ });
+/* harmony import */ var _extrafuncs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../extrafuncs */ "./modules/extrafuncs.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+// Import the decodeHtml function
+
+// Fetch a single variant based on the creature name and variant name
+function get(creature, variant) {
+ return __awaiter(this, void 0, void 0, function () {
+ var response, data, _i, data_1, a, _a, _b, b, error_1;
+ return __generator(this, function (_c) {
+ switch (_c.label) {
+ case 0:
+ _c.trys.push([0, 3, , 4]);
+ return [4 /*yield*/, fetch("./data/creatures.json")];
+ case 1:
+ response = _c.sent();
+ return [4 /*yield*/, response.json()];
+ case 2:
+ data = _c.sent();
+ for (_i = 0, data_1 = data; _i < data_1.length; _i++) {
+ a = data_1[_i];
+ if ((0,_extrafuncs__WEBPACK_IMPORTED_MODULE_0__.decodeHtml)(a["name"].toLowerCase()) === creature.toLowerCase()) {
+ for (_a = 0, _b = a["variants"]; _a < _b.length; _a++) {
+ b = _b[_a];
+ if (b["name"].toLowerCase() === variant.toLowerCase()) {
+ return [2 /*return*/, b];
+ }
+ }
+ }
+ }
+ return [2 /*return*/, null];
+ case 3:
+ error_1 = _c.sent();
+ console.error("Error fetching data:", error_1);
+ return [2 /*return*/, null];
+ case 4: return [2 /*return*/];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./modules/dochandler.ts":
+/*!*******************************!*\
+ !*** ./modules/dochandler.ts ***!
+ \*******************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ animate: () => (/* reexport module object */ _dochandler_animate__WEBPACK_IMPORTED_MODULE_1__),
+/* harmony export */ change: () => (/* reexport module object */ _dochandler_change__WEBPACK_IMPORTED_MODULE_2__),
+/* harmony export */ getSide: () => (/* binding */ getSide),
+/* harmony export */ hide: () => (/* reexport module object */ _dochandler_hide__WEBPACK_IMPORTED_MODULE_3__),
+/* harmony export */ hover: () => (/* reexport module object */ _dochandler_hover__WEBPACK_IMPORTED_MODULE_4__),
+/* harmony export */ main: () => (/* reexport module object */ _dochandler_main__WEBPACK_IMPORTED_MODULE_0__),
+/* harmony export */ open: () => (/* reexport module object */ _dochandler_open__WEBPACK_IMPORTED_MODULE_6__),
+/* harmony export */ show: () => (/* reexport module object */ _dochandler_show__WEBPACK_IMPORTED_MODULE_5__)
+/* harmony export */ });
+/* harmony import */ var _dochandler_main__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dochandler/main */ "./modules/dochandler/main.ts");
+/* harmony import */ var _dochandler_animate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dochandler/animate */ "./modules/dochandler/animate.ts");
+/* harmony import */ var _dochandler_change__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dochandler/change */ "./modules/dochandler/change.ts");
+/* harmony import */ var _dochandler_hide__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dochandler/hide */ "./modules/dochandler/hide.ts");
+/* harmony import */ var _dochandler_hover__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dochandler/hover */ "./modules/dochandler/hover.ts");
+/* harmony import */ var _dochandler_show__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dochandler/show */ "./modules/dochandler/show.ts");
+/* harmony import */ var _dochandler_open__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./dochandler/open */ "./modules/dochandler/open.ts");
+// Import required modules
+
+// Export required modules
+
+
+
+
+
+
+
+// Function to get the side element based on the index
+function getSide(i) {
+ var base = _dochandler_main__WEBPACK_IMPORTED_MODULE_0__.get.elid("base");
+ var side = _dochandler_main__WEBPACK_IMPORTED_MODULE_0__.get.elc(i === 0 ? "left" : "right", base);
+ if (!side) {
+ side = _dochandler_main__WEBPACK_IMPORTED_MODULE_0__.get.elc("single", base);
+ }
+ return side;
+}
+
+
+/***/ }),
+
+/***/ "./modules/dochandler/animate.ts":
+/*!***************************************!*\
+ !*** ./modules/dochandler/animate.ts ***!
+ \***************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ loading: () => (/* binding */ loading),
+/* harmony export */ loadingStop: () => (/* binding */ loadingStop)
+/* harmony export */ });
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dochandler */ "./modules/dochandler.ts");
+// Import required modules
+
+// Function to show the loading bar
+function loading() {
+ var loadingBar = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("loading-bar");
+ if (loadingBar) {
+ loadingBar.style.visibility = "visible";
+ }
+}
+// Function to hide the loading bar
+function loadingStop() {
+ var loadingBar = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("loading-bar");
+ if (loadingBar) {
+ loadingBar.style.visibility = "hidden";
+ }
+}
+
+
+/***/ }),
+
+/***/ "./modules/dochandler/change.ts":
+/*!**************************************!*\
+ !*** ./modules/dochandler/change.ts ***!
+ \**************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ assignment: () => (/* binding */ assignment),
+/* harmony export */ creature: () => (/* binding */ creature),
+/* harmony export */ reaper: () => (/* binding */ reaper),
+/* harmony export */ variant: () => (/* binding */ variant)
+/* harmony export */ });
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../settings */ "./modules/settings.ts");
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _extrafuncs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../extrafuncs */ "./modules/extrafuncs.ts");
+/* harmony import */ var _data_masters__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../data/masters */ "./modules/data/masters.ts");
+/* harmony import */ var _data_reapers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../data/reapers */ "./modules/data/reapers.ts");
+/* harmony import */ var _data_assignnments__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../data/assignnments */ "./modules/data/assignnments.ts");
+/* harmony import */ var _data_creatures__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../data/creatures */ "./modules/data/creatures.ts");
+/* harmony import */ var _data_variants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../data/variants */ "./modules/data/variants.ts");
+/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../logger */ "./modules/logger.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+// Import all modules as namespaces
+
+
+
+
+
+
+
+
+
+// Update the Creature variant shown
+function variant(i_1) {
+ return __awaiter(this, arguments, void 0, function (i, creature, variant) {
+ var side, data, imageContainer, imageElement, newSize, kills;
+ if (creature === void 0) { creature = null; }
+ if (variant === void 0) { variant = null; }
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ // Start loading animation
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loading();
+ side = _dochandler__WEBPACK_IMPORTED_MODULE_1__.getSide(i);
+ // Return early if UI is limited or data is not available
+ if ((_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.ui.limited || _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.limitedLoaded) && (!creature || !variant)) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [2 /*return*/];
+ }
+ // Fetch creature and variant from UI elements if not provided
+ if (!creature) {
+ creature = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("creatures", side).value;
+ }
+ if (!variant) {
+ variant = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("variants", side).value;
+ }
+ _logger__WEBPACK_IMPORTED_MODULE_8__.log("Change variant to: ".concat(creature, "#").concat(variant));
+ return [4 /*yield*/, _data_variants__WEBPACK_IMPORTED_MODULE_7__.get(creature, variant)];
+ case 1:
+ data = _a.sent();
+ if (data) {
+ // Update UI if not limited
+ if (!_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.ui.limited && !_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.limitedLoaded) {
+ imageContainer = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("image-container", side);
+ imageContainer.innerHTML = data["image"].replace("#", "%23");
+ imageElement = imageContainer.firstElementChild;
+ newSize = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.calculateAspectRatioFit(parseInt(imageElement.getAttribute("width")), parseInt(imageElement.getAttribute("height")), imageContainer.offsetWidth, imageContainer.offsetHeight);
+ imageElement.style.maxWidth = "".concat(newSize.width, "px");
+ imageElement.style.maxHeight = "".concat(newSize.height, "px");
+ // Update stats
+ updateStats(side, data);
+ }
+ kills = parseInt(_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("kills", side).innerHTML, 10);
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("total-slayer-exp", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas((data["slayer-exp"] * kills).toFixed(2));
+ }
+ // Stop loading animation
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [2 /*return*/];
+ }
+ });
+ });
+}
+// Helper function to update stats
+function updateStats(side, data) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("level", side).innerHTML = data["level"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("slayer-level", side).innerHTML = data["slayer-level"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("lifepoints", side).innerHTML = data["lifepoints"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("defence", side).innerHTML = data["defence"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("max-melee", side).innerHTML = data["max-melee"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("max-ranged", side).innerHTML = data["max-ranged"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("max-magic", side).innerHTML = data["max-magic"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("max-necromancy", side).innerHTML = data["max-necromancy"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("max-spec", side).innerHTML = data["max-spec"];
+ // Update weakness and susceptibility
+ var weaknessElem = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("weaknessBox", side);
+ weaknessElem.innerHTML = "<p id=\"weakness-text\">Weakness</p>" + data["weakness"].join("");
+ var susceptibleElem = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("susceptibleBox", side);
+ susceptibleElem.innerHTML = "<p id=\"susceptible-text\">Susceptible</p>" + data["susceptible"].join("");
+ // Update experience values
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("combat-exp", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas(data["experience"].toFixed(2));
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("lifepoints-exp", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas(data["lifepoint-exp"].toFixed(2));
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("slayer-exp", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas(data["slayer-exp"].toFixed(2));
+}
+// Update the Creature shown
+function creature(i_1) {
+ return __awaiter(this, arguments, void 0, function (i, creature, variant) {
+ var side, data, variantsElem_1;
+ if (creature === void 0) { creature = null; }
+ if (variant === void 0) { variant = null; }
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ // Start loading animation
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loading();
+ side = _dochandler__WEBPACK_IMPORTED_MODULE_1__.getSide(i);
+ // Return early if UI is limited and no creature is provided
+ if ((_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.ui.limited || _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.limitedLoaded) && !creature) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [2 /*return*/];
+ }
+ // Fetch creature from UI elements if not provided
+ if (!creature) {
+ creature = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("creatures", side).value;
+ }
+ _logger__WEBPACK_IMPORTED_MODULE_8__.log("Change Creature to: ".concat(creature).concat(variant ? "#".concat(variant) : ''));
+ return [4 /*yield*/, _data_creatures__WEBPACK_IMPORTED_MODULE_6__.get(creature)];
+ case 1:
+ data = _a.sent();
+ if (data) {
+ // Update variants if available
+ if (data["variants"] && !_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.ui.limited && !_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.limitedLoaded) {
+ variantsElem_1 = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("variants", side);
+ variantsElem_1.innerHTML = "";
+ data["variants"].forEach(function (a) {
+ variantsElem_1.innerHTML += "<option value=\"".concat(a["name"], "\"").concat(variant && _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.decodeHtml(a["name"]) === _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.decodeHtml(variant) ? " selected" : "", ">").concat(a["name"], "</option>");
+ });
+ if (!variant) {
+ variant = data["variants"][0]["name"];
+ }
+ }
+ // Update the variant to reflect changes
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.change.variant(i, creature, variant);
+ }
+ // Stop loading animation
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [2 /*return*/];
+ }
+ });
+ });
+}
+// Update the reaper assignment data
+function reaper(task, count) {
+ return __awaiter(this, void 0, void 0, function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, assignment(2, task, count)];
+ case 1: return [2 /*return*/, _a.sent()];
+ }
+ });
+ });
+}
+// Update the entire Assignment data
+function assignment(i, task, count) {
+ return __awaiter(this, void 0, void 0, function () {
+ var side, nameElement, slayer_exp, slayxp, data, total_exp, j, img, masterData, kills, _loop_1, j, j, j, j, j, _i, _a, a, defaultCreature, _b, creature_1, variant_1;
+ var _c;
+ return __generator(this, function (_d) {
+ switch (_d.label) {
+ case 0:
+ // Ensure correct task loading conditions
+ if (i === 1 && !_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.doubleLoaded) {
+ console.error("Cannot load double slayer task if only 1 is displayed!");
+ return [2 /*return*/];
+ }
+ if (i === 2 && !_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.reaperLoaded) {
+ console.error("Cannot load reaper task if 2 are displayed!");
+ return [2 /*return*/];
+ }
+ // Show loading animation
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loading();
+ side = _dochandler__WEBPACK_IMPORTED_MODULE_1__.getSide(i);
+ nameElement = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("name", side);
+ if (!nameElement)
+ return [2 /*return*/];
+ // Check if the current task is the same as the new one
+ if ((task == null && nameElement.innerHTML !== "???") || nameElement.innerHTML.toLowerCase() === task.toLowerCase()) {
+ _logger__WEBPACK_IMPORTED_MODULE_8__.log("Update task: [".concat(count, "] ").concat(task, " ").concat(i === 0 ? "(Default)" : (i === 2 ? "(Reaper)" : "(1 Slayer Token)")));
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("kills", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas(count);
+ slayer_exp = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("slayer-exp", side);
+ if (slayer_exp && slayer_exp.innerHTML !== "") {
+ slayxp = parseInt(slayer_exp.innerHTML);
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("total-slayer-exp", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas((slayxp * count).toFixed(2));
+ }
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [2 /*return*/];
+ }
+ // Load new task data
+ _logger__WEBPACK_IMPORTED_MODULE_8__.log("Load task: [".concat(count, "] ").concat(task, " ").concat(i === 0 ? "(Default)" : (i === 2 ? "(Reaper)" : "(1 Slayer Token)")));
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("type", side).innerHTML = i === 0 ? "(Default)" : (i === 2 ? "(Reaper)" : "(1 Slayer Token)");
+ if (i === 2)
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("type", side).id = "type-reaper";
+ return [4 /*yield*/, (i === 2 ? _data_reapers__WEBPACK_IMPORTED_MODULE_4__.get(task) : _data_assignnments__WEBPACK_IMPORTED_MODULE_5__.get(task))];
+ case 1:
+ data = _d.sent();
+ if (!data) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [2 /*return*/];
+ }
+ // Update UI elements with the new data
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("name", side).innerHTML = data["index"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("name", side).title = data["index"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("kills", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas(count);
+ if (_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.limitedLoaded) {
+ total_exp = 0;
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("total-slayer-exp", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas(total_exp);
+ }
+ if (!(!_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.ui.limited && !_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.limitedLoaded)) return [3 /*break*/, 6];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("masters", side).innerHTML = "<div class=\"nistext masterTitle\">Assignment Range</div>";
+ j = 0;
+ _d.label = 2;
+ case 2:
+ if (!(j < data["masters"].length)) return [3 /*break*/, 5];
+ img = "<img id=\"masterImage".concat(j, "\" alt=\"").concat(data["masters"][j], "\" src=\"./images/masters/").concat(data["masters"][j], ".png\" title=\"").concat(data["masters"][j], "\"></img>");
+ return [4 /*yield*/, _data_masters__WEBPACK_IMPORTED_MODULE_3__.get(data["masters"][j])];
+ case 3:
+ masterData = _d.sent();
+ kills = masterData["task-counts"][data["index"]];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("masters", side).innerHTML += "<div class=\"nistext masterInfo".concat(j, "\">").concat(img, " Kills: ").concat(kills, "</div>");
+ _d.label = 4;
+ case 4:
+ j++;
+ return [3 /*break*/, 2];
+ case 5:
+ _loop_1 = function (j) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("masterInfo".concat(j), side).addEventListener('click', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_1__.open.wiki.master(i, j); });
+ };
+ for (j = 0; j < data["masters"].length; j++) {
+ _loop_1(j);
+ }
+ // Update equipment data
+ if (data["equipment"]) {
+ for (j = 0; j < 3; j++) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("equipInfo".concat(j + 1), side).innerHTML = j === 0 ? "None" : "";
+ }
+ for (j = 0; j < data["equipment"].length; j++) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("equipInfo".concat(j + 1), side).innerHTML = data["equipment"][j] || "<span style=\"color: red;\" title=\"There is no information in the database.\">Database Empty</span>";
+ }
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("equipMore", side).style.visibility = data["equipment"].length < 3 ? "hidden" : "visible";
+ }
+ else {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("equipMore", side).style.visibility = "hidden";
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("equipInfo1", side).innerHTML = "<span style=\"color: red;\" title=\"There is no information in the database.\">Database Missing</span>";
+ }
+ // Update locations data
+ if (data["locations"]) {
+ for (j = 0; j < 3; j++) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("locationInfo".concat(j + 1), side).innerHTML = j === 0 ? "None" : "";
+ }
+ for (j = 0; j < data["locations"].length; j++) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("locationInfo".concat(j + 1), side).innerHTML = data["locations"][j] || "<span style=\"color: red;\" title=\"There is no information in the database.\">Database Empty</span>";
+ }
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("locationMore", side).style.visibility = data["locations"].length < 3 ? "hidden" : "visible";
+ }
+ else {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("locationMore", side).style.visibility = "hidden";
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("locationInfo1", side).innerHTML = "<span style=\"color: red;\" title=\"There is no information in the database.\">Database Missing</span>";
+ }
+ // Update creatures data
+ if (data["creatures"]) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("creatures", side).innerHTML = "";
+ for (_i = 0, _a = data["creatures"]; _i < _a.length; _i++) {
+ a = _a[_i];
+ if (!_extrafuncs__WEBPACK_IMPORTED_MODULE_2__.listContains(data["hidden-creatures"], a)) {
+ defaultCreature = ((_c = data["default-creature"]) === null || _c === void 0 ? void 0 : _c.split("#")[0]) || "";
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("creatures", side).innerHTML += "<option value=\"".concat(a, "\" ").concat(_extrafuncs__WEBPACK_IMPORTED_MODULE_2__.decodeHtml(a) === _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.decodeHtml(defaultCreature) ? "selected" : "", ">").concat(a, "</option>");
+ }
+ }
+ }
+ // Set default creature and variant
+ if (data["default-creature"]) {
+ _b = data["default-creature"].split("#"), creature_1 = _b[0], variant_1 = _b[1];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.change.creature(i, creature_1, variant_1);
+ }
+ else {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.change.creature(i);
+ }
+ _d.label = 6;
+ case 6:
+ // Stop loading animation
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [2 /*return*/];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./modules/dochandler/hide.ts":
+/*!************************************!*\
+ !*** ./modules/dochandler/hide.ts ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ assignmentWikiPreview: () => (/* binding */ assignmentWikiPreview),
+/* harmony export */ creatureWikiPreview: () => (/* binding */ creatureWikiPreview),
+/* harmony export */ moreEquip: () => (/* binding */ moreEquip),
+/* harmony export */ moreLocations: () => (/* binding */ moreLocations)
+/* harmony export */ });
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../settings */ "./modules/settings.ts");
+
+
+function assignmentWikiPreview(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-task-wiki", side).style.visibility = "hidden";
+}
+function creatureWikiPreview(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-creature-wiki", side).style.visibility = "hidden";
+}
+function moreEquip(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipHidden", side).style.visibility = "hidden";
+}
+function moreLocations(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationHidden", side).style.visibility = "hidden";
+}
+
+
+/***/ }),
+
+/***/ "./modules/dochandler/hover.ts":
+/*!*************************************!*\
+ !*** ./modules/dochandler/hover.ts ***!
+ \*************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ assignmentWiki: () => (/* binding */ assignmentWiki),
+/* harmony export */ creatureWiki: () => (/* binding */ creatureWiki),
+/* harmony export */ moreEquip: () => (/* binding */ moreEquip),
+/* harmony export */ moreLocations: () => (/* binding */ moreLocations)
+/* harmony export */ });
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../settings */ "./modules/settings.ts");
+
+
+function assignmentWiki(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var showTimer;
+ var hideTimer = null;
+ showTimer = setTimeout(function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.show.assignmentWikiPreview(i); }, 500);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("task-wiki", side).onmouseleave = function () {
+ hideTimer = setTimeout(function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.assignmentWikiPreview(i); }, 200);
+ clearTimeout(showTimer);
+ };
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-task-wiki", side).onmouseenter = function () {
+ if (hideTimer !== null)
+ clearTimeout(hideTimer);
+ };
+}
+function creatureWiki(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var showTimer;
+ var hideTimer = null;
+ showTimer = setTimeout(function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.show.creatureWikiPreview(i); }, 500);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creature-wiki", side).onmouseleave = function () {
+ hideTimer = setTimeout(function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.creatureWikiPreview(i); }, 200);
+ clearTimeout(showTimer);
+ };
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-creature-wiki", side).onmouseenter = function () {
+ if (hideTimer !== null)
+ clearTimeout(hideTimer);
+ };
+}
+function moreEquip(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var showTimer = setTimeout(function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.show.moreEquip(i); }, 500);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipMore", side).onmouseleave = function () {
+ clearTimeout(showTimer);
+ };
+}
+function moreLocations(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var showTimer = setTimeout(function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.show.moreLocations(i); }, 500);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationMore", side).onmouseleave = function () {
+ clearTimeout(showTimer);
+ };
+}
+
+
+/***/ }),
+
+/***/ "./modules/dochandler/main.ts":
+/*!************************************!*\
+ !*** ./modules/dochandler/main.ts ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ doubleLoaded: () => (/* binding */ doubleLoaded),
+/* harmony export */ get: () => (/* binding */ get),
+/* harmony export */ limitedLoaded: () => (/* binding */ limitedLoaded),
+/* harmony export */ reaperLoaded: () => (/* binding */ reaperLoaded),
+/* harmony export */ reset: () => (/* binding */ reset),
+/* harmony export */ set: () => (/* binding */ set),
+/* harmony export */ setup: () => (/* binding */ setup),
+/* harmony export */ singleLoaded: () => (/* binding */ singleLoaded),
+/* harmony export */ suggestedLoaded: () => (/* binding */ suggestedLoaded),
+/* harmony export */ toggle: () => (/* binding */ toggle)
+/* harmony export */ });
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _data_reapers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../data/reapers */ "./modules/data/reapers.ts");
+/* harmony import */ var _data_assignnments__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../data/assignnments */ "./modules/data/assignnments.ts");
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../settings */ "./modules/settings.ts");
+/* harmony import */ var _slayer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../slayer */ "./modules/slayer.ts");
+/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../logger */ "./modules/logger.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+
+
+
+
+
+// Define variables
+var doubleLoaded = false;
+var singleLoaded = false;
+var reaperLoaded = false;
+var suggestedLoaded = false;
+var limitedLoaded = false;
+var get;
+(function (get) {
+ function elc(id, base) {
+ return base.getElementsByClassName(id)[0];
+ }
+ get.elc = elc;
+ function elid(id) {
+ return document.getElementById(id);
+ }
+ get.elid = elid;
+ function searchInput() {
+ return document.querySelector("input[name='search-info']").value;
+ }
+ get.searchInput = searchInput;
+})(get || (get = {}));
+var reset;
+(function (reset) {
+ function single() {
+ return __awaiter(this, void 0, void 0, function () {
+ var baseElement;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (!singleLoaded)
+ return [2 /*return*/];
+ return [4 /*yield*/, get.elid("base")];
+ case 1:
+ baseElement = _a.sent();
+ baseElement.innerHTML = "";
+ singleLoaded = false;
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ reset.single = single;
+ function double() {
+ return __awaiter(this, void 0, void 0, function () {
+ var baseElement;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (!doubleLoaded)
+ return [2 /*return*/];
+ return [4 /*yield*/, get.elid("base")];
+ case 1:
+ baseElement = _a.sent();
+ baseElement.innerHTML = "";
+ doubleLoaded = false;
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ reset.double = double;
+ function reaper() {
+ return __awaiter(this, void 0, void 0, function () {
+ var baseElement;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (!reaperLoaded)
+ return [2 /*return*/];
+ return [4 /*yield*/, get.elid("base")];
+ case 1:
+ baseElement = _a.sent();
+ baseElement.innerHTML = "";
+ reaperLoaded = false;
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ reset.reaper = reaper;
+ function suggested() {
+ return __awaiter(this, void 0, void 0, function () {
+ var baseElement;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (!suggestedLoaded)
+ return [2 /*return*/];
+ return [4 /*yield*/, get.elid("base")];
+ case 1:
+ baseElement = _a.sent();
+ baseElement.innerHTML = "";
+ suggestedLoaded = false;
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ reset.suggested = suggested;
+ function searchBox() {
+ return __awaiter(this, void 0, void 0, function () {
+ var searchInfo;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, get.elid("search-info")];
+ case 1:
+ searchInfo = _a.sent();
+ searchInfo.value = "";
+ toggle.searchText();
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ reset.searchBox = searchBox;
+})(reset || (reset = {}));
+var set;
+(function (set) {
+ // Set to use a double document
+ function double(task0_1, task1_1) {
+ return __awaiter(this, arguments, void 0, function (task0, task1, bypass) {
+ if (bypass === void 0) { bypass = false; }
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if ((task0 == null || task1 == null) && !doubleLoaded)
+ return [2 /*return*/];
+ _logger__WEBPACK_IMPORTED_MODULE_5__.log("Load Double: [".concat(task0.count, "] ").concat(task0.name, " | [").concat(task1.count, "] ").concat(task1.name));
+ // Reset all others
+ return [4 /*yield*/, reset.single()];
+ case 1:
+ // Reset all others
+ _a.sent();
+ return [4 /*yield*/, reset.reaper()];
+ case 2:
+ _a.sent();
+ return [4 /*yield*/, reset.suggested()];
+ case 3:
+ _a.sent();
+ if (!!doubleLoaded) return [3 /*break*/, 5];
+ return [4 /*yield*/, setup.doubleAssignment()];
+ case 4:
+ _a.sent();
+ _a.label = 5;
+ case 5: return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.assignment(0, task0.name, task0.count)];
+ case 6:
+ _a.sent();
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.assignment(1, task1.name, task1.count)];
+ case 7:
+ _a.sent();
+ // Log history if not bypassed
+ if (!bypass && task0.name && task1.name) {
+ _settings__WEBPACK_IMPORTED_MODULE_3__.change.addHistory({ type: 'double', tasks: [task0, task1] });
+ }
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ set.double = double;
+ // Set to use a single document
+ function single(task_1) {
+ return __awaiter(this, arguments, void 0, function (task, bypass) {
+ if (bypass === void 0) { bypass = false; }
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (task == null && !singleLoaded)
+ return [2 /*return*/];
+ _logger__WEBPACK_IMPORTED_MODULE_5__.log("Load Single: [".concat(task.count, "] ").concat(task.name));
+ // Reset all others
+ return [4 /*yield*/, reset.double()];
+ case 1:
+ // Reset all others
+ _a.sent();
+ return [4 /*yield*/, reset.reaper()];
+ case 2:
+ _a.sent();
+ return [4 /*yield*/, reset.suggested()];
+ case 3:
+ _a.sent();
+ if (!!singleLoaded) return [3 /*break*/, 5];
+ return [4 /*yield*/, setup.singleAssignment(0)];
+ case 4:
+ _a.sent();
+ _a.label = 5;
+ case 5: return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.assignment(0, task.name, task.count)];
+ case 6:
+ _a.sent();
+ // Log history if not bypassed
+ if (!bypass && task.name) {
+ _settings__WEBPACK_IMPORTED_MODULE_3__.change.addHistory({ type: 'single', tasks: [task] });
+ }
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ set.single = single;
+ // Set to use reaper tasks doc
+ function reaper(task_1) {
+ return __awaiter(this, arguments, void 0, function (task, bypass) {
+ if (bypass === void 0) { bypass = false; }
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (task == null && !reaperLoaded)
+ return [2 /*return*/];
+ _logger__WEBPACK_IMPORTED_MODULE_5__.log("Load Reaper: [".concat(task.count, "] ").concat(task.name));
+ // Reset all others
+ return [4 /*yield*/, reset.single()];
+ case 1:
+ // Reset all others
+ _a.sent();
+ return [4 /*yield*/, reset.double()];
+ case 2:
+ _a.sent();
+ return [4 /*yield*/, reset.suggested()];
+ case 3:
+ _a.sent();
+ return [4 /*yield*/, setup.singleAssignment(2)];
+ case 4:
+ _a.sent();
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.reaper(task.name, task.count)];
+ case 5:
+ _a.sent();
+ // Log history if not bypassed
+ if (!bypass && task.name) {
+ _settings__WEBPACK_IMPORTED_MODULE_3__.change.addHistory({ type: 'reaper', tasks: [task] });
+ }
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ set.reaper = reaper;
+ // Set to use suggested tasks doc
+ function suggested() {
+ return __awaiter(this, arguments, void 0, function (bypass) {
+ if (bypass === void 0) { bypass = false; }
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (suggestedLoaded)
+ return [2 /*return*/];
+ _logger__WEBPACK_IMPORTED_MODULE_5__.log("Load Suggested!");
+ // Reset all others
+ return [4 /*yield*/, reset.single()];
+ case 1:
+ // Reset all others
+ _a.sent();
+ return [4 /*yield*/, reset.double()];
+ case 2:
+ _a.sent();
+ return [4 /*yield*/, reset.reaper()];
+ case 3:
+ _a.sent();
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.setup.suggested()];
+ case 4:
+ _a.sent();
+ // Log history if not bypassed
+ if (!bypass) {
+ _settings__WEBPACK_IMPORTED_MODULE_3__.change.addHistory({ type: 'suggestion', tasks: null });
+ }
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ set.suggested = suggested;
+ // Set search button
+ function searchButtonText(s) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-button").innerHTML = "".concat(s, "<span style=\"visibility: hidden;\">. . .</span>");
+ }
+ set.searchButtonText = searchButtonText;
+ // Set the search input
+ function searchInput(s) {
+ if (s == null)
+ return;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").value = s;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.toggle.searchText();
+ }
+ set.searchInput = searchInput;
+})(set || (set = {}));
+var setup;
+(function (setup) {
+ // Setup the main document
+ function documentMain() {
+ return __awaiter(this, void 0, void 0, function () {
+ var nisElement, _a, reapersIndexList, assignmentsIndexList;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ nisElement = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("nis");
+ _a = nisElement;
+ return [4 /*yield*/, fetch("./pages/doc/body.html").then(function (r) { return r.text(); })];
+ case 1:
+ _a.innerHTML = _b.sent();
+ // Setup event listeners
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("infobutton").addEventListener('click', _dochandler__WEBPACK_IMPORTED_MODULE_0__.open.aboutInfo);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("menubutton").addEventListener('click', _dochandler__WEBPACK_IMPORTED_MODULE_0__.open.settingsPage);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("donatebutton").addEventListener('click', _dochandler__WEBPACK_IMPORTED_MODULE_0__.open.donate);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("backbutton").addEventListener('click', _settings__WEBPACK_IMPORTED_MODULE_3__.change.goPreviousHistory);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("forwardbutton").addEventListener('click', _settings__WEBPACK_IMPORTED_MODULE_3__.change.goNextHistory);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-button").addEventListener('click', function () { _slayer__WEBPACK_IMPORTED_MODULE_4__.searchTasks(); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").addEventListener('input', _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.toggle.searchText);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").addEventListener('change', function () { _slayer__WEBPACK_IMPORTED_MODULE_4__.searchTasks(); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").addEventListener('keyup', function (event) {
+ switch (event.key) {
+ case "ArrowUp":
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.searchInput(_settings__WEBPACK_IMPORTED_MODULE_3__.search.getPreviousHistory());
+ break;
+ case "ArrowDown":
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.searchInput(_settings__WEBPACK_IMPORTED_MODULE_3__.search.getNextHistory());
+ break;
+ }
+ });
+ return [4 /*yield*/, _data_reapers__WEBPACK_IMPORTED_MODULE_1__.getIndexList()];
+ case 2:
+ reapersIndexList = _b.sent();
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info-list").innerHTML = reapersIndexList;
+ return [4 /*yield*/, _data_assignnments__WEBPACK_IMPORTED_MODULE_2__.getIndexList()];
+ case 3:
+ assignmentsIndexList = _b.sent();
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info-list").innerHTML += assignmentsIndexList;
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ setup.documentMain = documentMain;
+ // Setup the base for double assignment
+ function doubleAssignment() {
+ return __awaiter(this, void 0, void 0, function () {
+ var baseElement, _a, _loop_1, i;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ limitedLoaded = true;
+ baseElement = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("base");
+ _a = baseElement;
+ return [4 /*yield*/, fetch("./pages/doc/dual.html").then(function (r) { return r.text(); })];
+ case 1:
+ _a.innerHTML = _b.sent();
+ _loop_1 = function (i) {
+ var side, _c, extraInfo, _d;
+ return __generator(this, function (_e) {
+ switch (_e.label) {
+ case 0:
+ side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _c = side;
+ return [4 /*yield*/, fetch("./pages/doc/example.html").then(function (r) { return r.text(); })];
+ case 1:
+ _c.innerHTML = _e.sent();
+ // Setup event listeners
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("task-wiki", side).addEventListener('click', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.open.wiki.assignment(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("task-wiki", side).addEventListener('mouseover', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.assignmentWiki(i); });
+ if (!!_settings__WEBPACK_IMPORTED_MODULE_3__.controller.data.ui.limited) return [3 /*break*/, 3];
+ extraInfo = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("extra-info", side);
+ _d = extraInfo;
+ return [4 /*yield*/, fetch("./pages/doc/example-extra.html").then(function (r) { return r.text(); })];
+ case 2:
+ _d.innerHTML = _e.sent();
+ limitedLoaded = false;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-task-wiki", side).addEventListener('mouseleave', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.assignmentWikiPreview(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-creature-wiki", side).addEventListener('mouseleave', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.creatureWikiPreview(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipMore", side).addEventListener('mouseenter', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.moreEquip(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipHidden", side).addEventListener('mouseleave', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.moreEquip(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationMore", side).addEventListener('mouseenter', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.moreLocations(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationHidden", side).addEventListener('mouseleave', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.moreLocations(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creature-wiki", side).addEventListener('click', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.open.wiki.creature(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creature-wiki", side).addEventListener('mouseover', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.creatureWiki(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creatures", side).addEventListener('change', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.creature(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("variants", side).addEventListener('change', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.variant(i); });
+ _e.label = 3;
+ case 3: return [2 /*return*/];
+ }
+ });
+ };
+ i = 0;
+ _b.label = 2;
+ case 2:
+ if (!(i < 2)) return [3 /*break*/, 5];
+ return [5 /*yield**/, _loop_1(i)];
+ case 3:
+ _b.sent();
+ _b.label = 4;
+ case 4:
+ i++;
+ return [3 /*break*/, 2];
+ case 5:
+ // Adjust the doc for limited and full
+ adjustForSettings();
+ doubleLoaded = true;
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ setup.doubleAssignment = doubleAssignment;
+ // Setup the base for single assignment
+ function singleAssignment(i) {
+ return __awaiter(this, void 0, void 0, function () {
+ var baseElement, _a, side, _b, extraInfo, _c, statusElement;
+ return __generator(this, function (_d) {
+ switch (_d.label) {
+ case 0:
+ limitedLoaded = true;
+ baseElement = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("base");
+ _a = baseElement;
+ return [4 /*yield*/, fetch("./pages/doc/single.html").then(function (r) { return r.text(); })];
+ case 1:
+ _a.innerHTML = _d.sent();
+ side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _b = side;
+ return [4 /*yield*/, fetch("./pages/doc/example.html").then(function (r) { return r.text(); })];
+ case 2:
+ _b.innerHTML = _d.sent();
+ // Setup event listeners
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("task-wiki", side).addEventListener('click', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.open.wiki.assignment(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("task-wiki", side).addEventListener('mouseover', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.assignmentWiki(i); });
+ if (!!_settings__WEBPACK_IMPORTED_MODULE_3__.controller.data.ui.limited) return [3 /*break*/, 4];
+ extraInfo = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("extra-info", side);
+ _c = extraInfo;
+ return [4 /*yield*/, fetch("./pages/doc/example-extra.html").then(function (r) { return r.text(); })];
+ case 3:
+ _c.innerHTML = _d.sent();
+ limitedLoaded = false;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-task-wiki", side).addEventListener('mouseleave', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.assignmentWikiPreview(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-creature-wiki", side).addEventListener('mouseleave', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.creatureWikiPreview(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipMore", side).addEventListener('mouseenter', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.moreEquip(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipHidden", side).addEventListener('mouseleave', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.moreEquip(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationMore", side).addEventListener('mouseenter', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.moreLocations(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationHidden", side).addEventListener('mouseleave', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.moreLocations(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creature-wiki", side).addEventListener('click', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.open.wiki.creature(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creature-wiki", side).addEventListener('mouseover', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.creatureWiki(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creatures", side).addEventListener('change', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.creature(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("variants", side).addEventListener('change', function () { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.variant(i); });
+ _d.label = 4;
+ case 4:
+ statusElement = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("status", side);
+ if (_settings__WEBPACK_IMPORTED_MODULE_3__.controller.data.ui.status) {
+ statusElement.style.visibility = "visible";
+ }
+ else {
+ statusElement.style.visibility = "hidden";
+ }
+ // Adjust the doc for limited and full
+ adjustForSettings();
+ if (i === 2) {
+ reaperLoaded = true;
+ }
+ else {
+ singleLoaded = true;
+ }
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ setup.singleAssignment = singleAssignment;
+ // Setup the base for suggested
+ function suggested() {
+ return __awaiter(this, void 0, void 0, function () {
+ var baseElement, _a, suggestType, _loop_2, i;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ baseElement = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("base");
+ _a = baseElement;
+ return [4 /*yield*/, fetch("./pages/doc/suggested.html").then(function (r) { return r.text(); })];
+ case 1:
+ _a.innerHTML = _b.sent();
+ suggestType = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("type-suggest");
+ if (suggestType) {
+ suggestType.addEventListener('click', function () { return window.open("https://runescape.wiki/w/Slayer_training/High-levelled"); });
+ }
+ _loop_2 = function (i) {
+ var element = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("suggestion-".concat(i));
+ if (element) {
+ element.addEventListener('click', function () { return _slayer__WEBPACK_IMPORTED_MODULE_4__.searchTasks(element.innerHTML); });
+ }
+ };
+ for (i = 1; i <= 12; i++) {
+ _loop_2(i);
+ }
+ suggestedLoaded = true;
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ setup.suggested = suggested;
+ // If limited, set the size of the base
+ function adjustForSettings() {
+ var baseElement = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("base");
+ var divideElement = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("divide");
+ var copyrightElement = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("copyright");
+ if (_settings__WEBPACK_IMPORTED_MODULE_3__.controller.data.ui.limited) {
+ baseElement.classList.remove("base-full");
+ if (divideElement) {
+ divideElement.classList.remove("divide-full");
+ }
+ copyrightElement.classList.remove("copyright-full");
+ }
+ else {
+ baseElement.classList.add("base-full");
+ if (divideElement) {
+ divideElement.classList.add("divide-full");
+ }
+ copyrightElement.classList.add("copyright-full");
+ }
+ }
+})(setup || (setup = {}));
+var toggle;
+(function (toggle) {
+ // Toggle if we are capturing screen or searching text
+ function searchText() {
+ var searchResult = _slayer__WEBPACK_IMPORTED_MODULE_4__.searchResult;
+ var autoCaptureEnabled = _settings__WEBPACK_IMPORTED_MODULE_3__.controller.data.autoCapture.enabled;
+ var searchInput = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.searchInput();
+ if (searchResult || (!autoCaptureEnabled && searchInput === "")) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.searchButtonText("Capture");
+ }
+ else {
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.searchButtonText("Search");
+ }
+ }
+ toggle.searchText = searchText;
+})(toggle || (toggle = {}));
+
+
+/***/ }),
+
+/***/ "./modules/dochandler/open.ts":
+/*!************************************!*\
+ !*** ./modules/dochandler/open.ts ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ aboutInfo: () => (/* binding */ aboutInfo),
+/* harmony export */ donate: () => (/* binding */ donate),
+/* harmony export */ settingsPage: () => (/* binding */ settingsPage),
+/* harmony export */ wiki: () => (/* binding */ wiki)
+/* harmony export */ });
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../settings */ "./modules/settings.ts");
+
+
+// Open the Donate Page (https://www.paypal.com/donate/?hosted_button_id=LRFC6766YMVTQ)
+function donate() {
+ window.open("https://www.paypal.com/donate/?hosted_button_id=LRFC6766YMVTQ");
+}
+// Open the about info page
+function aboutInfo() {
+ window.open("./pages/about.html", null, "width=680,height=550");
+}
+// Open the settings page
+function settingsPage() {
+ var settingsWindow = window.open("./pages/settings.html", "_blank", "width=420,height=550");
+ console.warn("Settings Opened!");
+ settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.window.console.warn("Settings Loaded!");
+ settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.addEventListener('keyup', function (e) {
+ if ((e.which || e.keyCode) === 116) {
+ // Prevent F5 key press from refreshing the page
+ e.preventDefault();
+ }
+ });
+ settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.addEventListener('beforeunload', function () {
+ // Load the new settings and apply them
+ _settings__WEBPACK_IMPORTED_MODULE_1__.controller.load();
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.toggle.searchText();
+ console.warn("Settings Closed!");
+ settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.window.console.warn("Settings Saved!");
+ });
+}
+var wiki;
+(function (wiki) {
+ // Opens the wiki page for a specific task
+ function assignment(i) {
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var task = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("name", side).innerHTML;
+ if (task) {
+ window.open('https://runescape.wiki/' + task + '_(Slayer_assignment)');
+ }
+ }
+ wiki.assignment = assignment;
+ // Opens the wiki page for a specific creature
+ function creature(i) {
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var creature = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creatures", side).value;
+ var variant = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("variants", side).value;
+ if (creature && variant) {
+ window.open('https://runescape.wiki/' + creature + "#" + variant);
+ }
+ }
+ wiki.creature = creature;
+ // Opens the wiki page for a specific master
+ function master(i, j) {
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var master = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("masterImage" + j, side).alt;
+ if (master) {
+ window.open('https://runescape.wiki/' + master);
+ }
+ }
+ wiki.master = master;
+})(wiki || (wiki = {}));
+
+
+/***/ }),
+
+/***/ "./modules/dochandler/show.ts":
+/*!************************************!*\
+ !*** ./modules/dochandler/show.ts ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ assignmentWikiPreview: () => (/* binding */ assignmentWikiPreview),
+/* harmony export */ creatureWikiPreview: () => (/* binding */ creatureWikiPreview),
+/* harmony export */ moreEquip: () => (/* binding */ moreEquip),
+/* harmony export */ moreLocations: () => (/* binding */ moreLocations)
+/* harmony export */ });
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../settings */ "./modules/settings.ts");
+
+
+// Show the specific Creature's preview wiki page
+function assignmentWikiPreview(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-task-wiki", side).style.visibility = "visible";
+}
+// Show the specific Creature's preview wiki page
+function creatureWikiPreview(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-creature-wiki", side).style.visibility = "visible";
+}
+// Show more Equipment for task
+function moreEquip(i) {
+ var _a;
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var equipHiddenElement = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipHidden", side);
+ if ((_a = equipHiddenElement.innerHTML) === null || _a === void 0 ? void 0 : _a.trimEnd()) {
+ equipHiddenElement.style.visibility = "visible";
+ }
+}
+// Show more Locations for task
+function moreLocations(i) {
+ var _a;
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var locationHiddenElement = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationHidden", side);
+ if ((_a = locationHiddenElement.innerHTML) === null || _a === void 0 ? void 0 : _a.trimEnd()) {
+ locationHiddenElement.style.visibility = "visible";
+ }
+}
+
+
+/***/ }),
+
+/***/ "./modules/extrafuncs.ts":
+/*!*******************************!*\
+ !*** ./modules/extrafuncs.ts ***!
+ \*******************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ calculateAspectRatioFit: () => (/* binding */ calculateAspectRatioFit),
+/* harmony export */ decodeHtml: () => (/* binding */ decodeHtml),
+/* harmony export */ listContains: () => (/* binding */ listContains),
+/* harmony export */ numberWithCommas: () => (/* binding */ numberWithCommas)
+/* harmony export */ });
+// Add commas into a number if its big enough
+function numberWithCommas(n) {
+ if (n == null)
+ return "<span style=\"color: red;\">Empty</span>";
+ if (n === -666)
+ return "<span style=\"color: red;\">Error</span>";
+ return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+}
+// Check if the list contains what you want to find
+function listContains(list, find) {
+ for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
+ var l = list_1[_i];
+ if (decodeHtml(l).toLowerCase() === decodeHtml(find).toLowerCase())
+ return true;
+ }
+ return false;
+}
+// Get new width and height for image based on aspect ratio
+function calculateAspectRatioFit(srcWidth, srcHeight, maxWidth, maxHeight) {
+ var ratio = Math.min(maxWidth / srcWidth, maxHeight / srcHeight);
+ return { width: srcWidth * ratio, height: srcHeight * ratio };
+}
+// Decode the HTML chars that have been encoded during database downloading
+function decodeHtml(html) {
+ var txt = document.createElement("textarea");
+ txt.innerHTML = html;
+ return txt.value;
+}
+
+
+/***/ }),
+
+/***/ "./modules/logger.ts":
+/*!***************************!*\
+ !*** ./modules/logger.ts ***!
+ \***************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ debug: () => (/* binding */ debug),
+/* harmony export */ error: () => (/* binding */ error),
+/* harmony export */ log: () => (/* binding */ log),
+/* harmony export */ setDebug: () => (/* binding */ setDebug),
+/* harmony export */ setLimit: () => (/* binding */ setLimit),
+/* harmony export */ setVerbose: () => (/* binding */ setVerbose),
+/* harmony export */ verbose: () => (/* binding */ verbose),
+/* harmony export */ warn: () => (/* binding */ warn)
+/* harmony export */ });
+// Private queues and settings
+var debugQueue = [];
+var verboseQueue = [];
+var queueLimit = 50;
+var debugEnabled = false;
+var verboseEnabled = false;
+// Set the queue limit for debug and verbose
+function setLimit(limit) {
+ queueLimit = limit;
+}
+// Enable or disable debug logging
+function setDebug(enabled) {
+ debugEnabled = enabled;
+ if (enabled)
+ debug("Debug logging enabled"); // Force Flush the Queue
+}
+// Enable or disable verbose logging
+function setVerbose(enabled) {
+ verboseEnabled = enabled;
+ if (enabled)
+ verbose("Verbose logging enabled"); // Force Flush the Queue
+}
+// Public: Log to the normal queue and flush the queue
+function log() {
+ var messages = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ messages[_i] = arguments[_i];
+ }
+ console.log.apply(console, messages);
+}
+// Public: Log to the warn queue and flush the queue
+function warn() {
+ var messages = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ messages[_i] = arguments[_i];
+ }
+ console.warn.apply(console, messages);
+}
+// Public: Log to the error queue and flush the queue
+function error() {
+ var messages = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ messages[_i] = arguments[_i];
+ }
+ console.error.apply(console, messages);
+}
+// Public: Log to the debug queue only if debug is enabled and flush the queue
+function debug() {
+ var messages = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ messages[_i] = arguments[_i];
+ }
+ debugQueue.push(messages.join(' '));
+ trimQueue(debugQueue);
+ if (debugEnabled)
+ flushQueue(debugQueue, "Debug");
+}
+// Public: Log to the verbose queue only if verbose is enabled and flush the queue
+function verbose() {
+ var messages = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ messages[_i] = arguments[_i];
+ }
+ verboseQueue.push(messages.join(' '));
+ trimQueue(verboseQueue);
+ if (verboseEnabled)
+ flushQueue(verboseQueue, "Verbose");
+}
+// Private: Trim the queue if it exceeds the limit (FIFO: remove first entry)
+function trimQueue(queue) {
+ if (queue.length > queueLimit)
+ queue.shift();
+}
+// Private: Flush and output the entire queue, emptying it afterward
+function flushQueue(queue, label) {
+ while (queue.length > 0) {
+ var message = queue.shift();
+ if (label === "Debug")
+ console.log("[".concat(label, "] ").concat(message));
+ if (label === "Verbose")
+ console.warn("[".concat(label, "] ").concat(message));
+ }
+}
+
+
+/***/ }),
+
+/***/ "./modules/settings.ts":
+/*!*****************************!*\
+ !*** ./modules/settings.ts ***!
+ \*****************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ AutoCaptureData: () => (/* binding */ AutoCaptureData),
+/* harmony export */ DefaultData: () => (/* binding */ DefaultData),
+/* harmony export */ HiddenData: () => (/* binding */ HiddenData),
+/* harmony export */ SettingsData: () => (/* binding */ SettingsData),
+/* harmony export */ SettingsDataController: () => (/* binding */ SettingsDataController),
+/* harmony export */ UIData: () => (/* binding */ UIData),
+/* harmony export */ change: () => (/* binding */ change),
+/* harmony export */ controller: () => (/* binding */ controller),
+/* harmony export */ executeDevTools: () => (/* binding */ executeDevTools),
+/* harmony export */ search: () => (/* binding */ search)
+/* harmony export */ });
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _slayer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slayer */ "./modules/slayer.ts");
+/* harmony import */ var _dochandler_main__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dochandler/main */ "./modules/dochandler/main.ts");
+/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./logger */ "./modules/logger.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+
+
+
+// Define classes
+var AutoCaptureData = /** @class */ (function () {
+ function AutoCaptureData() {
+ }
+ return AutoCaptureData;
+}());
+
+var UIData = /** @class */ (function () {
+ function UIData() {
+ }
+ return UIData;
+}());
+
+var DefaultData = /** @class */ (function () {
+ function DefaultData() {
+ }
+ return DefaultData;
+}());
+
+var HiddenData = /** @class */ (function () {
+ function HiddenData() {
+ }
+ return HiddenData;
+}());
+
+var SettingsData = /** @class */ (function () {
+ function SettingsData() {
+ }
+ return SettingsData;
+}());
+
+// Controls all the settings data
+var SettingsDataController = /** @class */ (function () {
+ function SettingsDataController() {
+ this.configLoaded = false;
+ this.data = {
+ version: 1,
+ searchAlgorithim: "default",
+ autoCapture: {
+ enabled: true,
+ counter: true,
+ search: false,
+ loopTimer: 500,
+ counterTimer: 500,
+ dialogTimer: 5000,
+ searchTimer: 10000,
+ },
+ ui: {
+ style: "default",
+ limited: false,
+ status: true,
+ counter: false,
+ counterTimer: 500,
+ historyRetentionCount: 10,
+ lookupRetentionCount: 0,
+ },
+ showHidden: {
+ creatures: false,
+ eliteCreatures: false,
+ dragonkinCreatures: false,
+ godWarsCreatures: false,
+ ghorrockCreatures: false,
+ heartGielinorCreatures: false,
+ monsterCreatures: false,
+ newVarrockCreatures: false,
+ shadowReefCreatures: false,
+ strongholdSecurityCreatures: false,
+ summonedCreatures: false,
+ templeTrekkingCreatures: false,
+ unchartedIslesCreatures: false
+ },
+ default: {
+ taskName0: "waterfiends",
+ taskName1: "black demons",
+ taskCount0: 777,
+ taskCount1: 666
+ },
+ };
+ }
+ SettingsDataController.prototype.load = function () {
+ return __awaiter(this, void 0, void 0, function () {
+ var res;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (window.localStorage.getItem('version') != null) {
+ this.data.version = this.decodeVersion(window.localStorage.getItem('version'));
+ }
+ if (this.data.version <= 5 && !this.configLoaded) {
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("(Versioning System Missing) Setting up versioning system.");
+ window.localStorage.removeItem('recent_task_0');
+ window.localStorage.removeItem('recent_task_count_0');
+ window.localStorage.removeItem('recent_task_1');
+ window.localStorage.removeItem('recent_task_count_1');
+ this.save();
+ }
+ return [4 /*yield*/, fetch("./data/version.json").then(function (r) { return r.json(); })];
+ case 1:
+ res = _a.sent();
+ if (this.data.version < this.decodeVersion(res['version'])) {
+ this.data.version = this.decodeVersion(res['version']);
+ }
+ controller.data.autoCapture.enabled = window.localStorage.getItem("auto-capture-enabled") === "true";
+ controller.data.autoCapture.counter = window.localStorage.getItem("auto-capture-counter") === "true";
+ controller.data.autoCapture.search = window.localStorage.getItem("auto-capture-search") === "true";
+ controller.data.autoCapture.loopTimer = parseInt(window.localStorage.getItem("auto-capture-timer-loop"));
+ controller.data.autoCapture.dialogTimer = parseInt(window.localStorage.getItem("auto-capture-timer-dialog"));
+ controller.data.autoCapture.counterTimer = parseInt(window.localStorage.getItem("auto-capture-timer-counter"));
+ controller.data.autoCapture.searchTimer = parseInt(window.localStorage.getItem("auto-capture-timer-search"));
+ controller.data.ui.limited = window.localStorage.getItem("ui-limited") === "true";
+ controller.data.ui.status = window.localStorage.getItem("ui-status") === "true";
+ controller.data.ui.counter = window.localStorage.getItem("ui-counter") === "true";
+ controller.data.ui.counterTimer = parseInt(window.localStorage.getItem("ui-counter-timer"));
+ // TODO Load history here then reset the UI and load them
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.reset.single();
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.reset.double();
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.reset.reaper();
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.reset.suggested();
+ if (!(this.data.default.taskName0 != null && this.data.default.taskName1 != null)) return [3 /*break*/, 3];
+ return [4 /*yield*/, _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.set.double({ name: this.data.default.taskName0, count: this.data.default.taskCount0 }, { name: this.data.default.taskName1, count: this.data.default.taskCount1 })];
+ case 2:
+ _a.sent();
+ return [3 /*break*/, 5];
+ case 3:
+ if (!(this.data.default.taskName0 != null && this.data.default.taskName1 == null)) return [3 /*break*/, 5];
+ return [4 /*yield*/, _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.set.single({ name: this.data.default.taskName0, count: this.data.default.taskCount0 })];
+ case 4:
+ _a.sent();
+ _a.label = 5;
+ case 5:
+ console.warn("Config Loaded");
+ this.configLoaded = true;
+ return [2 /*return*/];
+ }
+ });
+ });
+ };
+ SettingsDataController.prototype.save = function () {
+ return __awaiter(this, void 0, void 0, function () {
+ return __generator(this, function (_a) {
+ if (this.data.version > 1) {
+ window.localStorage.setItem('version', this.encodeVersion(this.data.version));
+ }
+ window.localStorage.setItem("auto-capture-enabled", "" + controller.data.autoCapture.enabled);
+ window.localStorage.setItem("auto-capture-counter", "" + controller.data.autoCapture.counter);
+ window.localStorage.setItem("auto-capture-search", "" + controller.data.autoCapture.search);
+ window.localStorage.setItem("auto-capture-timer-loop", "" + controller.data.autoCapture.loopTimer);
+ window.localStorage.setItem("auto-capture-timer-dialog", "" + controller.data.autoCapture.dialogTimer);
+ window.localStorage.setItem("auto-capture-timer-counter", "" + controller.data.autoCapture.counterTimer);
+ window.localStorage.setItem("auto-capture-timer-search", "" + controller.data.autoCapture.searchTimer);
+ window.localStorage.setItem("ui-limited", "" + controller.data.ui.limited);
+ window.localStorage.setItem("ui-status", "" + controller.data.ui.status);
+ window.localStorage.setItem("ui-counter", "" + controller.data.ui.counter);
+ window.localStorage.setItem("ui-counter-timer", "" + controller.data.ui.counterTimer);
+ console.warn("Config Saved");
+ return [2 /*return*/];
+ });
+ });
+ };
+ SettingsDataController.prototype.decodeVersion = function (version) {
+ var versionSplit = version.split(".");
+ var versionUpper = versionSplit.length > 2 ? parseInt(versionSplit[0]) : 0;
+ var versionLower = parseInt(versionSplit.length > 2 ? versionSplit[1] : versionSplit[0]);
+ var versionPatch = parseInt(versionSplit.length > 2 ? versionSplit[2] : versionSplit[1]);
+ return ((versionUpper * 256 * 256) + (versionLower * 256) + versionPatch);
+ };
+ SettingsDataController.prototype.encodeVersion = function (version) {
+ var versionUpper = version > 256 * 256 ? version / (256 * 256) : 0;
+ var versionLower = version > 256 ? (version - (versionUpper * 256 * 256)) / 256 : 0;
+ var versionPatch = (version - (versionUpper * 256 * 256) - (versionLower * 256));
+ return versionUpper + "." + versionLower + "." + versionPatch;
+ };
+ return SettingsDataController;
+}());
+
+var controller = new SettingsDataController();
+// Change history functions
+var change;
+(function (change) {
+ change.history = [];
+ change.index = 0;
+ function addHistory(history) {
+ if (!history || !history.tasks || !change.history[change.index])
+ return;
+ if ((history.type === "single" || history.type === "reaper") &&
+ history.tasks[0].name === change.history[change.index].tasks[0].name)
+ return;
+ if (history.type === "double" &&
+ history.tasks[0].name === change.history[change.index].tasks[0].name &&
+ history.tasks[1].name === change.history[change.index].tasks[1].name)
+ return;
+ if (history.type === "suggestion" && history.type === change.history[change.index].type)
+ return;
+ if (change.index + 1 != change.history.length) {
+ change.history = change.history.slice(0, change.index + 1);
+ }
+ change.history.push(history);
+ change.index = change.history.length - 1;
+ console.warn("Save History");
+ controller.save();
+ }
+ change.addHistory = addHistory;
+ function refreshCurrent() {
+ if (change.index < 0 || change.index >= change.history.length)
+ return;
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.reset.single();
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.reset.double();
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.reset.reaper();
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.reset.suggested();
+ var previousChange = change.history[change.index];
+ if (previousChange.type === 'double')
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.set.double(previousChange.tasks[0], previousChange.tasks[1], true);
+ if (previousChange.type === 'single')
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.set.single(previousChange.tasks[0], true);
+ if (previousChange.type === 'reaper')
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.set.reaper(previousChange.tasks[0], true);
+ if (previousChange.type === 'suggestion')
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.set.suggested(true);
+ console.warn("Save History");
+ controller.save();
+ }
+ change.refreshCurrent = refreshCurrent;
+ function goPreviousHistory() {
+ if (change.index - 1 < 0)
+ return;
+ var previousChange = change.history[--change.index];
+ if (previousChange.type === 'double')
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.set.double(previousChange.tasks[0], previousChange.tasks[1], true);
+ if (previousChange.type === 'single')
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.set.single(previousChange.tasks[0], true);
+ if (previousChange.type === 'reaper')
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.set.reaper(previousChange.tasks[0], true);
+ if (previousChange.type === 'suggestion')
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.set.suggested(true);
+ console.warn("Save History");
+ controller.save();
+ }
+ change.goPreviousHistory = goPreviousHistory;
+ function goNextHistory() {
+ if (change.index + 1 >= change.history.length)
+ return;
+ var nextChange = change.history[++change.index];
+ if (nextChange.type === 'double')
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.set.double(nextChange.tasks[0], nextChange.tasks[1], true);
+ if (nextChange.type === 'single')
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.set.single(nextChange.tasks[0], true);
+ if (nextChange.type === 'reaper')
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.set.reaper(nextChange.tasks[0], true);
+ if (nextChange.type === 'suggestion')
+ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.set.suggested(true);
+ console.warn("Save History");
+ controller.save();
+ }
+ change.goNextHistory = goNextHistory;
+})(change || (change = {}));
+var search;
+(function (search) {
+ var temp = null;
+ var history = [];
+ var index = 0;
+ function addHistory(value) {
+ if (!value)
+ return;
+ history.push(value);
+ index = history.length;
+ temp = null;
+ console.warn("Save History");
+ controller.save();
+ }
+ search.addHistory = addHistory;
+ function getPreviousHistory() {
+ tempValue();
+ console.warn("Save History");
+ controller.save();
+ if (index - 1 < 0)
+ return null;
+ if (--index === history.length)
+ return temp;
+ return history[index];
+ }
+ search.getPreviousHistory = getPreviousHistory;
+ function getNextHistory() {
+ tempValue();
+ console.warn("Save History");
+ controller.save();
+ if (index + 1 > history.length + (temp === "" ? 0 : 1))
+ return null;
+ if (++index === history.length + (temp === "" ? 0 : 1))
+ return "";
+ if (temp !== "" && index === history.length)
+ return temp;
+ return history[index];
+ }
+ search.getNextHistory = getNextHistory;
+ function tempValue() {
+ var currentValue = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").value;
+ if (temp === null)
+ temp = currentValue;
+ if (index === history.length && temp !== currentValue)
+ temp = currentValue;
+ if (index === history.length + 1 && currentValue !== "") {
+ temp = currentValue;
+ --index;
+ }
+ }
+})(search || (search = {}));
+function executeDevTools(value) {
+ return __awaiter(this, void 0, void 0, function () {
+ var counterData, slayerData, a, a, pos, box, _i, _a, _b, index, option, e_1;
+ return __generator(this, function (_c) {
+ switch (_c.label) {
+ case 0:
+ if (value === "devTools") {
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log(" ~~~ Dev Tools ~ Information Opened ~~~ ");
+ alt1.openBrowser("https://runeapps.org/forums/viewtopic.php?id=101");
+ return [2 /*return*/];
+ }
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log(" ~~~ Dev Tools ~ Started ~~~ ");
+ _c.label = 1;
+ case 1:
+ _c.trys.push([1, 10, , 11]);
+ if (!(value === "size")) return [3 /*break*/, 2];
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("Current Size: ".concat(document.body.clientWidth, ", ").concat(document.body.clientHeight));
+ return [3 /*break*/, 9];
+ case 2:
+ if (!(value === "debug")) return [3 /*break*/, 3];
+ _logger__WEBPACK_IMPORTED_MODULE_3__.setDebug(true);
+ return [3 /*break*/, 9];
+ case 3:
+ if (!(value === "verbose")) return [3 /*break*/, 4];
+ _logger__WEBPACK_IMPORTED_MODULE_3__.setVerbose(true);
+ return [3 /*break*/, 9];
+ case 4:
+ if (!(value === "counterReader")) return [3 /*break*/, 6];
+ return [4 /*yield*/, _slayer__WEBPACK_IMPORTED_MODULE_1__.counterReader.read()];
+ case 5:
+ counterData = _c.sent();
+ if (counterData) {
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("The Counter UI Collapsed [".concat(counterData.collapsed, "]"));
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("The Counter UI Old School [".concat(counterData.OS, "]"));
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("The Counter UI Reaper [".concat(counterData.reaper, "]"));
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("The Counter UI Count [".concat(counterData.count, "]"));
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("The Counter UI Task [".concat(counterData.task, "]"));
+ }
+ else {
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log(" ~~~ Dev Tools ~ Error: Cannot read counter data! ~~~ ");
+ }
+ return [3 /*break*/, 9];
+ case 6:
+ if (!(value === "slayerReader")) return [3 /*break*/, 8];
+ return [4 /*yield*/, _slayer__WEBPACK_IMPORTED_MODULE_1__.slayerReader.read()];
+ case 7:
+ slayerData = _c.sent();
+ if (slayerData) {
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("The Slayer Reader Select Your Own [".concat(slayerData.selectYourOwn, "]"));
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("The Slayer Reader Reaper [".concat(slayerData.reaper, "]"));
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("The Slayer Reader Ticket [".concat(slayerData.ticket, "]"));
+ for (a in slayerData.count) {
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("The Slayer Reader Count{".concat(a, "} [").concat(slayerData.count[a], "]"));
+ }
+ for (a in slayerData.task) {
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("The Slayer Reader Task{".concat(a, "} [").concat(slayerData.task[a], "]"));
+ }
+ }
+ else {
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log(" ~~~ Dev Tools ~ Error: Cannot read slayer data! ~~~ ");
+ }
+ return [3 /*break*/, 9];
+ case 8:
+ if (value === "dialogReader") {
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("Searching for Dialog...");
+ pos = _slayer__WEBPACK_IMPORTED_MODULE_1__.slayerReader.dialogReader.find();
+ if (!pos) {
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log(" ~~~ Dev Tools ~ Error: Cannot find the Dialog! ~~~ ");
+ return [2 /*return*/];
+ }
+ box = _slayer__WEBPACK_IMPORTED_MODULE_1__.slayerReader.dialogReader.read();
+ if (!box) {
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log(" ~~~ Dev Tools ~ Error: Cannot read the Dialog! ~~~ ");
+ return [2 /*return*/];
+ }
+ if (box.title)
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("The Dialog Box Title [".concat(box.title, "]"));
+ if (box.text)
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("The Dialog Box Text [".concat(box.text, "]"));
+ if (box.opts) {
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("The Dialog Box Options (".concat(box.opts.length, ") [").concat(box.opts, "]"));
+ for (_i = 0, _a = box.opts.entries(); _i < _a.length; _i++) {
+ _b = _a[_i], index = _b[0], option = _b[1];
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log("\t".concat(index + 1, ". ").concat(option.text));
+ }
+ }
+ }
+ _c.label = 9;
+ case 9: return [3 /*break*/, 11];
+ case 10:
+ e_1 = _c.sent();
+ console.error("~~~ Dev Tools ~ Error: Issue Capturing Screen! ~~~ ");
+ return [3 /*break*/, 11];
+ case 11:
+ _logger__WEBPACK_IMPORTED_MODULE_3__.log(" ~~~ Dev Tools ~ Finished ~~~ ");
+ return [2 /*return*/];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./modules/slayer.ts":
+/*!***************************!*\
+ !*** ./modules/slayer.ts ***!
+ \***************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ canCaptureRunescape: () => (/* binding */ canCaptureRunescape),
+/* harmony export */ captureRunescape: () => (/* binding */ captureRunescape),
+/* harmony export */ counterReader: () => (/* binding */ counterReader),
+/* harmony export */ findTask: () => (/* binding */ findTask),
+/* harmony export */ searchAlgo: () => (/* binding */ searchAlgo),
+/* harmony export */ searchResult: () => (/* binding */ searchResult),
+/* harmony export */ searchTasks: () => (/* binding */ searchTasks),
+/* harmony export */ slayerReader: () => (/* binding */ slayerReader)
+/* harmony export */ });
+/* harmony import */ var alt1__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! alt1 */ "../node_modules/alt1/dist/base/index.js");
+/* harmony import */ var alt1__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(alt1__WEBPACK_IMPORTED_MODULE_6__);
+/* harmony import */ var _SearchAlgorithm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SearchAlgorithm */ "./modules/SearchAlgorithm.ts");
+/* harmony import */ var _SlayerDialogReader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SlayerDialogReader */ "./modules/SlayerDialogReader.ts");
+/* harmony import */ var _UICounterReader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UICounterReader */ "./modules/UICounterReader.ts");
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./settings */ "./modules/settings.ts");
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./logger */ "./modules/logger.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+
+
+
+
+
+
+// Setup the readers and search algo
+var searchAlgo = new _SearchAlgorithm__WEBPACK_IMPORTED_MODULE_0__.SearchAlgorithm();
+var slayerReader = new _SlayerDialogReader__WEBPACK_IMPORTED_MODULE_1__.SlayerDialogReader();
+var counterReader = new _UICounterReader__WEBPACK_IMPORTED_MODULE_2__.UICounterReader();
+var searchResult = false;
+// Get a timer and setup vars
+var timer = function (ms) { return new Promise(function (res) { return setTimeout(res, ms); }); };
+var loopRunning = false;
+// Check if we can capture the screen
+function canCaptureRunescape() {
+ return window.alt1 && alt1.rsLinked && alt1.permissionPixel;
+}
+// Capture the screen
+function captureRunescape() {
+ if (!canCaptureRunescape())
+ return null;
+ try {
+ return alt1__WEBPACK_IMPORTED_MODULE_6__.captureHoldFullRs();
+ }
+ catch (ex) {
+ if (ex.message === "capturehold failed")
+ console.warn("Capturing screen failed! Is runescape open?");
+ }
+ return null;
+}
+// Find a task on the current screen
+function findTask(buffer) {
+ return __awaiter(this, void 0, void 0, function () {
+ var slayerData, counterData;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (!_settings__WEBPACK_IMPORTED_MODULE_3__.controller.data.autoCapture.enabled || loopRunning || searchResult)
+ return [2 /*return*/];
+ if (!buffer)
+ buffer = captureRunescape();
+ if (!buffer)
+ return [2 /*return*/];
+ loopRunning = true;
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.animate.loadingStop();
+ return [4 /*yield*/, slayerReader.read(buffer)];
+ case 1:
+ slayerData = _a.sent();
+ if (!(slayerData && slayerData[0])) return [3 /*break*/, 11];
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.animate.loading();
+ if (!slayerData.selectYourOwn) return [3 /*break*/, 3];
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.set.suggested();
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.animate.loadingStop();
+ return [4 /*yield*/, timer(_settings__WEBPACK_IMPORTED_MODULE_3__.controller.data.autoCapture.dialogTimer)];
+ case 2:
+ _a.sent();
+ loopRunning = false;
+ return [2 /*return*/];
+ case 3:
+ if (!(slayerData.reaper && !slayerData.ticket)) return [3 /*break*/, 5];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.set.reaper({ name: slayerData[0].task, count: slayerData[0].count })];
+ case 4:
+ _a.sent();
+ return [3 /*break*/, 9];
+ case 5:
+ if (!slayerData.ticket) return [3 /*break*/, 7];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.set.double({ name: slayerData[0].task, count: slayerData[0].count }, { name: slayerData[1].task, count: slayerData[1].count })];
+ case 6:
+ _a.sent();
+ return [3 /*break*/, 9];
+ case 7: return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.set.single({ name: slayerData[0].task, count: slayerData[0].count })];
+ case 8:
+ _a.sent();
+ _a.label = 9;
+ case 9:
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.animate.loadingStop();
+ return [4 /*yield*/, timer(_settings__WEBPACK_IMPORTED_MODULE_3__.controller.data.autoCapture.dialogTimer)];
+ case 10:
+ _a.sent();
+ loopRunning = false;
+ return [3 /*break*/, 21];
+ case 11:
+ if (!_settings__WEBPACK_IMPORTED_MODULE_3__.controller.data.autoCapture.counter) return [3 /*break*/, 20];
+ return [4 /*yield*/, counterReader.read(buffer)];
+ case 12:
+ counterData = _a.sent();
+ if (!counterData) return [3 /*break*/, 18];
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.animate.loading();
+ if (!(counterData.reaper && (_dochandler__WEBPACK_IMPORTED_MODULE_4__.main.reaperLoaded || counterData.task != null))) return [3 /*break*/, 14];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.set.reaper({ name: counterData.task, count: counterData.count })];
+ case 13:
+ _a.sent();
+ return [3 /*break*/, 16];
+ case 14:
+ if (!(!counterData.reaper && (_dochandler__WEBPACK_IMPORTED_MODULE_4__.main.singleLoaded || counterData.task != null))) return [3 /*break*/, 16];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.set.single({ name: counterData.task, count: counterData.count })];
+ case 15:
+ _a.sent();
+ _a.label = 16;
+ case 16:
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.animate.loadingStop();
+ return [4 /*yield*/, timer(_settings__WEBPACK_IMPORTED_MODULE_3__.controller.data.autoCapture.counterTimer)];
+ case 17:
+ _a.sent();
+ loopRunning = false;
+ return [3 /*break*/, 19];
+ case 18:
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.animate.loadingStop();
+ loopRunning = false;
+ _a.label = 19;
+ case 19: return [3 /*break*/, 21];
+ case 20:
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.animate.loadingStop();
+ loopRunning = false;
+ _a.label = 21;
+ case 21: return [2 /*return*/];
+ }
+ });
+ });
+}
+// Search for tasks
+function searchTasks(value) {
+ return __awaiter(this, void 0, void 0, function () {
+ var tool, lookup, tasks, _i, lookup_1, term, data;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (!!value) return [3 /*break*/, 2];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.get.searchInput()];
+ case 1:
+ value = _a.sent();
+ _a.label = 2;
+ case 2:
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.reset.searchBox();
+ _settings__WEBPACK_IMPORTED_MODULE_3__.search.addHistory(value);
+ if (!(value.length == 0 && (searchResult || !_settings__WEBPACK_IMPORTED_MODULE_3__.controller.data.autoCapture.enabled))) return [3 /*break*/, 4];
+ searchResult = false;
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.toggle.searchText();
+ return [4 /*yield*/, findTask()];
+ case 3:
+ _a.sent();
+ return [2 /*return*/];
+ case 4:
+ if (value.startsWith("devTools")) {
+ tool = value.includes(" ") ? value.substring(value.indexOf(" ") + 1) : value;
+ _settings__WEBPACK_IMPORTED_MODULE_3__.executeDevTools(tool);
+ return [2 /*return*/];
+ }
+ else if (value.toLowerCase().includes("suggest")) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.set.suggested();
+ return [2 /*return*/];
+ }
+ _a.label = 5;
+ case 5:
+ searchResult = true;
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.toggle.searchText();
+ lookup = value.includes("|") ?
+ [value.substring(0, value.indexOf("|")), value.substring(value.indexOf("|") + 1)] :
+ [value];
+ tasks = [];
+ _i = 0, lookup_1 = lookup;
+ _a.label = 6;
+ case 6:
+ if (!(_i < lookup_1.length)) return [3 /*break*/, 9];
+ term = lookup_1[_i];
+ return [4 /*yield*/, searchAlgo.lookup(term, lookup.length > 1)];
+ case 7:
+ data = _a.sent();
+ if (data) {
+ _logger__WEBPACK_IMPORTED_MODULE_5__.log("Search for (Reaper/Slayer Assignment, Alias, or Creature): " + data.task);
+ tasks.push({ name: data.task, reaper: data.reaper });
+ }
+ _a.label = 8;
+ case 8:
+ _i++;
+ return [3 /*break*/, 6];
+ case 9:
+ if (!(tasks.length > 1)) return [3 /*break*/, 11];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.set.double({ name: tasks[0].name, count: 1 }, { name: tasks[1].name, count: 1 })];
+ case 10:
+ _a.sent();
+ return [3 /*break*/, 15];
+ case 11:
+ if (!(tasks.length == 1)) return [3 /*break*/, 15];
+ if (!tasks[0].reaper) return [3 /*break*/, 13];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.set.reaper({ name: tasks[0].name, count: 1 })];
+ case 12:
+ _a.sent();
+ return [3 /*break*/, 15];
+ case 13: return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.set.single({ name: tasks[0].name, count: 1 })];
+ case 14:
+ _a.sent();
+ _a.label = 15;
+ case 15:
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.animate.loadingStop();
+ if (!!_settings__WEBPACK_IMPORTED_MODULE_3__.controller.data.autoCapture.search) return [3 /*break*/, 17];
+ return [4 /*yield*/, timer(_settings__WEBPACK_IMPORTED_MODULE_3__.controller.data.autoCapture.searchTimer)];
+ case 16:
+ _a.sent();
+ searchResult = false;
+ _dochandler__WEBPACK_IMPORTED_MODULE_4__.main.toggle.searchText();
+ _a.label = 17;
+ case 17: return [2 /*return*/];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./fonts/aa_10px_mono.fontmeta.json":
+/*!******************************************!*\
+ !*** ./fonts/aa_10px_mono.fontmeta.json ***!
+ \******************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+module.exports = __webpack_require__.p + "aa_10px_mono.fontmeta.json";
+
+/***/ }),
+
+/***/ "./fonts/aa_8px_mono.fontmeta.json":
+/*!*****************************************!*\
+ !*** ./fonts/aa_8px_mono.fontmeta.json ***!
+ \*****************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+module.exports = __webpack_require__.p + "aa_8px_mono.fontmeta.json";
+
+/***/ }),
+
+/***/ "./appconfig.json":
+/*!************************!*\
+ !*** ./appconfig.json ***!
+ \************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+module.exports = __webpack_require__.p + "appconfig.json";
+
+/***/ }),
+
+/***/ "./index.html":
+/*!********************!*\
+ !*** ./index.html ***!
+ \********************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+module.exports = __webpack_require__.p + "index.html";
+
+/***/ }),
+
+/***/ "canvas":
+/*!*************************!*\
+ !*** external "canvas" ***!
+ \*************************/
+/***/ ((module) => {
+
+"use strict";
+if(typeof __WEBPACK_EXTERNAL_MODULE_canvas__ === 'undefined') { var e = new Error("Cannot find module 'canvas'"); e.code = 'MODULE_NOT_FOUND'; throw e; }
+
+module.exports = __WEBPACK_EXTERNAL_MODULE_canvas__;
+
+/***/ }),
+
+/***/ "electron/common":
+/*!**********************************!*\
+ !*** external "electron/common" ***!
+ \**********************************/
+/***/ ((module) => {
+
+"use strict";
+if(typeof __WEBPACK_EXTERNAL_MODULE_electron_common__ === 'undefined') { var e = new Error("Cannot find module 'electron/common'"); e.code = 'MODULE_NOT_FOUND'; throw e; }
+
+module.exports = __WEBPACK_EXTERNAL_MODULE_electron_common__;
+
+/***/ }),
+
+/***/ "sharp":
+/*!************************!*\
+ !*** external "sharp" ***!
+ \************************/
+/***/ ((module) => {
+
+"use strict";
+if(typeof __WEBPACK_EXTERNAL_MODULE_sharp__ === 'undefined') { var e = new Error("Cannot find module 'sharp'"); e.code = 'MODULE_NOT_FOUND'; throw e; }
+
+module.exports = __WEBPACK_EXTERNAL_MODULE_sharp__;
+
+/***/ }),
+
+/***/ "../node_modules/alt1/dist/base/index.js":
+/*!***********************************************!*\
+ !*** ../node_modules/alt1/dist/base/index.js ***!
+ \***********************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(true)
+ module.exports = factory((function webpackLoadOptionalExternalModule() { try { return __webpack_require__(/*! sharp */ "sharp"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return __webpack_require__(/*! canvas */ "canvas"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return __webpack_require__(/*! electron/common */ "electron/common"); } catch(e) {} }()));
+ else {}
+})(globalThis, (__WEBPACK_EXTERNAL_MODULE_sharp__, __WEBPACK_EXTERNAL_MODULE_canvas__, __WEBPACK_EXTERNAL_MODULE_electron_common__) => {
+return /******/ (() => { // webpackBootstrap
+/******/ "use strict";
+/******/ var __webpack_modules__ = ({
+
+/***/ "./src/base/alt1api.ts":
+/*!*****************************!*\
+ !*** ./src/base/alt1api.ts ***!
+ \*****************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+
+
+/***/ }),
+
+/***/ "./src/base/declarations.ts":
+/*!**********************************!*\
+ !*** ./src/base/declarations.ts ***!
+ \**********************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+
+
+/***/ }),
+
+/***/ "./src/base/imagedata-extensions.ts":
+/*!******************************************!*\
+ !*** ./src/base/imagedata-extensions.ts ***!
+ \******************************************/
+/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_2062__) {
+
+
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.ImageData = void 0;
+const a1lib = __importStar(__nested_webpack_require_2062__(/*! ./index */ "./src/base/index.ts"));
+const nodeimports = __importStar(__nested_webpack_require_2062__(/*! ./nodepolyfill */ "./src/base/nodepolyfill.ts"));
+// //TODO revamp this madness a bit?
+// (function () {
+// var globalvar = (typeof self != "undefined" ? self : (typeof (global as any) != "undefined" ? (global as any) : null)) as any;
+// //use the node-canvas version when on node
+// if (typeof globalvar.ImageData == "undefined") {
+// let nodecnv = requireNodeCanvas();
+// globalvar.ImageData = nodecnv.ImageData;
+// }
+// var fill = typeof globalvar.ImageData == "undefined";
+// //should never be reach anymore
+// var constr = function (this: any) {
+// var i = 0;
+// var data = (arguments[i] instanceof Uint8ClampedArray ? arguments[i++] : null);
+// var width = arguments[i++];
+// var height = arguments[i++];
+// if (fill) {
+// if (!data) { data = new Uint8ClampedArray(width * height * 4); }
+// this.width = width;
+// this.height = height;
+// this.data = data;
+// }
+// else if (oldconstr) {
+// return (data ? new oldconstr(data, width, height) : new oldconstr(width, height));
+// } else {
+// var canvas = document.createElement('canvas');
+// canvas.width = width;
+// canvas.height = height;
+// var ctx = canvas.getContext("2d")!;
+// var imageData = ctx.createImageData(width, height);
+// if (data) { imageData.data.set(data); }
+// return imageData;
+// }
+// }
+// var oldconstr = globalvar.ImageData;
+// if (typeof document != "undefined") {
+// try {
+// new oldconstr(1, 1);
+// } catch (e) {
+// //direct constructor call not allowed in ie
+// oldconstr = null;
+// }
+// }
+// if (!fill) { constr.prototype = globalvar.ImageData.prototype; }
+// globalvar.ImageData = constr;
+// ImageData = constr as any;
+// })();
+(function () {
+ var globalvar = (typeof self != "undefined" ? self : (typeof __nested_webpack_require_2062__.g != "undefined" ? __nested_webpack_require_2062__.g : null));
+ var filltype = typeof globalvar.ImageData == "undefined" || typeof globalvar.document == "undefined";
+ var fillconstr = filltype;
+ if (!filltype) {
+ var oldconstr = globalvar.ImageData;
+ try {
+ let data = new Uint8ClampedArray(4);
+ data[0] = 1;
+ let a = new globalvar.ImageData(data, 1, 1);
+ fillconstr = a.data[0] != 1;
+ }
+ catch (e) {
+ fillconstr = true;
+ }
+ }
+ if (fillconstr) {
+ var constr = function ImageDataShim() {
+ var i = 0;
+ var data = (arguments[i] instanceof Uint8ClampedArray ? arguments[i++] : null);
+ var width = arguments[i++];
+ var height = arguments[i++];
+ if (filltype) {
+ if (!data) {
+ data = new Uint8ClampedArray(width * height * 4);
+ }
+ this.width = width;
+ this.height = height;
+ this.data = data;
+ }
+ else if (fillconstr) {
+ //WARNING This branch of code does not use the same pixel data backing store
+ //(problem with wasm, however all wasm browser have a native constructor (unless asm.js is used))
+ var canvas = document.createElement('canvas');
+ canvas.width = width;
+ canvas.height = height;
+ var ctx = canvas.getContext("2d");
+ var imageData = ctx.createImageData(width, height);
+ if (data) {
+ imageData.data.set(data);
+ }
+ return imageData;
+ }
+ // else {
+ // //oh no...
+ // //we need this monstrocity in order to call the native constructor with variable number of args
+ // //when es5 transpile is enable (that strips the spread operator)
+ // return new (Function.prototype.bind.apply(oldconstr, [null,...arguments]));
+ // }
+ };
+ if (!filltype) {
+ constr.prototype = globalvar.ImageData.prototype;
+ }
+ globalvar.ImageData = constr;
+ exports.ImageData = constr;
+ }
+ else {
+ exports.ImageData = globalvar.ImageData;
+ }
+})();
+//Recast into a drawable imagedata class on all platforms, into a normal browser ImageData on browsers or a node-canvas imagedata on nodejs
+exports.ImageData.prototype.toDrawableData = function () {
+ if (typeof document == "undefined") {
+ return nodeimports.imageDataToDrawable(this);
+ }
+ else {
+ return this;
+ }
+};
+exports.ImageData.prototype.putImageData = function (buf, cx, cy) {
+ for (var dx = 0; dx < buf.width; dx++) {
+ for (var dy = 0; dy < buf.height; dy++) {
+ var i1 = (dx + cx) * 4 + (dy + cy) * 4 * this.width;
+ var i2 = dx * 4 + dy * 4 * buf.width;
+ this.data[i1] = buf.data[i2];
+ this.data[i1 + 1] = buf.data[i2 + 1];
+ this.data[i1 + 2] = buf.data[i2 + 2];
+ this.data[i1 + 3] = buf.data[i2 + 3];
+ }
+ }
+};
+exports.ImageData.prototype.pixelOffset = function (x, y) {
+ return x * 4 + y * this.width * 4;
+};
+//creates a hash of a portion of the buffer used to check for changes
+exports.ImageData.prototype.getPixelHash = function (rect) {
+ if (!rect) {
+ rect = new a1lib.Rect(0, 0, this.width, this.height);
+ }
+ var hash = 0;
+ for (var x = rect.x; x < rect.x + rect.width; x++) {
+ for (var y = rect.y; y < rect.y + rect.height; y++) {
+ var i = x * 4 + y * 4 * this.width;
+ hash = (((hash << 5) - hash) + this.data[i]) | 0;
+ hash = (((hash << 5) - hash) + this.data[i + 1]) | 0;
+ hash = (((hash << 5) - hash) + this.data[i + 2]) | 0;
+ hash = (((hash << 5) - hash) + this.data[i + 3]) | 0;
+ }
+ }
+ return hash;
+};
+exports.ImageData.prototype.clone = function (rect) {
+ return this.toImage(rect).getContext("2d").getImageData(0, 0, rect.width, rect.height);
+};
+exports.ImageData.prototype.show = function (x = 5, y = 5, zoom = 1) {
+ if (typeof document == "undefined") {
+ console.error("need a document to show an imagedata object");
+ return;
+ }
+ var imgs = document.getElementsByClassName("debugimage");
+ while (imgs.length > exports.ImageData.prototype.show.maxImages) {
+ imgs[0].remove();
+ }
+ var el = this.toImage();
+ el.classList.add("debugimage");
+ el.style.position = "absolute";
+ el.style.zIndex = "1000";
+ el.style.left = x / zoom + "px";
+ el.style.top = y / zoom + "px";
+ el.style.background = "purple";
+ el.style.cursor = "pointer";
+ el.style.imageRendering = "pixelated";
+ el.style.outline = "1px solid #0f0";
+ el.style.width = (this.width == 1 ? 100 : this.width) * zoom + "px";
+ el.style.height = (this.height == 1 ? 100 : this.height) * zoom + "px";
+ el.onclick = function () { el.remove(); };
+ document.body.appendChild(el);
+ return el;
+};
+exports.ImageData.prototype.show.maxImages = 10;
+exports.ImageData.prototype.toImage = function (rect) {
+ if (!rect) {
+ rect = new a1lib.Rect(0, 0, this.width, this.height);
+ }
+ if (typeof document != "undefined") {
+ var el = document.createElement("canvas");
+ el.width = rect.width;
+ el.height = rect.height;
+ }
+ else {
+ el = nodeimports.createCanvas(rect.width, rect.height);
+ }
+ var ctx = el.getContext("2d");
+ ctx.putImageData(this.toDrawableData(), -rect.x, -rect.y);
+ return el;
+};
+exports.ImageData.prototype.getPixel = function (x, y) {
+ var i = x * 4 + y * 4 * this.width;
+ return [this.data[i], this.data[i + 1], this.data[i + 2], this.data[i + 3]];
+};
+exports.ImageData.prototype.getPixelValueSum = function (x, y) {
+ var i = x * 4 + y * 4 * this.width;
+ return this.data[i] + this.data[i + 1] + this.data[i + 2];
+};
+exports.ImageData.prototype.getPixelInt = function (x, y) {
+ var i = x * 4 + y * 4 * this.width;
+ return (this.data[i + 3] << 24) + (this.data[i + 0] << 16) + (this.data[i + 1] << 8) + (this.data[i + 2] << 0);
+};
+exports.ImageData.prototype.getColorDifference = function (x, y, r, g, b, a = 255) {
+ var i = x * 4 + y * 4 * this.width;
+ return Math.abs(this.data[i] - r) + Math.abs(this.data[i + 1] - g) + Math.abs(this.data[i + 2] - b) * a / 255;
+};
+exports.ImageData.prototype.setPixel = function (x, y, ...color) {
+ var r, g, b, a;
+ var [r, g, b, a] = (Array.isArray(color[0]) ? color[0] : color);
+ var i = x * 4 + y * 4 * this.width;
+ this.data[i] = r;
+ this.data[i + 1] = g;
+ this.data[i + 2] = b;
+ this.data[i + 3] = a == undefined ? 255 : a;
+};
+exports.ImageData.prototype.setPixelInt = function (x, y, color) {
+ var i = x * 4 + y * 4 * this.width;
+ this.data[i] = (color >> 24) & 0xff;
+ this.data[i + 1] = (color >> 16) & 0xff;
+ this.data[i + 2] = (color >> 8) & 0xff;
+ this.data[i + 3] = (color >> 0) & 0xff;
+};
+exports.ImageData.prototype.toFileBytes = function (format, quality) {
+ if (typeof HTMLCanvasElement != "undefined") {
+ return new Promise(d => this.toImage().toBlob(b => {
+ var r = new FileReader();
+ r.readAsArrayBuffer(b);
+ r.onload = () => d(new Uint8Array(r.result));
+ }, format, quality));
+ }
+ else {
+ return nodeimports.imageDataToFileBytes(this, format, quality);
+ }
+};
+exports.ImageData.prototype.toPngBase64 = function () {
+ if (typeof HTMLCanvasElement != "undefined") {
+ var str = this.toImage().toDataURL("image/png");
+ return str.slice(str.indexOf(",") + 1);
+ }
+ else {
+ throw new Error("synchronous image conversion not supported in nodejs, try using ImageData.prototype.toFileBytes");
+ }
+};
+exports.ImageData.prototype.pixelCompare = function (buf, x = 0, y = 0, max) {
+ return a1lib.ImageDetect.simpleCompare(this, buf, x, y, max);
+};
+exports.ImageData.prototype.copyTo = function (target, sourcex, sourcey, width, height, targetx, targety) {
+ //convince v8 that these are 31bit uints
+ const targetwidth = target.width | 0;
+ const thiswidth = this.width | 0;
+ const copywidth = width | 0;
+ const fastwidth = Math.floor(width / 4) * 4;
+ const thisdata = new Int32Array(this.data.buffer, this.data.byteOffset, this.data.byteLength / 4);
+ const targetdata = new Int32Array(target.data.buffer, target.data.byteOffset, target.data.byteLength / 4);
+ for (let cy = 0; cy < height; cy++) {
+ let cx = 0;
+ let it = (cx + targetx) + (cy + targety) * targetwidth;
+ let is = (cx + sourcex) + (cy + sourcey) * thiswidth;
+ //copy 4 pixels per iter (xmm)
+ for (; cx < fastwidth; cx += 4) {
+ targetdata[it] = thisdata[is];
+ targetdata[it + 1] = thisdata[is + 1];
+ targetdata[it + 2] = thisdata[is + 2];
+ targetdata[it + 3] = thisdata[is + 3];
+ it += 4;
+ is += 4;
+ }
+ //copy remainder per pixel
+ for (; cx < copywidth; cx++) {
+ targetdata[it] = thisdata[is];
+ it += 1;
+ is += 1;
+ }
+ }
+};
+if (typeof HTMLImageElement != "undefined") {
+ HTMLImageElement.prototype.toBuffer = function (x = 0, y = 0, w = this.width, h = this.height) {
+ var cnv = document.createElement("canvas");
+ cnv.width = w;
+ cnv.height = h;
+ var ctx = cnv.getContext("2d");
+ ctx.drawImage(this, -x, -y);
+ return ctx.getImageData(0, 0, w, h);
+ };
+ HTMLImageElement.prototype.toCanvas = function (x = 0, y = 0, w = this.width, h = this.height) {
+ var cnv = document.createElement("canvas");
+ cnv.width = w;
+ cnv.height = h;
+ var ctx = cnv.getContext("2d");
+ ctx.drawImage(this, -x, -y);
+ return cnv;
+ };
+}
+
+
+/***/ }),
+
+/***/ "./src/base/imagedetect.ts":
+/*!*********************************!*\
+ !*** ./src/base/imagedetect.ts ***!
+ \*********************************/
+/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_15248__) {
+
+
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.ImageDataSet = exports.webpackImages = exports.asyncMap = exports.coldif = exports.simpleCompareRMSE = exports.simpleCompare = exports.findSubbuffer = exports.findSubimage = exports.clearPngColorspace = exports.isPngBuffer = exports.imageDataFromFileBuffer = exports.imageDataFromBase64 = exports.imageDataFromUrl = void 0;
+const imgref_1 = __nested_webpack_require_15248__(/*! ./imgref */ "./src/base/imgref.ts");
+const wapper = __importStar(__nested_webpack_require_15248__(/*! ./wrapper */ "./src/base/wrapper.ts"));
+const nodeimports = __importStar(__nested_webpack_require_15248__(/*! ./nodepolyfill */ "./src/base/nodepolyfill.ts"));
+const _1 = __nested_webpack_require_15248__(/*! . */ "./src/base/index.ts");
+/**
+* Downloads an image and returns the ImageData
+* Make sure the png image does not have a sRGB chunk or the resulting pixels will differ for different users!!!
+* @param url http(s) or data url to the image
+*/
+async function imageDataFromUrl(url) {
+ if (typeof Image != "undefined") {
+ var img = new Image();
+ img.crossOrigin = "crossorigin";
+ return await new Promise((done, fail) => {
+ img.onload = function () { done(img.toBuffer()); };
+ img.onerror = fail;
+ img.src = url;
+ });
+ }
+ else {
+ var hdr = "data:image/png;base64,";
+ if (url.startsWith(hdr)) {
+ return imageDataFromBase64(url.slice(hdr.length));
+ }
+ throw new Error("loading remote images in nodejs has been disabled, load the raw bytes and use imageDataFromNodeBuffer instead");
+ }
+}
+exports.imageDataFromUrl = imageDataFromUrl;
+/**
+* Loads an ImageData object from a base64 encoded png image
+* Make sure the png image does not have a sRGB chunk or the resulting pixels will differ for different users!!!
+* @param data a base64 encoded png image
+*/
+async function imageDataFromBase64(data) {
+ if (typeof Image != "undefined") {
+ return imageDataFromUrl("data:image/png;base64," + data);
+ }
+ else {
+ return nodeimports.imageDataFromBase64(data);
+ }
+}
+exports.imageDataFromBase64 = imageDataFromBase64;
+/**
+ * Loads an ImageData object directly from a png encoded file buffer
+ * This method ensures that png color space headers are taken care off
+ * @param data The bytes of a png file
+ */
+async function imageDataFromFileBuffer(data) {
+ clearPngColorspace(data);
+ if (typeof Image != "undefined") {
+ let blob = new Blob([data], { type: "image/png" });
+ let url = URL.createObjectURL(blob);
+ let r = await imageDataFromUrl(url);
+ URL.revokeObjectURL(url);
+ return r;
+ }
+ else {
+ return nodeimports.imageDataFromBuffer(data);
+ }
+}
+exports.imageDataFromFileBuffer = imageDataFromFileBuffer;
+/**
+* Checks if a given byte array is a png file (by checking for ?PNG as first 4 bytes)
+* @param bytes Raw bytes of the png file
+*/
+function isPngBuffer(bytes) {
+ return bytes[0] == 137 && bytes[1] == 80 && bytes[2] == 78 && bytes[3] == 71;
+}
+exports.isPngBuffer = isPngBuffer;
+/**
+* Resets the colorspace data in the png file.
+* This makes sure the browser renders the exact colors in the file instead of filtering it in order to obtain the best real life representation of
+* what it looked like on the authors screen. (this feature is often broken and not supported)
+* For example a round trip printscreen -> open in browser results in different colors than the original
+* @param data Raw bytes of the png file
+*/
+function clearPngColorspace(data) {
+ if (!isPngBuffer(data)) {
+ throw new Error("non-png image received");
+ }
+ var i = 8;
+ while (i < data.length) {
+ var length = data[i++] * 0x1000000 + data[i++] * 0x10000 + data[i++] * 0x100 + data[i++];
+ var ancillary = !!((data[i] >> 5) & 1);
+ var chunkname = String.fromCharCode(data[i], data[i + 1], data[i + 2], data[i + 3]);
+ var chunkid = chunkname.toLowerCase();
+ if (chunkid != "trns" && ancillary) {
+ data[i + 0] = "n".charCodeAt(0);
+ data[i + 1] = "o".charCodeAt(0);
+ data[i + 2] = "P".charCodeAt(0);
+ data[i + 3] = "E".charCodeAt(0);
+ //calculate new chunk checksum
+ //http://www.libpng.org/pub/png/spec/1.2/PNG-CRCAppendix.html
+ var end = i + 4 + length;
+ var crc = 0xffffffff;
+ //should be fast enough like this
+ var bitcrc = function (bit) {
+ for (var k = 0; k < 8; k++) {
+ if (bit & 1) {
+ bit = 0xedb88320 ^ (bit >>> 1);
+ }
+ else {
+ bit = bit >>> 1;
+ }
+ }
+ return bit;
+ };
+ for (var a = i; a < end; a++) {
+ if (a >= i + 4) {
+ data[a] = 0;
+ }
+ var bit = data[a];
+ crc = bitcrc((crc ^ bit) & 0xff) ^ (crc >>> 8);
+ }
+ crc = crc ^ 0xffffffff;
+ //new chunk checksum
+ data[i + 4 + length + 0] = (crc >> 24) & 0xff;
+ data[i + 4 + length + 1] = (crc >> 16) & 0xff;
+ data[i + 4 + length + 2] = (crc >> 8) & 0xff;
+ data[i + 4 + length + 3] = (crc >> 0) & 0xff;
+ }
+ if (chunkname == "IEND") {
+ break;
+ }
+ i += 4; //type
+ i += length; //data
+ i += 4; //crc
+ }
+}
+exports.clearPngColorspace = clearPngColorspace;
+/**
+* finds the given needle ImageBuffer in the given haystack ImgRef this function uses the best optimized available
+* code depending on the type of the haystack. It will use fast c# searching if the haystack is an ImgRefBind, js searching
+* is used otherwise.
+* the checklist argument is no longer used and should ignored or null/undefined
+* The optional sx,sy,sw,sh arguments indicate a bounding rectangle in which to search the needle. The rectangle should be bigger than the needle
+* @returns An array of points where the needle is found. The array is empty if none are found
+*/
+function findSubimage(haystackImgref, needleBuffer, sx = 0, sy = 0, sw = haystackImgref.width, sh = haystackImgref.height) {
+ if (!haystackImgref) {
+ throw new TypeError();
+ }
+ if (!needleBuffer) {
+ throw new TypeError();
+ }
+ var max = 30;
+ //check if we can do this in alt1
+ if (haystackImgref instanceof imgref_1.ImgRefBind && wapper.hasAlt1 && alt1.bindFindSubImg) {
+ var needlestr = wapper.encodeImageString(needleBuffer);
+ var r = alt1.bindFindSubImg(haystackImgref.handle, needlestr, needleBuffer.width, sx, sy, sw, sh);
+ if (!r) {
+ throw new wapper.Alt1Error();
+ }
+ return JSON.parse(r);
+ }
+ return findSubbuffer(haystackImgref.read(), needleBuffer, sx, sy, sw, sh);
+}
+exports.findSubimage = findSubimage;
+/**
+* Uses js to find the given needle ImageBuffer in the given haystack ImageBuffer. It is better to use the alt1.bind- functions in
+* combination with a1nxt.findsubimg.
+* the optional sx,sy,sw,sh arguments indicate a bounding rectangle in which to search.
+* @returns An array of points where the needle is found. The array is empty if none are found
+*/
+function findSubbuffer(haystack, needle, sx = 0, sy = 0, sw = haystack.width, sh = haystack.height) {
+ var r = [];
+ var maxdif = 30;
+ var maxresults = 50;
+ var needlestride = needle.width * 4;
+ var heystackstride = haystack.width * 4;
+ //built list of non trans pixel to check
+ var checkList = [];
+ for (var y = 0; y < needle.height; y++) {
+ for (var x = 0; x < needle.width; x++) {
+ var i = x * 4 + y * needlestride;
+ if (needle.data[i + 3] == 255) {
+ checkList.push({ x: x, y: y });
+ }
+ if (checkList.length == 10) {
+ break;
+ }
+ }
+ if (checkList.length == 10) {
+ break;
+ }
+ }
+ var cw = (sx + sw) - needle.width;
+ var ch = (sy + sh) - needle.height;
+ var checklength = checkList.length;
+ for (var y = sy; y <= ch; y++) {
+ outer: for (var x = sx; x <= cw; x++) {
+ for (var a = 0; a < checklength; a++) {
+ var i1 = (x + checkList[a].x) * 4 + (y + checkList[a].y) * heystackstride;
+ var i2 = checkList[a].x * 4 + checkList[a].y * needlestride;
+ var d = 0;
+ d = d + Math.abs(haystack.data[i1 + 0] - needle.data[i2 + 0]) | 0;
+ d = d + Math.abs(haystack.data[i1 + 1] - needle.data[i2 + 1]) | 0;
+ d = d + Math.abs(haystack.data[i1 + 2] - needle.data[i2 + 2]) | 0;
+ d *= 255 / needle.data[i2 + 3];
+ if (d > maxdif) {
+ continue outer;
+ }
+ }
+ if (simpleCompare(haystack, needle, x, y, maxdif) != Infinity) {
+ r.push({ x, y });
+ if (r.length > maxresults) {
+ return r;
+ }
+ }
+ }
+ }
+ return r;
+}
+exports.findSubbuffer = findSubbuffer;
+/**
+* Compares two images and returns the average color difference per pixel between them
+* @param max The max color difference at any point in the image before short circuiting the function and returning Infinity. set to -1 to always continue.
+* @returns The average color difference per pixel or Infinity if the difference is more than max at any point in the image
+*/
+function simpleCompare(bigbuf, checkbuf, x, y, max = 30) {
+ if (x < 0 || y < 0) {
+ throw new RangeError();
+ }
+ if (x + checkbuf.width > bigbuf.width || y + checkbuf.height > bigbuf.height) {
+ throw new RangeError();
+ }
+ if (max == -1) {
+ max = 255 * 4;
+ }
+ var dif = 0;
+ for (var step = 8; step >= 1; step /= 2) {
+ for (var cx = 0; cx < checkbuf.width; cx += step) {
+ for (var cy = 0; cy < checkbuf.height; cy += step) {
+ var i1 = (x + cx) * 4 + (y + cy) * bigbuf.width * 4;
+ var i2 = cx * 4 + cy * checkbuf.width * 4;
+ var d = 0;
+ d = d + Math.abs(bigbuf.data[i1 + 0] - checkbuf.data[i2 + 0]) | 0;
+ d = d + Math.abs(bigbuf.data[i1 + 1] - checkbuf.data[i2 + 1]) | 0;
+ d = d + Math.abs(bigbuf.data[i1 + 2] - checkbuf.data[i2 + 2]) | 0;
+ d *= checkbuf.data[i2 + 3] / 255;
+ if (step == 1) {
+ dif += d;
+ }
+ if (d > max) {
+ return Infinity;
+ }
+ }
+ }
+ }
+ return dif / checkbuf.width / checkbuf.height;
+}
+exports.simpleCompare = simpleCompare;
+/**
+* Calculates the root mean square error between the two buffers at the given coordinate, this method can be used in situations with significant blur or
+* transparency, it does not bail early on non-matching images like simpleCompare does so it can be expected to be much slower when called often.
+* @returns The root mean square error beteen the images, high single pixel errors are penalized more than consisten low errors. return of 0 means perfect match.
+*/
+function simpleCompareRMSE(bigbuf, checkbuf, x, y) {
+ if (x < 0 || y < 0) {
+ throw new RangeError();
+ }
+ if (x + checkbuf.width > bigbuf.width || y + checkbuf.height > bigbuf.height) {
+ throw new RangeError();
+ }
+ var dif = 0;
+ var numpix = 0;
+ for (var cx = 0; cx < checkbuf.width; cx++) {
+ for (var cy = 0; cy < checkbuf.height; cy++) {
+ var i1 = (x + cx) * 4 + (y + cy) * bigbuf.width * 4;
+ var i2 = cx * 4 + cy * checkbuf.width * 4;
+ var d = 0;
+ d = d + Math.abs(bigbuf.data[i1 + 0] - checkbuf.data[i2 + 0]) | 0;
+ d = d + Math.abs(bigbuf.data[i1 + 1] - checkbuf.data[i2 + 1]) | 0;
+ d = d + Math.abs(bigbuf.data[i1 + 2] - checkbuf.data[i2 + 2]) | 0;
+ var weight = checkbuf.data[i2 + 3] / 255;
+ numpix += weight;
+ dif += d * d * weight;
+ }
+ }
+ return Math.sqrt(dif / numpix);
+}
+exports.simpleCompareRMSE = simpleCompareRMSE;
+/**
+* Returns the difference between two colors (scaled to the alpha of the second color)
+*/
+function coldif(r1, g1, b1, r2, g2, b2, a2) {
+ return (Math.abs(r1 - r2) + Math.abs(g1 - g2) + Math.abs(b1 - b2)) * a2 / 255; //only applies alpha for 2nd buffer!
+}
+exports.coldif = coldif;
+/**
+ * Turns map of promises into a map that contains the resolved values after loading.
+ * @param input
+ */
+function asyncMap(input) {
+ var raw = {};
+ var promises = [];
+ for (var a in input) {
+ if (input.hasOwnProperty(a)) {
+ raw[a] = null;
+ promises.push(input[a].then(function (a, i) { raw[a] = i; r[a] = i; }.bind(null, a)));
+ }
+ }
+ var r = {};
+ var promise = Promise.all(promises).then(() => { r.loaded = true; return r; });
+ Object.defineProperty(r, "loaded", { enumerable: false, value: false, writable: true });
+ Object.defineProperty(r, "promise", { enumerable: false, value: promise });
+ Object.defineProperty(r, "raw", { enumerable: false, value: raw });
+ return Object.assign(r, raw);
+}
+exports.asyncMap = asyncMap;
+/**
+* Same as asyncMap, but casts the properties to ImageData in typescript
+*/
+function webpackImages(input) {
+ return asyncMap(input);
+}
+exports.webpackImages = webpackImages;
+class ImageDataSet {
+ constructor() {
+ this.buffers = [];
+ }
+ matchBest(img, x, y, max) {
+ let best = null;
+ let bestscore = max;
+ for (let a = 0; a < this.buffers.length; a++) {
+ let score = img.pixelCompare(this.buffers[a], x, y, bestscore);
+ if (isFinite(score) && (bestscore == undefined || score < bestscore)) {
+ bestscore = score;
+ best = a;
+ }
+ }
+ if (best == null) {
+ return null;
+ }
+ return { index: best, score: bestscore };
+ }
+ static fromFilmStrip(baseimg, width) {
+ if ((baseimg.width % width) != 0) {
+ throw new Error("slice size does not fit in base img");
+ }
+ let r = new ImageDataSet();
+ for (let x = 0; x < baseimg.width; x += width) {
+ r.buffers.push(baseimg.clone(new _1.Rect(x, 0, width, baseimg.height)));
+ }
+ return r;
+ }
+ static fromFilmStripUneven(baseimg, widths) {
+ let r = new ImageDataSet();
+ let x = 0;
+ for (let w of widths) {
+ r.buffers.push(baseimg.clone(new _1.Rect(x, 0, w, baseimg.height)));
+ x += w;
+ if (x > baseimg.width) {
+ throw new Error("sampling filmstrip outside bounds");
+ }
+ }
+ if (x != baseimg.width) {
+ throw new Error("unconsumed pixels left in film strip imagedata");
+ }
+ return r;
+ }
+ static fromAtlas(baseimg, slices) {
+ let r = new ImageDataSet();
+ for (let slice of slices) {
+ r.buffers.push(baseimg.clone(slice));
+ }
+ return r;
+ }
+}
+exports.ImageDataSet = ImageDataSet;
+
+
+/***/ }),
+
+/***/ "./src/base/imgref.ts":
+/*!****************************!*\
+ !*** ./src/base/imgref.ts ***!
+ \****************************/
+/***/ ((__unused_webpack_module, exports, __nested_webpack_require_31629__) => {
+
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.ImgRefData = exports.ImgRefBind = exports.ImgRefCtx = exports.ImgRef = void 0;
+const index_1 = __nested_webpack_require_31629__(/*! ./index */ "./src/base/index.ts");
+/**
+ * Represents an image that might be in different types of memory
+ * This is mostly used to represent images still in Alt1 memory that have
+ * not been transfered to js yet. Various a1lib api's use this type and
+ * choose the most efficient approach based on the memory type
+ */
+class ImgRef {
+ constructor(x, y, w, h) {
+ this.t = "none";
+ this.x = x;
+ this.y = y;
+ this.width = w;
+ this.height = h;
+ }
+ read(x = 0, y = 0, w = this.width, h = this.height) {
+ throw new Error("This imgref (" + this.t + ") does not support toData");
+ }
+ findSubimage(needle, sx = 0, sy = 0, w = this.width, h = this.height) {
+ return index_1.ImageDetect.findSubimage(this, needle, sx, sy, w, h);
+ }
+ toData(x = this.x, y = this.y, w = this.width, h = this.height) {
+ return this.read(x - this.x, y - this.y, w, h);
+ }
+ ;
+ containsArea(rect) {
+ return this.x <= rect.x && this.y <= rect.y && this.x + this.width >= rect.x + rect.width && this.y + this.height >= rect.y + rect.height;
+ }
+}
+exports.ImgRef = ImgRef;
+/**
+ * Represents an image in js render memory (canvas/image tag)
+ */
+class ImgRefCtx extends ImgRef {
+ constructor(img, x = 0, y = 0) {
+ if (img instanceof CanvasRenderingContext2D) {
+ super(x, y, img.canvas.width, img.canvas.height);
+ this.ctx = img;
+ }
+ else {
+ super(x, y, img.width, img.height);
+ var cnv = (img instanceof HTMLCanvasElement ? img : img.toCanvas());
+ this.ctx = cnv.getContext("2d");
+ }
+ this.t = "ctx";
+ }
+ read(x = 0, y = 0, w = this.width, h = this.height) {
+ return this.ctx.getImageData(x, y, w, h);
+ }
+}
+exports.ImgRefCtx = ImgRefCtx;
+/**
+ * Represents in image in Alt1 memory, This type of image can be searched for subimages
+ * very efficiently and transfering the full image to js can be avoided this way
+ */
+class ImgRefBind extends ImgRef {
+ constructor(handle, x = 0, y = 0, w = 0, h = 0) {
+ super(x, y, w, h);
+ this.handle = handle;
+ this.t = "bind";
+ }
+ read(x = 0, y = 0, w = this.width, h = this.height) {
+ return (0, index_1.transferImageData)(this.handle, x, y, w, h);
+ }
+}
+exports.ImgRefBind = ImgRefBind;
+/**
+ * Represents an image in js memory
+ */
+class ImgRefData extends ImgRef {
+ constructor(buf, x = 0, y = 0) {
+ super(x, y, buf.width, buf.height);
+ this.buf = buf;
+ this.t = "data";
+ }
+ read(x = 0, y = 0, w = this.width, h = this.height) {
+ if (x == 0 && y == 0 && w == this.width && h == this.height) {
+ return this.buf;
+ }
+ var r = new ImageData(w, h);
+ for (var b = y; b < y + h; b++) {
+ for (var a = x; a < x + w; a++) {
+ var i1 = (a - x) * 4 + (b - y) * w * 4;
+ var i2 = a * 4 + b * 4 * this.buf.width;
+ r.data[i1] = this.buf.data[i2];
+ r.data[i1 + 1] = this.buf.data[i2 + 1];
+ r.data[i1 + 2] = this.buf.data[i2 + 2];
+ r.data[i1 + 3] = this.buf.data[i2 + 3];
+ }
+ }
+ return r;
+ }
+}
+exports.ImgRefData = ImgRefData;
+
+
+/***/ }),
+
+/***/ "./src/base/index.ts":
+/*!***************************!*\
+ !*** ./src/base/index.ts ***!
+ \***************************/
+/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_35283__) {
+
+
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.ImageDataSet = exports.findSubbuffer = exports.simpleCompare = exports.findSubimage = exports.webpackImages = exports.NodePolyfill = exports.ImageData = exports.Rect = exports.PasteInput = exports.ImageDetect = void 0;
+__nested_webpack_require_35283__(/*! ./declarations */ "./src/base/declarations.ts");
+exports.ImageDetect = __importStar(__nested_webpack_require_35283__(/*! ./imagedetect */ "./src/base/imagedetect.ts"));
+exports.PasteInput = __importStar(__nested_webpack_require_35283__(/*! ./pasteinput */ "./src/base/pasteinput.ts"));
+var rect_1 = __nested_webpack_require_35283__(/*! ./rect */ "./src/base/rect.ts");
+Object.defineProperty(exports, "Rect", ({ enumerable: true, get: function () { return __importDefault(rect_1).default; } }));
+var imagedata_extensions_1 = __nested_webpack_require_35283__(/*! ./imagedata-extensions */ "./src/base/imagedata-extensions.ts");
+Object.defineProperty(exports, "ImageData", ({ enumerable: true, get: function () { return imagedata_extensions_1.ImageData; } }));
+exports.NodePolyfill = __importStar(__nested_webpack_require_35283__(/*! ./nodepolyfill */ "./src/base/nodepolyfill.ts"));
+__exportStar(__nested_webpack_require_35283__(/*! ./imgref */ "./src/base/imgref.ts"), exports);
+__exportStar(__nested_webpack_require_35283__(/*! ./wrapper */ "./src/base/wrapper.ts"), exports);
+var imagedetect_1 = __nested_webpack_require_35283__(/*! ./imagedetect */ "./src/base/imagedetect.ts");
+Object.defineProperty(exports, "webpackImages", ({ enumerable: true, get: function () { return imagedetect_1.webpackImages; } }));
+Object.defineProperty(exports, "findSubimage", ({ enumerable: true, get: function () { return imagedetect_1.findSubimage; } }));
+Object.defineProperty(exports, "simpleCompare", ({ enumerable: true, get: function () { return imagedetect_1.simpleCompare; } }));
+Object.defineProperty(exports, "findSubbuffer", ({ enumerable: true, get: function () { return imagedetect_1.findSubbuffer; } }));
+Object.defineProperty(exports, "ImageDataSet", ({ enumerable: true, get: function () { return imagedetect_1.ImageDataSet; } }));
+
+
+/***/ }),
+
+/***/ "./src/base/nodepolyfill.ts":
+/*!**********************************!*\
+ !*** ./src/base/nodepolyfill.ts ***!
+ \**********************************/
+/***/ ((__unused_webpack_module, exports, __nested_webpack_require_38931__) => {
+
+
+//nodejs and electron polyfills for web api's
+//commented out type info as that breaks webpack with optional dependencies
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.imageDataFromBuffer = exports.imageDataFromBase64 = exports.imageDataToFileBytes = exports.createCanvas = exports.imageDataToDrawable = exports.requireElectronCommon = exports.requireNodeCanvas = exports.requireSharp = exports.polyfillRequire = void 0;
+const index_1 = __nested_webpack_require_38931__(/*! ./index */ "./src/base/index.ts");
+const imagedetect_1 = __nested_webpack_require_38931__(/*! ./imagedetect */ "./src/base/imagedetect.ts");
+var requirefunction = null;
+/**
+ * Call this function to let the libs require extra dependencies on nodejs in order
+ * to polyfill some browser api's (mostly image compression/decompression)
+ * `NodePolifill.polyfillRequire(require);` should solve most cases
+ */
+function polyfillRequire(requirefn) {
+ requirefunction = requirefn;
+}
+exports.polyfillRequire = polyfillRequire;
+function requireSharp() {
+ try {
+ if (requirefunction) {
+ return requirefunction("sharp");
+ }
+ else {
+ return __nested_webpack_require_38931__(/* webpackIgnore: true */ /*! sharp */ "sharp"); // as typeof import("sharp");
+ }
+ }
+ catch (e) { }
+ return null;
+}
+exports.requireSharp = requireSharp;
+function requireNodeCanvas() {
+ //attempt to require sharp first, after loading canvas the module sharp fails to load
+ requireSharp();
+ try {
+ if (requirefunction) {
+ return requirefunction("canvas");
+ }
+ else {
+ return __nested_webpack_require_38931__(/* webpackIgnore: true */ /*! canvas */ "canvas"); // as typeof import("sharp");
+ }
+ }
+ catch (e) { }
+ return null;
+}
+exports.requireNodeCanvas = requireNodeCanvas;
+function requireElectronCommon() {
+ try {
+ if (requirefunction) {
+ return requirefunction("electron/common");
+ }
+ else {
+ return __nested_webpack_require_38931__(/* webpackIgnore: true */ /*! electron/common */ "electron/common");
+ }
+ }
+ catch (e) { }
+ return null;
+}
+exports.requireElectronCommon = requireElectronCommon;
+function imageDataToDrawable(buf) {
+ let nodecnv = requireNodeCanvas();
+ if (!nodecnv) {
+ throw new Error("couldn't find built-in canvas or the module 'canvas'");
+ }
+ return new nodecnv.ImageData(buf.data, buf.width, buf.height);
+}
+exports.imageDataToDrawable = imageDataToDrawable;
+function createCanvas(w, h) {
+ let nodecnv = requireNodeCanvas();
+ if (!nodecnv) {
+ throw new Error("couldn't find built-in canvas or the module 'canvas'");
+ }
+ return nodecnv.createCanvas(w, h);
+}
+exports.createCanvas = createCanvas;
+function flipBGRAtoRGBA(data) {
+ for (let i = 0; i < data.length; i += 4) {
+ let tmp = data[i + 2];
+ data[i + 2] = data[i + 0];
+ data[i + 0] = tmp;
+ }
+}
+async function imageDataToFileBytes(buf, format, quality) {
+ //use the electron API if we're in electron
+ var electronCommon;
+ var sharp;
+ if (electronCommon = requireElectronCommon()) {
+ let nativeImage = electronCommon.nativeImage;
+ //need to copy the buffer in order to flip it without destroying the original
+ let bufcpy = Buffer.from(buf.data.slice(buf.data.byteOffset, buf.data.byteLength));
+ flipBGRAtoRGBA(bufcpy);
+ let nativeimg = nativeImage.createFromBitmap(bufcpy, { width: buf.width, height: buf.height });
+ return nativeimg.toPNG();
+ }
+ else if (sharp = requireSharp()) {
+ let img = sharp(Buffer.from(buf.data.buffer), { raw: { width: buf.width, height: buf.height, channels: 4 } });
+ if (format == "image/png") {
+ img.png();
+ }
+ else if (format == "image/webp") {
+ var opts = { quality: 80 };
+ if (typeof quality == "number") {
+ opts.quality = quality * 100;
+ }
+ img.webp(opts);
+ }
+ else {
+ throw new Error("unknown image format: " + format);
+ }
+ return await img.toBuffer({ resolveWithObject: false }).buffer;
+ }
+ throw new Error("coulnd't find build-in image compression methods or the module 'electron/common' or 'sharp'");
+}
+exports.imageDataToFileBytes = imageDataToFileBytes;
+function imageDataFromBase64(base64) {
+ return imageDataFromBuffer(Buffer.from(base64, "base64"));
+}
+exports.imageDataFromBase64 = imageDataFromBase64;
+async function imageDataFromBuffer(buffer) {
+ (0, imagedetect_1.clearPngColorspace)(buffer);
+ //use the electron API if we're in electron
+ var electronCommon;
+ var nodecnv;
+ if (electronCommon = requireElectronCommon()) {
+ let nativeImage = electronCommon.nativeImage;
+ let img = nativeImage.createFromBuffer(buffer);
+ let pixels = img.toBitmap();
+ let size = img.getSize();
+ let pixbuf = new Uint8ClampedArray(pixels.buffer, pixels.byteOffset, pixels.byteLength);
+ flipBGRAtoRGBA(pixbuf);
+ return new index_1.ImageData(pixbuf, size.width, size.height);
+ }
+ else if (nodecnv = requireNodeCanvas()) {
+ return new Promise((done, err) => {
+ let img = new nodecnv.Image();
+ img.onerror = err;
+ img.onload = () => {
+ var cnv = nodecnv.createCanvas(img.naturalWidth, img.naturalHeight);
+ var ctx = cnv.getContext("2d");
+ ctx.drawImage(img, 0, 0);
+ var data = ctx.getImageData(0, 0, img.naturalWidth, img.naturalHeight);
+ //use our own class
+ done(new index_1.ImageData(data.data, data.width, data.height));
+ };
+ img.src = Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength);
+ });
+ }
+ throw new Error("couldn't find built-in canvas, module 'electron/common' or the module 'canvas'");
+}
+exports.imageDataFromBuffer = imageDataFromBuffer;
+
+
+/***/ }),
+
+/***/ "./src/base/pasteinput.ts":
+/*!********************************!*\
+ !*** ./src/base/pasteinput.ts ***!
+ \********************************/
+/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_45123__) {
+
+
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.fileDialog = exports.start = exports.startDragNDrop = exports.triggerPaste = exports.unlisten = exports.listen = exports.lastref = void 0;
+const index_1 = __nested_webpack_require_45123__(/*! ./index */ "./src/base/index.ts");
+const ImageDetect = __importStar(__nested_webpack_require_45123__(/*! ./imagedetect */ "./src/base/imagedetect.ts"));
+var listeners = [];
+var started = false;
+var dndStarted = false;
+var pasting = false;
+exports.lastref = null;
+function listen(func, errorfunc, dragndrop) {
+ listeners.push({ cb: func, error: errorfunc });
+ if (!started) {
+ start();
+ }
+ if (dragndrop && !dndStarted) {
+ startDragNDrop();
+ }
+}
+exports.listen = listen;
+function unlisten(func) {
+ let i = listeners.findIndex(c => c.cb == func);
+ if (i != -1) {
+ listeners.splice(i, 1);
+ }
+}
+exports.unlisten = unlisten;
+/**
+ * currently used in multiple document situations (iframe), might be removed in the future
+ */
+function triggerPaste(img) {
+ exports.lastref = img;
+ for (var a in listeners) {
+ listeners[a].cb(exports.lastref);
+ }
+}
+exports.triggerPaste = triggerPaste;
+function pasted(img) {
+ pasting = false;
+ let cnv = img instanceof HTMLCanvasElement ? img : img.toCanvas();
+ triggerPaste(new index_1.ImgRefCtx(cnv));
+}
+function error(error, mes) {
+ var _a, _b;
+ pasting = false;
+ for (var a in listeners) {
+ (_b = (_a = listeners[a]).error) === null || _b === void 0 ? void 0 : _b.call(_a, mes, error);
+ }
+}
+function startDragNDrop() {
+ var getitem = function (items) {
+ var foundimage = "";
+ for (var a = 0; a < items.length; a++) {
+ var item = items[a];
+ var m = item.type.match(/^image\/(\w+)$/);
+ if (m) {
+ if (m[1] == "png") {
+ return item;
+ }
+ else {
+ foundimage = m[1];
+ }
+ }
+ }
+ if (foundimage) {
+ error("notpng", "The image you uploaded is not a .png image. Other image type have compression noise and can't be used for image detection.");
+ }
+ return null;
+ };
+ window.addEventListener("dragover", function (e) {
+ e.preventDefault();
+ });
+ window.addEventListener("drop", function (e) {
+ if (!e.dataTransfer) {
+ return;
+ }
+ var item = getitem(e.dataTransfer.items);
+ e.preventDefault();
+ if (!item) {
+ return;
+ }
+ fromFile(item.getAsFile());
+ });
+}
+exports.startDragNDrop = startDragNDrop;
+function start() {
+ if (started) {
+ return;
+ }
+ started = true;
+ //determine if we have a clipboard api
+ //try{a=new Event("clipboard"); a="clipboardData" in a;}
+ //catch(e){a=false;}
+ var ischrome = !!navigator.userAgent.match(/Chrome/) && !navigator.userAgent.match(/Edge/);
+ //old method breaks after chrome 41, revert to good old user agent sniffing
+ //nvm, internet explorer (edge) decided that it wants to be chrome, however fails at delivering
+ //turns out this one is interesting, edge is a hybrid between the paste api's
+ var apipasted = function (e) {
+ if (!e.clipboardData) {
+ return;
+ }
+ for (var a = 0; a < e.clipboardData.items.length; a++) { //loop all data types
+ if (e.clipboardData.items[a].type.indexOf("image") != -1) {
+ var file = e.clipboardData.items[a].getAsFile();
+ if (file) {
+ var img = new Image();
+ img.src = (window.URL || window.webkitURL).createObjectURL(file);
+ if (img.width > 0) {
+ pasted(img);
+ }
+ else {
+ img.onload = function () { pasted(img); };
+ }
+ }
+ }
+ }
+ };
+ if (ischrome) {
+ document.addEventListener("paste", apipasted);
+ }
+ else {
+ var catcher = document.createElement("div");
+ catcher.setAttribute("contenteditable", "");
+ catcher.className = "forcehidden"; //retarded ie safety/bug, cant apply styles using js//TODO i don't even know what's going on
+ catcher.onpaste = function (e) {
+ if (e.clipboardData && e.clipboardData.items) {
+ apipasted(e);
+ return;
+ }
+ setTimeout(function () {
+ var b = catcher.children[0];
+ if (!b || b.tagName != "IMG") {
+ return;
+ }
+ var img = new Image();
+ img.src = b.src;
+ var a = img.src.match(/^data:([\w\/]+);/);
+ if (img.width > 0) {
+ pasted(img);
+ }
+ else {
+ img.onload = function () { pasted(img); };
+ }
+ catcher.innerHTML = "";
+ }, 1);
+ };
+ document.body.appendChild(catcher);
+ }
+ //detect if ctrl-v is pressed and focus catcher if needed
+ document.addEventListener("keydown", function (e) {
+ if (e.target.tagName == "INPUT") {
+ return;
+ }
+ if (e.keyCode != "V".charCodeAt(0) || !e.ctrlKey) {
+ return;
+ }
+ pasting = true;
+ setTimeout(function () {
+ if (pasting) {
+ error("noimg", "You pressed Ctrl+V, but no image was pasted by your browser, make sure your clipboard contains an image, and not a link to an image.");
+ }
+ }, 1000);
+ if (catcher) {
+ catcher.focus();
+ }
+ });
+}
+exports.start = start;
+function fileDialog() {
+ var fileinput = document.createElement("input");
+ fileinput.type = "file";
+ fileinput.accept = "image/png";
+ fileinput.onchange = function () { if (fileinput.files && fileinput.files[0]) {
+ fromFile(fileinput.files[0]);
+ } };
+ fileinput.click();
+ return fileinput;
+}
+exports.fileDialog = fileDialog;
+function fromFile(file) {
+ if (!file) {
+ return;
+ }
+ var reader = new FileReader();
+ reader.onload = function () {
+ var bytearray = new Uint8Array(reader.result);
+ if (ImageDetect.isPngBuffer(bytearray)) {
+ ImageDetect.clearPngColorspace(bytearray);
+ }
+ var blob = new Blob([bytearray], { type: "image/png" });
+ var img = new Image();
+ img.onerror = () => error("invalidfile", "The file you uploaded could not be opened as an image.");
+ var bloburl = URL.createObjectURL(blob);
+ img.src = bloburl;
+ if (img.width > 0) {
+ pasted(img);
+ URL.revokeObjectURL(bloburl);
+ }
+ else {
+ img.onload = function () { pasted(img); URL.revokeObjectURL(bloburl); };
+ }
+ };
+ reader.readAsArrayBuffer(file);
+}
+
+
+/***/ }),
+
+/***/ "./src/base/rect.ts":
+/*!**************************!*\
+ !*** ./src/base/rect.ts ***!
+ \**************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+
+//util class for rectangle maths
+//TODO shit this sucks can we remove it again?
+//more of a shorthand to get {x,y,width,height} than a class
+//kinda starting to like it again
+//TODO remove rant
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+;
+/**
+ * Simple rectangle class with some util functions
+ */
+class Rect {
+ constructor(x, y, w, h) {
+ this.x = x;
+ this.y = y;
+ this.width = w;
+ this.height = h;
+ }
+ static fromArgs(...args) {
+ if (typeof args[0] == "object") {
+ return new Rect(args[0].x, args[0].y, args[0].width, args[0].height);
+ }
+ else if (typeof args[0] == "number" && args.length >= 4) {
+ return new Rect(args[0], args[1], args[2], args[3]);
+ }
+ else {
+ throw new Error("invalid rect args");
+ }
+ }
+ /**
+ * Resizes this Rect to include the full size of a given second rectangle
+ */
+ union(r2) {
+ var x = Math.min(this.x, r2.x);
+ var y = Math.min(this.y, r2.y);
+ this.width = Math.max(this.x + this.width, r2.x + r2.width) - x;
+ this.height = Math.max(this.y + this.height, r2.y + r2.height) - y;
+ this.x = x;
+ this.y = y;
+ return this;
+ }
+ /**
+ * Resizes this Rect to include a given point
+ */
+ includePoint(x, y) {
+ this.union(new Rect(x, y, 0, 0));
+ }
+ /**
+ * Grows the rectangle with the given dimensions
+ */
+ inflate(w, h) {
+ this.x -= w;
+ this.y -= h;
+ this.width += 2 * w;
+ this.height += 2 * h;
+ }
+ /**
+ * Resizes this Rect to the area that overlaps a given Rect
+ * width and height will be set to 0 if the intersection does not exist
+ */
+ intersect(r2) {
+ if (this.x < r2.x) {
+ this.width -= r2.x - this.x;
+ this.x = r2.x;
+ }
+ if (this.y < r2.y) {
+ this.height -= r2.y - this.y;
+ this.y = r2.y;
+ }
+ this.width = Math.min(this.x + this.width, r2.x + r2.width) - this.x;
+ this.height = Math.min(this.y + this.height, r2.y + r2.height) - this.y;
+ if (this.width <= 0 || this.height <= 0) {
+ this.width = 0;
+ this.height = 0;
+ }
+ }
+ /**
+ * Returns wether this Rect has at least one pixel overlap with a given Rect
+ */
+ overlaps(r2) {
+ return this.x < r2.x + r2.width && this.x + this.width > r2.x && this.y < r2.y + r2.height && this.y + this.height > r2.y;
+ }
+ /**
+ * Returns wether a given Rect fits completely inside this Rect
+ * @param r2
+ */
+ contains(r2) {
+ return this.x <= r2.x && this.x + this.width >= r2.x + r2.width && this.y <= r2.y && this.y + this.height >= r2.y + r2.height;
+ }
+ /**
+ * Returns wether a given point lies inside this Rect
+ */
+ containsPoint(x, y) {
+ return this.x <= x && this.x + this.width > x && this.y <= y && this.y + this.height > y;
+ }
+}
+exports["default"] = Rect;
+
+
+/***/ }),
+
+/***/ "./src/base/wrapper.ts":
+/*!*****************************!*\
+ !*** ./src/base/wrapper.ts ***!
+ \*****************************/
+/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_56486__) {
+
+
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.captureStream = exports.captureMultiAsync = exports.captureAsync = exports.ImageStreamReader = exports.once = exports.removeListener = exports.on = exports.addResizeElement = exports.getMousePosition = exports.hasAlt1Version = exports.resetEnvironment = exports.identifyApp = exports.unmixColor = exports.mixColor = exports.encodeImageString = exports.decodeImageString = exports.transferImageData = exports.captureHoldFullRs = exports.captureHoldScreen = exports.captureHold = exports.capture = exports.getdisplaybounds = exports.requireAlt1 = exports.openbrowser = exports.skinName = exports.hasAlt1 = exports.newestversion = exports.Alt1Error = exports.NoAlt1Error = void 0;
+const rect_1 = __importDefault(__nested_webpack_require_56486__(/*! ./rect */ "./src/base/rect.ts"));
+const imgref_1 = __nested_webpack_require_56486__(/*! ./imgref */ "./src/base/imgref.ts");
+const imagedata_extensions_1 = __nested_webpack_require_56486__(/*! ./imagedata-extensions */ "./src/base/imagedata-extensions.ts");
+__nested_webpack_require_56486__(/*! ./alt1api */ "./src/base/alt1api.ts");
+/**
+ * Thrown when a method is called that can not be used outside of Alt1
+ */
+class NoAlt1Error extends Error {
+ constructor() {
+ super();
+ this.message = "This method can not be ran outside of Alt1";
+ }
+}
+exports.NoAlt1Error = NoAlt1Error;
+;
+/**
+ * Thrown when the Alt1 API returns an invalid result
+ * Errors of a different type are throw when internal Alt1 errors occur
+ */
+class Alt1Error extends Error {
+}
+exports.Alt1Error = Alt1Error;
+/**
+ * The latest Alt1 version
+ */
+exports.newestversion = "1.5.5";
+/**
+ * Whether the Alt1 API is available
+ */
+exports.hasAlt1 = (typeof alt1 != "undefined");
+/**
+ * The name of the Alt1 interface skin. (Always "default" if running in a browser)
+ */
+exports.skinName = exports.hasAlt1 ? alt1.skinName : "default";
+/**
+ * Max number of bytes that can be sent by alt1 in one function
+ * Not completely sure why this number is different than window.alt1.maxtranfer
+ */
+var maxtransfer = 4000000;
+/**
+ * Open a link in the default browser
+ * @deprecated use window.open instead
+ */
+function openbrowser(url) {
+ if (exports.hasAlt1) {
+ alt1.openBrowser(url);
+ }
+ else {
+ window.open(url, '_blank');
+ }
+}
+exports.openbrowser = openbrowser;
+/**
+ * Throw if Alt1 API is not available
+ */
+function requireAlt1() {
+ if (!exports.hasAlt1) {
+ throw new NoAlt1Error();
+ }
+}
+exports.requireAlt1 = requireAlt1;
+/**
+ * Returns an object with a rectangle that spans all screens
+ */
+function getdisplaybounds() {
+ if (!exports.hasAlt1) {
+ return false;
+ }
+ return new rect_1.default(alt1.screenX, alt1.screenY, alt1.screenWidth, alt1.screenHeight);
+}
+exports.getdisplaybounds = getdisplaybounds;
+/**
+ * gets an imagebuffer with pixel data about the requested region
+ */
+function capture(...args) {
+ //TODO change null return on error into throw instead (x3)
+ if (!exports.hasAlt1) {
+ throw new NoAlt1Error();
+ }
+ var rect = rect_1.default.fromArgs(...args);
+ if (alt1.capture) {
+ return new imagedata_extensions_1.ImageData(alt1.capture(rect.x, rect.y, rect.width, rect.height), rect.width, rect.height);
+ }
+ var buf = new imagedata_extensions_1.ImageData(rect.width, rect.height);
+ if (rect.width * rect.height * 4 <= maxtransfer) {
+ var data = alt1.getRegion(rect.x, rect.y, rect.width, rect.height);
+ if (!data) {
+ return null;
+ }
+ decodeImageString(data, buf, 0, 0, rect.width, rect.height);
+ }
+ else {
+ //split up the request to to exceed the single transfer limit (for now)
+ var x1 = rect.x;
+ var ref = alt1.bindRegion(rect.x, rect.y, rect.width, rect.height);
+ if (ref <= 0) {
+ return null;
+ }
+ while (x1 < rect.x + rect.width) {
+ var x2 = Math.min(rect.x + rect.width, Math.floor(x1 + (maxtransfer / 4 / rect.height)));
+ var data = alt1.bindGetRegion(ref, x1, rect.y, x2 - x1, rect.height);
+ if (!data) {
+ return null;
+ }
+ decodeImageString(data, buf, x1 - rect.x, 0, x2 - x1, rect.height);
+ x1 = x2;
+ }
+ }
+ return buf;
+}
+exports.capture = capture;
+/**
+ * Makes alt1 bind an area of the rs client in memory without sending it to the js client
+ * returns an imgref object which can be used to get pixel data using the imgreftobuf function
+ * currently only one bind can exist per app and the ref in (v) will always be 1
+ */
+function captureHold(x, y, w, h) {
+ x = Math.round(x);
+ y = Math.round(y);
+ w = Math.round(w);
+ h = Math.round(h);
+ requireAlt1();
+ var r = alt1.bindRegion(x, y, w, h);
+ if (r <= 0) {
+ throw new Alt1Error("capturehold failed");
+ }
+ return new imgref_1.ImgRefBind(r, x, y, w, h);
+}
+exports.captureHold = captureHold;
+/**
+ * Same as captureHoldRegion, but captures the screen instead of the rs client. it also uses screen coordinates instead and can capture outside of the rs client
+ */
+function captureHoldScreen(x, y, w, h) {
+ x = Math.round(x);
+ y = Math.round(y);
+ w = Math.round(w);
+ h = Math.round(h);
+ requireAlt1();
+ var r = alt1.bindScreenRegion(x, y, w, h);
+ if (r <= 0) {
+ return false;
+ }
+ return new imgref_1.ImgRefBind(r, x, y, w, h);
+}
+exports.captureHoldScreen = captureHoldScreen;
+/**
+ * bind the full rs window if the rs window can be detected by alt1, otherwise return the full screen
+ */
+function captureHoldFullRs() {
+ return captureHold(0, 0, alt1.rsWidth, alt1.rsHeight);
+}
+exports.captureHoldFullRs = captureHoldFullRs;
+/**
+ * returns a subregion from a bound image
+ * used internally in imgreftobuf if imgref is a bound image
+ * @deprecated This should be handled internall by the imgrefbind.toData method
+ */
+function transferImageData(handle, x, y, w, h) {
+ x = Math.round(x);
+ y = Math.round(y);
+ w = Math.round(w);
+ h = Math.round(h);
+ requireAlt1();
+ if (alt1.bindGetRegionBuffer) {
+ return new imagedata_extensions_1.ImageData(alt1.bindGetRegionBuffer(handle, x, y, w, h), w, h);
+ }
+ var r = new imagedata_extensions_1.ImageData(w, h);
+ var x1 = x;
+ while (true) { //split up the request to to exceed the single transfer limit (for now)
+ var x2 = Math.min(x + w, Math.floor(x1 + (maxtransfer / 4 / h)));
+ var a = alt1.bindGetRegion(handle, x1, y, x2 - x1, h);
+ if (!a) {
+ throw new Alt1Error();
+ }
+ decodeImageString(a, r, x1 - x, 0, x2 - x1, h);
+ x1 = x2;
+ if (x1 == x + w) {
+ break;
+ }
+ ;
+ }
+ return r;
+}
+exports.transferImageData = transferImageData;
+/**
+ * decodes a returned string from alt1 to an imagebuffer
+ */
+function decodeImageString(imagestring, target, x, y, w, h) {
+ var bin = atob(imagestring);
+ var bytes = target.data;
+ w |= 0;
+ h |= 0;
+ var offset = 4 * x + 4 * y * target.width;
+ var target_width = target.width | 0;
+ for (var a = 0; a < w; a++) {
+ for (var b = 0; b < h; b++) {
+ var i1 = (offset + (a * 4 | 0) + (b * target_width * 4 | 0)) | 0;
+ var i2 = ((a * 4 | 0) + (b * 4 * w | 0)) | 0;
+ bytes[i1 + 0 | 0] = bin.charCodeAt(i2 + 2 | 0); //fix weird red/blue swap in c#
+ bytes[i1 + 1 | 0] = bin.charCodeAt(i2 + 1 | 0);
+ bytes[i1 + 2 | 0] = bin.charCodeAt(i2 + 0 | 0);
+ bytes[i1 + 3 | 0] = bin.charCodeAt(i2 + 3 | 0);
+ }
+ }
+ return target;
+}
+exports.decodeImageString = decodeImageString;
+/**
+ * encodes an imagebuffer to a string
+ */
+function encodeImageString(buf, sx = 0, sy = 0, sw = buf.width, sh = buf.height) {
+ var raw = "";
+ for (var y = sy; y < sy + sh; y++) {
+ for (var x = sx; x < sx + sw; x++) {
+ var i = 4 * x + 4 * buf.width * y | 0;
+ raw += String.fromCharCode(buf.data[i + 2 | 0]);
+ raw += String.fromCharCode(buf.data[i + 1 | 0]);
+ raw += String.fromCharCode(buf.data[i + 0 | 0]);
+ raw += String.fromCharCode(buf.data[i + 3 | 0]);
+ }
+ }
+ return btoa(raw);
+}
+exports.encodeImageString = encodeImageString;
+/**
+ * mixes the given color into a single int. This format is used by alt1
+ */
+function mixColor(r, g, b, a = 255) {
+ return (b << 0) + (g << 8) + (r << 16) + (a << 24);
+}
+exports.mixColor = mixColor;
+function unmixColor(col) {
+ var r = (col >> 16) & 0xff;
+ var g = (col >> 8) & 0xff;
+ var b = (col >> 0) & 0xff;
+ return [r, g, b];
+}
+exports.unmixColor = unmixColor;
+function identifyApp(url) {
+ if (exports.hasAlt1) {
+ alt1.identifyAppUrl(url);
+ }
+}
+exports.identifyApp = identifyApp;
+function resetEnvironment() {
+ exports.hasAlt1 = (typeof alt1 != "undefined");
+ exports.skinName = exports.hasAlt1 ? alt1.skinName : "default";
+}
+exports.resetEnvironment = resetEnvironment;
+function convertAlt1Version(str) {
+ var a = str.match(/^(\d+)\.(\d+)\.(\d+)$/);
+ if (!a) {
+ throw new RangeError("Invalid version string");
+ }
+ return (+a[1]) * 1000 * 1000 + (+a[2]) * 1000 + (+a[3]) * 1;
+}
+var cachedVersionInt = -1;
+/**
+ * checks if alt1 is running and at least the given version. versionstr should be a string with the version eg: 1.3.2
+ * @param versionstr
+ */
+function hasAlt1Version(versionstr) {
+ if (!exports.hasAlt1) {
+ return false;
+ }
+ if (cachedVersionInt == -1) {
+ cachedVersionInt = alt1.versionint;
+ }
+ return cachedVersionInt >= convertAlt1Version(versionstr);
+}
+exports.hasAlt1Version = hasAlt1Version;
+/**
+ * Gets the current cursor position in the game, returns null if the rs window is not active (alt1.rsActive)
+ */
+function getMousePosition() {
+ var pos = alt1.mousePosition;
+ if (pos == -1) {
+ return null;
+ }
+ return { x: pos >>> 16, y: pos & 0xFFFF };
+}
+exports.getMousePosition = getMousePosition;
+/**
+ * Registers a given HTML element as a frame border, when this element is dragged by the user the Alt1 frame will resize accordingly
+ * Use the direction arguements to make a given direction stick to the mouse. eg. Only set left to true to make the element behave as the left border
+ * Or set all to true to move the whole window. Not all combinations are permitted
+ */
+function addResizeElement(el, left, top, right, bot) {
+ if (!exports.hasAlt1 || !alt1.userResize) {
+ return;
+ }
+ el.addEventListener("mousedown", function (e) {
+ alt1.userResize(left, top, right, bot);
+ e.preventDefault();
+ });
+}
+exports.addResizeElement = addResizeElement;
+/**
+ * Add an event listener
+ */
+function on(type, listener) {
+ if (!exports.hasAlt1) {
+ return;
+ }
+ if (!alt1.events) {
+ alt1.events = {};
+ }
+ if (!alt1.events[type]) {
+ alt1.events[type] = [];
+ }
+ alt1.events[type].push(listener);
+}
+exports.on = on;
+/**
+ * Removes an event listener
+ */
+function removeListener(type, listener) {
+ var elist = exports.hasAlt1 && alt1.events && alt1.events[type];
+ if (!elist) {
+ return;
+ }
+ var i = elist.indexOf(listener);
+ if (i == -1) {
+ return;
+ }
+ elist.splice(i, 1);
+}
+exports.removeListener = removeListener;
+/**
+ * Listens for the event to fire once and then stops listening
+ * @param event
+ * @param cb
+ */
+function once(type, listener) {
+ var fn = (e) => {
+ removeListener(type, fn);
+ listener(e);
+ };
+ on(type, fn);
+}
+exports.once = once;
+;
+/**
+ * Used to read a set of images from a binary stream returned by the Alt1 API
+ */
+class ImageStreamReader {
+ constructor(reader, ...args) {
+ this.framebuffer = null;
+ this.pos = 0;
+ this.reading = false;
+ this.closed = false;
+ //paused state
+ this.pausedindex = -1;
+ this.pausedbuffer = null;
+ this.streamreader = reader;
+ if (args[0] instanceof imagedata_extensions_1.ImageData) {
+ this.setFrameBuffer(args[0]);
+ }
+ else if (typeof args[0] == "number") {
+ this.setFrameBuffer(new imagedata_extensions_1.ImageData(args[0], args[1]));
+ }
+ }
+ /**
+ *
+ */
+ setFrameBuffer(buffer) {
+ if (this.reading) {
+ throw new Error("can't change framebuffer while reading");
+ }
+ this.framebuffer = buffer;
+ }
+ /**
+ * Closes the underlying stream and ends reading
+ */
+ close() {
+ this.streamreader.cancel();
+ }
+ /**
+ * Reads a single image from the stream
+ */
+ async nextImage() {
+ if (this.reading) {
+ throw new Error("already reading from this stream");
+ }
+ if (!this.framebuffer) {
+ throw new Error("framebuffer not set");
+ }
+ this.reading = true;
+ var synctime = -Date.now();
+ var starttime = Date.now();
+ var r = false;
+ while (!r) {
+ if (this.pausedindex != -1 && this.pausedbuffer) {
+ r = this.readChunk(this.pausedindex, this.framebuffer.data, this.pausedbuffer);
+ }
+ else {
+ synctime += Date.now();
+ var res = await this.streamreader.read();
+ synctime -= Date.now();
+ if (res.done) {
+ throw new Error("Stream closed while reading");
+ }
+ var data = res.value;
+ r = this.readChunk(0, this.framebuffer.data, data);
+ }
+ }
+ synctime += Date.now();
+ //console.log("Decoded async image, " + this.framebuffer.width + "x" + this.framebuffer.height + " time: " + (Date.now() - starttime) + "ms (" + synctime + "ms main thread)");
+ this.reading = false;
+ return this.framebuffer;
+ }
+ readChunk(i, framedata, buffer) {
+ //very hot code, explicit int32 casting with |0 speeds it up by ~ x2
+ i = i | 0;
+ var framesize = framedata.length | 0;
+ var pos = this.pos;
+ var datalen = buffer.length | 0;
+ //var data32 = new Float64Array(buffer.buffer);
+ //var framedata32 = new Float64Array(framedata.buffer);
+ //fix possible buffer misalignment
+ //align to 16 for extra loop unrolling
+ while (i < datalen) {
+ //slow loop, fix alignment and other issues
+ while (i < datalen && pos < framesize && (pos % 16 != 0 || !((i + 16 | 0) <= datalen && (pos + 16 | 0) <= framesize))) {
+ var rel = pos;
+ if (pos % 4 == 0) {
+ rel = rel + 2 | 0;
+ }
+ if (pos % 4 == 2) {
+ rel = rel - 2 | 0;
+ }
+ framedata[rel | 0] = buffer[i | 0];
+ i = i + 1 | 0;
+ pos = pos + 1 | 0;
+ }
+ //fast unrolled loop for large chunks i wish js had some sort of memcpy
+ if (pos % 16 == 0) {
+ while ((i + 16 | 0) <= datalen && (pos + 16 | 0) <= framesize) {
+ framedata[pos + 0 | 0] = buffer[i + 2 | 0];
+ framedata[pos + 1 | 0] = buffer[i + 1 | 0];
+ framedata[pos + 2 | 0] = buffer[i + 0 | 0];
+ framedata[pos + 3 | 0] = buffer[i + 3 | 0];
+ framedata[pos + 4 | 0] = buffer[i + 6 | 0];
+ framedata[pos + 5 | 0] = buffer[i + 5 | 0];
+ framedata[pos + 6 | 0] = buffer[i + 4 | 0];
+ framedata[pos + 7 | 0] = buffer[i + 7 | 0];
+ framedata[pos + 8 | 0] = buffer[i + 10 | 0];
+ framedata[pos + 9 | 0] = buffer[i + 9 | 0];
+ framedata[pos + 10 | 0] = buffer[i + 8 | 0];
+ framedata[pos + 11 | 0] = buffer[i + 11 | 0];
+ framedata[pos + 12 | 0] = buffer[i + 14 | 0];
+ framedata[pos + 13 | 0] = buffer[i + 13 | 0];
+ framedata[pos + 14 | 0] = buffer[i + 12 | 0];
+ framedata[pos + 15 | 0] = buffer[i + 15 | 0];
+ //could speed it up another x2 but wouldn't be able to swap r/b swap and possible alignment issues
+ //framedata32[pos / 8 + 0 | 0] = data32[i / 8 + 0 | 0];
+ //framedata32[pos / 8 + 1 | 0] = data32[i / 8 + 1 | 0];
+ //framedata32[pos / 4 + 2 | 0] = data32[i / 4 + 2 | 0];
+ //framedata32[pos / 4 + 3 | 0] = data32[i / 4 + 3 | 0];
+ pos = pos + 16 | 0;
+ i = i + 16 | 0;
+ }
+ }
+ if (pos >= framesize) {
+ this.pausedbuffer = null;
+ this.pausedindex = -1;
+ this.pos = 0;
+ if (i != buffer.length - 1) {
+ this.pausedbuffer = buffer;
+ this.pausedindex = i;
+ }
+ return true;
+ }
+ }
+ this.pos = pos;
+ this.pausedbuffer = null;
+ this.pausedindex = -1;
+ return false;
+ }
+}
+exports.ImageStreamReader = ImageStreamReader;
+/**
+ * Asynchronously captures a section of the game screen
+ */
+async function captureAsync(...args) {
+ requireAlt1();
+ var rect = rect_1.default.fromArgs(...args);
+ if (alt1.captureAsync) {
+ let img = await alt1.captureAsync(rect.x, rect.y, rect.width, rect.height);
+ return new imagedata_extensions_1.ImageData(img, rect.width, rect.height);
+ }
+ if (!hasAlt1Version("1.4.6")) {
+ return capture(rect.x, rect.y, rect.width, rect.height);
+ }
+ var url = "https://alt1api/pixel/getregion/" + encodeURIComponent(JSON.stringify(Object.assign(Object.assign({}, rect), { format: "raw", quality: 1 })));
+ var res = await fetch(url);
+ var imgreader = new ImageStreamReader(res.body.getReader(), rect.width, rect.height);
+ return imgreader.nextImage();
+}
+exports.captureAsync = captureAsync;
+/**
+ * Asynchronously captures multple area's. This method captures the images in the same render frame if possible
+ * @param areas
+ */
+async function captureMultiAsync(areas) {
+ requireAlt1();
+ var r = {};
+ if (alt1.captureMultiAsync) {
+ let bufs = await alt1.captureMultiAsync(areas);
+ for (let a in areas) {
+ if (!bufs[a]) {
+ r[a] = null;
+ }
+ r[a] = new imagedata_extensions_1.ImageData(bufs[a], areas[a].width, areas[a].height);
+ }
+ return r;
+ }
+ var capts = [];
+ var captids = [];
+ for (var id in areas) {
+ if (areas[id]) {
+ capts.push(areas[id]);
+ captids.push(id);
+ }
+ else {
+ r[id] = null;
+ }
+ }
+ if (capts.length == 0) {
+ return r;
+ }
+ if (!hasAlt1Version("1.5.1")) {
+ var proms = [];
+ for (var a = 0; a < capts.length; a++) {
+ proms.push(captureAsync(capts[a]));
+ }
+ var results = await Promise.all(proms);
+ for (var a = 0; a < capts.length; a++) {
+ r[captids[a]] = results[a];
+ }
+ }
+ else {
+ var res = await fetch("https://alt1api/pixel/getregionmulti/" + encodeURIComponent(JSON.stringify({ areas: capts, format: "raw", quality: 1 })));
+ var imgreader = new ImageStreamReader(res.body.getReader());
+ for (var a = 0; a < capts.length; a++) {
+ var capt = capts[a];
+ imgreader.setFrameBuffer(new imagedata_extensions_1.ImageData(capt.width, capt.height));
+ r[captids[a]] = await imgreader.nextImage();
+ }
+ }
+ return r;
+}
+exports.captureMultiAsync = captureMultiAsync;
+/**
+ * Starts capturing a realtime stream of the game. Make sure you keep reading the stream and close it when you're done or Alt1 WILL crash
+ * @param framecb Called whenever a new frame is decoded
+ * @param errorcb Called whenever an error occurs, the error is rethrown if not defined
+ * @param fps Maximum fps of the stream
+ */
+function captureStream(x, y, width, height, fps, framecb, errorcb) {
+ requireAlt1();
+ if (!hasAlt1Version("1.4.6")) {
+ throw new Alt1Error("This function is not supported in this version of Alt1");
+ }
+ var url = "https://alt1api/pixel/streamregion/" + encodeURIComponent(JSON.stringify({ x, y, width, height, fps, format: "raw" }));
+ var res = fetch(url).then(async (res) => {
+ var reader = new ImageStreamReader(res.body.getReader(), width, height);
+ try {
+ while (!reader.closed && !state.closed) {
+ var img = await reader.nextImage();
+ if (!state.closed) {
+ framecb(img);
+ state.framenr++;
+ }
+ }
+ }
+ catch (e) {
+ if (!state.closed) {
+ reader.close();
+ if (errorcb) {
+ errorcb(e);
+ }
+ else {
+ throw e;
+ }
+ }
+ }
+ if (!reader.closed && state.closed) {
+ reader.close();
+ }
+ });
+ var state = {
+ x, y, width, height,
+ framenr: 0,
+ close: () => { state.closed = true; },
+ closed: false,
+ };
+ return state;
+}
+exports.captureStream = captureStream;
+
+
+/***/ }),
+
+/***/ "canvas":
+/*!*************************!*\
+ !*** external "canvas" ***!
+ \*************************/
+/***/ ((module) => {
+
+if(typeof __WEBPACK_EXTERNAL_MODULE_canvas__ === 'undefined') { var e = new Error("Cannot find module 'canvas'"); e.code = 'MODULE_NOT_FOUND'; throw e; }
+
+module.exports = __WEBPACK_EXTERNAL_MODULE_canvas__;
+
+/***/ }),
+
+/***/ "electron/common":
+/*!**********************************!*\
+ !*** external "electron/common" ***!
+ \**********************************/
+/***/ ((module) => {
+
+if(typeof __WEBPACK_EXTERNAL_MODULE_electron_common__ === 'undefined') { var e = new Error("Cannot find module 'electron/common'"); e.code = 'MODULE_NOT_FOUND'; throw e; }
+
+module.exports = __WEBPACK_EXTERNAL_MODULE_electron_common__;
+
+/***/ }),
+
+/***/ "sharp":
+/*!************************!*\
+ !*** external "sharp" ***!
+ \************************/
+/***/ ((module) => {
+
+if(typeof __WEBPACK_EXTERNAL_MODULE_sharp__ === 'undefined') { var e = new Error("Cannot find module 'sharp'"); e.code = 'MODULE_NOT_FOUND'; throw e; }
+
+module.exports = __WEBPACK_EXTERNAL_MODULE_sharp__;
+
+/***/ })
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __nested_webpack_require_79245__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_79245__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/global */
+/******/ (() => {
+/******/ __nested_webpack_require_79245__.g = (function() {
+/******/ if (typeof globalThis === 'object') return globalThis;
+/******/ try {
+/******/ return this || new Function('return this')();
+/******/ } catch (e) {
+/******/ if (typeof window === 'object') return window;
+/******/ }
+/******/ })();
+/******/ })();
+/******/
+/************************************************************************/
+/******/
+/******/ // startup
+/******/ // Load entry module and return exports
+/******/ // This entry module is referenced by other modules so it can't be inlined
+/******/ var __nested_webpack_exports__ = __nested_webpack_require_79245__("./src/base/index.ts");
+/******/
+/******/ return __nested_webpack_exports__;
+/******/ })()
+;
+});
+
+/***/ }),
+
+/***/ "../node_modules/alt1/dist/dialog/index.js":
+/*!*************************************************!*\
+ !*** ../node_modules/alt1/dist/dialog/index.js ***!
+ \*************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(true)
+ module.exports = factory(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js"), __webpack_require__(/*! alt1/ocr */ "../node_modules/alt1/dist/ocr/index.js"));
+ else {}
+})(globalThis, (__WEBPACK_EXTERNAL_MODULE_alt1_base__, __WEBPACK_EXTERNAL_MODULE_alt1_ocr__) => {
+return /******/ (() => { // webpackBootstrap
+/******/ var __webpack_modules__ = ({
+
+/***/ "./src/dialog/imgs/boxtl.data.png":
+/*!****************************************!*\
+ !*** ./src/dialog/imgs/boxtl.data.png ***!
+ \****************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_871__) => {
+
+module.exports=(__nested_webpack_require_871__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAx0lEQVQ4T5VRywrCMBBMaytYyMFHDw16CNWDBg8WoWAFpTf//4ecsGENMQ0UhmVmO5PdNEKZru0GVCLEL/cnS/MYwU3/Jo+AFiKbgevrE7bSmArksgk6DumVsrIKOmJ/G8JWGrMvjUBkbgLBhFzufBkB7uBPQKDcKJYR4C39ALhUuqj15J7/KwHIVIfztjWoZXOkmYuVtB4OQAM4GAFUh+UabmelZ0GANXdh+mW83eyoUz/ykeQm0G4g/j+wnC9NNQAl+VNR6y/yyxm6AFlANgAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/boxtl_leg.data.png":
+/*!********************************************!*\
+ !*** ./src/dialog/imgs/boxtl_leg.data.png ***!
+ \********************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1594__) => {
+
+module.exports=(__nested_webpack_require_1594__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAE0SURBVDhPjZFNTsMwEIVtJ45D05YmLVKBJRISsOIILNiw5QosOXpIKcpPHduFl0wINAHEJ+tpPB6/Gcv8+emRHZIX1TQ6QuBLbs37QNnVxQlj/P+L31yuH+7vZrNptt2QhxSy0vXe6SAMlYrQqshzyiPmt9fny2WslMqyrQr4+vQsTV8m0eTtdRNN582IjGmtob4nrNsLiqBJcjxfxKhGXBblIk6cNVL68AKwQDUCUVuHCsJZR8egrCpkdq0SSEIbb89vhoOZ53vNSYv0JeVpHni16fYCYYztsz10hzDWQEXQulI7Aq266BD0hHYdqC+BVl30CXlDUUZv+Bp9DIrIG4pBxE7XdPAb/bTkK0IVjN/6I1QmVquE9mMGo2KLJdI06xIjBOff72CLn/rr0YOfwVZr/QEeBH9rQlJ0YgAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/boxtr.data.png":
+/*!****************************************!*\
+ !*** ./src/dialog/imgs/boxtr.data.png ***!
+ \****************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2513__) => {
+
+module.exports=(__nested_webpack_require_2513__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA3UlEQVQ4T6WTwQrCMBBEk9oKigEVFSweLOLF6sFehOYgePP/P2jNrE1ZcJFUD68J2cwkO23NofF0vD0IY1k3VLfveXVu+jWMALVYxzowxtjw+A2YGVtM1WIKl/szjEohlb8NuAWtkMru6sMYJplbkR0vKF9XH5s0kBs0fYgxyJRAM7clV1YMGxB9R4pxAG6J04tlOdwAIm63uzVnoIkk2unRAF+kKpJEg9HEcdAwQA59iJpIEg2kEEa4QbIBNkMYM0Arg0NEC1KM14i/WBVJuPcutHy+YQMw259CiJ5egv+YzBEq3jQAAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/boxtr_leg.data.png":
+/*!********************************************!*\
+ !*** ./src/dialog/imgs/boxtr_leg.data.png ***!
+ \********************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3264__) => {
+
+module.exports=(__nested_webpack_require_3264__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAFgSURBVDhPnZO9TsMwFIWPHZuUpo2g6hswsbMzsbEgMfAKiIUnYOWNWBh4F1CFhFKKojatmx/jY+E2RRWK+KSrm9ycHF//iceHO7tal5hM3tGLDyAkIIVAY+0maxUBjYApDYSwOOgdulqMxXwOAbjKPzk9GUPc315bLTWWZo2mNs69hzhOvIAjKC3A72Q4HOAj+9zUnp5fIG6uzm2WTdFP+si/ZkgGqRcTY4zPKpKo6sbnfjJAsZj79+l0BsmfSbEocHQ8Ql2V0Fq5LmIfNKaYz8x5nvsckEHIKJZLX1z95AC/kTRNN1rpullXNdyab9FKI3JBQvu1EwVCjVBLdgwCwSRQumm1aRsJ6/b5Ly4vzvYKInc23l4n+zv4DTtoj0pUpHzuZMD5hoUMBMNOBmx3Hyt3+DoZhJ3g+Wib8e507oBRltXOto7Ho24GvJVcNHbACGTuXnQy4MhcNGbGdhrAN5b0ly21yuFfAAAAAElFTkSuQmCC")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/chatimg.data.png":
+/*!******************************************!*\
+ !*** ./src/dialog/imgs/chatimg.data.png ***!
+ \******************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_4247__) => {
+
+module.exports=(__nested_webpack_require_4247__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAAwUlEQVQYV2OYPGlSV1dXcnJyRmqSqbUdQ3VNNRB5uTkJCwuLKqgxtLS0ACVVFGQ4eQUFpRUZgBxHWytOHl4oX0tLS1lZGaiYkZOXW1CUQVXXGChkbGwsJSUFFGI4YM+fqycmpahqoG8AVMVwxJipUptPUFIOqEtEkJdBT4JPSVYSqBgoCTSSQUVLG8QCms/DCzI/OjrK0syEgYERaDiI7+3lHRwcDNQC5bu6ukKEgLp4RKUZsjPSgEJAfrC/t7GhHgChFSifluVS6gAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/chatimg_leg.data.png":
+/*!**********************************************!*\
+ !*** ./src/dialog/imgs/chatimg_leg.data.png ***!
+ \**********************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_4970__) => {
+
+module.exports=(__nested_webpack_require_4970__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEOSURBVChTVY+7SgNBFIZnZ3aTWdCYddVcRBIVREEC2gcsFnwMO9/JxsrGzkbQB1AkleArWJjLXhRhJnNbf9ltcviL/3z/nDMzXjI+Hx0PDoadh6dJI6DGOUKIT6kPenZ6eHv/fDTo7vbbRSF5GCCjoDd3j/v9rThel0sLKoWG2DzN97rxdrwhlFHaCqGNdRAF7e1EUhlrHIQl1sAbGjb/N1aFXgqptYEoD3nx/Yu+QvURXI6+tqtFPcpru1os3my5oBX6tgaEaOtcWbKmTywJGF+rMlA8Cgm9vkry+ed0luXLxo9Q+I12JcSGvc7F+ORt8oE5a32pvEositqeI5fJ6OX1/Ws2TbNFUWR5nv4B2LeYEU2WizoAAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/chatimgactive.data.png":
+/*!************************************************!*\
+ !*** ./src/dialog/imgs/chatimgactive.data.png ***!
+ \************************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_5869__) => {
+
+module.exports=(__nested_webpack_require_5869__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAApklEQVQYV2Po6upqaWmJjo4CIk1dQ4ZiMLCzNGVgYGQRkGCorqmOjggTEeQF8hm4BRmCg4ONDfVAHAhfWVlZWFgYygciKUVVSVkFoCgnD1jLHkOGZHlWbkFRoBCIf0CdIV+GgZGTF6pLnoNBkJcLqhiIBCXloCwgAprv7eWtraGG4FtZWXq5OQG1QPnGxsaurq5AIRCfhYshKTYKqASoy83RRkVBBgAFhh2w1olrrAAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/chatimgactive_leg.data.png":
+/*!****************************************************!*\
+ !*** ./src/dialog/imgs/chatimgactive_leg.data.png ***!
+ \****************************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_6580__) => {
+
+module.exports=(__nested_webpack_require_6580__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEESURBVChTPY4xTgMxEEXtmfFmE1hpRSQECqIIVRBCEanpuABnyImo09FzASokjgAVVUQBURpCSMiKHdt8ZwVf1mj8/veM7dXlxbBfnvTad4/vmSMNwRgjRAJ6fno4uX3IssA5k5KV5BHozeQedK9s5bm0dwmVmfh1OisLAa3rEJV8DCFE7wOBFjsO1AbGBAg0jerkDNTQSL6hyRDrfIjN5f8RRPpjmCw6NEhgjakdKknWJGCnhFj8yKDSfK7IQla2/p+46LBRaTkiNlETwvoYDY2vBx/V6m2x2u5IpxH3j4+Gg4Pnl1mluvSi335TBRwuu/vO+NFZ72m6+FxvlnW99v5L9ReDbXkhpJVqYwAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/chatimghover.data.png":
+/*!***********************************************!*\
+ !*** ./src/dialog/imgs/chatimghover.data.png ***!
+ \***********************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_7463__) => {
+
+module.exports=(__nested_webpack_require_7463__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAAz0lEQVQYV2M4dfLEjp07W1pamhrrnL38GFavXr10yeKk2ChhYWEpFW2GLVu2dLQ1a2uocfIKiipoMABVRoaFcPLwcguKiiqoMVhZWRob6kmKCgGFBMSkGUztnU2t7VxdXZWVlYFCDP9DhSfbyaloaQMVSklJMfz3YF1sJSylqKqlpQW0gsFOQVhLTRnC4RGVZjAyBymDma/BUF1T7e3lzcDACJQUlFZkSE5OLsjNAmoByoP4YZGR2RlpQCGgLpD+Sb2d0dFR2dnZQC8Y6WkBAPN1NR2AAHfmAAAAAElFTkSuQmCC")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/chatimghover_leg.data.png":
+/*!***************************************************!*\
+ !*** ./src/dialog/imgs/chatimghover_leg.data.png ***!
+ \***************************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_8222__) => {
+
+module.exports=(__nested_webpack_require_8222__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEjSURBVChTVc89SwNBEIDh2727fChqFosQLExMY4gIsbOIBLT0B9joX9RKTCOksLESSa1Y5TSa+8rdze7s7jl4lfAUw7sMy7CL8cnx4f5Bt3338FzzubbWcRyPc4/q6Kg/nT7eXA72erurz2xHNCBXnOrt/ex01G2JjSwq6nUeh5Ci67ISR30x7DVXqQVAkmegC+BUOx3xFhilNEmTQgIS3qh79JtWOksKkudQ4TXPWyxCpXWSAQGpK3wZrmmDJqn+4VSryRgkIFXF3doUvldyVtJlf8c5gFbbkh5qa822mz5FUBYRpTJaG359dRYE3/OPKEpgncu0MBJtCMztdtqT8eDl9V0xP0cXFe05BktXiBazzvlkOHuaB8vVVxj/xOkySn4BoaPZbEW+44oAAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/continueimg.data.png":
+/*!**********************************************!*\
+ !*** ./src/dialog/imgs/continueimg.data.png ***!
+ \**********************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_9141__) => {
+
+module.exports=(__nested_webpack_require_9141__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAABTklEQVRIS72PMUsDQRCFB2Jjk85KsPEPmMYmgig2gWAlKWwCIiIihIC1WIpiJZY2SpqgpLCQNDZRAjZWHqmvsVEQ1Ebl8J0D4zIXD5HdgY/lzey7fffoeVD9fFxikpfaP/jLhxLhojy+kPdRjZKokhIvBieqIC+6WcVpkfjdiz5u55P7BR6CgqDu2dbeaQdnGpoxeAcpaT0buBsD/XQ1pwwhoPde2YDX/oxbTxpir5x+sasXt8vZhm/9knL6hR5OJm0YHI2D9c1GdeWH7sG0svmF4uMJA7jbbnPW7YaR98rsC7xMHGBAttvd/pjyeIeQYcD1TtGtB42N8oSAettFBnkgR+SPEIxaytVlc5Qb4oQG7q37FSOjMiibQjwMcZIBnY0RcNiYYqFuA0GtOl0s0/laYSj4D6XdjSBLCLENdQru7W9OeUpGhsd8YGvV6Qu6U2ehlR3eegAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/continueimg_leg.data.png":
+/*!**************************************************!*\
+ !*** ./src/dialog/imgs/continueimg_leg.data.png ***!
+ \**************************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_10068__) => {
+
+module.exports=(__nested_webpack_require_10068__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAASPSURBVEhLrVZLaFxVGD7nPubeO5NMZpIQTYfaNn2RREsrbQXbuOnKR4WCiKtCV2JABF24qTvdCK5ciIWudeFCqkuLC6WKQqVmEVsMjUkTyySTec993+t37n/n5CZNShQ/Dof/db7z/efce2f4J+++PDbqsgz0sN2y9a7NYResmIKPgTVgptY26IOpwViz0cnFdur04XFrqJDw64OargZ+ODKQJPaAWr1td5zs1lq+pKpmztBzYaPWYcxvV9cN/v7sa4cr1ulzz6Oitv7As0OqBnzH6ThRr1VPfcbyxfKAqeimWRotwe1126hHGWW3Fft2jwzdyn/42U2ygatvXaAU4iAsl/KwiQTMoqK/deymbNwoY95oBiZvJwGhhAzSk7PUbr1brdZkCkoWVmzR3jOT+1p+Keita/nRRnVpYEDs1+n0YGAWHAkCvVwyXGyw3lbhbstKtBylaEbNFg4wxRc3bn19fSaf97hy5O8H9y6/9+vrLz2naoIE4Lki6skmZJmJTQZB67DCE0XxZFEKcZKdlKdAcHhIm5tfFe1V9o1hJapjrxUG4vZ8P8BsWgZmx3Z1XYMaMihFoDgMpMjFTJVBIMo0TYPxzfd3Pv/giFUq5y02NHKMOnxxZpoKABgAtiMeLKGgNAjZOGbYMGSQXMsySRKaWlmtpu3B6rS7iEpIIkC6j4JIUycDCnp++qjf/PmPj9/cPzRmjIyXZYcXzhxmqo5sTk9vcjdInj0ChNPTRxcWltXzZ6YUzpuNtud5UQZJXwEMWkBBx/U5Z4qiUFDWIEKGBLKbmkJ/ojJ87cbiC5OFKPYVtTf65LFzx/Offjk3MT7EFDWMYjlUNSUHwEDB1N8zsAQaOp2uaM80crWaeIkl3W7DdV0ehX4Y+0GIIYK+F8YctpS1RVPoszhygwjuU+Pl69/+9cYrxcDrdZvL+4+ffPrg4LWvfhcdxhGaTFYLZXJQ5L+hULAcx+XvXLnIrOFWdVlIAZKnZRvQVWrtAsMQbymBig1NdIvGkpjAj7/d/2h2Csbd+bWV9bXbS2a96Zw/dYgqBR7dGpIQ3F3YYzA2NtyoN9WTkwcCp92znfTM+tB4LA4VZ5/5lmSBWwtjRoNF6SqAsqCy/UgW/HRn8erlibxqz99tNZuL9Vb050N29sRBVeG0r6bgoe+/gaGPTUEFBi/ZnYRJSZuVu0M8nVGknjhaCYMgK4UG1KMIvJiznciRxbYURIvlUcC4gvmXuaW3Xy2xwL2/EqG3jY5+a8E4PVXhDI1FIcQmTW4eaHLnJCBLLiUlxyiQLsmcCzEggs+4aO/U5IG2GwoplMCAJiru824BVVJNfxUuD5McUdKVyCMes9W19nihttFouW4Dvf1wL4fekEWK40sV480UTSIC6fKgd4SUhBMRLt180qS48MSliO/hNDi/cmmGVv5fwNnL14nuweT2d7cfwiga4n/Z2elDIpfAiS3MKCBj8z38lyiqvpP5DyjBZy8+qxs5WGEURH76JVB0sY2q7PxbtyOwnAwiIQbp7hFy1Y4QVKrNQnEQBNRnRWrGFsGBG/wD9kSQTvgpZ/YAAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/continueimgdown.data.png":
+/*!**************************************************!*\
+ !*** ./src/dialog/imgs/continueimgdown.data.png ***!
+ \**************************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_12171__) => {
+
+module.exports=(__nested_webpack_require_12171__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAABMklEQVRIS92VoU4DQRCG5wKGNyEo3gB1BtWEYGqaNAGBoQ3BoAiqKVXwDJUEgcAgCQIUBoPgVfg2/2WzGUpqdk40+XqZ3Z3u3Le32bXbQbMc2UaCmj2cbr1dWTSvl4mXC3s82+appsupDmqp3ueNRaN6s+nBaHzCU82Pa59WF9TSihJ9zex7EQgl7s/3cRPEcqNuUGkmRy2tohsIotSTIW/gcurS6f3c9QFf6a8hL+HSKoJatznzPsm7pWyu7FlL+RfmZzdS73BwtNseZ56nOyq9dv6VCerMQwSKZZS+Xj9Hi9wmw73SjSadcQdMOlr4qUYczP+fm3D5VWDapNfPvQelHjE7xyVUJ9173O66ZKNhLWUoNzcaAWqd3vsknFxSgRutjmrZvG34iE9D2zCQmrfNLxl9slarbU3QAAAAAElFTkSuQmCC")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/continueimgdown_leg.data.png":
+/*!******************************************************!*\
+ !*** ./src/dialog/imgs/continueimgdown_leg.data.png ***!
+ \******************************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_13074__) => {
+
+module.exports=(__nested_webpack_require_13074__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAQQSURBVEhL1VW9bxxFFN/52NvbO59sEic5GZMIEHFkAiICKaRDAlGAlJKGioqShpqejn+ABiEoqFIhkIJEk44miSCRyIcSJXawfT6f7253dueD39xbz62/Ekei4ae5pzdv3rz3fm9m59jHb780N5tFu1GWttKOgDjmlXY4DgsY9nKRQkppaAqkup3JUTXZh0IViFlP3UgalTZZhexvpezyu6ePH4u73QXMc+15ltZBxpxBscNxVnhXQtpo8JkWlljccGVlJ394QpKzZSl3WaZYmjiSV69PO/j+mymMUGCHZ+eFhOwEBIek1GQJGJUCYUlHJaRQPVCwZdTrBzsq2eiVnt7phZOYb6u8HRuEoOWAEBGlkKLyPGk2SQ+AkchU8x2oTP/xoPj2m8+gt9qdR3/f/PLr395alILzJJXkQ6CYSBcShR7VU0PCk5ZI7yRNFF9f8l1Lmg8e/yOWFmfjNM1LheWssEbrPWM0NI4Jbdh4O4+YhTTaqrzAwJR8yAg3X8KEUlHosjTWOGPt6sBeXErKfOzc+MTi2UvL7e9+vjPfjIyxlY9GHEvRkI4iI2ae+yWEhU4ZyRMKLZG+PRyHJWxEqb4qFuWZ8vSSpgQ31EQeewbKrSuT+iuQPRjrU+f8jYU0pTs1w3+8+vDCa3NWS602uy8vg+H3v9ydSyxzzBgXce8Jqhi4+BTKR5zAx7QWDkcBBcFIW8lokHt60CaHsKv0A4E0lP6ZgJsu8AFV02Mtd+Xa6jtLLYbuqhEx/OHXe2COVbhhcOEj1+MTK1ggyYIrHfSnA46jceHpzXQ6w8GuNyrEreuFMigCzQ79BgGaCjl9waad3uFWWv8ezrejK9fWPnpvCXdyfWXtzLnzyy+qn35fIYYAMUSiEKGyOxdYOc3wRWJa54wLQg2iwSMhJJMxz7LS/zHMd2cHm0NUD9dGIlgZafQpjrwirDRcTep7CrCLFGzZ70z0bq1FX31+yfLW9b/+XF/Zunl/Y6DSN07teskEF/TaoIBIVO1BAZAuppkHshBghE4y1EyeeLe2+8rTQ3HErQ7KhD349ivT84OIAeD2xScXoNy7/2R9q9/rjWE5dwJ/A1N6CRfTth6UN5QEWad0GEBKnDk+I7kIBx0Ai8HvaBf9MDSUKSy73Ys+/fDVXJnV1R644Q27sWLOzk3uEm4a27nYjKNuYyOc2oE9nZbEOPbS4Yb+gC3zD6cfkYiaPFZai1dOdmod/C+Bo5PGlYxt5FFHqs3+AO83/Q2CGwF/JYEe1Q3lmfeFh45gl/W3GJRwkuCFgTVM8YXjr51dfr0rW3v/o+sXnUB3GvJ5QZ/ijSdeaq2llPXvDRey0nYQsoQaKHXQgf3l4awqrYZBlrMPzi+00IH/P/Yf0iAr/gXJh0N13Pe/YwAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./src/dialog/index.ts":
+/*!*****************************!*\
+ !*** ./src/dialog/index.ts ***!
+ \*****************************/
+/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_14933__) {
+
+"use strict";
+
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+const a1lib = __importStar(__nested_webpack_require_14933__(/*! alt1/base */ "alt1/base"));
+const OCR = __importStar(__nested_webpack_require_14933__(/*! alt1/ocr */ "alt1/ocr"));
+const base_1 = __nested_webpack_require_14933__(/*! alt1/base */ "alt1/base");
+var imgs_rs3 = (0, base_1.webpackImages)({
+ chatimg: __nested_webpack_require_14933__(/*! ./imgs/chatimg.data.png */ "./src/dialog/imgs/chatimg.data.png"),
+ chatimghover: __nested_webpack_require_14933__(/*! ./imgs/chatimghover.data.png */ "./src/dialog/imgs/chatimghover.data.png"),
+ chatimgactive: __nested_webpack_require_14933__(/*! ./imgs/chatimgactive.data.png */ "./src/dialog/imgs/chatimgactive.data.png"),
+ continueimg: __nested_webpack_require_14933__(/*! ./imgs/continueimg.data.png */ "./src/dialog/imgs/continueimg.data.png"),
+ continueimgdown: __nested_webpack_require_14933__(/*! ./imgs/continueimgdown.data.png */ "./src/dialog/imgs/continueimgdown.data.png"),
+ boxtl: __nested_webpack_require_14933__(/*! ./imgs/boxtl.data.png */ "./src/dialog/imgs/boxtl.data.png"),
+ boxtr: __nested_webpack_require_14933__(/*! ./imgs/boxtr.data.png */ "./src/dialog/imgs/boxtr.data.png")
+});
+var imgs_leg = (0, base_1.webpackImages)({
+ chatimg: __nested_webpack_require_14933__(/*! ./imgs/chatimg_leg.data.png */ "./src/dialog/imgs/chatimg_leg.data.png"),
+ chatimghover: __nested_webpack_require_14933__(/*! ./imgs/chatimghover_leg.data.png */ "./src/dialog/imgs/chatimghover_leg.data.png"),
+ chatimgactive: __nested_webpack_require_14933__(/*! ./imgs/chatimgactive_leg.data.png */ "./src/dialog/imgs/chatimgactive_leg.data.png"),
+ continueimg: __nested_webpack_require_14933__(/*! ./imgs/continueimg_leg.data.png */ "./src/dialog/imgs/continueimg_leg.data.png"),
+ continueimgdown: __nested_webpack_require_14933__(/*! ./imgs/continueimgdown_leg.data.png */ "./src/dialog/imgs/continueimgdown_leg.data.png"),
+ boxtl: __nested_webpack_require_14933__(/*! ./imgs/boxtl_leg.data.png */ "./src/dialog/imgs/boxtl_leg.data.png"),
+ boxtr: __nested_webpack_require_14933__(/*! ./imgs/boxtr_leg.data.png */ "./src/dialog/imgs/boxtr_leg.data.png")
+});
+var fontmono = __nested_webpack_require_14933__(/*! ../fonts/aa_8px_mono.fontmeta.json */ "./src/fonts/aa_8px_mono.fontmeta.json");
+var fontheavy = __nested_webpack_require_14933__(/*! ../fonts/aa_8px_mono_allcaps.fontmeta.json */ "./src/fonts/aa_8px_mono_allcaps.fontmeta.json");
+class DialogReader {
+ constructor() {
+ this.pos = null;
+ }
+ find(imgref) {
+ if (!imgref) {
+ imgref = a1lib.captureHoldFullRs();
+ }
+ if (!imgref) {
+ return null;
+ }
+ var boxes = [];
+ for (let imgs of [imgs_rs3, imgs_leg]) {
+ var pos = imgref.findSubimage(imgs.boxtl);
+ for (var a in pos) {
+ var p = pos[a];
+ if (imgref.findSubimage(imgs.boxtr, p.x + 492, p.y, 16, 16).length != 0) {
+ boxes.push(Object.assign(Object.assign({}, p), { legacy: imgs == imgs_leg }));
+ }
+ }
+ }
+ if (boxes.length == 0) {
+ return false;
+ }
+ var box = boxes[0];
+ if (boxes.length > 1) {
+ console.log("More than one dialog box found");
+ }
+ this.pos = { x: box.x + 1, y: box.y + 1, width: 506, height: 130, legacy: box.legacy };
+ return this.pos;
+ }
+ ensureimg(imgref) {
+ if (!this.pos) {
+ return null;
+ }
+ if (imgref && a1lib.Rect.fromArgs(imgref).contains(this.pos)) {
+ return imgref;
+ }
+ return a1lib.captureHold(this.pos.x, this.pos.y, this.pos.width, this.pos.height);
+ }
+ read(imgref) {
+ imgref = this.ensureimg(imgref);
+ if (!imgref) {
+ return false;
+ }
+ let title = this.readTitle(imgref);
+ var r = {
+ text: null,
+ opts: null,
+ title
+ };
+ if (this.checkDialog(imgref)) {
+ r.text = this.readDialog(imgref, true);
+ return r;
+ }
+ else {
+ var opts = this.findOptions(imgref);
+ if (opts.length != 0) {
+ r.opts = this.readOptions(imgref, opts);
+ return r;
+ }
+ else {
+ return null;
+ }
+ }
+ }
+ readTitle(imgref) {
+ if (!this.pos) {
+ throw new Error("position not found yet");
+ }
+ var buf = imgref.toData(this.pos.x, this.pos.y, this.pos.width, 32);
+ //somehow y coord can change, 19 for "choose and option:" 18 for npc names
+ var pos = OCR.findChar(buf, fontheavy, [255, 203, 5], Math.round(this.pos.width / 2) - 10, 16, 20, 4);
+ if (!pos) {
+ return "";
+ }
+ var read = OCR.readSmallCapsBackwards(buf, fontheavy, [[255, 203, 5]], Math.round(this.pos.width / 2) - 10, pos.y, 150, 1);
+ return read.text.toLowerCase(); //normalize case since we don't actually know the original
+ }
+ checkDialog(imgref) {
+ if (!this.pos) {
+ throw new Error("position not found yet");
+ }
+ var locs = [];
+ let imgs = (this.pos.legacy ? imgs_leg : imgs_rs3);
+ locs = locs.concat(imgref.findSubimage(imgs.continueimg, this.pos.x - imgref.x, this.pos.y - imgref.y, this.pos.width, this.pos.height));
+ locs = locs.concat(imgref.findSubimage(imgs.continueimgdown, this.pos.x - imgref.x, this.pos.y - imgref.y, this.pos.width, this.pos.height));
+ return locs.length != 0;
+ }
+ readDialog(imgref, checked) {
+ if (!this.pos) {
+ throw new Error("position not found yet");
+ }
+ imgref = this.ensureimg(imgref);
+ if (!imgref) {
+ return null;
+ }
+ if (!checked) {
+ checked = this.checkDialog(imgref);
+ }
+ if (!checked) {
+ return null;
+ }
+ var lines = [];
+ var buf = imgref.toData(this.pos.x, this.pos.y + 33, this.pos.width, 80);
+ for (var y = 0; y < buf.height; y++) {
+ var hastext = false;
+ for (var x = 200; x < 300; x++) {
+ var i = x * 4 + y * 4 * buf.width;
+ if (buf.data[i] + buf.data[i + 1] + buf.data[i + 2] < 50) {
+ hastext = true;
+ break;
+ }
+ }
+ if (hastext) {
+ var chr = null;
+ chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 192, y + 5, 12, 3);
+ chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 246, y + 5, 12, 3);
+ chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 310, y + 5, 12, 3);
+ if (chr) {
+ var read = OCR.readLine(buf, fontmono, [0, 0, 0], chr.x, chr.y, true, true);
+ if (read.text.length >= 3) {
+ lines.push(read.text);
+ }
+ y = chr.y + 5;
+ }
+ }
+ }
+ return lines;
+ }
+ findOptions(imgref) {
+ var locs = [];
+ if (!this.pos) {
+ throw new Error("position not found yet");
+ }
+ let imgs = (this.pos.legacy ? imgs_leg : imgs_rs3);
+ var a = imgref.findSubimage(imgs.chatimg);
+ for (var b in a) {
+ locs.push({ x: a[b].x, y: a[b].y, hover: false, active: false });
+ }
+ var a = imgref.findSubimage(imgs.chatimghover);
+ for (var b in a) {
+ locs.push({ x: a[b].x, y: a[b].y, hover: true, active: false });
+ }
+ var a = imgref.findSubimage(imgs.chatimgactive);
+ for (var b in a) {
+ locs.push({ x: a[b].x, y: a[b].y, hover: false, active: true });
+ }
+ return locs;
+ }
+ readOptions(imgref, locs) {
+ imgref = this.ensureimg(imgref);
+ if (!imgref) {
+ return null;
+ }
+ if (!this.pos) {
+ throw new Error("interface not found");
+ }
+ var buf = imgref.toData();
+ if (!locs) {
+ locs = this.findOptions(imgref);
+ }
+ var bgcol = [150, 135, 105];
+ var fontcol = this.pos.legacy ? [255, 255, 255] : [174, 208, 224];
+ var r = [];
+ for (var a = 0; a < locs.length; a++) {
+ var dx = locs[a].x + 30;
+ var dy = locs[a].y + 6;
+ var checkline = imgref.toData(dx, dy, Math.min(500, imgref.width - a), 1);
+ var row = null;
+ for (var x = 0; x < checkline.width; x++) {
+ var i = x * 4;
+ if (row) {
+ if (coldiff(checkline.data[i], checkline.data[i + 1], checkline.data[i + 2], bgcol[0], bgcol[1], bgcol[2]) < 75) {
+ row.width = x + 20;
+ break;
+ }
+ }
+ else if (coldiff(checkline.data[i], checkline.data[i + 1], checkline.data[i + 2], fontcol[0], fontcol[1], fontcol[2]) < 100) {
+ var text = "";
+ var chr = OCR.findChar(buf, fontmono, fontcol, dx + x + 2 - imgref.x, dy + 3 - imgref.y, 30, 1);
+ if (chr) {
+ var read = OCR.readLine(buf, fontmono, fontcol, chr.x, chr.y, true, true);
+ var text = read.text;
+ }
+ row = { text: text, x: dx + x, y: dy, width: 200, buttonx: dx - 31, hover: !!locs[a].hover, active: locs[a].active };
+ }
+ }
+ if (row) {
+ r.push(row);
+ }
+ }
+ r.sort((a, b) => a.y - b.y);
+ return r;
+ }
+}
+exports["default"] = DialogReader;
+//TODO get rid of this or make it standard
+function coldiff(r1, g1, b1, r2, g2, b2) {
+ return Math.abs(r1 - r2) + Math.abs(g1 - g2) + Math.abs(b1 - b2);
+}
+
+
+/***/ }),
+
+/***/ "alt1/base":
+/*!**************************************************************************************************!*\
+ !*** external {"root":"A1lib","commonjs2":"alt1/base","commonjs":"alt1/base","amd":"alt1/base"} ***!
+ \**************************************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = __WEBPACK_EXTERNAL_MODULE_alt1_base__;
+
+/***/ }),
+
+/***/ "alt1/ocr":
+/*!*********************************************************************************************!*\
+ !*** external {"root":"OCR","commonjs2":"alt1/ocr","commonjs":"alt1/ocr","amd":"alt1/ocr"} ***!
+ \*********************************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = __WEBPACK_EXTERNAL_MODULE_alt1_ocr__;
+
+/***/ }),
+
+/***/ "./src/fonts/aa_8px_mono.fontmeta.json":
+/*!*********************************************!*\
+ !*** ./src/fonts/aa_8px_mono.fontmeta.json ***!
+ \*********************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = JSON.parse('{"chars":[{"width":7,"bonus":75,"chr":"a","pixels":[0,7,187,1,3,221,1,6,170,1,8,255,2,3,255,2,5,187,2,8,255,3,3,255,3,5,255,3,8,221,4,4,238,4,5,255,4,6,204,4,7,255,4,8,238],"secondary":false},{"width":7,"bonus":105,"chr":"b","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,204,1,4,170,1,7,170,1,8,187,2,3,255,2,8,255,3,3,255,3,8,255,4,3,170,4,4,170,4,7,170,5,5,187,5,6,187],"secondary":false},{"width":7,"bonus":50,"chr":"c","pixels":[0,5,170,0,6,187,1,4,187,1,7,187,2,3,255,2,8,255,3,3,255,3,8,255,4,3,221,4,8,221],"secondary":false},{"width":7,"bonus":105,"chr":"d","pixels":[0,5,187,0,6,187,1,4,170,1,7,170,1,8,170,2,3,255,2,8,255,3,3,255,3,8,255,4,3,204,4,4,170,4,7,170,4,8,187,5,1,204,5,2,221,5,3,221,5,4,221,5,5,221,5,6,221,5,7,221,5,8,204],"secondary":false},{"width":7,"bonus":75,"chr":"e","pixels":[0,5,187,0,6,170,1,4,187,1,5,255,1,7,204,2,3,255,2,5,255,2,8,255,3,3,255,3,5,255,3,8,255,4,3,187,4,5,255,4,8,221,5,5,204],"secondary":false},{"width":4,"bonus":50,"chr":"f","pixels":[0,3,204,1,2,221,1,3,255,1,4,221,1,5,221,1,6,221,1,7,221,1,8,204,2,1,255,2,3,255],"secondary":false},{"width":7,"bonus":115,"chr":"g","pixels":[0,5,187,0,6,187,1,3,170,1,4,153,1,7,170,1,11,153,2,3,255,2,8,255,2,11,238,3,3,255,3,8,255,3,11,221,4,3,221,4,7,153,4,8,221,4,10,204,5,3,204,5,4,221,5,5,221,5,6,221,5,7,221,5,8,221,5,9,170],"secondary":false},{"width":7,"bonus":90,"chr":"h","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,170,1,4,204,2,3,255,3,3,255,4,3,170,4,4,221,4,5,221,4,6,221,4,7,221,4,8,204],"secondary":false},{"width":3,"bonus":35,"chr":"i","pixels":[0,1,238,0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204],"secondary":false},{"width":4,"bonus":50,"chr":"j","pixels":[0,11,153,1,11,170,2,1,204,2,3,204,2,4,221,2,5,221,2,6,221,2,7,221,2,8,221,2,9,221],"secondary":false},{"width":6,"bonus":70,"chr":"k","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,5,255,2,4,153,2,5,255,2,6,221,3,3,204,3,7,221],"secondary":false},{"width":3,"bonus":40,"chr":"l","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,1,8,255],"secondary":false},{"width":10,"bonus":115,"chr":"m","pixels":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,221,2,3,238,3,3,255,4,3,153,4,4,255,4,5,221,4,6,221,4,7,221,4,8,204,5,4,187,6,3,255,7,3,238,8,4,170,8,5,221,8,6,221,8,7,221,8,8,204],"secondary":false},{"width":7,"bonus":75,"chr":"n","pixels":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,221,2,3,238,3,3,255,4,3,238,5,4,170,5,5,221,5,6,221,5,7,221,5,8,204],"secondary":false},{"width":8,"bonus":70,"chr":"o","pixels":[0,5,187,0,6,170,1,4,204,1,7,221,2,3,238,2,8,238,3,3,255,3,8,255,4,3,238,4,8,255,5,4,204,5,7,221,6,5,170,6,6,170],"secondary":false},{"width":6,"bonus":90,"chr":"p","pixels":[0,3,238,0,4,255,0,5,187,0,6,204,0,7,255,0,8,221,0,9,221,0,10,221,1,3,255,1,8,238,2,3,255,2,8,255,3,3,238,3,8,238,4,4,238,4,5,255,4,6,255,4,7,238],"secondary":false},{"width":7,"bonus":90,"chr":"q","pixels":[0,5,187,0,6,187,1,3,170,1,4,153,1,7,153,1,8,170,2,3,255,2,8,255,3,3,238,3,8,238,4,3,255,4,4,255,4,5,187,4,6,187,4,7,255,4,8,238,4,9,221,4,10,221],"secondary":false},{"width":4,"bonus":45,"chr":"r","pixels":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,187,1,4,204,2,3,255],"secondary":false},{"width":6,"bonus":50,"chr":"s","pixels":[0,4,187,1,3,255,1,5,238,1,8,255,2,3,255,2,8,255,3,3,255,3,6,238,3,8,255,4,7,187],"secondary":false},{"width":5,"bonus":45,"chr":"t","pixels":[1,2,221,1,3,255,1,4,221,1,5,221,1,6,221,1,7,170,2,3,255,2,8,238,3,8,153],"secondary":false},{"width":6,"bonus":70,"chr":"u","pixels":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,170,1,8,238,2,8,255,3,8,204,4,3,204,4,4,221,4,5,221,4,6,204,4,7,255,4,8,221],"secondary":false},{"width":6,"bonus":50,"chr":"v","pixels":[0,3,238,1,5,238,1,6,204,2,7,255,2,8,255,3,5,153,3,6,255,3,7,153,4,3,238,4,4,204],"secondary":false},{"width":10,"bonus":95,"chr":"w","pixels":[1,3,153,1,4,238,1,5,187,2,6,153,2,7,238,2,8,187,3,6,204,3,7,238,3,8,153,4,3,170,4,4,255,5,4,221,5,5,221,6,7,255,6,8,221,7,6,238,7,7,204,8,3,238,8,4,204],"secondary":false},{"width":6,"bonus":55,"chr":"x","pixels":[0,8,170,1,3,170,1,4,204,1,7,221,2,5,255,2,6,238,3,4,255,3,6,187,3,7,187,4,3,221,4,8,255],"secondary":false},{"width":6,"bonus":65,"chr":"y","pixels":[0,3,255,0,4,153,0,11,221,1,5,204,1,6,221,1,11,187,2,7,187,2,8,255,2,9,238,3,6,238,3,7,187,4,3,204,4,4,221],"secondary":false},{"width":6,"bonus":70,"chr":"z","pixels":[0,3,153,0,8,204,1,3,255,1,7,221,1,8,255,2,3,255,2,6,255,2,8,255,3,3,255,3,4,170,3,5,170,3,8,255,4,3,255,4,8,255],"secondary":false},{"width":8,"bonus":85,"chr":"A","pixels":[0,8,153,1,6,221,1,7,238,2,3,170,2,4,255,2,5,187,2,6,255,3,1,255,3,2,255,3,6,255,4,2,255,4,3,238,4,6,255,5,5,255,5,6,255,6,7,187,6,8,255],"secondary":false},{"width":7,"bonus":125,"chr":"B","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,4,255,1,8,255,2,1,255,2,4,255,2,8,255,3,1,255,3,4,255,3,8,255,4,1,221,4,4,255,4,5,170,4,8,204,5,2,170,5,3,170,5,6,187,5,7,153],"secondary":false},{"width":9,"bonus":80,"chr":"C","pixels":[0,4,187,0,5,187,1,2,221,1,3,153,1,6,153,1,7,204,2,1,170,2,8,170,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,255,6,1,170,6,8,170],"secondary":false},{"width":8,"bonus":100,"chr":"D","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,8,255,2,1,255,2,8,255,3,1,255,3,8,255,4,1,204,4,8,204,5,2,221,5,7,221,6,4,187,6,5,187],"secondary":false},{"width":6,"bonus":95,"chr":"E","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,1,8,255,2,1,255,2,5,255,2,8,255,3,1,255,3,5,255,3,8,255,4,1,153,4,8,221],"secondary":false},{"width":6,"bonus":70,"chr":"F","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255],"secondary":false},{"width":9,"bonus":105,"chr":"G","pixels":[0,4,170,0,5,187,1,2,204,1,3,153,1,7,221,2,1,170,2,8,187,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,238,6,1,170,6,5,255,6,7,153,6,8,170,7,5,153,7,6,221,7,7,221,7,8,204],"secondary":false},{"width":8,"bonus":105,"chr":"H","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,5,255,2,5,255,3,5,255,4,5,255,5,5,255,6,1,204,6,2,221,6,3,221,6,4,221,6,5,221,6,6,221,6,7,221,6,8,204],"secondary":false},{"width":4,"bonus":60,"chr":"I","pixels":[0,1,192,0,8,191,1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,2,1,192,2,8,191],"secondary":false},{"width":6,"bonus":70,"chr":"J","pixels":[0,6,153,0,7,153,1,8,204,2,1,221,2,8,255,3,1,255,3,8,204,4,1,204,4,2,221,4,3,221,4,4,221,4,5,221,4,6,221,4,7,153],"secondary":false},{"width":7,"bonus":85,"chr":"K","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,255,2,4,255,3,3,221,3,5,170,3,6,204,4,1,204,4,2,153,4,7,238,4,8,153],"secondary":false},{"width":6,"bonus":60,"chr":"L","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,8,255,2,8,255,3,8,255,4,8,255],"secondary":false},{"width":9,"bonus":130,"chr":"M","pixels":[0,1,245,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,1,2,170,1,3,225,2,4,207,2,5,190,3,6,232,4,6,232,5,4,207,5,5,190,6,2,170,6,3,224,7,1,245,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255],"secondary":false},{"width":8,"bonus":110,"chr":"N","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,2,255,2,3,221,3,4,187,3,5,187,4,6,221,5,7,255,6,1,204,6,2,221,6,3,221,6,4,221,6,5,221,6,6,221,6,7,221,6,8,204],"secondary":false},{"width":10,"bonus":110,"chr":"O","pixels":[0,4,187,0,5,170,1,2,204,1,3,153,1,6,170,1,7,204,2,1,153,2,8,153,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,255,6,1,153,6,8,153,7,2,204,7,3,153,7,6,170,7,7,204,8,4,187,8,5,170],"secondary":false},{"width":7,"bonus":85,"chr":"P","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255,4,1,187,4,5,187,5,3,221],"secondary":false},{"width":9,"bonus":100,"chr":"Q","pixels":[0,4,187,0,5,187,1,2,221,1,6,153,1,7,221,2,1,187,2,8,170,3,1,255,3,8,255,4,1,255,4,8,255,5,1,238,5,8,238,6,2,204,6,7,255,7,3,255,7,4,204,7,5,221,7,6,255,7,8,204],"secondary":false},{"width":7,"bonus":100,"chr":"R","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255,3,6,187,4,2,238,4,3,204,4,4,255,4,7,238,4,8,170],"secondary":false},{"width":6,"bonus":70,"chr":"S","pixels":[0,2,153,0,3,170,1,1,204,1,4,221,1,8,238,2,1,255,2,4,170,2,8,255,3,1,255,3,5,255,3,8,255,4,1,170,4,6,221,4,7,238],"secondary":false},{"width":8,"bonus":65,"chr":"T","pixels":[0,1,255,1,1,255,2,1,255,3,1,255,3,2,221,3,3,221,3,4,221,3,5,221,3,6,221,3,7,221,3,8,204,4,1,255,5,1,255],"secondary":false},{"width":8,"bonus":85,"chr":"U","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,187,1,7,170,2,8,255,3,8,255,4,8,221,5,1,204,5,2,221,5,3,221,5,4,221,5,5,221,5,6,255,5,7,238],"secondary":false},{"width":7,"bonus":70,"chr":"V","pixels":[0,1,255,0,2,187,1,3,153,1,4,255,1,5,153,2,6,187,2,7,238,3,7,255,3,8,204,4,4,204,4,5,238,5,1,170,5,2,255,5,3,153],"secondary":false},{"width":10,"bonus":125,"chr":"W","pixels":[0,1,255,0,2,221,1,4,187,1,5,255,1,6,204,2,7,255,2,8,255,3,3,153,3,4,238,3,5,221,4,1,255,4,2,255,4,3,153,5,3,170,5,4,238,5,5,204,6,7,255,6,8,255,7,4,153,7,5,238,7,6,238,7,7,153,8,1,238,8,2,238,8,3,153],"secondary":false},{"width":7,"bonus":75,"chr":"X","pixels":[0,8,170,1,1,187,1,2,204,1,7,238,2,3,221,2,4,153,2,5,255,2,6,153,3,4,255,3,5,238,4,2,238,4,6,204,4,7,170,5,1,204,5,8,255],"secondary":false},{"width":7,"bonus":55,"chr":"Y","pixels":[0,1,170,1,2,238,2,3,153,2,4,255,3,4,221,3,5,204,3,6,221,3,7,221,3,8,204,4,3,255,5,1,238],"secondary":false},{"width":7,"bonus":75,"chr":"Z","pixels":[0,8,187,1,1,255,1,7,221,1,8,255,2,1,255,2,5,204,2,8,255,3,1,255,3,4,204,3,8,255,4,1,255,4,2,221,4,8,255,5,1,187,5,8,153],"secondary":false},{"width":7,"bonus":90,"chr":"0","pixels":[0,2,153,0,3,221,0,4,255,0,5,255,0,6,238,0,7,170,1,1,187,1,8,204,2,1,187,2,8,187,3,1,221,3,8,204,4,2,170,4,3,255,4,4,187,4,5,187,4,6,238,4,7,170],"secondary":false},{"width":7,"bonus":50,"chr":"1","pixels":[1,8,187,2,1,204,2,2,204,2,3,187,2,4,187,2,5,187,2,6,187,2,7,187,2,8,238,3,8,204],"secondary":false},{"width":7,"bonus":55,"chr":"2","pixels":[1,8,255,2,1,187,2,6,153,2,8,187,3,1,204,3,5,153,3,8,187,4,1,187,4,2,153,4,4,204,4,8,187],"secondary":false},{"width":7,"bonus":50,"chr":"3","pixels":[0,8,204,1,1,187,1,8,187,2,1,187,2,4,187,2,8,204,3,2,221,3,3,204,3,5,204,3,7,170],"secondary":false},{"width":7,"bonus":80,"chr":"4","pixels":[0,6,238,1,4,187,1,6,187,2,3,170,2,6,187,3,1,187,3,2,153,3,6,204,4,1,187,4,2,187,4,3,187,4,4,187,4,5,187,4,6,238,4,7,187,4,8,187],"secondary":false},{"width":7,"bonus":70,"chr":"5","pixels":[1,1,238,1,2,187,1,3,187,1,4,187,1,8,204,2,1,187,2,4,187,2,8,187,3,1,187,3,4,204,3,8,204,4,5,238,4,6,187,4,7,221],"secondary":false},{"width":7,"bonus":80,"chr":"6","pixels":[0,3,170,0,4,255,0,5,255,0,6,238,0,7,153,1,2,187,1,8,187,2,1,204,2,4,187,2,8,187,3,1,187,3,4,204,3,8,187,4,5,221,4,6,255,4,7,187],"secondary":false},{"width":7,"bonus":55,"chr":"7","pixels":[0,1,187,1,1,187,1,8,204,2,1,187,2,6,238,2,7,153,3,1,187,3,3,153,3,4,221,4,1,255,4,2,187],"secondary":false},{"width":7,"bonus":95,"chr":"8","pixels":[1,2,238,1,3,221,1,6,204,1,7,221,2,1,204,2,4,204,2,5,170,2,8,221,3,1,187,3,4,170,3,8,187,4,1,221,4,4,170,4,5,204,4,8,187,5,2,170,5,3,153,5,6,238,5,7,238],"secondary":false},{"width":7,"bonus":85,"chr":"9","pixels":[1,2,221,1,3,187,1,4,238,1,8,153,2,1,204,2,5,221,2,8,187,3,1,187,3,5,187,3,8,204,4,1,187,4,7,170,5,2,153,5,3,238,5,4,255,5,5,255,5,6,187],"secondary":false},{"width":8,"bonus":75,"chr":"%","pixels":[0,3,255,0,8,255,1,2,255,1,4,255,1,7,255,2,3,255,2,6,255,3,5,255,4,4,255,4,7,255,5,3,255,5,6,255,5,8,255,6,2,255,6,7,255],"secondary":false},{"width":4,"bonus":40,"chr":"/","pixels":[0,7,153,0,8,238,0,9,221,1,4,187,1,5,238,1,6,170,2,1,221,2,2,221],"secondary":false},{"width":7,"bonus":60,"chr":"+","pixels":[0,5,221,1,5,255,2,5,255,3,2,153,3,3,221,3,4,221,3,5,255,3,6,221,3,7,221,3,8,204,4,5,255,5,5,255],"secondary":false},{"width":5,"bonus":40,"chr":"?","pixels":[0,1,170,1,1,255,1,6,221,1,8,255,2,1,255,2,5,170,3,2,255,3,3,221],"secondary":false},{"width":2,"bonus":35,"chr":"!","pixels":[0,1,170,0,2,187,0,3,187,0,4,187,0,5,187,0,6,170,0,8,255],"secondary":false},{"width":8,"bonus":130,"chr":"@","pixels":[0,4,255,0,5,255,0,6,221,0,7,255,0,8,187,1,3,221,1,9,238,2,2,221,2,5,255,2,6,238,2,7,255,2,10,153,3,2,255,3,4,255,3,8,204,3,10,187,4,2,238,4,4,255,4,8,255,5,3,238,5,4,255,5,5,221,5,6,221,5,7,221,5,8,238,6,8,221],"secondary":false},{"width":8,"bonus":120,"chr":"#","pixels":[0,6,255,1,3,255,1,6,255,1,7,170,1,8,238,2,1,170,2,2,238,2,3,255,2,4,221,2,5,170,2,6,255,3,3,255,3,6,255,4,3,255,4,4,153,4,5,204,4,6,255,4,7,238,4,8,187,5,1,255,5,2,187,5,3,255,5,6,255,6,3,255],"secondary":false},{"width":6,"bonus":70,"chr":"$","pixels":[0,2,153,0,3,170,1,1,204,1,4,221,1,8,238,2,0,204,2,1,238,2,8,238,2,9,204,3,1,238,3,5,238,3,8,255,4,6,170,4,7,170],"secondary":false},{"width":6,"bonus":40,"chr":"^","pixels":[0,4,153,0,5,238,1,2,204,1,3,221,2,1,221,2,2,221,3,3,187,3,4,221],"secondary":false},{"width":6,"bonus":20,"chr":"~","pixels":[1,5,255,2,5,221,3,6,221,4,5,204],"secondary":false},{"width":7,"bonus":95,"chr":"&","pixels":[0,6,187,1,2,238,1,3,255,1,4,187,1,5,187,1,8,187,2,1,255,2,4,255,2,8,255,3,1,255,3,4,255,3,8,255,4,4,255,4,8,187,5,3,204,5,4,255,5,5,221,5,6,187,6,4,153],"secondary":false},{"width":6,"bonus":45,"chr":"*","pixels":[0,2,170,1,2,170,1,3,204,1,4,255,2,1,204,2,2,238,2,3,255,3,2,170,3,4,153],"secondary":false},{"width":4,"bonus":55,"chr":"(","pixels":[0,3,173,0,4,239,0,5,253,0,6,230,0,7,171,1,1,194,1,2,204,1,8,204,1,9,191,2,0,210,2,10,216],"secondary":false},{"width":4,"bonus":55,"chr":")","pixels":[1,0,211,1,10,216,2,1,194,2,2,203,2,8,203,2,9,191,3,3,174,3,4,240,3,5,253,3,6,229,3,7,171],"secondary":false},{"width":7,"bonus":30,"chr":"_","pixels":[0,9,153,1,9,255,2,9,255,3,9,255,4,9,255,5,9,255],"secondary":false},{"width":4,"bonus":15,"chr":"-","pixels":[0,5,255,1,5,255,2,5,255],"secondary":true},{"width":8,"bonus":50,"chr":"=","pixels":[0,4,255,0,6,255,1,4,255,1,6,255,2,4,255,2,6,255,3,4,255,3,6,255,4,4,255,4,6,255],"secondary":false},{"width":3,"bonus":55,"chr":"[","pixels":[0,0,204,0,1,221,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,0,238,1,8,238],"secondary":false},{"width":3,"bonus":55,"chr":"]","pixels":[0,0,238,0,8,238,1,0,204,1,1,221,1,2,221,1,3,221,1,4,221,1,5,221,1,6,221,1,7,221,1,8,204],"secondary":false},{"width":5,"bonus":50,"chr":"{","pixels":[0,5,153,1,2,170,1,3,221,1,4,221,1,5,204,1,6,255,1,7,221,1,8,170,2,1,238,2,9,238],"secondary":false},{"width":5,"bonus":50,"chr":"}","pixels":[1,1,238,1,9,238,2,2,170,2,3,221,2,4,221,2,5,204,2,6,255,2,7,221,2,8,170,3,5,153],"secondary":false},{"width":3,"bonus":10,"chr":":","pixels":[1,3,255,1,7,255],"secondary":true},{"width":3,"bonus":20,"chr":";","pixels":[0,9,201,1,3,255,1,7,241,1,8,255],"secondary":true},{"width":3,"bonus":20,"chr":"\\"","pixels":[0,1,255,0,2,255,2,1,255,2,2,255],"secondary":true},{"width":2,"bonus":10,"chr":"\'","pixels":[0,1,255,0,2,177],"secondary":true},{"width":7,"bonus":40,"chr":"<","pixels":[0,5,204,1,5,255,2,4,238,2,6,238,3,4,170,3,6,170,4,3,221,4,7,221],"secondary":false},{"width":7,"bonus":45,"chr":">","pixels":[0,3,204,0,7,204,1,7,187,2,4,238,2,6,255,3,4,170,3,5,153,3,6,204,4,5,255],"secondary":false},{"width":5,"bonus":35,"chr":"\\\\","pixels":[1,1,153,1,2,255,1,3,204,2,5,255,2,6,204,3,8,255,3,9,204],"secondary":false},{"width":2,"bonus":5,"chr":".","pixels":[0,8,255],"secondary":true},{"width":3,"bonus":15,"chr":",","pixels":[0,9,205,1,7,205,1,8,255],"secondary":true},{"width":3,"bonus":50,"chr":"|","pixels":[0,1,221,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,221,0,9,221,0,10,204],"secondary":false}],"width":10,"spacewidth":3,"shadow":false,"height":12,"basey":8}');
+
+/***/ }),
+
+/***/ "./src/fonts/aa_8px_mono_allcaps.fontmeta.json":
+/*!*****************************************************!*\
+ !*** ./src/fonts/aa_8px_mono_allcaps.fontmeta.json ***!
+ \*****************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = JSON.parse('{"chars":[{"width":3,"bonus":35,"chr":"!","pixels":[0,2,170,1,1,221,1,2,255,1,3,221,1,4,187,1,5,170,1,9,204],"secondary":false},{"width":6,"bonus":20,"chr":"\\"","pixels":[1,2,221,1,3,255,3,2,221,3,3,255],"secondary":true},{"width":8,"bonus":125,"chr":"#","pixels":[0,7,187,1,4,255,1,7,255,1,10,170,2,3,170,2,4,255,2,5,255,2,6,221,2,7,255,2,8,170,3,4,255,3,7,255,4,4,255,4,5,153,4,7,255,4,8,238,4,9,255,4,10,204,5,2,238,5,3,204,5,4,255,5,5,153,5,7,255,6,4,255,6,7,153],"secondary":false},{"width":7,"bonus":115,"chr":"$","pixels":[0,8,187,1,2,255,1,3,255,1,4,221,1,9,238,2,1,187,2,4,255,2,5,204,2,8,170,2,9,255,2,10,221,3,0,187,3,1,238,3,2,187,3,3,170,3,4,153,3,5,255,3,6,221,3,9,221,4,1,221,4,6,255,4,7,255,4,8,255],"secondary":false},{"width":12,"bonus":135,"chr":"%","pixels":[1,2,255,1,3,255,1,4,221,2,5,153,3,1,153,3,9,187,4,1,170,4,2,255,4,3,255,4,4,221,4,7,238,4,8,204,5,4,153,5,5,238,5,6,153,6,1,153,6,2,187,6,3,204,6,6,221,6,7,255,6,8,255,7,1,153,7,9,187,8,9,187,9,6,221,9,7,255,9,8,255],"secondary":false},{"width":11,"bonus":190,"chr":"&","pixels":[0,6,187,0,7,255,0,8,170,1,2,204,1,3,255,1,4,153,1,5,238,1,6,170,1,7,187,1,8,255,1,9,153,2,1,170,2,2,153,2,3,153,2,4,255,2,5,187,2,9,238,3,1,221,3,5,238,3,6,170,3,9,255,4,1,238,4,6,238,4,7,153,4,9,204,5,1,187,5,2,187,5,7,255,5,8,204,6,7,170,6,8,255,7,5,238,7,6,255,7,7,170,7,8,170,7,9,221,8,9,238,9,9,153],"secondary":false},{"width":4,"bonus":10,"chr":"\'","pixels":[1,2,204,1,3,255],"secondary":true},{"width":4,"bonus":50,"chr":"(","pixels":[0,3,170,0,4,238,0,5,255,0,6,221,0,7,153,1,1,153,1,2,221,1,3,153,1,7,170,1,8,238],"secondary":false},{"width":4,"bonus":40,"chr":")","pixels":[1,1,170,1,2,221,1,7,170,1,8,238,2,3,187,2,4,238,2,5,255,2,6,204],"secondary":false},{"width":5,"bonus":25,"chr":"*","pixels":[1,1,170,1,2,221,1,3,153,2,2,255,2,3,204],"secondary":false},{"width":8,"bonus":45,"chr":"+","pixels":[1,6,255,2,6,255,3,4,255,3,5,255,3,6,255,3,7,255,3,8,255,4,6,255,5,6,255],"secondary":false},{"width":3,"bonus":10,"chr":",","pixels":[1,8,187,1,9,221],"secondary":true},{"width":5,"bonus":20,"chr":"-","pixels":[0,7,204,1,7,255,2,7,238,3,7,187],"secondary":true},{"width":3,"bonus":5,"chr":".","pixels":[0,9,204],"secondary":true},{"width":7,"bonus":40,"chr":"/","pixels":[0,9,221,1,7,187,1,8,187,2,6,221,3,4,221,4,2,170,4,3,187,5,1,187],"secondary":false},{"width":8,"bonus":105,"chr":"0","pixels":[0,6,153,1,3,221,1,4,255,1,5,255,1,6,255,1,7,255,1,8,238,2,2,187,2,8,153,2,9,204,3,2,187,3,9,204,4,2,221,4,9,187,5,3,238,5,4,255,5,5,255,5,6,255,5,7,255,5,8,221,6,5,153],"secondary":false},{"width":6,"bonus":85,"chr":"1","pixels":[1,3,170,1,9,153,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,3,2,153,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221],"secondary":false},{"width":8,"bonus":100,"chr":"2","pixels":[1,2,187,1,3,153,1,9,255,2,2,187,2,8,221,2,9,255,3,2,221,3,7,221,3,9,255,4,2,187,4,3,238,4,4,187,4,5,238,4,6,238,4,9,255,5,3,221,5,4,255,5,5,170,5,8,153,5,9,238],"secondary":false},{"width":7,"bonus":100,"chr":"3","pixels":[0,2,170,0,8,170,0,9,204,1,2,221,1,9,238,2,2,238,2,5,221,2,9,221,3,2,221,3,3,187,3,4,204,3,5,255,3,6,153,3,9,187,4,3,238,4,4,153,4,6,255,4,7,255,4,8,255,5,7,153],"secondary":false},{"width":8,"bonus":85,"chr":"4","pixels":[0,7,153,1,6,187,1,7,255,2,5,187,2,7,255,3,4,187,3,7,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,7,255,5,9,204,6,7,221],"secondary":false},{"width":7,"bonus":95,"chr":"5","pixels":[0,8,153,0,9,221,1,2,255,1,3,187,1,4,238,1,9,221,2,2,255,2,4,187,2,5,170,2,9,204,3,2,255,3,5,255,3,9,170,4,2,255,4,5,204,4,6,255,4,7,255,4,8,238,5,7,153],"secondary":false},{"width":8,"bonus":105,"chr":"6","pixels":[0,7,153,1,4,153,1,5,255,1,6,255,1,7,255,1,8,255,2,4,204,2,9,221,3,3,170,3,5,153,3,9,204,4,2,153,4,5,187,4,9,204,5,6,238,5,7,170,5,8,187,5,9,153,6,6,187,6,7,255,6,8,170],"secondary":false},{"width":7,"bonus":75,"chr":"7","pixels":[0,2,204,0,3,187,1,2,255,1,9,187,2,2,255,2,7,238,2,8,255,2,9,170,3,2,255,3,5,221,3,6,204,4,2,255,4,3,204,4,4,170,5,2,204],"secondary":false},{"width":8,"bonus":120,"chr":"8","pixels":[1,3,221,1,4,204,1,6,187,1,7,255,1,8,255,2,2,187,2,4,204,2,5,221,2,6,153,2,9,221,3,2,153,3,5,255,3,9,187,4,2,187,4,5,238,4,6,204,4,9,204,5,2,170,5,3,255,5,4,238,5,6,238,5,7,255,5,8,255,6,7,153],"secondary":false},{"width":8,"bonus":95,"chr":"9","pixels":[0,4,153,1,3,255,1,4,255,1,5,255,2,2,187,2,6,153,3,2,204,3,6,153,3,9,153,4,2,221,4,7,153,4,8,204,5,3,255,5,4,255,5,5,255,5,6,255,5,7,187,6,4,153,6,5,153],"secondary":false},{"width":3,"bonus":10,"chr":":","pixels":[0,3,204,0,7,204],"secondary":true},{"width":3,"bonus":20,"chr":";","pixels":[0,2,204,0,6,153,0,7,187,0,8,153],"secondary":true},{"width":7,"bonus":55,"chr":"<","pixels":[0,6,187,0,7,153,1,6,221,1,7,238,2,5,153,3,5,238,3,8,238,4,5,153,4,8,187,5,4,187,5,9,153],"secondary":false},{"width":7,"bonus":60,"chr":"=","pixels":[0,5,255,0,8,255,1,5,255,1,8,255,2,5,255,2,8,255,3,5,255,3,8,255,4,5,255,4,8,255,5,5,221,5,8,221],"secondary":false},{"width":7,"bonus":50,"chr":">","pixels":[0,4,204,0,9,170,1,5,170,1,8,187,2,5,238,2,8,221,3,7,153,4,6,238,4,7,238,5,6,153],"secondary":false},{"width":6,"bonus":65,"chr":"?","pixels":[0,2,153,0,3,187,1,2,221,1,7,221,2,2,238,2,6,238,2,10,204,3,2,204,3,3,221,3,4,204,3,5,255,4,3,238,4,4,221],"secondary":false},{"width":11,"bonus":180,"chr":"@","pixels":[0,4,187,0,5,255,0,6,255,0,7,238,1,3,170,1,8,204,2,5,187,2,6,238,2,7,187,2,9,204,3,4,204,3,5,153,3,6,153,3,7,204,3,9,204,4,3,153,4,6,153,4,9,187,5,0,153,5,3,221,5,4,170,5,5,238,5,6,255,5,7,187,5,9,170,6,3,221,6,4,153,6,7,238,7,1,153,7,7,170,8,1,170,8,2,153,8,6,170,9,3,187,9,4,221,9,5,170],"secondary":false},{"width":9,"bonus":110,"chr":"A","pixels":[1,9,238,2,6,153,2,7,255,2,8,170,2,9,170,3,4,187,3,5,238,3,7,221,4,2,187,4,3,255,4,4,238,4,7,221,5,4,221,5,5,255,5,6,238,5,7,238,6,6,187,6,7,255,6,8,255,6,9,187,7,8,170,7,9,255],"secondary":false},{"width":7,"bonus":150,"chr":"B","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,255,3,2,221,3,5,221,3,9,204,4,2,187,4,3,255,4,4,255,4,5,170,4,6,255,4,7,170,4,8,187,4,9,187,5,6,153,5,7,255,5,8,204],"secondary":false},{"width":8,"bonus":120,"chr":"C","pixels":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,3,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,221,5,2,221,5,9,221,6,2,187,6,3,187,6,8,153,6,9,170],"secondary":false},{"width":10,"bonus":165,"chr":"D","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,9,221,4,2,238,4,9,221,5,2,221,5,9,204,6,2,153,6,3,238,6,8,187,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,8,5,187,8,6,170],"secondary":false},{"width":7,"bonus":110,"chr":"E","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,170,2,9,239,3,2,214,3,5,221,3,9,212,4,2,212,4,5,226,4,9,238],"secondary":false},{"width":7,"bonus":100,"chr":"F","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,2,221,3,5,221,4,2,238,4,5,238],"secondary":false},{"width":9,"bonus":135,"chr":"G","pixels":[0,4,170,0,5,238,0,6,255,0,7,187,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,238,5,2,238,5,9,221,6,2,204,6,6,255,6,7,255,6,8,255,6,9,204,7,6,204,7,7,153,7,8,153],"secondary":false},{"width":10,"bonus":175,"chr":"H","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,5,221,4,5,221,5,5,221,6,2,204,6,3,153,6,4,153,6,5,238,6,6,153,6,7,153,6,8,153,6,9,221,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,255],"secondary":false},{"width":5,"bonus":80,"chr":"I","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,153,2,9,221],"secondary":false},{"width":6,"bonus":90,"chr":"J","pixels":[2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,255,2,11,187,3,2,204,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,153],"secondary":false},{"width":10,"bonus":140,"chr":"K","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,187,2,7,153,2,8,153,2,9,204,3,5,238,3,6,238,4,6,170,4,7,255,5,2,238,5,3,153,5,7,170,5,8,255,6,2,204,6,8,170,6,9,238,7,9,204],"secondary":false},{"width":7,"bonus":95,"chr":"L","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,9,221,4,9,221,5,9,204],"secondary":false},{"width":12,"bonus":150,"chr":"M","pixels":[1,6,170,1,7,221,1,8,255,1,9,255,2,2,170,2,3,255,2,4,255,2,5,221,3,4,204,3,5,255,3,6,238,4,6,204,4,7,255,4,8,221,5,7,187,5,8,255,6,6,221,7,4,238,7,5,204,8,2,187,8,3,255,8,4,255,8,5,255,8,6,255,8,7,238,8,8,204,8,9,187,9,7,170,9,8,204,9,9,255],"secondary":false},{"width":10,"bonus":130,"chr":"N","pixels":[1,2,204,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,3,221,2,4,238,3,4,221,3,5,238,4,5,238,4,6,238,5,6,238,5,7,238,6,7,238,6,8,238,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,204],"secondary":false},{"width":10,"bonus":155,"chr":"O","pixels":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,170,2,8,204,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,238,6,8,170,7,3,238,7,4,255,7,5,255,7,6,255,7,7,255,7,8,187,8,4,153,8,5,221,8,6,204],"secondary":false},{"width":8,"bonus":130,"chr":"P","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,1,238,2,2,153,2,3,153,2,4,153,2,5,170,2,6,153,2,7,153,2,8,153,2,9,221,3,1,204,4,1,238,4,5,187,5,1,153,5,2,255,5,3,255,5,4,255,6,3,153],"secondary":false},{"width":10,"bonus":180,"chr":"Q","pixels":[0,4,153,0,5,238,0,6,238,0,7,170,1,3,221,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,8,221,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,221,6,8,153,6,9,238,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,7,9,187,7,10,153,8,4,153,8,5,204,8,6,204,8,10,255,9,10,204],"secondary":false},{"width":7,"bonus":140,"chr":"R","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,238,2,7,153,2,8,153,2,9,221,3,2,238,3,6,238,4,2,204,4,3,204,4,4,153,4,5,204,4,6,204,4,7,255,5,3,221,5,4,221,5,8,255,6,9,238],"secondary":false},{"width":6,"bonus":115,"chr":"S","pixels":[0,3,221,0,4,238,0,8,187,0,9,187,1,2,187,1,4,204,1,5,255,1,9,238,2,2,187,2,5,255,2,6,187,2,9,221,3,2,204,3,5,153,3,6,255,3,7,170,3,8,153,3,9,170,4,2,204,4,3,153,4,6,170,4,7,255,4,8,187],"secondary":false},{"width":9,"bonus":105,"chr":"T","pixels":[1,2,238,2,2,221,3,2,238,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221,4,2,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,2,221,6,2,221,7,2,255],"secondary":false},{"width":10,"bonus":120,"chr":"U","pixels":[1,2,204,1,3,153,1,4,153,1,5,153,1,6,153,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,3,9,221,4,9,238,5,9,221,6,9,170,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,204,8,2,153],"secondary":false},{"width":10,"bonus":90,"chr":"V","pixels":[1,2,255,1,3,153,2,2,238,2,3,255,2,4,255,2,5,187,3,5,238,3,6,255,3,7,221,4,7,221,4,8,255,4,9,187,5,6,187,5,7,204,6,4,221,6,5,187,7,2,255,7,3,170],"secondary":false},{"width":13,"bonus":165,"chr":"W","pixels":[1,2,255,1,3,221,2,2,204,2,3,221,2,4,255,2,5,255,2,6,221,3,6,187,3,7,255,3,8,255,3,9,187,4,6,153,4,7,221,5,4,221,5,5,187,6,2,187,6,3,255,6,4,255,6,5,153,7,4,170,7,5,255,7,6,255,7,7,187,8,7,255,8,8,255,8,9,187,9,5,153,9,6,221,9,7,170,10,2,221,10,3,238,10,4,187,11,2,187],"secondary":false},{"width":9,"bonus":115,"chr":"X","pixels":[1,2,221,1,9,238,2,2,255,2,3,255,2,7,153,2,8,221,2,9,153,3,3,153,3,4,255,3,5,221,3,6,204,4,5,255,4,6,255,4,7,170,5,3,187,5,4,170,5,7,255,5,8,255,5,9,153,6,2,255,6,8,204,6,9,255,7,9,170],"secondary":false},{"width":8,"bonus":95,"chr":"Y","pixels":[0,2,187,1,2,255,1,3,221,2,3,221,2,4,255,2,5,153,3,5,238,3,6,255,3,7,255,3,8,255,3,9,255,4,5,204,4,6,170,4,7,153,4,8,153,4,9,204,5,3,187,5,4,187,6,2,238],"secondary":false},{"width":8,"bonus":105,"chr":"Z","pixels":[0,9,204,1,2,238,1,7,153,1,8,255,1,9,255,2,2,221,2,6,221,2,7,255,2,9,221,3,2,221,3,4,153,3,5,255,3,6,221,3,9,221,4,2,238,4,3,221,4,4,255,4,9,221,5,2,255,5,3,204,5,9,255],"secondary":false},{"width":4,"bonus":65,"chr":"[","pixels":[0,0,255,0,1,255,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,0,9,255,0,10,187,1,0,187,1,10,170],"secondary":false},{"width":8,"bonus":40,"chr":"\\\\","pixels":[1,1,170,1,2,187,2,3,221,3,5,221,4,6,187,4,7,187,5,8,221,6,9,153],"secondary":false},{"width":5,"bonus":65,"chr":"]","pixels":[1,0,153,1,10,153,2,0,255,2,1,255,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,187],"secondary":false},{"width":7,"bonus":40,"chr":"^","pixels":[0,5,204,1,3,238,1,4,170,2,1,238,3,1,221,3,2,204,4,3,187,4,4,238],"secondary":false},{"width":7,"bonus":30,"chr":"_","pixels":[0,10,221,1,10,221,2,10,221,3,10,221,4,10,221,5,10,221],"secondary":false},{"width":9,"bonus":110,"chr":"a","pixels":[1,9,238,2,6,153,2,7,255,2,8,170,2,9,170,3,4,187,3,5,238,3,7,221,4,2,187,4,3,255,4,4,238,4,7,221,5,4,221,5,5,255,5,6,238,5,7,238,6,6,187,6,7,255,6,8,255,6,9,187,7,8,170,7,9,255],"secondary":false},{"width":7,"bonus":150,"chr":"b","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,255,3,2,221,3,5,221,3,9,204,4,2,187,4,3,255,4,4,255,4,5,170,4,6,255,4,7,170,4,8,187,4,9,187,5,6,153,5,7,255,5,8,204],"secondary":false},{"width":8,"bonus":120,"chr":"c","pixels":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,3,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,221,5,2,221,5,9,221,6,2,187,6,3,187,6,8,153,6,9,170],"secondary":false},{"width":10,"bonus":165,"chr":"d","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,9,221,4,2,238,4,9,221,5,2,221,5,9,204,6,2,153,6,3,238,6,8,187,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,8,5,187,8,6,170],"secondary":false},{"width":7,"bonus":110,"chr":"e","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,5,221,3,9,221,4,2,238,4,5,238,4,9,238],"secondary":false},{"width":7,"bonus":100,"chr":"f","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,2,221,3,5,221,4,2,238,4,5,238],"secondary":false},{"width":10,"bonus":135,"chr":"g","pixels":[0,4,170,0,5,238,0,6,255,0,7,187,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,238,5,2,238,5,9,221,6,2,204,6,6,255,6,7,255,6,8,255,6,9,204,7,6,204,7,7,153,7,8,153],"secondary":false},{"width":10,"bonus":175,"chr":"h","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,5,221,4,5,221,5,5,221,6,2,204,6,3,153,6,4,153,6,5,238,6,6,153,6,7,153,6,8,153,6,9,221,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,255],"secondary":false},{"width":5,"bonus":80,"chr":"i","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,153,2,9,221],"secondary":false},{"width":5,"bonus":90,"chr":"j","pixels":[2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,255,2,11,187,3,2,204,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,153],"secondary":false},{"width":9,"bonus":140,"chr":"k","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,187,2,7,153,2,8,153,2,9,204,3,5,238,3,6,238,4,6,170,4,7,255,5,2,238,5,3,153,5,7,170,5,8,255,6,2,204,6,8,170,6,9,238,7,9,204],"secondary":false},{"width":7,"bonus":95,"chr":"l","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,9,221,4,9,221,5,9,204],"secondary":false},{"width":12,"bonus":150,"chr":"m","pixels":[1,6,170,1,7,221,1,8,255,1,9,255,2,2,170,2,3,255,2,4,255,2,5,221,3,4,204,3,5,255,3,6,238,4,6,204,4,7,255,4,8,221,5,7,187,5,8,255,6,6,221,7,4,238,7,5,204,8,2,187,8,3,255,8,4,255,8,5,255,8,6,255,8,7,238,8,8,204,8,9,187,9,7,170,9,8,204,9,9,255],"secondary":false},{"width":10,"bonus":130,"chr":"n","pixels":[1,2,204,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,3,221,2,4,238,3,4,221,3,5,238,4,5,238,4,6,238,5,6,238,5,7,238,6,7,238,6,8,238,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,204],"secondary":false},{"width":10,"bonus":155,"chr":"o","pixels":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,170,2,8,204,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,238,6,8,170,7,3,238,7,4,255,7,5,255,7,6,255,7,7,255,7,8,187,8,4,153,8,5,221,8,6,204],"secondary":false},{"width":7,"bonus":115,"chr":"p","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,170,2,7,153,2,8,153,2,9,221,3,2,221,4,2,221,4,3,204,4,4,153,4,5,221,5,3,221,5,4,221],"secondary":false},{"width":10,"bonus":180,"chr":"q","pixels":[0,4,153,0,5,238,0,6,238,0,7,170,1,3,221,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,8,221,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,221,6,8,153,6,9,238,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,7,9,187,7,10,153,8,4,153,8,5,204,8,6,204,8,10,255,9,10,204],"secondary":false},{"width":9,"bonus":145,"chr":"r","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,238,2,7,153,2,8,153,2,9,221,3,2,238,3,6,238,4,2,204,4,3,204,4,4,153,4,5,204,4,6,204,4,7,255,5,3,221,5,4,221,5,8,255,6,9,238,7,9,153],"secondary":false},{"width":6,"bonus":115,"chr":"s","pixels":[0,3,221,0,4,238,0,8,187,0,9,187,1,2,187,1,4,204,1,5,255,1,9,238,2,2,187,2,5,255,2,6,187,2,9,221,3,2,204,3,5,153,3,6,255,3,7,170,3,8,153,3,9,170,4,2,204,4,3,153,4,6,170,4,7,255,4,8,187],"secondary":false},{"width":9,"bonus":105,"chr":"t","pixels":[1,2,238,2,2,221,3,2,238,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221,4,2,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,2,221,6,2,221,7,2,255],"secondary":false},{"width":10,"bonus":120,"chr":"u","pixels":[1,2,204,1,3,153,1,4,153,1,5,153,1,6,153,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,3,9,221,4,9,238,5,9,221,6,9,170,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,204,8,2,153],"secondary":false},{"width":10,"bonus":90,"chr":"v","pixels":[1,2,255,1,3,153,2,2,238,2,3,255,2,4,255,2,5,187,3,5,238,3,6,255,3,7,221,4,7,221,4,8,255,4,9,187,5,6,187,5,7,204,6,4,221,6,5,187,7,2,255,7,3,170],"secondary":false},{"width":13,"bonus":165,"chr":"w","pixels":[1,2,255,1,3,221,2,2,204,2,3,221,2,4,255,2,5,255,2,6,221,3,6,187,3,7,255,3,8,255,3,9,187,4,6,153,4,7,221,5,4,221,5,5,187,6,2,187,6,3,255,6,4,255,6,5,153,7,4,170,7,5,255,7,6,255,7,7,187,8,7,255,8,8,255,8,9,187,9,5,153,9,6,221,9,7,170,10,2,221,10,3,238,10,4,187,11,2,187],"secondary":false},{"width":9,"bonus":115,"chr":"x","pixels":[1,2,221,1,9,238,2,2,255,2,3,255,2,7,153,2,8,221,2,9,153,3,3,153,3,4,255,3,5,221,3,6,204,4,5,255,4,6,255,4,7,170,5,3,187,5,4,170,5,7,255,5,8,255,5,9,153,6,2,255,6,8,204,6,9,255,7,9,170],"secondary":false},{"width":8,"bonus":95,"chr":"y","pixels":[0,2,187,1,2,255,1,3,221,2,3,221,2,4,255,2,5,153,3,5,238,3,6,255,3,7,255,3,8,255,3,9,255,4,5,204,4,6,170,4,7,153,4,8,153,4,9,204,5,3,187,5,4,187,6,2,238],"secondary":false},{"width":8,"bonus":105,"chr":"z","pixels":[0,9,204,1,2,238,1,7,153,1,8,255,1,9,255,2,2,221,2,6,221,2,7,255,2,9,221,3,2,221,3,4,153,3,5,255,3,6,221,3,9,221,4,2,238,4,3,221,4,4,255,4,9,221,5,2,255,5,3,204,5,9,255],"secondary":false},{"width":4,"bonus":45,"chr":"{","pixels":[1,1,255,1,2,255,1,3,255,1,5,187,1,6,255,1,7,255,1,8,255,1,9,221,2,0,153],"secondary":false},{"width":2,"bonus":60,"chr":"|","pixels":[0,0,255,0,1,255,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,0,9,255,0,10,255,0,11,255],"secondary":true},{"width":4,"bonus":45,"chr":"}","pixels":[0,0,153,1,1,255,1,2,255,1,3,255,1,5,187,1,6,255,1,7,255,1,8,255,1,9,221],"secondary":false},{"width":7,"bonus":30,"chr":"~","pixels":[0,5,221,1,4,255,2,4,187,3,5,187,4,5,255,5,4,204],"secondary":false}],"width":13,"spacewidth":3,"shadow":false,"height":12,"basey":9}');
+
+/***/ })
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __nested_webpack_require_63941__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_63941__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/
+/******/ // startup
+/******/ // Load entry module and return exports
+/******/ // This entry module is referenced by other modules so it can't be inlined
+/******/ var __nested_webpack_exports__ = __nested_webpack_require_63941__("./src/dialog/index.ts");
+/******/
+/******/ return __nested_webpack_exports__;
+/******/ })()
+;
+});
+
+/***/ }),
+
+/***/ "../node_modules/alt1/dist/ocr/index.js":
+/*!**********************************************!*\
+ !*** ../node_modules/alt1/dist/ocr/index.js ***!
+ \**********************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(true)
+ module.exports = factory(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js"));
+ else {}
+})(globalThis, (__WEBPACK_EXTERNAL_MODULE_alt1_base__) => {
+return /******/ (() => { // webpackBootstrap
+/******/ "use strict";
+/******/ var __webpack_modules__ = ({
+
+/***/ "./src/ocr/index.ts":
+/*!**************************!*\
+ !*** ./src/ocr/index.ts ***!
+ \**************************/
+/***/ ((__unused_webpack_module, exports, __nested_webpack_require_728__) => {
+
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.generatefont = exports.readChar = exports.readSmallCapsBackwards = exports.readLine = exports.getChatColor = exports.GetChatColorMono = exports.findReadLine = exports.findChar = exports.decompose3col = exports.decomposeblack = exports.decompose2col = exports.canblend = exports.unblendTrans = exports.unblendKnownBg = exports.unblendBlackBackground = exports.debugFont = exports.debugout = exports.debug = void 0;
+const base_1 = __nested_webpack_require_728__(/*! alt1/base */ "alt1/base");
+exports.debug = {
+ printcharscores: false,
+ trackread: false
+};
+exports.debugout = {};
+/**
+ * draws the font definition to a buffer and displays it in the dom for debugging purposes
+ * @param font
+ */
+function debugFont(font) {
+ var spacing = font.width + 2;
+ var buf = new base_1.ImageData(spacing * font.chars.length, font.height + 1);
+ for (var a = 0; a < buf.data.length; a += 4) {
+ buf.data[a] = buf.data[a + 1] = buf.data[a + 2] = 0;
+ buf.data[a + 3] = 255;
+ }
+ for (var a = 0; a < font.chars.length; a++) {
+ var bx = a * spacing;
+ var chr = font.chars[a];
+ for (var b = 0; b < chr.pixels.length; b += (font.shadow ? 4 : 3)) {
+ buf.setPixel(bx + chr.pixels[b], chr.pixels[b + 1], [chr.pixels[b + 2], chr.pixels[b + 2], chr.pixels[b + 2], 255]);
+ if (font.shadow) {
+ buf.setPixel(bx + chr.pixels[b], chr.pixels[b + 1], [chr.pixels[b + 3], 0, 0, 255]);
+ }
+ }
+ }
+ buf.show();
+}
+exports.debugFont = debugFont;
+function unblendBlackBackground(img, r, g, b) {
+ var rimg = new base_1.ImageData(img.width, img.height);
+ for (var i = 0; i < img.data.length; i += 4) {
+ var col = decomposeblack(img.data[i], img.data[i + 1], img.data[i + 2], r, g, b);
+ rimg.data[i + 0] = col[0] * 255;
+ rimg.data[i + 1] = rimg.data[i + 0];
+ rimg.data[i + 2] = rimg.data[i + 0];
+ rimg.data[i + 3] = 255;
+ }
+ return rimg;
+}
+exports.unblendBlackBackground = unblendBlackBackground;
+/**
+ * unblends a imagebuffer into match strength with given color
+ * the bgimg argument should contain a second image with pixel occluded by the font visible.
+ * @param img
+ * @param shadow detect black as second color
+ * @param bgimg optional second image to
+ */
+function unblendKnownBg(img, bgimg, shadow, r, g, b) {
+ if (bgimg && (img.width != bgimg.width || img.height != bgimg.height)) {
+ throw "bgimg size doesn't match";
+ }
+ var rimg = new base_1.ImageData(img.width, img.height);
+ var totalerror = 0;
+ for (var i = 0; i < img.data.length; i += 4) {
+ var col = decompose2col(img.data[i], img.data[i + 1], img.data[i + 2], r, g, b, bgimg.data[i + 0], bgimg.data[i + 1], bgimg.data[i + 2]);
+ if (shadow) {
+ if (col[2] > 0.01) {
+ console.log("high error component: " + (col[2] * 100).toFixed(1) + "%");
+ }
+ totalerror += col[2];
+ var m = 1 - col[1] - Math.abs(col[2]); //main color+black=100%-bg-error
+ rimg.data[i + 0] = m * 255;
+ rimg.data[i + 1] = col[0] / m * 255;
+ rimg.data[i + 2] = rimg.data[i + 0];
+ }
+ else {
+ rimg.data[i + 0] = col[0] * 255;
+ rimg.data[i + 1] = rimg.data[i + 0];
+ rimg.data[i + 2] = rimg.data[i + 0];
+ }
+ rimg.data[i + 3] = 255;
+ }
+ return rimg;
+}
+exports.unblendKnownBg = unblendKnownBg;
+/**
+ * Unblends a font image that is already conpletely isolated to the raw image used ingame. This is the easiest mode for pixel fonts where alpha is 0 or 255, or for extracted font files.
+ * @param img
+ * @param r
+ * @param g
+ * @param b
+ * @param shadow whether the font has a black shadow
+ */
+function unblendTrans(img, shadow, r, g, b) {
+ var rimg = new base_1.ImageData(img.width, img.height);
+ var pxlum = r + g + b;
+ for (var i = 0; i < img.data.length; i += 4) {
+ if (shadow) {
+ var lum = img.data[i + 0] + img.data[i + 1] + img.data[i + 2];
+ rimg.data[i + 0] = img.data[i + 3];
+ rimg.data[i + 1] = lum / pxlum * 255;
+ rimg.data[i + 2] = rimg.data[i + 0];
+ }
+ else {
+ rimg.data[i + 0] = img.data[i + 3];
+ rimg.data[i + 1] = rimg.data[i + 0];
+ rimg.data[i + 2] = rimg.data[i + 0];
+ }
+ rimg.data[i + 3] = 255;
+ }
+ return rimg;
+}
+exports.unblendTrans = unblendTrans;
+/**
+ * Determised wether color [rgb]m can be a result of a blend with color [rgb]1 that is p (0-1) of the mix
+ * It returns the number that the second color has to lie outside of the possible color ranges
+ * @param rm resulting color
+ * @param r1 first color of the mix (the other color is unknown)
+ * @param p the portion of the [rgb]1 in the mix (0-1)
+ */
+function canblend(rm, gm, bm, r1, g1, b1, p) {
+ var m = Math.min(50, p / (1 - p));
+ var r = rm + (rm - r1) * m;
+ var g = gm + (gm - g1) * m;
+ var b = bm + (bm - b1) * m;
+ return Math.max(0, -r, -g, -b, r - 255, g - 255, b - 255);
+}
+exports.canblend = canblend;
+/**
+ * decomposes a color in 2 given component colors and returns the amount of each color present
+ * also return a third (noise) component which is the the amount leftover orthagonal from the 2 given colors
+ */
+function decompose2col(rp, gp, bp, r1, g1, b1, r2, g2, b2) {
+ //get the normal of the error (cross-product of both colors)
+ var r3 = g1 * b2 - g2 * b1;
+ var g3 = b1 * r2 - b2 * r1;
+ var b3 = r1 * g2 - r2 * g1;
+ //normalize to length 255
+ var norm = 255 / Math.sqrt(r3 * r3 + g3 * g3 + b3 * b3);
+ r3 *= norm;
+ g3 *= norm;
+ b3 *= norm;
+ return decompose3col(rp, gp, bp, r1, g1, b1, r2, g2, b2, r3, g3, b3);
+}
+exports.decompose2col = decompose2col;
+/**
+ * decomposes a pixel in a given color component and black and returns what proportion of the second color it contains
+ * this is not as formal as decompose 2/3 and only give a "good enough" number
+ */
+function decomposeblack(rp, gp, bp, r1, g1, b1) {
+ var dr = Math.abs(rp - r1);
+ var dg = Math.abs(gp - g1);
+ var db = Math.abs(bp - b1);
+ var maxdif = Math.max(dr, dg, db);
+ return [1 - maxdif / 255];
+}
+exports.decomposeblack = decomposeblack;
+/**
+ * decomposes a color in 3 given component colors and returns the amount of each color present
+ */
+function decompose3col(rp, gp, bp, r1, g1, b1, r2, g2, b2, r3, g3, b3) {
+ //P=x*C1+y*C2+z*C3
+ //assemble as matrix
+ //M*w=p
+ //get inverse of M
+ //dirty written out version of cramer's rule
+ var A = g2 * b3 - b2 * g3;
+ var B = g3 * b1 - b3 * g1;
+ var C = g1 * b2 - b1 * g2;
+ var D = b2 * r3 - r2 * b3;
+ var E = b3 * r1 - r3 * b1;
+ var F = b1 * r2 - r1 * b2;
+ var G = r2 * g3 - g2 * r3;
+ var H = r3 * g1 - g3 * r1;
+ var I = r1 * g2 - g1 * r2;
+ var det = r1 * A + g1 * D + b1 * G;
+ //M^-1*p=w
+ var x = (A * rp + D * gp + G * bp) / det;
+ var y = (B * rp + E * gp + H * bp) / det;
+ var z = (C * rp + F * gp + I * bp) / det;
+ return [x, y, z];
+}
+exports.decompose3col = decompose3col;
+/**
+ * brute force to the exact position of the text
+ */
+function findChar(buffer, font, col, x, y, w, h) {
+ if (x < 0) {
+ return null;
+ }
+ if (y - font.basey < 0) {
+ return null;
+ }
+ if (x + w + font.width > buffer.width) {
+ return null;
+ }
+ if (y + h - font.basey + font.height > buffer.height) {
+ return null;
+ }
+ var best = 1000; //TODO finetune score constants
+ var bestchar = null;
+ for (var cx = x; cx < x + w; cx++) {
+ for (var cy = y; cy < y + h; cy++) {
+ var chr = readChar(buffer, font, col, cx, cy, false, false);
+ if (chr != null && chr.sizescore < best) {
+ best = chr.sizescore;
+ bestchar = chr;
+ }
+ }
+ }
+ return bestchar;
+}
+exports.findChar = findChar;
+/**
+ * reads text with unknown exact coord or color. The given coord should be inside the text
+ * color selection not implemented yet
+ */
+function findReadLine(buffer, font, cols, x, y, w = -1, h = -1) {
+ if (w == -1) {
+ w = font.width + font.spacewidth;
+ x -= Math.ceil(w / 2);
+ }
+ if (h == -1) {
+ h = 7;
+ y -= 1;
+ }
+ var chr = null;
+ if (cols.length > 1) {
+ //TODO use getChatColor() instead for non-mono?
+ var sorted = GetChatColorMono(buffer, new base_1.Rect(x, y - font.basey, w, h), cols);
+ //loop until we have a match (max 2 cols)
+ for (var a = 0; a < 2 && a < sorted.length && chr == null; a++) {
+ chr = findChar(buffer, font, sorted[a].col, x, y, w, h);
+ }
+ }
+ else {
+ chr = findChar(buffer, font, cols[0], x, y, w, h);
+ }
+ if (chr == null) {
+ return { debugArea: { x, y, w, h }, text: "", fragments: [] };
+ }
+ return readLine(buffer, font, cols, chr.x, chr.y, true, true);
+}
+exports.findReadLine = findReadLine;
+function GetChatColorMono(buf, rect, colors) {
+ var colormap = colors.map(c => ({ col: c, score: 0 }));
+ if (rect.x < 0 || rect.y < 0 || rect.x + rect.width > buf.width || rect.y + rect.height > buf.height) {
+ return colormap;
+ }
+ var data = buf.data;
+ var maxd = 50;
+ for (var colobj of colormap) {
+ var score = 0;
+ var col = colobj.col;
+ for (var y = rect.y; y < rect.y + rect.height; y++) {
+ for (var x = rect.x; x < rect.x + rect.width; x++) {
+ var i = x * 4 + y * 4 * buf.width;
+ var d = Math.abs(data[i] - col[0]) + Math.abs(data[i + 1] - col[1]) + Math.abs(data[i + 2] - col[2]);
+ if (d < maxd) {
+ score += maxd - d;
+ }
+ }
+ }
+ colobj.score = score;
+ }
+ return colormap.sort((a, b) => b.score - a.score);
+}
+exports.GetChatColorMono = GetChatColorMono;
+function unblend(r, g, b, R, G, B) {
+ var m = Math.sqrt(r * r + g * g + b * b);
+ var n = Math.sqrt(R * R + G * G + B * B);
+ var x = (r * R + g * G + b * B) / n;
+ var y = Math.sqrt(Math.max(0, m * m - x * x));
+ var r1 = Math.max(0, (63.75 - y) * 4);
+ var r2 = x / n * 255;
+ if (r2 > 255) //brighter than refcol
+ {
+ r1 = Math.max(0, r1 - r2 + 255);
+ r2 = 255;
+ }
+ return [r1, r2];
+}
+function getChatColor(buf, rect, colors) {
+ var bestscore = -1.0;
+ var best = null;
+ var b2 = 0.0;
+ var data = buf.data;
+ for (let col of colors) {
+ var score = 0.0;
+ for (var y = rect.y; y < rect.y + rect.height; y++) {
+ for (var x = rect.x; x < rect.x + rect.width; x++) {
+ if (x < 0 || x + 1 >= buf.width) {
+ continue;
+ }
+ if (y < 0 || y + 1 >= buf.width) {
+ continue;
+ }
+ let i1 = buf.pixelOffset(x, y);
+ let i2 = buf.pixelOffset(x + 1, y + 1);
+ var pixel1 = unblend(data[i1 + 0], data[i1 + 1], data[i1 + 2], col[0], col[1], col[2]);
+ var pixel2 = unblend(data[i2 + 0], data[i2 + 1], data[i2 + 2], col[0], col[1], col[2]);
+ //TODO this is from c# can simplify a bit
+ var s = (pixel1[0] / 255 * pixel1[1] / 255) * (pixel2[0] / 255 * (255.0 - pixel2[1]) / 255);
+ score += s;
+ }
+ }
+ if (score > bestscore) {
+ b2 = bestscore;
+ bestscore = score;
+ best = col;
+ }
+ else if (score > b2) {
+ b2 = score;
+ }
+ }
+ //Console.WriteLine("color: " + bestcol + " - " + (bestscore - b2));
+ //bestscore /= rect.width * rect.height;
+ return best;
+}
+exports.getChatColor = getChatColor;
+/**
+ * reads a line of text with exactly known position and color. y should be the y coord of the text base line, x should be the first pixel of a new character
+ */
+function readLine(buffer, font, colors, x, y, forward, backward = false) {
+ if (typeof colors[0] != "number" && colors.length == 1) {
+ colors = colors[0];
+ }
+ var multicol = typeof colors[0] != "number";
+ var allcolors = multicol ? colors : [colors];
+ var detectcolor = function (sx, sy, backward) {
+ var w = Math.floor(font.width * 1.5);
+ if (backward) {
+ sx -= w;
+ }
+ sy -= font.basey;
+ return getChatColor(buffer, { x: sx, y: sy, width: w, height: font.height }, allcolors);
+ };
+ var fragments = [];
+ var x1 = x;
+ var x2 = x;
+ var maxspaces = (typeof font.maxspaces == "number" ? font.maxspaces : 1);
+ let fragtext = "";
+ let fraghadprimary = false;
+ var lastcol = null;
+ let addfrag = (forward) => {
+ if (!fragtext) {
+ return;
+ }
+ let frag = {
+ text: fragtext,
+ color: lastcol,
+ index: 0,
+ xstart: x + (forward ? fragstartdx : fragenddx),
+ xend: x + (forward ? fragenddx : fragstartdx)
+ };
+ if (forward) {
+ fragments.push(frag);
+ }
+ else {
+ fragments.unshift(frag);
+ }
+ fragtext = "";
+ fragstartdx = dx;
+ fraghadprimary = false;
+ };
+ for (var dirforward of [true, false]) {
+ //init vars
+ if (dirforward && !forward) {
+ continue;
+ }
+ if (!dirforward && !backward) {
+ continue;
+ }
+ var dx = 0;
+ var fragstartdx = dx;
+ var fragenddx = dx;
+ var triedspaces = 0;
+ var triedrecol = false;
+ var col = multicol ? null : colors;
+ while (true) {
+ col = col || detectcolor(x + dx, y, !dirforward);
+ var chr = (col ? readChar(buffer, font, col, x + dx, y, !dirforward, true) : null);
+ if (col == null || chr == null) {
+ if (triedspaces < maxspaces) {
+ dx += (dirforward ? 1 : -1) * font.spacewidth;
+ triedspaces++;
+ continue;
+ }
+ if (multicol && !triedrecol && fraghadprimary) {
+ dx -= (dirforward ? 1 : -1) * triedspaces * font.spacewidth;
+ triedspaces = 0;
+ col = null;
+ triedrecol = true;
+ continue;
+ }
+ if (dirforward) {
+ x2 = x + dx - font.spacewidth;
+ }
+ else {
+ x1 = x + dx + font.spacewidth;
+ }
+ break;
+ }
+ else {
+ if (lastcol && (col[0] != lastcol[0] || col[1] != lastcol[1] || col[2] != lastcol[2])) {
+ addfrag(dirforward);
+ }
+ var spaces = "";
+ for (var a = 0; a < triedspaces; a++) {
+ spaces += " ";
+ }
+ if (dirforward) {
+ fragtext += spaces + chr.chr;
+ }
+ else {
+ fragtext = chr.chr + spaces + fragtext;
+ }
+ if (!chr.basechar.secondary) {
+ fraghadprimary = true;
+ }
+ triedspaces = 0;
+ triedrecol = false;
+ dx += (dirforward ? 1 : -1) * chr.basechar.width;
+ fragenddx = dx;
+ lastcol = col;
+ }
+ }
+ if (lastcol && fraghadprimary) {
+ addfrag(dirforward);
+ }
+ }
+ fragments.forEach((f, i) => f.index = i);
+ return {
+ debugArea: { x: x1, y: y - 9, w: x2 - x1, h: 10 },
+ text: fragments.map(f => f.text).join(""),
+ fragments
+ };
+}
+exports.readLine = readLine;
+/**
+ * Reads a line of text that uses a smallcaps font, these fonts can have duplicate chars that only have a different amount of
+ * empty space after the char before the next char starts.
+ * The coordinates should be near the end of the string, or a rectangle with high 1 containing all points where the string can end.
+ */
+function readSmallCapsBackwards(buffer, font, cols, x, y, w = -1, h = -1) {
+ if (w == -1) {
+ w = font.width + font.spacewidth;
+ x -= Math.ceil(w / 2);
+ }
+ if (h == -1) {
+ h = 7;
+ y -= 1;
+ }
+ var matchedchar = null;
+ var sorted = (cols.length == 1 ? [{ col: cols[0], score: 1 }] : GetChatColorMono(buffer, new base_1.Rect(x, y - font.basey, w, h), cols));
+ //loop until we have a match (max 2 cols)
+ for (var a = 0; a < 2 && a < sorted.length && matchedchar == null; a++) {
+ for (var cx = x + w - 1; cx >= x; cx--) {
+ var best = 1000; //TODO finetune score constants
+ var bestchar = null;
+ for (var cy = y; cy < y + h; cy++) {
+ var chr = readChar(buffer, font, sorted[a].col, cx, cy, true, false);
+ if (chr != null && chr.sizescore < best) {
+ best = chr.sizescore;
+ bestchar = chr;
+ }
+ }
+ if (bestchar) {
+ matchedchar = bestchar;
+ break;
+ }
+ }
+ }
+ if (matchedchar == null) {
+ return { text: "", debugArea: { x, y, w, h } };
+ }
+ return readLine(buffer, font, cols, matchedchar.x, matchedchar.y, false, true);
+}
+exports.readSmallCapsBackwards = readSmallCapsBackwards;
+/**
+ * Reads a single character at the exact given location
+ * @param x exact x location of the start of the character domain (includes part of the spacing between characters)
+ * @param y exact y location of the baseline pixel of the character
+ * @param backwards read in backwards direction, the x location should be the first pixel after the character domain in that case
+ */
+function readChar(buffer, font, col, x, y, backwards, allowSecondary) {
+ y -= font.basey;
+ var shiftx = 0;
+ var shifty = font.basey;
+ var shadow = font.shadow;
+ var debugobj = null;
+ var debugimg = null;
+ if (exports.debug.trackread) {
+ var name = x + ";" + y + " " + JSON.stringify(col);
+ if (!exports.debugout[name]) {
+ exports.debugout[name] = [];
+ }
+ debugobj = exports.debugout[name];
+ }
+ //===== make sure the full domain is inside the bitmap/buffer ======
+ if (y < 0 || y + font.height >= buffer.height) {
+ return null;
+ }
+ if (!backwards) {
+ if (x < 0 || x + font.width > buffer.width) {
+ return null;
+ }
+ }
+ else {
+ if (x - font.width < 0 || x > buffer.width) {
+ return null;
+ }
+ }
+ //====== start reading the char ======
+ var scores = [];
+ for (var chr = 0; chr < font.chars.length; chr++) {
+ var chrobj = font.chars[chr];
+ if (chrobj.secondary && !allowSecondary) {
+ continue;
+ }
+ scores[chr] = { score: 0, sizescore: 0, chr: chrobj };
+ var chrx = (backwards ? x - chrobj.width : x);
+ if (exports.debug.trackread) {
+ debugimg = new base_1.ImageData(font.width, font.height);
+ }
+ for (var a = 0; a < chrobj.pixels.length;) {
+ var i = (chrx + chrobj.pixels[a]) * 4 + (y + chrobj.pixels[a + 1]) * buffer.width * 4;
+ var penalty = 0;
+ if (!shadow) {
+ penalty = canblend(buffer.data[i], buffer.data[i + 1], buffer.data[i + 2], col[0], col[1], col[2], chrobj.pixels[a + 2] / 255);
+ a += 3;
+ }
+ else {
+ var lum = chrobj.pixels[a + 3] / 255;
+ penalty = canblend(buffer.data[i], buffer.data[i + 1], buffer.data[i + 2], col[0] * lum, col[1] * lum, col[2] * lum, chrobj.pixels[a + 2] / 255);
+ a += 4;
+ }
+ scores[chr].score += Math.max(0, penalty);
+ //TODO add compiler flag to this to remove it for performance
+ if (debugimg) {
+ debugimg.setPixel(chrobj.pixels[a], chrobj.pixels[a + 1], [penalty, penalty, penalty, 255]);
+ }
+ }
+ scores[chr].sizescore = scores[chr].score - chrobj.bonus;
+ if (debugobj) {
+ debugobj.push({ chr: chrobj.chr, score: scores[chr].sizescore, rawscore: scores[chr].score, img: debugimg });
+ }
+ }
+ scores.sort((a, b) => a.sizescore - b.sizescore);
+ if (exports.debug.printcharscores) {
+ scores.slice(0, 5).forEach(q => console.log(q.chr.chr, q.score.toFixed(3), q.sizescore.toFixed(3)));
+ }
+ var winchr = scores[0];
+ if (!winchr || winchr.score > 400) {
+ return null;
+ }
+ return { chr: winchr.chr.chr, basechar: winchr.chr, x: x + shiftx, y: y + shifty, score: winchr.score, sizescore: winchr.sizescore };
+}
+exports.readChar = readChar;
+/**
+ * Generates a font json description to use in reader functions
+ * @param unblended A source image with all characters lined up. The image should be unblended into components using the unblend functions
+ * The lowest pixel line of this image is used to mark the location and size of the charecters if the red component is 255 it means there is a character on that pixel column
+ * @param chars A string containing all the characters of the image in the same order
+ * @param seconds A string with characters that are considered unlikely and should only be detected if no other character is possible.
+ * For example the period (.) character matches positive inside many other characters and should be marked as secondary
+ * @param bonusses An object that contains bonus scores for certain difficult characters to make the more likely to be red.
+ * @param basey The y position of the baseline pixel of the font
+ * @param spacewidth the number of pixels a space takes
+ * @param treshold minimal color match proportion (0-1) before a pixel is used for the font
+ * @param shadow whether this font also uses the black shadow some fonts have. The "unblended" image should be unblended correspondingly
+ * @returns a javascript object describing the font which is used as input for the different read functions
+ */
+function generatefont(unblended, chars, seconds, bonusses, basey, spacewidth, treshold, shadow) {
+ //settings vars
+ treshold *= 255;
+ //initial vars
+ var miny = unblended.height - 1;
+ var maxy = 0;
+ var font = { chars: [], width: 0, spacewidth: spacewidth, shadow: shadow, height: 0, basey: 0 };
+ var ds = false;
+ var chardata = [];
+ //index all chars
+ for (var dx = 0; dx < unblended.width; dx++) {
+ var i = 4 * dx + 4 * unblended.width * (unblended.height - 1);
+ if (unblended.data[i] == 255 && unblended.data[i + 3] == 255) {
+ if (ds === false) {
+ ds = dx;
+ }
+ }
+ else {
+ if (ds !== false) {
+ //char found, start detection
+ var de = dx;
+ var char = chars[chardata.length];
+ var chr = {
+ ds: ds,
+ de: de,
+ width: de - ds,
+ chr: char,
+ bonus: (bonusses && bonusses[char]) || 0,
+ secondary: seconds.indexOf(chars[chardata.length]) != -1,
+ pixels: []
+ };
+ chardata.push(chr);
+ font.width = Math.max(font.width, chr.width);
+ for (x = 0; x < de - ds; x++) {
+ for (y = 0; y < unblended.height - 1; y++) {
+ var i = (x + ds) * 4 + y * unblended.width * 4;
+ if (unblended.data[i] >= treshold) {
+ miny = Math.min(miny, y);
+ maxy = Math.max(maxy, y);
+ }
+ }
+ }
+ ds = false;
+ }
+ }
+ }
+ font.height = maxy + 1 - miny;
+ font.basey = basey - miny;
+ //detect all pixels
+ for (var a in chardata) {
+ var chr = chardata[a];
+ for (var x = 0; x < chr.width; x++) {
+ for (var y = 0; y < maxy + 1 - miny; y++) {
+ var i = (x + chr.ds) * 4 + (y + miny) * unblended.width * 4;
+ if (unblended.data[i] >= treshold) {
+ chr.pixels.push(x, y);
+ chr.pixels.push(unblended.data[i]);
+ if (shadow) {
+ chr.pixels.push(unblended.data[i + 1]);
+ }
+ chr.bonus += 5;
+ }
+ }
+ }
+ //prevent js from doing the thing with unnecessary output precision
+ chr.bonus = +chr.bonus.toFixed(3);
+ font.chars.push({ width: chr.width, bonus: chr.bonus, chr: chr.chr, pixels: chr.pixels, secondary: chr.secondary });
+ }
+ return font;
+}
+exports.generatefont = generatefont;
+
+
+/***/ }),
+
+/***/ "alt1/base":
+/*!**************************************************************************************************!*\
+ !*** external {"root":"A1lib","commonjs2":"alt1/base","commonjs":"alt1/base","amd":"alt1/base"} ***!
+ \**************************************************************************************************/
+/***/ ((module) => {
+
+module.exports = __WEBPACK_EXTERNAL_MODULE_alt1_base__;
+
+/***/ })
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __nested_webpack_require_26177__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId](module, module.exports, __nested_webpack_require_26177__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/
+/******/ // startup
+/******/ // Load entry module and return exports
+/******/ // This entry module is referenced by other modules so it can't be inlined
+/******/ var __nested_webpack_exports__ = __nested_webpack_require_26177__("./src/ocr/index.ts");
+/******/
+/******/ return __nested_webpack_exports__;
+/******/ })()
+;
+});
+
+/***/ })
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/compat get default export */
+/******/ (() => {
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = (module) => {
+/******/ var getter = module && module.__esModule ?
+/******/ () => (module['default']) :
+/******/ () => (module);
+/******/ __webpack_require__.d(getter, { a: getter });
+/******/ return getter;
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/define property getters */
+/******/ (() => {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = (exports, definition) => {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/global */
+/******/ (() => {
+/******/ __webpack_require__.g = (function() {
+/******/ if (typeof globalThis === 'object') return globalThis;
+/******/ try {
+/******/ return this || new Function('return this')();
+/******/ } catch (e) {
+/******/ if (typeof window === 'object') return window;
+/******/ }
+/******/ })();
+/******/ })();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ (() => {
+/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
+/******/ })();
+/******/
+/******/ /* webpack/runtime/make namespace object */
+/******/ (() => {
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = (exports) => {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/publicPath */
+/******/ (() => {
+/******/ var scriptUrl;
+/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + "";
+/******/ var document = __webpack_require__.g.document;
+/******/ if (!scriptUrl && document) {
+/******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')
+/******/ scriptUrl = document.currentScript.src;
+/******/ if (!scriptUrl) {
+/******/ var scripts = document.getElementsByTagName("script");
+/******/ if(scripts.length) {
+/******/ var i = scripts.length - 1;
+/******/ while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;
+/******/ }
+/******/ }
+/******/ }
+/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration
+/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic.
+/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser");
+/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/");
+/******/ __webpack_require__.p = scriptUrl;
+/******/ })();
+/******/
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be in strict mode.
+(() => {
+"use strict";
+/*!******************!*\
+ !*** ./index.ts ***!
+ \******************/
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _modules_dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modules/dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _modules_settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/settings */ "./modules/settings.ts");
+/* harmony import */ var _modules_slayer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/slayer */ "./modules/slayer.ts");
+/* harmony import */ var _modules_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/logger */ "./modules/logger.ts");
+/* harmony import */ var _index_html__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./index.html */ "./index.html");
+/* harmony import */ var _appconfig_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./appconfig.json */ "./appconfig.json");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+
+
+
+
+
+/* COPYRIGHT NOTICE - DO NOT REMOVE
+ 2021 @ Unlishema Dragonsworn
+ I have programmed this enitre app myself; however, I must give credit where credit is due.
+
+ The credits have been moved into their own file @ https://slayer.unlishema.org/pages/credits.html
+*/
+/*
+ ~~~ Slayer Assistant App ~~~
+ Features coming in the near future (Also my current TODO List)
+
+ ~ Before Release for Sure ~
+ Update the about page. (Will need updated again on next release)
+ Update the changelog page. (Will need updated again on next release)
+ Update the credits page. (Will need updated again on next release)
+
+ ~ Coming Next Release ~
+ Adjust where the CNAME for the app on github is located for source update (Done)
+ Upload the source of the app to github so we won't lose it again (Ready but source needs Tested First)
+ Adjust the DNS Record for https://slayer.unlishema.org to point at https://unlishema.github.io/slayerassistant/dist instead for new update because the source is the main dir
+ Add ability to load the database through a php file instead of the json (Done, except for reapers.json)
+ - We will still use a json database in the app but the php file will build the json via MySQL (Done)
+ - The php file will be creatures.json via the .htaccess file (Done)
+ - http://slayer.unlishema.org/data/creatures.json will load http://slayer.unlishema.org/data/creatures.php?q=all (Done)
+ - Add other features to the database query php even if the app don't use them yet (Coming in the future)
+ -- Example: http://slayer.unlishema.org/data/creatures.php?q=Dragon&l=10
+ -- l=100 could limit results, d could have it give extra details, q could also be setup for seaching, and so on
+ Adjust the caching of the json database files to make sure they get updated timely (use .htaccess and mode_expires.c)
+ - This may not be needed once I change over to the php file instead. (Doesn't seem to be needed anymore, more testing required)
+
+ ~ Coming Very Soon Maybe even next Release ~
+ Add in a status tracking area to keep track of xp/hr, kills/hr, and more (Needs finished)
+ Add settings into the app finally (Needs rest added)
+ Adjust histories to use sessionStorage
+ Make it show if it detects your using alt1toolkit or not and warn a users of the features they are missing without using alt1toolkit.
+ - Also add into settings ability to hide this warning. Also add setting to turn off injection of the alt1 app.
+
+ ~ Near future Release ~
+ Add support for Ushubti
+
+ ~ Settings for the app ~
+ Settings:
+ - Ability to toggle on and off Debug and Verbose mode
+ - Ability to toggle auto find task via dialog (Done)
+ - Ability to toggle auto find current task via Slayer Count RS3UI (Done)
+ - Ability to toggle extra info to make box smaller without scrollbar (Done)
+ - Ability to toggle all hidden creatures
+ -- Ability to toggle sub-classes of hidden creatures like (elite), (dragonkin lab) and such
+ - Ability to select default loading
+ -- Default Task(s) on open and adjust doc based on it (Done, Partially)
+ -- Load previous task(s) and adjust doc based on it
+ - Ability to select defaults for everything (Later On)
+ -- Select default creature per task
+ -- Select default variant per creature
+ - Ability to customize the Look N Feel of the Slayer Assistant UI (Way Later On)
+ - Ability to select how long to save search history (Way Later On)
+ - Ability to select the type of search algo for the app (Maybe Later On)
+ - Ability to toggle warnings (eg. Missing Features due to not on Alt1Toolkit, Missing Data, and so on...)
+ - Ability to turn off app injection (This will fix issues where a user can't inject into the client)
+
+*/
+if (window.alt1)
+ alt1.identifyAppUrl("./appconfig.json");
+// Initialize the JavaScript for the app
+document.addEventListener("DOMContentLoaded", function () { return __awaiter(void 0, void 0, void 0, function () {
+ var error_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 3, , 4]);
+ // Setup the main document and load assignment index
+ return [4 /*yield*/, _modules_dochandler__WEBPACK_IMPORTED_MODULE_0__.main.setup.documentMain()];
+ case 1:
+ // Setup the main document and load assignment index
+ _a.sent();
+ // Run the Config Setup Process
+ return [4 /*yield*/, _modules_settings__WEBPACK_IMPORTED_MODULE_1__.controller.load()];
+ case 2:
+ // Run the Config Setup Process
+ _a.sent();
+ // Start the capture loop at the configured interval
+ setInterval(function () {
+ _modules_slayer__WEBPACK_IMPORTED_MODULE_2__.findTask();
+ }, _modules_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.autoCapture.loopTimer);
+ return [3 /*break*/, 4];
+ case 3:
+ error_1 = _a.sent();
+ console.error("Initialization error:", error_1);
+ return [3 /*break*/, 4];
+ case 4: return [2 /*return*/];
+ }
+ });
+}); });
+// Save settings before closing the app
+document.addEventListener("beforeunload", function () { return __awaiter(void 0, void 0, void 0, function () {
+ var error_2;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _a.trys.push([0, 2, , 3]);
+ return [4 /*yield*/, _modules_settings__WEBPACK_IMPORTED_MODULE_1__.controller.save()];
+ case 1:
+ _a.sent();
+ return [3 /*break*/, 3];
+ case 2:
+ error_2 = _a.sent();
+ _modules_logger__WEBPACK_IMPORTED_MODULE_3__.error("Error saving settings:", error_2);
+ return [3 /*break*/, 3];
+ case 3: return [2 /*return*/];
+ }
+ });
+}); });
+
+})();
+
+/******/ return __webpack_exports__;
+/******/ })()
+;
+});
+//# sourceMappingURL=main.js.map
\ No newline at end of file
--- /dev/null
+{"version":3,"file":"main.js","mappings":"AAAA;AACA;AACA,2EAA2E,MAAM,2BAA2B,aAAa,qDAAqD,MAAM,4BAA4B,aAAa,qDAAqD,MAAM,qCAAqC,aAAa;AAC1U;AACA;AACA;AACA,uFAAuF,MAAM,2BAA2B,aAAa,qDAAqD,MAAM,4BAA4B,aAAa,qDAAqD,MAAM,qCAAqC,aAAa;AACtV;AACA;AACA,CAAC;AACD,O;;;;;;;;;ACVA,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;ACA/C,eAAe,6FAAgC;;;;;;;;;;;;;;;;ACA/C,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,uBAAuB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,2BAA2B;AAC7F;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,yBAAyB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,4BAA4B;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;;;;;;;;;;;;;;;;;;;;ACjL3B,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AAC8B;AACS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,6BAA6B,mDAAuB;AACpD;AACA;AACA,4CAA4C,oDAAY;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG;AACrG;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;AAC6B;;;;;;;;;;;;;;;;;;;;;;AC/G9B,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AAC8B;AACE;AACO;AACvC,WAAW,+CAAmB;AAC9B,yBAAyB,mBAAO,CAAC,+FAA6C;AAC9E,yBAAyB,mBAAO,CAAC,+FAA6C;AAC9E,yBAAyB,mBAAO,CAAC,+FAA6C;AAC9E,yBAAyB,mBAAO,CAAC,+FAA6C;AAC9E,0BAA0B,mBAAO,CAAC,iGAA8C;AAChF,0BAA0B,mBAAO,CAAC,iGAA8C;AAChF,0BAA0B,mBAAO,CAAC,iGAA8C;AAChF,0BAA0B,mBAAO,CAAC,iGAA8C;AAChF,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACwB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mDAAuB;AAC5D;AACA;AACA,mDAAmD,mBAAO,CAAC,+EAAqC,uBAAuB,kBAAkB;AACzI;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mBAAO,CAAC,6EAAoC,uBAAuB,kBAAkB;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,0CAA0C;AAC1H,+EAA+E,2CAA2C;AAC1H,gFAAgF,2CAA2C;AAC3H,+EAA+E,4CAA4C;AAC3H,gFAAgF,yCAAyC;AACzH,+EAA+E,0CAA0C;AACzH,gFAAgF,0CAA0C;AAC1H,+EAA+E,2CAA2C;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA,yEAAyE,iDAAmB;AAC5F,iDAAiD,0CAAc;AAC/D;AACA;AACA,wCAAwC,kDAAgB;AACxD;AACA;AACA,iDAAiD,kDAAgB;AACjE;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,CAAC;AAC0B;;;;;;;;;;;;;;;;;AC9H3B,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;ACpGA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AAC2C;AAC3C;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;AACA,4BAA4B,uDAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;ACnEA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AAC2C;AAC3C;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;AACA,4BAA4B,uDAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;ACnEA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;AC9FA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AAC2C;AAC3C;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;AACA,4BAA4B,uDAAU;AACtC,6DAA6D,gBAAgB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxEA;AAC0C;AAC1C;AACgD;AACF;AACJ;AACE;AACF;AACA;AACA;AAC1C;AACO;AACP,eAAe,iDAAQ;AACvB,eAAe,iDAAQ;AACvB;AACA,eAAe,iDAAQ;AACvB;AACA;AACA;;;;;;;;;;;;;;;;;;AClBA;AAC4C;AAC5C;AACO;AACP,qBAAqB,iDAAmB;AACxC;AACA;AACA;AACA;AACA;AACO;AACP,qBAAqB,iDAAmB;AACxC;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACwC;AACI;AACA;AACD;AACA;AACS;AACL;AACF;AACT;AACpC;AACO;AACP;AACA;AACA,mCAAmC;AACnC,kCAAkC;AAClC;AACA;AACA;AACA;AACA,oBAAoB,wDAA0B;AAC9C,2BAA2B,gDAAkB;AAC7C;AACA,yBAAyB,iDAAmB,oBAAoB,2DAA6B;AAC7F,wBAAwB,4DAA8B;AACtD;AACA;AACA;AACA;AACA,mCAAmC,iDAAmB;AACtD;AACA;AACA,kCAAkC,iDAAmB;AACrD;AACA,oBAAoB,wCAAU;AAC9B,yCAAyC,+CAAY;AACrD;AACA;AACA;AACA;AACA,6BAA6B,iDAAmB,qBAAqB,2DAA6B;AAClG,6CAA6C,iDAAmB;AAChE;AACA;AACA,sCAAsC,gEAAkC;AACxE;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB;AAC5D,wBAAwB,iDAAmB,2CAA2C,yDAA2B;AACjH;AACA;AACA,oBAAoB,4DAA8B;AAClD;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,IAAI,iDAAmB;AACvB,IAAI,iDAAmB;AACvB,IAAI,iDAAmB;AACvB,IAAI,iDAAmB;AACvB,IAAI,iDAAmB;AACvB,IAAI,iDAAmB;AACvB,IAAI,iDAAmB;AACvB,IAAI,iDAAmB;AACvB,IAAI,iDAAmB;AACvB;AACA,uBAAuB,iDAAmB;AAC1C;AACA,0BAA0B,iDAAmB;AAC7C;AACA;AACA,IAAI,iDAAmB,qCAAqC,yDAA2B;AACvF,IAAI,iDAAmB,yCAAyC,yDAA2B;AAC3F,IAAI,iDAAmB,qCAAqC,yDAA2B;AACvF;AACA;AACO;AACP;AACA;AACA,mCAAmC;AACnC,kCAAkC;AAClC;AACA;AACA;AACA;AACA,oBAAoB,wDAA0B;AAC9C,2BAA2B,gDAAkB;AAC7C;AACA,yBAAyB,iDAAmB,oBAAoB,2DAA6B;AAC7F,wBAAwB,4DAA8B;AACtD;AACA;AACA;AACA;AACA,mCAAmC,iDAAmB;AACtD;AACA,oBAAoB,wCAAU;AAC9B,yCAAyC,gDAAa;AACtD;AACA;AACA;AACA;AACA,iDAAiD,iDAAmB,qBAAqB,2DAA6B;AACtH,6CAA6C,iDAAmB;AAChE;AACA;AACA,yHAAyH,mDAAqB,gBAAgB,mDAAqB;AACnL,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,wBAAwB,uDAAyB;AACjD;AACA;AACA,oBAAoB,4DAA8B;AAClD;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAA4B;AAChE;AACA;AACA;AACA,oCAAoC,0DAA4B;AAChE;AACA;AACA;AACA;AACA,oBAAoB,wDAA0B;AAC9C,2BAA2B,gDAAkB;AAC7C,kCAAkC,iDAAmB;AACrD;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC,wBAAwB,iDAAmB,gCAAgC,yDAA2B;AACtG,qCAAqC,iDAAmB;AACxD;AACA;AACA,4BAA4B,iDAAmB,2CAA2C,yDAA2B;AACrH;AACA,wBAAwB,4DAA8B;AACtD;AACA;AACA;AACA,oBAAoB,wCAAU;AAC9B,oBAAoB,iDAAmB;AACvC;AACA,wBAAwB,iDAAmB;AAC3C,oDAAoD,8CAAW,SAAS,mDAAe;AACvF;AACA;AACA;AACA,wBAAwB,4DAA8B;AACtD;AACA;AACA;AACA,oBAAoB,iDAAmB;AACvC,oBAAoB,iDAAmB;AACvC,oBAAoB,iDAAmB,gCAAgC,yDAA2B;AAClG,wBAAwB,2DAA6B;AACrD;AACA,wBAAwB,iDAAmB,2CAA2C,yDAA2B;AACjH;AACA,2BAA2B,iDAAmB,qBAAqB,2DAA6B;AAChG,oBAAoB,iDAAmB;AACvC;AACA;AACA;AACA;AACA;AACA,yCAAyC,8CAAW;AACpD;AACA;AACA;AACA,oBAAoB,iDAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iDAAmB,2EAA2E,OAAO,kDAAoB,gBAAgB;AACjK;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C,4BAA4B,iDAAmB;AAC/C;AACA,oCAAoC,8BAA8B;AAClE,4BAA4B,iDAAmB,oGAAoG;AACnJ;AACA,wBAAwB,iDAAmB;AAC3C;AACA;AACA,wBAAwB,iDAAmB;AAC3C,wBAAwB,iDAAmB,+DAA+D;AAC1G;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C,4BAA4B,iDAAmB;AAC/C;AACA,oCAAoC,8BAA8B;AAClE,4BAA4B,iDAAmB,uGAAuG;AACtJ;AACA,wBAAwB,iDAAmB;AAC3C;AACA;AACA,wBAAwB,iDAAmB;AAC3C,wBAAwB,iDAAmB,kEAAkE;AAC7G;AACA;AACA;AACA,wBAAwB,iDAAmB;AAC3C,6DAA6D,gBAAgB;AAC7E;AACA,iCAAiC,qDAAuB;AACxD;AACA,gCAAgC,iDAAmB,gFAAgF,mDAAqB,QAAQ,mDAAqB;AACrL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wDAA0B;AAClD;AACA;AACA,wBAAwB,wDAA0B;AAClD;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;ACpT4C;AACJ;AACjC;AACP,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,IAAI,iDAAmB;AACvB;AACO;AACP,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,IAAI,iDAAmB;AACvB;AACO;AACP,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,IAAI,iDAAmB;AACvB;AACO;AACP,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,IAAI,iDAAmB;AACvB;;;;;;;;;;;;;;;;;;;;;ACzB4C;AACJ;AACjC;AACP,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC;AACA;AACA,yCAAyC,OAAO,mEAAqC,MAAM;AAC3F,IAAI,iDAAmB;AACvB,6CAA6C,OAAO,mEAAqC,MAAM;AAC/F;AACA;AACA,IAAI,iDAAmB;AACvB;AACA;AACA;AACA;AACO;AACP,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC;AACA;AACA,yCAAyC,OAAO,iEAAmC,MAAM;AACzF,IAAI,iDAAmB;AACvB,6CAA6C,OAAO,iEAAmC,MAAM;AAC7F;AACA;AACA,IAAI,iDAAmB;AACvB;AACA;AACA;AACA;AACO;AACP,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,6CAA6C,OAAO,uDAAyB,MAAM;AACnF,IAAI,iDAAmB;AACvB;AACA;AACA;AACO;AACP,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,6CAA6C,OAAO,2DAA6B,MAAM;AACvF,IAAI,iDAAmB;AACvB;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AAC4C;AACD;AACS;AACZ;AACJ;AACA;AACpC;AACO;AACA;AACA;AACA;AACA;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB;AACZ;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC,sBAAsB;AAChB;AACP;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0DAA4B;AAC7E;AACA;AACA,6CAA6C,0DAA4B;AACzE;AACA;AACA;AACA;AACA,4BAA4B,6CAAe,cAAc,uCAAuC;AAChG;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0DAA4B;AAC7E;AACA;AACA;AACA;AACA,4BAA4B,6CAAe,cAAc,+BAA+B;AACxF;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sDAAwB;AACrE;AACA;AACA;AACA;AACA,4BAA4B,6CAAe,cAAc,+BAA+B;AACxF;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mDAAqB;AAClE;AACA;AACA;AACA;AACA,4BAA4B,6CAAe,cAAc,iCAAiC;AAC1F;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,QAAQ,iDAAmB,kFAAkF;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iDAAmB;AAC3B,QAAQ,oDAAsB;AAC9B;AACA;AACA,CAAC,kBAAkB;AACZ;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iDAAmB;AACxD;AACA,gGAAgG,kBAAkB;AAClH;AACA;AACA;AACA,wBAAwB,iDAAmB,8CAA8C,uDAAyB;AAClH,wBAAwB,iDAAmB,8CAA8C,0DAA4B;AACrH,wBAAwB,iDAAmB,gDAAgD,oDAAsB;AACjH,wBAAwB,iDAAmB,8CAA8C,6CAAe;AACxG,wBAAwB,iDAAmB,iDAAiD,6CAAe;AAC3G,wBAAwB,iDAAmB,+DAA+D,gDAAkB,KAAK;AACjI,wBAAwB,iDAAmB,+CAA+C,oDAAsB;AAChH,wBAAwB,iDAAmB,8DAA8D,gDAAkB,KAAK;AAChI,wBAAwB,iDAAmB;AAC3C;AACA;AACA,oCAAoC,iDAAmB,aAAa,6CAAe;AACnF;AACA;AACA,oCAAoC,iDAAmB,aAAa,6CAAe;AACnF;AACA;AACA,yBAAyB;AACzB,6CAA6C,uDAAoB;AACjE;AACA;AACA,wBAAwB,iDAAmB;AAC3C,6CAA6C,4DAAwB;AACrE;AACA;AACA,wBAAwB,iDAAmB;AAC3C;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iDAAmB;AACzD;AACA,gGAAgG,kBAAkB;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gDAAkB;AACjE;AACA,mHAAmH,kBAAkB;AACrI;AACA;AACA;AACA,wCAAwC,iDAAmB,gEAAgE,OAAO,kDAAoB,iBAAiB;AACvK,wCAAwC,iDAAmB,oEAAoE,OAAO,6DAA+B,MAAM;AAC3K,8CAA8C,iDAAmB;AACjE,oDAAoD,iDAAmB;AACvE;AACA,yHAAyH,kBAAkB;AAC3I;AACA;AACA;AACA,wCAAwC,iDAAmB,6EAA6E,OAAO,mEAAqC,MAAM;AAC1L,wCAAwC,iDAAmB,iFAAiF,OAAO,iEAAmC,MAAM;AAC5L,wCAAwC,iDAAmB,qEAAqE,OAAO,wDAA0B,MAAM;AACvK,wCAAwC,iDAAmB,uEAAuE,OAAO,uDAAyB,MAAM;AACxK,wCAAwC,iDAAmB,wEAAwE,OAAO,4DAA8B,MAAM;AAC9K,wCAAwC,iDAAmB,0EAA0E,OAAO,2DAA6B,MAAM;AAC/K,wCAAwC,iDAAmB,oEAAoE,OAAO,kDAAoB,eAAe;AACzK,wCAAwC,iDAAmB,wEAAwE,OAAO,2DAA6B,MAAM;AAC7K,wCAAwC,iDAAmB,iEAAiE,OAAO,wDAA0B,MAAM;AACnK,wCAAwC,iDAAmB,gEAAgE,OAAO,uDAAyB,MAAM;AACjK;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iDAAmB;AACzD;AACA,kGAAkG,kBAAkB;AACpH;AACA;AACA,+BAA+B,gDAAkB;AACjD;AACA,mGAAmG,kBAAkB;AACrH;AACA;AACA;AACA,wBAAwB,iDAAmB,gEAAgE,OAAO,kDAAoB,iBAAiB;AACvJ,wBAAwB,iDAAmB,oEAAoE,OAAO,6DAA+B,MAAM;AAC3J,8BAA8B,iDAAmB;AACjD,oCAAoC,iDAAmB;AACvD;AACA,yGAAyG,kBAAkB;AAC3H;AACA;AACA;AACA,wBAAwB,iDAAmB,6EAA6E,OAAO,mEAAqC,MAAM;AAC1K,wBAAwB,iDAAmB,iFAAiF,OAAO,iEAAmC,MAAM;AAC5K,wBAAwB,iDAAmB,qEAAqE,OAAO,wDAA0B,MAAM;AACvJ,wBAAwB,iDAAmB,uEAAuE,OAAO,uDAAyB,MAAM;AACxJ,wBAAwB,iDAAmB,wEAAwE,OAAO,4DAA8B,MAAM;AAC9J,wBAAwB,iDAAmB,0EAA0E,OAAO,2DAA6B,MAAM;AAC/J,wBAAwB,iDAAmB,oEAAoE,OAAO,kDAAoB,eAAe;AACzJ,wBAAwB,iDAAmB,wEAAwE,OAAO,2DAA6B,MAAM;AAC7J,wBAAwB,iDAAmB,iEAAiE,OAAO,wDAA0B,MAAM;AACnJ,wBAAwB,iDAAmB,gEAAgE,OAAO,uDAAyB,MAAM;AACjJ;AACA;AACA,wCAAwC,iDAAmB;AAC3D,4BAA4B,iDAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iDAAmB;AACzD;AACA,qGAAqG,kBAAkB;AACvH;AACA;AACA,sCAAsC,iDAAmB;AACzD;AACA,gFAAgF,+EAA+E;AAC/J;AACA;AACA,0CAA0C,iDAAmB;AAC7D;AACA,gFAAgF,OAAO,gDAAkB,sBAAsB;AAC/H;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,0BAA0B,iDAAmB;AAC7C,4BAA4B,iDAAmB;AAC/C,+BAA+B,iDAAmB;AAClD,YAAY,iDAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sBAAsB;AAChB;AACP;AACA;AACA;AACA,2BAA2B,iDAAmB;AAC9C,iCAAiC,iDAAmB;AACpD,0BAA0B,iDAAmB;AAC7C;AACA,YAAY,iDAAmB;AAC/B;AACA;AACA,YAAY,iDAAmB;AAC/B;AACA;AACA;AACA,CAAC,wBAAwB;;;;;;;;;;;;;;;;;;;;;AC3jBmB;AACJ;AACxC;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,QAAQ,iDAAmB;AAC3B,QAAQ,oDAAsB;AAC9B;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA,mBAAmB,gDAAkB;AACrC,mBAAmB,iDAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gDAAkB;AACrC,uBAAuB,iDAAmB;AAC1C,sBAAsB,iDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gDAAkB;AACrC,qBAAqB,iDAAmB;AACxC;AACA;AACA;AACA;AACA;AACA,CAAC,oBAAoB;;;;;;;;;;;;;;;;;;;;;AC3DuB;AACJ;AACxC;AACO;AACP,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,IAAI,iDAAmB;AACvB;AACA;AACO;AACP,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,IAAI,iDAAmB;AACvB;AACA;AACO;AACP;AACA,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,6BAA6B,iDAAmB;AAChD;AACA;AACA;AACA;AACA;AACO;AACP;AACA,QAAQ,iDAAmB;AAC3B;AACA,eAAe,gDAAkB;AACjC,gCAAgC,iDAAmB;AACnD;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACrCA;AACO;AACP;AACA,yCAAyC;AACzC;AACA,yCAAyC;AACzC,0CAA0C,EAAE;AAC5C;AACA;AACO;AACP,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,wCAAwC;AACxC;AACA;AACO;AACP;AACA;AACA,4CAA4C;AAC5C;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClFA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AAC2C;AACR;AACO;AACP;AACnC;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;AAC3B;AACA;AACA;AACA;AACA,CAAC;AACiB;AAClB;AACA;AACA;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA,CAAC;AACuB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wCAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,8FAA8F,kBAAkB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAU;AAClC,wBAAwB,mDAAU;AAClC,wBAAwB,mDAAU;AAClC,wBAAwB,mDAAU;AAClC;AACA,6CAA6C,iDAAQ,UAAU,wEAAwE,IAAI,wEAAwE;AACnN;AACA;AACA;AACA;AACA;AACA,6CAA6C,iDAAQ,UAAU,wEAAwE;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACiC;AAC3B;AACP;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mDAAU;AAClB,QAAQ,mDAAU;AAClB,QAAQ,mDAAU;AAClB,QAAQ,mDAAU;AAClB;AACA;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA,YAAY,iDAAQ;AACpB;AACA;AACA;AACA;AACA,CAAC,wBAAwB;AAClB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iDAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wBAAwB;AAClB;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA,oBAAoB,wCAAU;AAC9B;AACA;AACA;AACA;AACA,oBAAoB,wCAAU;AAC9B;AACA;AACA;AACA,oBAAoB,6CAAe;AACnC;AACA;AACA;AACA,oBAAoB,+CAAiB;AACrC;AACA;AACA;AACA,yCAAyC,kDAAoB;AAC7D;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB;AAC5D;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC,wBAAwB,wCAAU;AAClC;AACA,4BAA4B,wCAAU,0BAA0B,eAAe;AAC/E;AACA;AACA,4BAA4B,wCAAU,yBAAyB,eAAe;AAC9E;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC,8BAA8B,iDAAmB;AACjD;AACA,4BAA4B,wCAAU;AACtC;AACA;AACA,8BAA8B,iDAAmB;AACjD;AACA,4BAA4B,wCAAU;AACtC;AACA;AACA;AACA,4BAA4B,wCAAU;AACtC;AACA,4BAA4B,wCAAU;AACtC;AACA,4BAA4B,wCAAU;AACtC,kEAAkE,gBAAgB;AAClF;AACA,gCAAgC,wCAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wCAAU;AAC9B;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7bA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AAC8B;AACsB;AACM;AACN;AACb;AACI;AACR;AACnC;AACO,qBAAqB,6DAAe;AACpC,uBAAuB,mEAAkB;AACzC,wBAAwB,6DAAe;AACvC;AACP;AACA,4BAA4B,oCAAoC,6BAA6B;AAC7F;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA,eAAe,mDAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,iDAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD;AACA;AACA;AACA;AACA,oBAAoB,wDAA0B;AAC9C;AACA,oBAAoB,iDAAmB;AACvC,oBAAoB,4DAA8B;AAClD,+CAA+C,iDAAmB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB,UAAU,sDAAsD;AAC5H;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB,UAAU,sDAAsD,IAAI,sDAAsD;AACtL;AACA;AACA;AACA,6CAA6C,iDAAmB,UAAU,sDAAsD;AAChI;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD,+CAA+C,iDAAmB;AAClE;AACA;AACA;AACA;AACA;AACA,yBAAyB,iDAAmB;AAC5C;AACA;AACA;AACA;AACA,oBAAoB,wDAA0B;AAC9C,iDAAiD,0DAA4B;AAC7E,yCAAyC,iDAAmB,UAAU,kDAAkD;AACxH;AACA;AACA;AACA;AACA,kDAAkD,0DAA4B;AAC9E,yCAAyC,iDAAmB,UAAU,kDAAkD;AACxH;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD,+CAA+C,iDAAmB;AAClE;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB;AAC5D;AACA;AACA;AACA;AACA,oBAAoB,mDAAqB;AACzC,oBAAoB,6CAAe;AACnC,iEAAiE,iDAAmB;AACpF;AACA,oBAAoB,oDAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAwB;AAChD;AACA;AACA;AACA,wBAAwB,iDAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAU;AAClC,qCAAqC,sCAAsC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB,UAAU,+BAA+B,IAAI,+BAA+B;AACxI;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAmB,UAAU,+BAA+B;AACrG;AACA;AACA;AACA,8CAA8C,iDAAmB,UAAU,+BAA+B;AAC1G;AACA;AACA;AACA;AACA,oBAAoB,4DAA8B;AAClD,0BAA0B,iDAAmB;AAC7C,+CAA+C,iDAAmB;AAClE;AACA;AACA;AACA,oBAAoB,oDAAsB;AAC1C;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpPA,gEAAgE,kDAAkD,6BAA6B;;AAE/I;;;;;;;;;;;ACFA,yEAAyE,2DAA2D,6BAA6B;;AAEjK;;;;;;;;;;;ACFA,+DAA+D,iDAAiD,6BAA6B;;AAE7I;;;;;;;;;;ACFA;AACA,IAAI,IAAyD;AAC7D,2EAA2E,MAAM,OAAO,mBAAO,CAAC,oBAAO,KAAK,aAAa,qDAAqD,MAAM,OAAO,mBAAO,CAAC,sBAAQ,KAAK,aAAa,qDAAqD,MAAM,OAAO,mBAAO,CAAC,wCAAiB,KAAK,aAAa;AAC1U,MAAM,EAK4E;AAClF,CAAC;AACD,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,gDAAgD,aAAa;;;AAG7D,OAAO;;AAEP;AACA;AACA;AACA;AACA;;;AAGA,gDAAgD,aAAa;;;AAG7D,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,+BAAmB;;;AAGrE;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA,2BAA2B,+BAAmB;AAC9C,iCAAiC,+BAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,IAAI;AACJ;AACA,iEAAiE,+BAAmB,oBAAoB,+BAAmB;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yBAAyB;AAClD,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,gCAAmB;;;AAGrE;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA,iBAAiB,gCAAmB;AACpC,4BAA4B,gCAAmB;AAC/C,iCAAiC,gCAAmB;AACpD,WAAW,gCAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,SAAS;AACT;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,qBAAqB;AACrB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC,wBAAwB,kBAAkB;AAC1C;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B,gCAAgC,SAAS;AACzC,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC,yBAAyB,qBAAqB;AAC9C,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C,yBAAyB,sBAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,YAAY,WAAW;AACjF;AACA;AACA;AACA,qDAAqD,iBAAiB,WAAW;AACjF,yCAAyC,iDAAiD;AAC1F,0CAA0C,mCAAmC;AAC7E,sCAAsC,+BAA+B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;;AAG7D,gDAAgD,aAAa;AAC7D;AACA,gBAAgB,gCAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,gCAAmB;;;AAGrE;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,gDAAgD,aAAa;AAC7D;AACA,gCAAmB;AACnB,mCAAmC,gCAAmB;AACtD,kCAAkC,gCAAmB;AACrD,aAAa,gCAAmB;AAChC,0CAA0C,qCAAqC,2CAA2C;AAC1H,6BAA6B,gCAAmB;AAChD,+CAA+C,qCAAqC,4CAA4C;AAChI,oCAAoC,gCAAmB;AACvD,aAAa,gCAAmB;AAChC,aAAa,gCAAmB;AAChC,oBAAoB,gCAAmB;AACvC,mDAAmD,qCAAqC,uCAAuC;AAC/H,kDAAkD,qCAAqC,sCAAsC;AAC7H,mDAAmD,qCAAqC,uCAAuC;AAC/H,mDAAmD,qCAAqC,uCAAuC;AAC/H,kDAAkD,qCAAqC,sCAAsC;;;AAG7H,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;;AAG7D;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA,gBAAgB,gCAAmB;AACnC,sBAAsB,gCAAmB;AACzC;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB,kDAAkD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB,oDAAoD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sCAAsC;AACrG;AACA;AACA;AACA,wDAAwD,OAAO,qDAAqD;AACpH;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,gCAAmB;;;AAGrE;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA,gBAAgB,gCAAmB;AACnC,iCAAiC,gCAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0BAA0B;AACpC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC,OAAO;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,gCAAmB;;;AAGrE;AACA,6CAA6C;AAC7C;AACA,gDAAgD,aAAa;AAC7D;AACA,+BAA+B,gCAAmB;AAClD,iBAAiB,gCAAmB;AACpC,+BAA+B,gCAAmB;AAClD,gCAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B,wBAAwB,OAAO;AAC/B;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mHAAmH,WAAW,2BAA2B;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,4GAA4G,yCAAyC;AACrJ;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,yCAAyC;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,gEAAgE,kDAAkD,6BAA6B;;AAE/I;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,yEAAyE,2DAA2D,6BAA6B;;AAEjK;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,+DAA+D,iDAAiD,6BAA6B;;AAE7I;;AAEA,OAAO;;AAEP,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,gCAAmB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAmB;AAC9B;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0BAAmB,GAAG,gCAAmB;AACvD;AACA,iBAAiB,0BAAmB;AACpC,UAAU;AACV;AACA,CAAC;;;;;;;;;;AClmED;AACA,IAAI,IAAyD;AAC7D,2BAA2B,mBAAO,CAAC,0DAAW,GAAG,mBAAO,CAAC,wDAAU;AACnE,MAAM,EAKiD;AACvD,CAAC;AACD,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA,0CAA0C,8BAAmB;;AAE7D,gBAAgB,8BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,+BAAmB;;AAE7D,gBAAgB,+BAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D,gBAAgB,gCAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D,gBAAgB,gCAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,0CAA0C,gCAAmB;;AAE7D,gBAAgB,gCAAmB;;AAEnC,OAAO;;AAEP;AACA;AACA;AACA;AACA,kDAAkD,gCAAmB;;AAErE;;AAEA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D,2BAA2B,gCAAmB;AAC9C,yBAAyB,gCAAmB;AAC5C,eAAe,gCAAmB;AAClC;AACA,aAAa,gCAAmB;AAChC,kBAAkB,gCAAmB;AACrC,mBAAmB,gCAAmB;AACtC,iBAAiB,gCAAmB;AACpC,qBAAqB,gCAAmB;AACxC,WAAW,gCAAmB;AAC9B,WAAW,gCAAmB;AAC9B,CAAC;AACD;AACA,aAAa,gCAAmB;AAChC,kBAAkB,gCAAmB;AACrC,mBAAmB,gCAAmB;AACtC,iBAAiB,gCAAmB;AACpC,qBAAqB,gCAAmB;AACxC,WAAW,gCAAmB;AAC9B,WAAW,gCAAmB;AAC9B,CAAC;AACD,eAAe,gCAAmB;AAClC,gBAAgB,gCAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,QAAQ,0BAA0B;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA;AACA;AACA,wBAAwB,kDAAkD;AAC1E;AACA;AACA;AACA,wBAAwB,kDAAkD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA,iBAAiB,iFAAiF;AAClG;AACA;;AAEA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA,iBAAiB,4EAA4E;AAC7F;AACA;;AAEA;AACA;;AAEA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,UAAU,oLAAoL,EAAE,qOAAqO,EAAE,4IAA4I,EAAE,qOAAqO,EAAE,oLAAoL,EAAE,4IAA4I,EAAE,yPAAyP,EAAE,4MAA4M,EAAE,oHAAoH,EAAE,8IAA8I,EAAE,4KAA4K,EAAE,4HAA4H,EAAE,sPAAsP,EAAE,oLAAoL,EAAE,4KAA4K,EAAE,6MAA6M,EAAE,6MAA6M,EAAE,oIAAoI,EAAE,4IAA4I,EAAE,oIAAoI,EAAE,4KAA4K,EAAE,4IAA4I,EAAE,qNAAqN,EAAE,oJAAoJ,EAAE,sKAAsK,EAAE,4KAA4K,EAAE,oMAAoM,EAAE,qQAAqQ,EAAE,4LAA4L,EAAE,6NAA6N,EAAE,oNAAoN,EAAE,4KAA4K,EAAE,qOAAqO,EAAE,qOAAqO,EAAE,4JAA4J,EAAE,4KAA4K,EAAE,oMAAoM,EAAE,4JAA4J,EAAE,6QAA6Q,EAAE,6OAA6O,EAAE,8OAA8O,EAAE,oMAAoM,EAAE,6NAA6N,EAAE,6NAA6N,EAAE,4KAA4K,EAAE,oKAAoK,EAAE,oMAAoM,EAAE,4KAA4K,EAAE,sQAAsQ,EAAE,oLAAoL,EAAE,oJAAoJ,EAAE,oLAAoL,EAAE,4MAA4M,EAAE,4IAA4I,EAAE,oJAAoJ,EAAE,4IAA4I,EAAE,4LAA4L,EAAE,4KAA4K,EAAE,4LAA4L,EAAE,oJAAoJ,EAAE,oNAAoN,EAAE,oMAAoM,EAAE,oLAAoL,EAAE,4HAA4H,EAAE,4JAA4J,EAAE,4HAA4H,EAAE,oHAAoH,EAAE,+QAA+Q,EAAE,6PAA6P,EAAE,4KAA4K,EAAE,4HAA4H,EAAE,4FAA4F,EAAE,oNAAoN,EAAE,oIAAoI,EAAE,qJAAqJ,EAAE,qJAAqJ,EAAE,4GAA4G,EAAE,mFAAmF,EAAE,4IAA4I,EAAE,oJAAoJ,EAAE,oJAAoJ,EAAE,6BAA6B,+GAA+G,EAAE,6BAA6B,+GAA+G,EAAE,2EAA2E,EAAE,6BAA6B,8DAA8D,EAAE,6FAA6F,EAAE,4EAA4E,EAAE,4HAA4H,EAAE,oIAAoI,EAAE,uHAAuH,EAAE,kEAAkE,EAAE,mFAAmF,EAAE,6IAA6I,iEAAiE;;AAEtlf,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,UAAU,oHAAoH,EAAE,6FAA6F,EAAE,uQAAuQ,EAAE,sPAAsP,EAAE,sRAAsR,EAAE,8WAA8W,EAAE,4EAA4E,EAAE,4IAA4I,EAAE,4HAA4H,EAAE,oGAAoG,EAAE,oIAAoI,EAAE,2EAA2E,EAAE,2FAA2F,EAAE,kEAAkE,EAAE,4HAA4H,EAAE,qOAAqO,EAAE,oMAAoM,EAAE,6NAA6N,EAAE,6NAA6N,EAAE,oMAAoM,EAAE,oNAAoN,EAAE,qOAAqO,EAAE,oLAAoL,EAAE,6PAA6P,EAAE,oNAAoN,EAAE,2EAA2E,EAAE,6BAA6B,8DAA8D,EAAE,oJAAoJ,EAAE,4JAA4J,EAAE,4IAA4I,EAAE,qKAAqK,EAAE,8VAA8V,EAAE,6OAA6O,EAAE,6SAA6S,EAAE,6PAA6P,EAAE,sUAAsU,EAAE,6OAA6O,EAAE,6NAA6N,EAAE,qRAAqR,EAAE,sVAAsV,EAAE,4LAA4L,EAAE,8MAA8M,EAAE,8RAA8R,EAAE,oNAAoN,EAAE,8SAA8S,EAAE,8QAA8Q,EAAE,sTAAsT,EAAE,6QAA6Q,EAAE,iWAAiW,EAAE,6RAA6R,EAAE,qPAAqP,EAAE,qOAAqO,EAAE,8PAA8P,EAAE,6MAA6M,EAAE,0UAA0U,EAAE,qPAAqP,EAAE,oNAAoN,EAAE,qOAAqO,EAAE,sKAAsK,EAAE,+HAA+H,EAAE,sKAAsK,EAAE,4HAA4H,EAAE,kHAAkH,EAAE,6OAA6O,EAAE,6SAA6S,EAAE,6PAA6P,EAAE,sUAAsU,EAAE,6OAA6O,EAAE,6NAA6N,EAAE,sRAAsR,EAAE,sVAAsV,EAAE,4LAA4L,EAAE,8MAA8M,EAAE,6RAA6R,EAAE,oNAAoN,EAAE,8SAA8S,EAAE,8QAA8Q,EAAE,sTAAsT,EAAE,qPAAqP,EAAE,iWAAiW,EAAE,qSAAqS,EAAE,qPAAqP,EAAE,qOAAqO,EAAE,8PAA8P,EAAE,6MAA6M,EAAE,0UAA0U,EAAE,qPAAqP,EAAE,oNAAoN,EAAE,qOAAqO,EAAE,6BAA6B,uGAAuG,EAAE,6JAA6J,EAAE,6BAA6B,uGAAuG,EAAE,4GAA4G,iEAAiE;;AAEvuoB,OAAO;;AAEP,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,gCAAmB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0BAAmB,GAAG,gCAAmB;AACvD;AACA,iBAAiB,0BAAmB;AACpC,UAAU;AACV;AACA,CAAC;;;;;;;;;;AC7eD;AACA,IAAI,IAAyD;AAC7D,2BAA2B,mBAAO,CAAC,0DAAW;AAC9C,MAAM,EAKiC;AACvC,CAAC;AACD,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C,8BAAmB;;;AAG7D,gDAAgD,aAAa;AAC7D;AACA,eAAe,8BAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB,YAAY;AACjC,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,aAAa,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6CAA6C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oCAAoC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB;AAChE;AACA,oBAAoB,mDAAmD;AACvE,iCAAiC,SAAS;AAC1C,6BAA6B;AAC7B;AACA,6BAA6B,YAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2FAA2F;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gGAAgG;AAC1H;AACA;AACA;AACA;;;AAGA,OAAO;;AAEP;AACA;AACA,iBAAiB,iFAAiF;AAClG;AACA;;AAEA;;AAEA,OAAO;;AAEP,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,gCAAmB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0BAAmB,GAAG,gCAAmB;AACvD;AACA,iBAAiB,0BAAmB;AACpC,UAAU;AACV;AACA,CAAC;;;;;;UCrsBD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;;;;;;;;;;;;;;AClBA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,6IAA6I,cAAc;AAC3J,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACmD;AACJ;AACJ;AACA;AACrB;AACI;AAC1B;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2DAAqB;AAC1D;AACA;AACA;AACA;AACA,qCAAqC,yDAAmB;AACxD;AACA;AACA;AACA;AACA;AACA,oBAAoB,qDAAe;AACnC,iBAAiB,EAAE,yDAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC,IAAI;AACL;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA,qCAAqC,yDAAmB;AACxD;AACA;AACA;AACA;AACA;AACA,gBAAgB,kDAAY;AAC5B;AACA;AACA;AACA,KAAK;AACL,CAAC,IAAI","sources":["webpack://SlayerAssistant/webpack/universalModuleDefinition","webpack://SlayerAssistant/./images/data/reaper_collapsed_OSL.data.png","webpack://SlayerAssistant/./images/data/reaper_collapsed_RS3.data.png","webpack://SlayerAssistant/./images/data/reaper_expanded_OSL.data.png","webpack://SlayerAssistant/./images/data/reaper_expanded_RS3.data.png","webpack://SlayerAssistant/./images/data/slayer_collapsed_OSL.data.png","webpack://SlayerAssistant/./images/data/slayer_collapsed_RS3.data.png","webpack://SlayerAssistant/./images/data/slayer_expanded_OSL.data.png","webpack://SlayerAssistant/./images/data/slayer_expanded_RS3.data.png","webpack://SlayerAssistant/./modules/SearchAlgorithm.ts","webpack://SlayerAssistant/./modules/SlayerDialogReader.ts","webpack://SlayerAssistant/./modules/UICounterReader.ts","webpack://SlayerAssistant/./modules/data/assignnments.ts","webpack://SlayerAssistant/./modules/data/creatures.ts","webpack://SlayerAssistant/./modules/data/masters.ts","webpack://SlayerAssistant/./modules/data/reapers.ts","webpack://SlayerAssistant/./modules/data/variants.ts","webpack://SlayerAssistant/./modules/dochandler.ts","webpack://SlayerAssistant/./modules/dochandler/animate.ts","webpack://SlayerAssistant/./modules/dochandler/change.ts","webpack://SlayerAssistant/./modules/dochandler/hide.ts","webpack://SlayerAssistant/./modules/dochandler/hover.ts","webpack://SlayerAssistant/./modules/dochandler/main.ts","webpack://SlayerAssistant/./modules/dochandler/open.ts","webpack://SlayerAssistant/./modules/dochandler/show.ts","webpack://SlayerAssistant/./modules/extrafuncs.ts","webpack://SlayerAssistant/./modules/logger.ts","webpack://SlayerAssistant/./modules/settings.ts","webpack://SlayerAssistant/./modules/slayer.ts","webpack://SlayerAssistant/external umd \"canvas\"","webpack://SlayerAssistant/external umd \"electron/common\"","webpack://SlayerAssistant/external umd \"sharp\"","webpack://SlayerAssistant/../node_modules/alt1/dist/base/index.js","webpack://SlayerAssistant/../node_modules/alt1/dist/dialog/index.js","webpack://SlayerAssistant/../node_modules/alt1/dist/ocr/index.js","webpack://SlayerAssistant/webpack/bootstrap","webpack://SlayerAssistant/webpack/runtime/compat get default export","webpack://SlayerAssistant/webpack/runtime/define property getters","webpack://SlayerAssistant/webpack/runtime/global","webpack://SlayerAssistant/webpack/runtime/hasOwnProperty shorthand","webpack://SlayerAssistant/webpack/runtime/make namespace object","webpack://SlayerAssistant/webpack/runtime/publicPath","webpack://SlayerAssistant/./index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory((function webpackLoadOptionalExternalModule() { try { return require(\"sharp\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"canvas\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"electron/common\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sharp\", \"canvas\", \"electron/common\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SlayerAssistant\"] = factory((function webpackLoadOptionalExternalModule() { try { return require(\"sharp\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"canvas\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"electron/common\"); } catch(e) {} }()));\n\telse\n\t\troot[\"SlayerAssistant\"] = factory(root[\"sharp\"], root[\"canvas\"], root[\"electron/common\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE_sharp__, __WEBPACK_EXTERNAL_MODULE_canvas__, __WEBPACK_EXTERNAL_MODULE_electron_common__) => {\nreturn ","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAVXG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKKrnKwAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAElUlEQVRYw92YTWgcZRjHfzsz+5HdzczuJumuJS3VSkI/AlaFgmK1PVStIJTSQy9FELy0gqIgIhYlUFHpQQ9tQZFCKWLVQ/FQ60GFUtAG0dqvNG0sRtc07WZ3Z3Zmdmd2Z8bDdiabTWJjipD4v8z7Mc/H+/m8zz/06p5dHrchdyYA0CoGvSt60coltIoBQMOt06h7JJJJACzLwK7VEMQosWiETFcGVdMBUOQkplmlVq1imhVy2Vygc+TK5aAudybu2O77oFVMnnwsyQPrN6KW4yB0MifcCiF7iND+fXu8H88OkU5349o1VENHFMM4Th0lkUSIxCiVCswX85X1/5urvV3Pb9d/55N3t2DWltHwVkEoMrcTng32JSR/tjVNDYzJsjI10Jo1p47ZJsTXoRo6GPqcsrKszDpwv32GDyEw1Bs4ngjh9JRAKAahKHgWeLWWAVaR/LLj1BkbywMwNpanI9bcotWaEfxv2XZQjkYiXL12nWhk5gwqioKqqli2Pa2/te7bmqu93Qe77nDu/BDr+w28RnNSQkIExCwISXB1cCbw3KaPIa+IpMjJaVvk50v5EHeNPP8Fdr8BZz4qeAe/tPn1WhzPq/H23g2sWrmai1eGGTx0HkVR6O8t88L2BIJpVpFlhXS6G0VRWOw49UOVc6NZUqkcHYleTnz/F43aCF99e4munpWsXf8Q48YAZ87pCLVqlVKp0NzfqrroB/fUth1YtonjuFh2nQ0DywlHQqy7z2OyWMYydAqTt3h4IIdgmpXgAmg9U4sVXekI772coSMRYuvm+xm4Z4TXD/zC4w92sPVRhZJe4YPBZ0kIfyDlsjny4zcRxfCsl8Niw9Gjx3j6kQTvv7QJt6Fx+DOH4TGZL04rPL+9j7pVoFE8wqmzIoIfpGeLOYsR3/y0mlc+dLlw4TSm/idqxcbDYdJIoZcvMjxymdcOCYzXn0HqXdHL1dFRlgpi0TCuu4J3jqq8uCPP3p1J9uIBo1wY0fn45HKW53pYt7YfSSuXAkE/rix2CIKAnExy4FOLG4Uqoijguh49mTir700gigJauYTkb8t0uptbN8tLZgU9z+G7z3czdL7AeAEycp2+zq8ZPBYP3seSf1tqmjrtNbLYIYph3hw8zM7NFhuzMFGEgycl6o5AWALTrCD19a8hP34Tx6kviVDgIyyJXBtfxVtH6jQcF0kU0E2N/r5mf1//mulnbimEgumrJxDviAZ1x50qa+VSMxSIYnjGw3gpwvdfFMNoFQMh05UJ8qeltnLtiEYiQRKQ6cog+PncUgnid0KQT2o6Av9jCH4+93+CKIZR5CRScbIYpPYdsQT79+3xipNFapaN61hEYjGW9WTnRf60EkrzJYzaSahlPVkWav/48RMBVVGcLBJ6btc2DyCb7cHQdXSjCjCD37gToaMkmqxYKym0EJl0unvB9uV0mkQyycTELQCkVCpOuWwyPHz5H1mqVsWtDvg3rWrogbPth/vfyMw1qPnoUm8TUul0N6lUHKlR9zg7NDQjiPukTfsXQFV1bKtBWStNk2knlRYiczf2p2LddbY8sYm/ATWM+pwqaFlsAAAAAElFTkSuQmCC\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAXKm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQRroAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAFsUlEQVRYw9WYXYglRxXHf11d3dX39p3vnZ3sRtZ8sZF86K4JRo2oD+JDFGEhYlDfonnOQ4jowz7qg/omq0YQCYgo+CCDUUEkGgzCIOaDXU1wY3CdZDc7M3vvnXvvVHV9tA99u2auIaJvMweaunWr6lT/65w+dc4/+cwXHqt3rl9FpCkAaSppxXvHQQnek+UKAFuZ+Ptgv229d9R1QMocAOcq6lDPzDnYAjO6236rx1nHE48scuaeBxj0uyDmeEcJuyTVBvLvr1ziX69fRgiBSFOctYTgWVhawWiNsxUyywnBI0RzAJXRAMgsI1cKPZngnCVXBUKkOFsBUHS7OLt/QJXRcZ/2sBo9eRyTWT6zJ0CnWzLc2eJ95x9hPBxAssR/lURRJ8sIgFwVhBDIlSJXBVJmDG5sIzMZN2tfztmKbq8XwU5GI5yzFJ0ygm5FTyYNiOlLdns9RJoiRPOEEAghxINyzlIZjcxyVFEQfLPH7qAPwHhwFae3IQzAX2+esAt11bTxvwHUe0gpGzcUQuCsQxVFfIzWpKmMfQDnPd5aTt12mvFoNDMmM4kqStI0wU2t4q0FQBUFznvyokOCIE2TGX0A8wuLhANrllePY7RGFQWpELz48gb33DmmdluNgUQO6RqIHoQR+GvUoTFEUu+Q3HX/R+qrm/8keE85N8/m5b8mHGL54w969YWfV/zhJUUnM3zj8fu45dTtXHzlb5y/cAnrEj5+xvLYubJxSyFSRJpGCxxmeeb5CesbS+y6OW74k/zi2Tdw+lXWf3eJ0L2VvWSF9Y0lfv/nYQMOwE1d4bDLpz79MGk9oQ41lTacvfckWZ5w9201zlbYyqDSwAfPnkRIKamMJlfFkQC3spTzw/M3cf975vnyZ+/i3hOv8tVvv8DH3t/h3IdrPvTeE/zsu5+jFFeQzrlptPRHAtzTT/+Yhx4s+ebjHyW4Id/7qefZl3LueG6ZR8+dxpot3M6PeOZPgnhjC5FitD704J767btZf/4qT3z+OW551wqD3Yr5Mmd7vMiof5F/XNnhWz9xaHUfydkHP1Ffef0yldEcW7uJ1y7+5VBHy8XjN9eJENR2wtcfHXL37b04dvHyiK98v0NeLnPq1juQxmhkJoHiSFiuTRGtTfnaUzm7ozGJENR1YHmppFN2EXmGMbpxS2cdldFH4ipor6xQjXjhl19i4+Ut3tyC5XnL6blf89CTGmebHFUqVcRoeRTAAewO+qSp4snzF/jiJy0PrMG1HfjOrxSORZzRKFU0lgvBx/zx0FtOpAjhSWXG+sYiv3lRIURCZSpWjq8RwnaM/M03J7OmIvCH/zpovasymk63SeC99yRCEKZuKwFjNEKpImbq/ghkKUZr9N64qSKm3iazPCbpMZVUBcIYjRDpkQkozlYUnTLWlvvuKlBFMa0L08ZyHFFpC9pcqWnNGN7+fZa9eSqjmVtYPDL33EEw7TUmswyjGxyV0ZS9+f1KfG8yJs2yQw9KZvmUIchmKv9OtyTNMvYm41gEyPFouM9x6D3uPPOB2k4DS9Ep0Xvjt7XZ9BDSKfnjXYW1lt7cPKPdYVzrXUUq8zhedMqZ+W2/1WmtjW2r4+D8LMtIZY7eG7N8bC3qb9cP+jcilvFo2Fzirf9WxnDtjU1CCAghprxKwbDfn3Im/Th33z08wXuKbpe33tyk6JQ4WxFCoNvrURkTSaNWX5s09He2Yx15sDLJlaIyhspsRivkSjEaDiLgnetvUXS7TEajmIAc3CtGS+fsTHrTslAHy6CG0PGRqZKZJARPZTQhhBmWq33Z0XAw4zrdXg9nK/LpgQbvp4yZiGE9eB+JpRZIZRouR4gm9WrnOuuYW1gEYHBjez/YONvklsdWV/8/n5cS5xwtseSc+5/XvJN4V9Et55lMRjO86X/qWFldwznHwtIKShWRVx3tDjh+4uaZ+cdWV/k3rAQo1Oy03j4AAAAASUVORK5CYII=\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAa4G5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3ePXqQAAAYVub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqIw0NAAANGG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+dZ7WgAAAAZub1BFAAAAAAAA7Gu72AAAAAlub1BFAAAAAAAAAAAAoYpy1QAAAAdub1BFAAAAAAAAAFrm3tAAAAh/SURBVHja7ZxvbBt3Gcc/vnNsJ3Z8sZM0aedMZR0J7VqgA2looMGKNHXrNGma9mIgjaIheNEiDRWpmvivakyA9gJerEUgNFQNhIAXE0JjvABENQGtEGXr2qysILUN6R8n9p3vj3323fHCvYu9JKV/k3P3fKQo9tm/ex4/9/j8u+f33Dfx5V1PBFwiP5gFwKhZlCZKGNUKRs0CoOU3aTUDsrkcAI2GhVuvo6hpMukUxeEiumECoOVz2LZD3XGw7RrjY+PRPk++dSJ6nh/M/t/tK+nDzbQlcb28LcvxeOSTRT64+R706gAogyyLXyPhHiHx7a/vCv52+AiFwgi+W0e3TFS1D89romVzKKkMlUqZK+VKx4bvW277SvqwErau9r3vtrhWqhY/+c427PoaWsF6SKSWdyRwwT1OMvxGGYYefeh8XltI5Hpj2X0slfDhPnTLBMtcdmw+ry35YcLtK+nDStiSuF7eVrPhY+nn8AIV+goLLyYykEhD0ICg3pHADom9T38mmJ4+AcDp0zPRa/2Z9hTCqVvRtobrRo/TqRQN1yWdWvwN0TQNXdcXvb7c+5fbvpI+rJQtievSthIJlb07M2ye2kSQKLbzVkmBOgZKDnwTvPMEfntsIpgnqeVzXT81/zg+k+C6mWH1mbkFbd3acX3yK/Daj8rBC792ef3tAYKgzrd2b2X97Rt4861p9u1/A03TmCpV+fyjWRTbdsjnNQqFETRNQxBWk1f/6vD6v9cyNDROf7bEy3/6L636SX7zh+MMj97Ops0fYtbawmv/NFHqjkOlUm7PTXRdoiesKtsfeox6w8TzfBpuk61b1tGXSnDXHQFz81Ualkl57iIf3jKOYtu1aBLeORcRhNVguJDiu18q0p9N8MD9d7Jl7Umeef4oH7+7nwc+qlExa3x/3yNklTMkx8fGmZm9gKr2LTnhFoSV5ODBl3jw3izfe/o+/JbBgV94TJ/O86tDGk89OkmzUaY1/yKvHlZRwuLxUrVBQVhpfv/3Dez5gc+xY4ewzbPoNZcAjzlrCLP6JtMnT7B3v8JscwfJ0kSJf506JVETYkEm3YfvT/DcQZ0vPjbD7sdz7CYATnHspMmPX1nHuvFR7to0RdKoVqKBYU1OEFYTRVHI53I8//MG58oOqqrg+wGjxQE2vCeLqioY1QrJcNpQKIxw8UJVIifEgiDw+OMvn+TIG2Vmy1DMN5kc/B37XhoA2n0iybDaYBh61yqIIKwmqtrH1/Yd4PH7G9wzBufn4YVXkjQ9hb4k2HaN5OTURmZmL+B5TSmVCbGhL6ny9ux6vvlik5bnk1QVTNtgarL9+uTUxu45r5TKhHidfRUG+tPRc89feGxUK+1Smar2AciZV4g1YX6qah9GzUIpDhej3ks58wpxJp1KRU1kxeEiStjPK4sUQi8Q9RQbJoqEQ+hVlLCfVxB650KuDy2fW+jnBaSfV4g1YX7m8xq27Sz08wLSzyvEmjA/K5UydcdZ6OftLEUIQhzpzE/brqGEmgJhKUIQ4kpnfo6PjXcvUghCr1ywGTULpTRRkhqv0FN4XpPSRAnFqFbQsm3pHennFeJMmJ9aNrfQ26CkMhQKIxIdIfYUCiMoqUx72pAfzEalMunnFeJMmJ+VSpn8YHbhBkzfrUt0hNgT5ml0wQaXxNMEIeaEeRpdsIXlB0GIO2GeRjdgdgrtfeFTOwIJkRBHDh89GvWeGzVrsW7DD3/2W4mSEEu2broNWKjzJsM6r26ZYR0tIWES4kh/JhtAR503mUpjXlKtllKZEGfC/DTrDZKpNMnOfl5dN4mHgLEgLEbTtGgxraufV/R5hbij6zq+W1/czyv6vELcabhuVOft6ueVW9+FuBPe+g4d/bxh+UEQ4k6Yp13Lw4LQS3QtD4P08wrxpjM/o35eQPp5hZ4gzFOjZi1UG0SfV4g7Tt3CMPSFasPk1MZoIiylMiHONFw3umCbnNrYPeeVUpkQZzrzU/R5hZ4784Lo8wo9euYVfV6hZxF9XuGWQPR5hZ5D9HmFnkP0eYWeRfR5hZ5F9HmFnkX0eYVb4oJN9HmFnkT0eYWeQ/R5hZ5G9HmFnkT0eYWeRvR5hZ5F9HmFnuWy+rz33j0ZACRV9aY5oCSW2Lfqt/977UY3P/BWNCihT9dr1/N9qoZFparz3Ofex54DJ1i7poiW68cPgmuO643y73K0vIV9x/H41yyjS593UZ03qao31fHlj7qy6om7bGCvkCAIcOou5y7qfHXnBO9f4/Dpj5U4d7GK02gSBMGq+ncl9MLxj22dd6UT90bSbHqUKzU+sjnLwx9o4lbLPDzVxx2jaeaqNVqeL7/713H8F9V546DP6wde9NerXx4/CDDtOs2mw7OfHcVzdPyWS70yx57tt2FbNk7dxQ+C2H65V+WMexXH/536vFE/b6EwsmL9vJ1Oxilhr8uXIMBttfjGU3cyWugnOThKZmQdmcIwY8UBdu14L82mB9eQvDfEv5ieXa/mM4X6vGE/bzLs59WyOXRdZzCbf1dOD67Xn0QiQbY/zbM/Pcsz+xt4HVMEVVXIDaQZKQySSCRuiXitRrxDfV7dMhkpaiShveRWqZTpz2TZ/uA25ufmqTdcfK9BKpNhzegY4Y2aWj6HbTvUHQfbrjE+No5RsyhNlDCqFcJFj+Jw8arHtPwma0bHxL7YX9L+oT//Bd0yo1aGxM4nHgoAxsZGsUwT03IAoiXjzvraUt1n4fbwok9JZaKx1zImdEzsi/13jlm3dpxsLsf58xfbc/ShoQGqVZvp6RPLFoU9r9nlRKeBsO6mW2bkTGdJ42rHLBc0sS/2z5w9E+1raGiAZKsZcPjIEaC7U73huqRTqUX/23MPE7fRompUusaEpYzwqvBaxoh9sX85++1bgf7Dtk/cx/8A/EcyrqMdMKAAAAAASUVORK5CYII=\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAe825vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz2Q1aAAABhW5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKojDQ0AAA0Ybm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD51ntaAAAABm5vUEUAAAAAAADsa7vYAAAACW5vUEUAAAAAAAAAAAChinLVAAAAB25vUEUAAAAAAAAAWube0AAAD3VJREFUeNrtXWuobddV/tZ8rLX24+xzzj335t7cpOmNaaJN0+ZVaDWlthCQVi0EFdGCSpUo4o/+0BZ/GPwjAR8IovUFPgoiKiI1UBVsNRSLcCmWliS2GtMm5nlfZ5+z99prPpc/5hpzz71z06Zau/e9zA8u+9y11nyNMdZcY4455hjFBz74cHf5wktgnAMAOBcgOGeRwjsHWVYAAKNV/Dv9P/06Z9F1HkKUAABrNTrfrTyT/gJYqZv+n9ZD/eFcwDkL7xwY5/H/1HejFRjnK/fT8VSDAdRiEcdEz6T9IXqk46Y20v6l46W+Ufn1OtO6v1Z767RepzH1Ix0zje9a5V8zO8ZHPniAe+56B6aHQ4Dt4DXhj1Ho8xD/+aUn8d9feRqMMTDOYY2B9w67+wdQbQtrNIQs4b0DY4HAWrUAACElyqpC2zSw1qCsajDGYY0GANTDIaxZElCrNrZDxAz1lPGekOVKmwAwGI4wPz4CgBUmW2MgpIR3DkKWyXUNxjnKqoJWKvbJe4+yquNz7WIOxni8RmNc7//6c1R/2v+qrnE8PVzpD9UjZAkhBbRSK/1mjEdapvQnujaz2VXpxThfKZvyS6v2muQfug533/EDmB9NgWIfXxNFha44AQYAZVX3jK1QVjWEkJheuQQhxQoTtArEGI7HkRjNbAZrDerBKBIlCkfTROICwHA8joRnjMN7D+99JKS1Blq1URi8C20cTw8jkegalWGM90zXPdEEvPewxqwIrpAlhuNxL8ShP2VV92N34bpz8N71wlbGvgshsbO7t1J22YdAn0UzD3X1ghuEyCeMsrDGREElIWOMrdCfMdYLpgq8kGUsFwTCw7vQX+p/yq9rlX/OGsynL8G2lwA/BdyF8M8fA50Ov/HaFOgWKN72zvd0Lzz31cjgqg6zS1XXUO1yMHTdOgdnDHb3DzCfzWCNivea+QxVPQLnBWz/Vrqe8FVdx2sFGDgvVuoDACkl/FoZ6gP9XdU1nOvAefGqe0JWsEatMID6lj7rXIcOHoLzV9XBpYztr4NLGcsIWcUxUP1cyjhmapfupf1Ix5XWuV4mpVtap3UOop/B1vufjvta4l9zfIxf/WmLu779TnTFidAOKwF+GmBjwM8A9zI6H17EoruM4s63v6t76fln4Z3DaGeC559+qkBGxobwL3847j721xqPf6HEUGo8+uH7ce6W2/DEl/4dj3zsSRhb4D33GDz80CioDTR1p29+RsYm8MnPNnjs/D5anMQri5P4xD+/ANt+GY99+kn44a1YFAd47Pw+Hv/cURBeUp4zMjaN7/2+HwTvGjhnYbXGvW89C1kWeMu3dbBGw2iFinu8896zYEIIaNWurMIzMjaFg/0Sf/TIGdx3+wg/8yN34603fhm/+Bufx3ffN8BD39XhO992I/7yd38YI/YchLU2rrgzMjaNj3/8z/D+B0b4tQ+/G94e4ff+wuHxL1Z402dO4CcfugNGXYS9/Cf45L8yRIs2Y3xldZqRsQn8wT++EX/72RfxCz/6GZy7+QDTY41RLXBpvofZ4RN45rnL+PU/t2ir+1Hc+8CD3XNfeRpatTh5+gz+64l/y9aGjI3hzLnbO6MNbDvFoz81w1tuG8d7Tzw9w0d/f4BydAK33PomCKVaCCkA1Hnmzdg4rLEoigIoJB754yEuX56hYAUKFNjfH2EwGoKVEkq1QW2wxkKrNpvKMrYC3juUJcfn/uYncP6LF/HiReDExOCOnb/H+z/SwprgQyGqqo7Whiy8GVshuFUFrYCf/6XfwY99j8U7TgMvXwZ+++8qWOzBqhZVVYeZl/b2MzI2DXJIKqsan3riJvzD5zXq4QhtM8f+wSl4f2npX6JUCyFkcG5x2VyWsVm0TRNNt0ZrjCd7WMznkGUNj+CVJkTQeVlV1dFTyOVdtoyNqw0+eAb2E6lqg/edVi2cMUtXhqoOMy/5hmadN2PzakMNayzq4RBlVaNdzHvXUImqrnu/YR5m3kyujG1CVdewRqNtGggpUA9GKKvqqs+y0XgCrVrs7O5lO2/GxrFo5sGB3hrMjqb9IQOLsqqg2iCnWrUYjSfLkxSLZh6dqTMyNoVwQsP1M27dH0XSmB1NwaWMJ1aCtaFtYqHxeJKpl7FxpO65Wql4TGk8nsQjRKptwswbzn05zGezTLmMjYLO9lV1Hc/KkUFhPpv1ZwyDPxmz1vanVPmrzn9lZGzC2kBqLB0Y3dnd6zfSVHJo1AZndNHrutlUlrF5lUFH1SBoBSWmVy6hHoyifAopIYQIzuhLPSJbGzI2CzpKH+Jk8GjXTeWTMR5m3lAgbwtnbI/aYI1Gu5jHmXbv5KkVGY2+DUKIZIquMvUyNr5gA4DxZBfH00OUVY3Z9LAP5rKUTyFEWLDp3iE9DaKRkbEpjHYmMVoP+Tl478F50YfNamGtDf68QkhYY7POm7EVasP8+KgPJeXQzGY4efoMVNv2sdcshJCJYw4Puxp5hy1j06jqGqOdSVQdvHdo5rO4A+x9iCy5dInsV3PZJTJj0zieHkYNoG0a7O4foG0a+CQmGmOJSyT5S+7uH2TqZWxcbSCLAuMci2Ye7+3uH8QdOKXaoPPSFly7mOO9P/TjXSZhxjbiq09+IcpqVdUQztkY61W1Lf7pr/40UyljK3HTbW+OdmDnLB3A9LBGk1E428sythUdRbgHQF5l2bch49qwRKTyygBAViGEvXNZ3c3YXpB8krwyzgVUs4g7GBkZ2wrOC3jvoZoFOBdB511Po5SRsa1IsxEJpdq4d5y3hzO2GSGGQ1isKdUuvcpE3hrOuAZAciqECDpvmi8sI2PbEdZnvc6b81FkXDs6bzhhEWbfmK3RZTtvxtaDUukKWQY7787uHoTIOm/GNaDz9ql0AYDNZ0cxxE5GxvYv2Eosmjnms6PezstC9susNmRsM9bzSLOqD+Sb+k1mZGwrFs08rM+iM3ofyDdHRs/YZpB8eueW8XmFLMPR4rxNnLHN+i7n/RH4cqk2WKMhZJm9yjK2Gs51IXav0aunhwHkQHsZ26029PK5cnqYopRka0PGtWBt0H0eNiZkGU1l2assY5uh2jbG7RWyBKPDl4tmnmfejK2feSmsvzU66LwAVmKiZmRsK2K4U9WC7R+cioH2MjK2HRRob//gFNiVSxdCsramyZsUGdttbXAupne9cunCahLBvEmRsdWz7pp8RlMZ4xyyzMGlM7YXsqzAOF+ayoDlSYrZ0TRTKGNrQfK5TCLYn6LI1oaMa8XaQFEiGRAyDmZ/3oxtB8koZcgUQogYIdI5mymUsbVo5rM+iXa9zMNmjQYATPb2cOLGWzprDISUsMZE/YI8z9Z/vXfwLgQCTp+P5o3+OfKfEFJGtzZql/6uh0M0SQpZxhiELNEu5qgHo5U2KaUnRVDRqo3n8MjRiIKp0I6M9x6MsXgNQKyL6ibQuOrhELOjaWzfe4/heAytVCxH9WnVQpYl9KIB93P85s/eiZ/7rafAqhFEWaGqa2iloFUb2y+rKtZP9CI6lFWYaebHR2CcR9UupTl9OYlf67/XE/+GozEuX3gl9MtaOknhk86aUCHjYIzFDQzqIOWvoLCoQQfxUZEOKebDoNYdfpYC42NdqcDMjqbw3i0V8sQ0EjLALNMOhFOkbOmLLGSsyzsXLSgxoiDny+eTnF6kQxGDKA9zOFHtYc3q16isasyOpnFsADAcj0OM47KCbhdomxl+5eFzuOeGFh967xugF3NYrdD2p1VIULVqwbmIviVEN2tsPGQ4vXIJo51J8qK4yNSr8et65t9yYvGvtjbQmzXamazMRFqpGGZd9ycvyqqODC+TvBZEiHR2IYcfIsZwPI6EJ4aQgxC9ofRMyuyyP7JEQkcDCgzxcRaguuIJkSQlqPcutqFV2+e3NXGmCJ+lqiemhFYt6sGoF4Ky17XkCiO1UglTFR68f4Lvv9tAH17EB75D4q6bB/DWAEWxMtsLIaHaNvqWCFlitDOBkAKqbdEu5vEZEpYwq5ZRUNf5db3z76rWhlTqqbPpW1RWFawxGE92ceLUDcknQy7zuEkeiVJWNbjk8S0N12Vfj0U9HEJIiXo4jLMKDS4QWUWhCp5EDGVVxQEJKWM5EryUwNQPGjQxn8rUw2FM0lwmtm6aDalfKSiRM9UrpIhlvQuJnUfC4NEP3QC3mMJbjfbKJXz0fTdDdC28dfDW9kIn4gxEzCRBodmevKfSr6LoM+LQ53SdX9cz/0i4ydrAz91x1y+//MKzYJyjKBhUu0DX+f7tNTC615GsgfcesiwxvXIZXdehYAXKqkJRhM9T0W/YWaNhrYHVvQ5VAM5aVINBZAx9QroudHgwCrNb0X/yVLsIyeQWDbx36LoOWikMRiMYreGcQ8EKcCFhtMZgNIL3HgUr4KyNguichSyr2F6qIoTPUgh3xYVAUTBQmgNrDBjn4ELAGg1ZVuFva9B1HoxztIsGzllwLuC7DvAOjz78Rtx3+wCFkNB+Am2G2N0b4/TJCc4/s4C1pq8z0PPUmbM4nh6iGtT9LN6i60IOMto0Ivp0XRfLCSlRFCz2h/jlnLtu+ceFgNFhzXD2DbeiuPPt7+peePYZCFlisreHV158fkX/oAUJvXVaqfj2pAsfimRCbxC9IeniAQAG4xHmR0cYT3ZDuaaJn4ygO1JGThkXTEQw+pSliwh6260xcSG1fM5EvYqu0SIhXQikC42Tp8/glRefj6rC+gKPXgCqO+rTBYPWLaxqYbRC13kURYGu6yCEBOMCKArsnTydqBkuqiXpl+Fq7RAdaHYl+tJCh/hFqsb1yL+Tp8/g6PAQ1micvaUX3ldefL7/xFTY3duH6TtaD0ZxpZj+yl6J5qKPqG41jDEY70wwOz6KZZ3V4KKM90n3Wf8/1WmMib+prkTPSynBxXL1SvWn5eNWYv9s2pazOt5f7/t6X9bLUpvpM1TPOo3SRQnRhOpM76VlqG/rNKB2Xosn6/SiPl+P/Lt88eVo5bnhxptQ3PvAg90z//HUitnkW2FSSt+4dWWeZohvpkmJZpB0Zktn1nS1nc5ar9eElM5YmzQBrv9ej/yzRuPW298cFmypCeNbYlIiover3rBy1pExlDT5m2FSCouPKlmdi2gOKqsa9XAYFxCpGShdeVN/aSxLm6eI92nF/PVMSLSg+f8yAV7P/IsThzVQqkXx7vc91F28cOF173IIIULG7T4otbX2dZd5LTirMRxN0DQzcC5es460vaqq447g7Hi68rkGEBdS3yi+Xl//r2W/Ufr9b8dxvfPv5KlT+B8FiFlLoxQJ6gAAAABJRU5ErkJggg==\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAXWm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALW4o8EAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAFNklEQVRYw92YaWxUVRTHf/OWWTqvM53ptNOBVpaCLAo0ERqQILhEwEACiYnBxIiJ3wgJGhPBKAlI+KhGTEAxhEQxBgyRoAgRiQGRpUqlu0AFStuhU2Z5s79Z+vxQZugaKmAy8P/y3jvvnXvOefeee+75G95Zt0bnNmzFVgDCkRiVVZWEQ0HCkRgAmb40mbSOVVEA0LQYqWQSQTRhNhlxljpRw1EA7DaFeDxBMpEgHo9Q4a7Ij3np79b8s63Yelf5UB+0ZBaDKBGJxglHVDJaCoMg033zFlbXBHbu+JgPt24j/s8pDNs3r9PPna/D4XDRl0qixqKIokw2m8ZuVRCMZoLBW4wVY9XNfTeafKRxNC2NPxil0+tHNlupnjABk6WYxpYG5tUuYPsnOzn63ddcvFhPV90xpNzfDofVvDGbzX4n0KQ2aiAj/ZDcGGosCrHoqLo2m33EwHPygT4ICY1EMsX1zl6cpR72ffEWU8ZPxVxWzrnG65w9W8ezy1Zw+pej1J35Df3aCZp6+jC8u+F1va2tFYCOjq68EYu5f4kmkrG8TEul8vcmoxEtlcJkNA5z0G63o6rqsPejfT+aPOdDNB4hqCaYNH0uX21ZiS/pos+gIFiK0JH4fPceMqIZxSLS097A4RN/8PySWiS7TRm0ROpbugzcN7p40LAVK/qO91dz02+hs9eLL55ikseBWTbx2urn+PbgT5T4G6iZOZ2sfxxZSUSKxxPYbPb+paRG/xfHHgRWL1vM+ZMX2Hu8mWgoxIGt6/CKBjZs20VbUyNvrFqEUL2UL4+dprxPoPFiK0IykSAYvNW/vlWVQoXHU05LRy+vrnyRRXOfoLvIxfotu2mq/5P5s6s519iOzaLw9DSZqGxnzoyJCPF4JL8BDMypQoOvN0A4koJwF97OaxRJEgFfd38SdHrp9oUoLy3hmyNt1Hpg9iQnUoW7gi6vD1GUR0zqQsHVbj+GTAyj1ku7P8OVlhbefGUFlzv9VI1zsvSF5eza9SmlLgWpahYNfzUg5ArkSDWnkNDc3MINX4RzV25iFGBxzWwqyxWWL5yKQ0ixcdNGjLrORx+sp0RP0VzfhFBZVcnDAKtZwl1ShNcX4dq166x9bxsRNcrPh37g/JlTvL12Ga4KDwcPH0HMenl5dTVSOBQcVlcKES5HMVdvdPPkzCm0Xu7gQksbF5ovoWNgxZIadnx2kJpF81k4y0Nx1UQeaz99Z1k6HK6CnjmzScbjstF2pQPJaMLuLEPLZFEjMQ4cOc3kp+awakElPREre/d8z6Z97Ui53TIcVgedRgoNBoMBi9lEpdtJQkuRTmeZ6ClFEAwktDTHfv2dH4+fpFgpwm63MrdmKtLj02bQ5fWRzaYLuhT0BwiyLCLLFnRdB/oPUzZFx2lX8If8VE8ejyyJ1NbOG5xzhVwKRprJgfcmo0Sx1YLZJAMQUYP9OSeK8rCD8cOInP+iKBOOxBCcpc58//QwzdxIMBmN+SbAWepEyPVzhV7Ex4p8PxmOIvAIQ8j1c48SRFHGblOQAv5AvrW3mK1s37xOD/gDJLUUfVkNo9lMeZl7TOTPQDJnrITRUAKovMzNvdrfv/9QnqoI+AMY1q55SQdwu8uIRaNEYwmAYfzG3Qgdu7WfFRtICt2LTu6kdC/2bQ4HVkWhp6cXAKmkpIhQKE6ORxlNeeDAAx3I7bRqLJp3dmhy/xed0YIay1jqbULK4XBRUlKElEnrnK+rG1bEc6TN0GuOjkhpGULh4CCdoaTSvejcj/07te4qzy15hn8B0nEpIgoaSy8AAAAASUVORK5CYII=\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAYyG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgO3bMAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAGeklEQVRYw9WYXWwcVxXHf3PnzsfOfnhjr22SNMjOR1OC6gRIS2gJX6ooRS7qAwIET0gRL6gSj+UBoZaKB4RQhVQRRKmQqBACVPEApUiABDSQNECCE7upiI1J7Nhexx+7O7s7H3dmeJid8W4lJHhbjrS6c/fee2bOOX/dc85f+8TnvpBsb64jdB0AXZdkEkWKfomjCMO0AAgDP3/un2djFCmSJEZKEwClApI4GdjTPwIDurN5v54oUsRxTBxFdNsuge+hCQ2h6WzV15iaPsx3n3+Orz3zLJ2lPyJvvrnAyvIiQgiErqPCkDiOGNk3hu95qDBAGiZxHCFE6oDA9wCQhoFpWXidDkqFmJaNEDoqDACwHQcV7jko8L38PZmzUj1mviYNc+CdAAWnSLvV7BkWEnQ7jI5VuXd6CrtQ4drCHO898xBff+47vPqzl7ALBludEAlgWjaB72E7Tv5xjZ0tSpWR1OthgND1/AOcUgm32UAIm47rEscRdqGI121jF4q5MV6nM+AYp1Qi8P3cSSoM873SMAh8jziOMS0by7Zpt5pIw6TV2IUkQQU+J45N842vnuPowWPY4xNcuvYvLl68zIc/NsuF377K5T+/RrL8Oy7fCpBSpjAUQqBChWXb+c/3PHRd5nMAFUVEYcjbD99L23UH1qQhsewiuq6helGJegZYto2KIky7gIZA17UBfQCVkSpx35nR8Ql8z8MwTUKvw8mZ+3np6Vnq3ghrOx2EV2eyWmb99jI/fPEFSgWdsLnGy39pcXD6KNqJ0+9P1ldvEUcRxXKF1cU3NIZQTKuQXH7lm3jNAiub29Q7AdP792EbFgiNH7/8K8aCOaYO3Mcvfn+F1+/KFJYZTLIIDKN85vGP8Pof/sYPfjOPu7vLT5/5Imu6xpeePc+N69f4/BNnEUce5YVfX2Ai0fEbdxHZ4X78D6McODDBwq1NPvv4Rzl7+p3ccWo8+fT3uH7lr5yZOcKla4tUCiUeOm7gGiOcPX0cIaUk8D1Myx5q4zY2t2m2AmiusrayjCMl2/U7AKyurHGnvsvEWJUfvXKDB/fDzPQoUimFadn5tTussrSyhR63Mf1NFrcUNxcWOPfpWf6xssWhA6M8+shjnD//bcZqJeSh+5m7OrcHSyF0fM8bWuPmFt7gdr3FpZvrmAI+eGqGeyZKPPbwMfaJgKe+/BRmkvCtrzxJNQmYv3Id7V0PP5LcXl4k8D1qk29jaf7KcN6WTil54MRhlv65TJQITr7jCB//wLu5eulPuN0On/rkLBcX6rSbG9xXS6i762kq2L67kee4YU0FlbHJJA4DzsxMcePmbbp+FxJBgsbsh06x9PdFTp09wwNHTcqHpogXL6SwVKHKS6phFadUBl3y2tUlNMOiXB2nG0bsNFx+8ssLHH7PSZ543z1stIq8+P2fc+75+RSWi2/OY1o2lWp1aGFZOzidZAV46PsITUMTAmkYtFtNiGMKtkEQKGJNMH3sRBq5OI7yYndYJa07I6Q0MUwLyykSJwlCN6jWJrCKJcq1/chCEWmY2E4R6fseUhppRxANdzpQYUh5pJgbaxeKaWC6AaCh6TIt1EWE73sIy7IRuo4Qel6wDqOk7VVazHvdNtIwcrRJw8yLdCF0hK5jWTbC9z2ESNuZYa4tAz/tLVUYYBeKeT28l6cFlm332jI9jRz/J5JCMO6DaNrQmlbavfev5QYXSxUC36M8Uh3qCiVrqnPKo2dMlsakYeB7qR2B71EsVdLImZZNt9NGN4zhvy0NE2nIvHPPpOAU0Q2DbqedO0G23eaeAq/L8VMPJmHvYumnDvpHo+cEvUf+RCogDENK5Qpuq5mfjVSALs18PaMg3jrPdIZhmI+Zjv79hmGgSxOv22a0Npnrz843dndyW9puE2lZdo7fwPfZuLNKHMcIIXI+o7m72+NBdvO9e/CIiKMI23Gor61iF4qoMCCO4wHOJPsv42tMy2Z3eyvvI/s7E9OyCHyfwF/No2BaFm6zkRu8vVnHdhw6rptzLv3vym9LpfZSQJoWxAD7lHUNGSxSjEviOMpJnX6WK/tYt9kYgI5TKqHCALPn0DiKeoyZyK/1OIrwOp2ByAV+yuUIoadcTG+vChXlkSoAjZ2tvctGhfi+h6yNj/9v+UZKlFJkxJJS6r8+858kUgFOsUKn4w7wpm/VMTY+iVKKkX1jWJad86puq8HE/oOD5dr4OP8GnWaF+iWIoRwAAAAASUVORK5CYII=\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAafG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAejEs8AAABhW5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKojDQ0AAA0Ybm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD51ntaAAAABm5vUEUAAAAAAADsa7vYAAAACW5vUEUAAAAAAAAAAAChinLVAAAAB25vUEUAAAAAAAAAWube0AAACUVJREFUeNrtnX2MHHUZxz87O/t2u7dzu/fe7im0tKUIpWptKoggGilSEpqYGDDGEkn8oyFBMREMakDA/9SICUUMwSjEBEM0CEJEYsAKbZVCX0/oQWnveu3dbXdn9n12Z8c/tjO3x93VXgt7s+X5JJe7m5vfPL995tnZZ57fM9/zfW/rzTaniHdGATByBVJDKYxsBiNXAKBWr1Kr2kRjMQAqlQJmuYziDxEOBUl2J9GNPABaPEaxWKJcKlEs5hjoH3CP+dZ/D7q/xzuj/3d7K+fwYdoSv56ZrXiXxvETaXL5IorPR6VSoVIxOfTOEboGV/DwQz/nJ/fdT/GdV/A9+KOt9o6du0gkeqibZfRCHr8/gGVV0aIxlGCYTGaKM+VMxzr7zbe9lXNoha2F7vtR9GulUiWdyTM6niYYibLsYx8n3BFn7/49rFu/gQd/8TDP//H3vPnmbsZ2vYDqvKMMQ3dfdDyuTQdyuTKvsbkC3jmGXshDIT/v2Hhcm/PFONtbOYdW2BK/zm+rq6ubvGEwfHSMZPcSnvj1d7ho6QrCvX3s2Pser722iy9s3MT2vz/Prlf/iX34JfadqOP7/h3ftIeHDwJw5MiYe8BIuJFClMqF6XeGabo/h4JBKqZJKBicNRlN09B1fdbf59t/vu2tnEOrbIlfZ9sqlSsUSjUuvHgdv7v3RibKPdR9MZRIBzYqjzz6GDV/mFjEz4mRPTzz0r/54jXrUbV4bMZHze4DYz7OmTEWn7Hz0Nb569d4Z8x+6J7NHE9HGJ0cZ6JocuFggnAgxDc2X8sfnv4rXek9rL3kYqz0EizVj1oslojHtcbHgZ73iIOEjxqbN17Nzpdf5/EX95PPZnnqvq2M+33ccf82hvft5dabrkJZfh2/eWE7fXWFvW8eRCmXSmQyU43cRNfFi8KiMDjYx4Ejk9xy45e5at0nONbRw+33Psq+3f9hw5rl7Ng7QjwS44pVAfIBjctXX4BSLObcJLw5FxGEVjIxeRIjZ4IxxvjoYTpUlZMTxxqJyug4xyay9HV38eRzw6wfhDUXJlEH+gcYG5/A7w/MmXALQit491gaX61AsDLJSLrGoQMHuO1rm3h7NM3QkiTXfel6tm37Jd09MdShy9jzxh4Up3g8V21QEFrF/v0HODqRY8eh4wQVuHrtGlJ9Ma6/cgUJxeSuu+8iaNv87Ie302Wb7N+9DyU1lBLPCYtONKzS39XB+ESOw4ffY8sP7ien5/nbn//Czldf4btbNtIzMMjTzzyH3xrnq5uXoxrZjHsApyYnCK2mJ9HJu0ePceklF3Hw7SO8fmCY1/e/hY2PTdes5aFfPc3aqzZw5WWDdA5dwMdGtk+nDYlEj3hQWDTCoQCDPXGGDx1BDYbQkr1UahZ6rsBTz21n2acv56bPpjiRi/L4Y3/i7idGUJ1qg2HoM1ZBBKGV+Hw+IuEQqf4kpYpJtWpxwWA3iuKjVKnywj/+xbMvvkxnrANNi7Ju7QrUlatWMzY+gWVVpVQmLHIAQyDgJxCIYNs20FjsjcdsklqMdDbN8mVLCah+1q//zMycV0plgpeuxM0/h4IqndEI4VAAgJyeaeS8fn9jg1x5BS/jxKffH8DIFVCS3Um391KuvIKXCQWDbhNZsjuJ4vTzyiKF0A64PcVGHkXcIbQritPPKwjtgt8fQIvHUJr7eTVNE88InsWJz3hco1gsTffzAtLPK3gaJz4zmSnKpdJ0P29zKUIQWk3NsqhZ1mn3aY7PYjGH4mgKOKUIQVgsVL//tH9vjs+B/oGZixSC4NXAff8Nm5ErNPp5pcYrtBOWVSU1lEIxshm0aEN6R/p5BS/jxKcWjWFkT/U2KMGw9PMKbUEi0YMSDDfShnhn1C2VST+v4GWc+Mxkpoh3RqefpKibZfGO4HmcOHVv2OCUeJogeBwnTt0bNqf8IAhex4lTI5tBdeq8Trns27fcYIuLBC+y84033N5zI1dATQ2leHtkxN3hkSefFS8JnuSTlywFpuu8qlPn1Qt5p47mEzcJXiQSjtrQVOdVgyHyp1SrpVQmeBknPvPlCmowJPq8QvugaZq7mDajn1f0eQWvo+s6dbM8u59X9HkFr1MxTbfOO6OfVx59F7yO8+g7NPXzOuUHQfA6TpzOWB4WhHZixvIwSD+v4G2a49Pt5wXR5xXaAydOjVxhutog+ryC1ymVCxiGPl1tWLlqtZsIS6lM8DIV03Rv2FauWj0z55VSmeBlmuPTzXlFn1dolysviD6v0KZXXtHnFdoW0ecVzgtEn1doO0SfV2g7RJ9XaFtEn1doW0SfV2hbRJ9XOC9u2ESfV2hLRJ9XaDtEn1doa0SfV2hLRJ9XaGtEn1doW0SfV2hbTqvPe8WnVtqwsP+LtVAU3xzH9tcb361Go1vdtlrqFGdO52rXqtfJGgUyWZ2f3nYxd247yGBfEi0WoW7bZ+3XD2p+p6P5P1B68fznCsYMfd5ZdV7V7/9QJz7/WVcWPXDndewZYts2pbLJ8Umde7YMsaavxNc/l+L4ZJZSpYpt24s6vzOhHc6/Z+u8rQ7cD5Jq1WIqk2PDpVE2XV7FzE6xaVWAZb0h0tkcNasun/vncP5n1Xm9oM9bty33q13fPHXbJl8sU62WeODWXqySTr1mUs6kuXPjUoqFIqWySd22PfvmXpQr7gLO//v1ed1+3kSip2X9vM2T9FLAntNcbBuzVuPH37qI3kQEtbOXcM8Swolu+pMdbL1hBdWqBWcRvB/I/Dx6dV3Ia3L0eZ1+XtXp59WiMXRdpzMa/0imB+c6H5/PRzQS4oHfjnL3wxWsphTB71eIdYToSXTi8/nOC38thr8dfV69kKcnqaFCY8ktk5kiEo6y8fprOZk+SbliUrcqBMNh+nr7cR7U1OIxisUS5VKJYjHHQP8ARq5AaiiFkc3gLHoku5MLHlOrV+nr7Rf7Yn9O+6+8/Cp6Ie+2Mvi23PwVG6C/v5dCPk++UAJwl4yb62tzdZ85252bPiUYdseezRhnYmJf7L9/zJLBAaKxGCdOTDZy9K6uDrLZIsPDB+ctCltWdcYkmg04dTe9kHcn01zSWOiY+Zwm9sX+0dGj7rG6ujpQa1Wbnbt2ATM71SumSSgYnPW9kXvkMSs1skZmxhinlOHcFZ7NGLEv9k9nv/Eo0Ltce83n+R+bCm28wSXdjwAAAABJRU5ErkJggg==\")","module.exports=require(\"alt1/base\").ImageDetect.imageDataFromBase64(\"iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAehm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYX5ysAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAQyklEQVR42u1da4wlx1X+uh7dfR9zZ2Zndvbh127sTWxjr53YRCaOQyxZBIMTBQmIBD8QIfIPIBL/CD9AJARZAgmiSBGOAhFIEUIyivIDQkA8xGPBD4Gdtb12FK8fa++ud2ZnZ+6de/t2V1dV86P61O17vSYOhJm7q/qk0b1zu7u66pzTp0+dOnVO9LGff7i6tPEmGOcAAM4FCMZoNGGNgYwTAECpCv+9+T99GqNRVRZCxAAArRUqW02d0/wEMNU2/d9sh/rDuYAxGtYYMM79/9T3UhVgnE8db44nabVQjMd+THROsz9Ej+a46R7N/jXHS32j62fbbLb9P91vltazNKZ+NMdM47vS+WetxXi0g1IpqCJHxCKwiOPSxgXccOQIvvylL+B3Pvd5ZC//K8RL3zmFN149DcYYGOfQZQlrDRaXV1DkOXSpIGQMaw0YcwRWRQ4AEFIiThLkWQatS8RJCsY4dKkAAGm7DV1OCKiK3N+HiOnaif0xIeOpewJAq93BaGcAAFNM1mUJISWsMRAybvyuwDhHnCRQReH7ZK1FnKT+vHw8AmPc/0ZjnO3/7HnUfrP/SZpip7891R9qR8gYQgqoopjqN2Pc07JJf6JrNhxell6M86lrm/xSRX7F8s8ag1LlyEc7WFldxrvfdRRpuoBnT53E++/5AB75wh/hW3/5NaQtic2shACAOEmhihxpu+0739/aRLe3OMUs6mC728Vw0AdjKbLhENYapK0O8vEIaaszEY4smyJcu9v1wkSdJwgpa8I7AUvSFKOdAYSMsdPfvixhSACoj0RwascJBffXCCmQZ5lnPjHLWuMZQczw2soaCCHRWehhtDPwxGeMTwmptQZxkvp7NYXS9U83hJZBFXl9f+bPT9ttp40YhyoK/7CoIoeQcqpda8zUwzThV3pF8k/lY6g8w203H8Pv/dYv4aZrjiHdv4Ynnn0Njz/+FO7/8Ydw4h++haf+499QvfqPeOqMQnT8ng9X515/zTeapI4gSZqiyHPfOfpdGwNTllhcXsFoOIQuC38sGw2RpB1wHkHXwmDqASZp6n+LwMB5NNUeAEgpYWeuoT7Q9yRNYUwFzqO3HBMygS6LqVcl9a15rjEVKlgIzt/SBpfS338WXEp/jZCJHwO1z6X0Y6b70rFmP5rjarY5e02Tbs02tTEQ9UM02//muK8U/kkpsX1xHbfffhxf++xPYj1fhY26YK02Kgh8+StfheYpui2OC6dP4ut/9ySuOXoTolvv/mD15tkzsMags9DD2dMvRAgI2EV0llYrnWd48q9/H/mghTc2LmE9Uzh6aBmpTAAW4S++/jdYUSdx5PDN+Kt/fhpPXhTObCDV3XzyAwJ2CyyK8ImH7seT//Jf+NO/fx7D7W089rlfwXke4dc+/yhefO5Z/OLH7wO78SP44789gbWKo+hfBGsazwEBewFrLQ4dXsOpMxv4uY/+GO67+4dwrr2KT3/2K3ju6f/EPcdvxBPPnkav1cUH3iMxlIu47+73gAkh/OQhIGAvoEuF9Y1LGOwoYHAW5994FW0hcGn9HADg7BvncW59G2srS/jzb76I9x8Cjh/dB6G1Rpyk3q0RELDrZgMXePnsJrgZIS42cHpT46VTp/CpTzyE776xiesO78NHHngQjz76RaysdiGuux0nnzk5MRsY41Oz04CA3ULSauOZk8/h9fUdPPHSm4gZ8KN3Hse1a108eO8xLDOFz/zGZxBXFf7gNz+NpUrh+aefQ/Teex+oXn/1NFSRY/XAQbz8/NPB2xCwq1g+cG2VDQe465Yb8Morr8FUDHfcciN+4kPvwzNP/DuG4ww/+9MP4fFT6xgNLuDm1Qrrwzedq+zSxQvQpUaSpsFVFrDr2Hfo+spoDVOMcc/xo3jxpTMYF2OgYqgQ4aEP34mXv30ad953D374phgL1x2BPX3CmQ261H7lJiBg170NxkDKGDLt4MS3XwZEjIXl/RiXBlv9IR775gm866478PEfuRYXdjr46p98A5/60vPObDj9necRJyl6S0vBbAjYdXT3rVVCuNVJRABnzAXmqKJehteIqgpJzKGUho0Yjh671S1SWGt8bEBAwK4Lb28ReZbBWot2t4tsOEScthCnbVhr0On1sLO1hYXFRfS3LsEag7TdASuKHEJIF9FkgrssYPdBgssYQ55ltevWQhU5Wu0O+pubEDJGxEUdYBWjKHKwJEl9lJUJq2wBewCK4nPRZhZCCh/lV+QuxFMVOUxZgjEOxjmSJHWal2JDQ2xDwF6BQkddWKlG2m4jTlLk4xHiJIWQEkma1mGd3GneQLaAufA4WAtrjQu9LFUdSyyQtjqIk+TyAt/p9qCKHAuLS2GFLWBPQMH2uiwxzkYuaF2XGA760KWCLjXiJEGROzlVRY5Ot+c0b5ykGGcjH0wdELDbaLU7botRvbPFady03oqkMBz0waXEOBv5IDJW5Fltc3B0u71AxYBdR7vbRX9rE1o7h0EzPFcVBbQukbY66HZ7Pva8yDOneYUUsNZgNBwGSgbsOrLh0Alnb9FvIE1St7+Q/lSRY1TvtxPS7ZBmWut6lyp/y/6vgIDd8jRMbNvUm7GqcLufFxaX6oU0t+KWDYfQWrtgdFHbusFVFrAnwss59u1fg5DC7XRmk+3xQsbob20ibXW8fAopIYRwmndiRwRvQ8BeaF6O9fNnfdIR+o1SMszKJ2PcaV4AYRdFwJ6CBHS0M/C5L/LxyGvapdX9UzJK35kQoqGik0DJgD2xeRljPp4BcME6O/1txEmKYX+7TvAykU9vNjgnsZhKohEQsJvQukS72wUAdBZ6yLOsVqguzsFaC86jOm1WDq01RJKkEEJClzrYvAF7Amtt7SZzKa5GOwO/XJwNh1g9cBBFnte51zSEkI3AHO5WNcIKW8BeYPXAQQwHfR8c1lnoedPBWoNsNPQrwNa6zJKTkMh6NhdCIgP2Auvnz4IxjsXlFez0t70FkGcZFpdXXLxvIycaY42QSIqXXFxeCZQM2IMJG0er20F/a3M63SznGGcjf97i8opfgSuK3Nm8tASXj0e4/2d+oQrkDJhHvHbqpJfVJEkhjNHQpUKcuBSU//TYnwUqBcwlrrnxFu8HNkbTBkwLXSpyCgd/WcC8oqIM9wAoqizENgTMP5qxDV54ZeI2wBkTzN2A+QXJJ8kr41ygyMZ+BSMgYF7BeQRrLYpsDM4pM/pMGaWAgHlFsxqRKIrcrx2H5eGAeYbL4eAma0WRT6LKRFgaDrgCQHIqhHA2L0lzQMCVADc/E5MiggEBV4bNyxEntc1LVRVpx2ZAwDyDSukKGTs/78LiEnx+1ICAebZ5hcTC4pLTwqPhwKfYCQiY/wlbjHE2wmg4mFTATNI0mA0Bc43ZOtIsqWuwNeMmAwLmFeNs5OZnPhi9TuQbMqMHzDNIPq0xk/y8QsZua3FYJg6YZ3uX83oLfDwxG3SpIGQcosoC5hrGVC53b6mmdw8DCIn2AubbbKjlc2r3MGUpCd6GgCvB26CK3GleIWPvKgtRZQHzjCLPfd5eIWMw2nw5zkZB8wbMvealtP66VM7mBTCVEzUgYF7h050WOdjyyn6faC8gYN5BifaWV/aDbW1uuGJtWRYWKQLm29tgjC/vurW5MV1EMCxSBMy11p2RT+8qY5xDxiG5dMD8QsYJGOcTVxkw2UkxHPQDhQLmFiSfkyKC9S6K4G0IuFK8DZQlkgGu4mCI5w2Yd5CMUoVMIYTwGSKN0YFCAXOLbDT0hQaFEBBauxSnANBbWsK+Q9dXuix9FW6yLyjybPbTWgNrXCLg5vnevVGfR/ETQkof1kb3pe9pu42sUUKWMQYhY+TjEdJWZ+qeVNKTMqioIvf78CjQiJKp0IqMtdZXnZlKYsy4b5tA40rbbQwHfX9/ay3a3S5UUfjrqD1V5JBxDDXOwO0If/jLt+JXv/gCWNKBiBMkaQpVFFBF7u8fJ4lvn+hFdIgTp2lGOwMwzr1p16Q5vTmJX7OfVxP/2p0uLm2su35pTTspbKOzpa++zRjzCxjUQapfQWlRnQ1ivSHtynC6Qc0G/EwExvq2mgIzHPRhrZkY5A3XiKsAMyk74HaRskksspC+LWuM96D4jIKcT85v1PQiG4oYRHWY3Y5qC11Ov43iJPX1EwjtbtflOI4TqHyMPBvidx8+gjvXcnzy/uugxiNoVSCvd6uQoKoiB+fCx5YQ3XSp/SbD/tYmOgu9xoNiPFMvx6+rmX8TxWLf6m2gJ6uz0JvSRKoofJp1Ve+8iJPUMzxu1LUgQjS1CwX8EDGoZJEuS88QChCiJ5TOaTI7rrcskdDRgBxDrNcC1JbfIdIoCWqt8fdQRV7Xty29pnCvpaQmpoQqcqStTi0EcW1rySlGqqJoMLXAA3f18NE7Sqjti/jYzRK3XduC1SUQRVPaXgiJIs99bImQMToLPQgpUOQ58vHIn0PC4rRq7AV1ll9XO/8u621oSj11tvkUxUkCXZbo9haxb/9a45UhJ3XcJPdEiZMUXHL/lLrfZd2ORtpuQ0iJtN32WoUG54hceKFykUQMcZL4AQkp/XUkeE0CUz9o0MR8uiZtt32R5rjh6yZtSP1qggo5U7tCCn+tNa6wc0eUeOSTazDjPqxWyLc28esPXgtR5bDawGpdC53wGoiYSYJC2p6ip5pvRVFXxKHX6Sy/rmb+kXCTt4Efefdtv33h3BkwzhFFDEU+RlXZ+uktUaraRtIlrLWQcYz+1iVUVYWIRYiTBFHkXk9RvWCnSwWtS2hV21ARYLRG0mp5xtArpKpch1sdp92i+pVX5GNXTG6cwVqDqqqgigKtTgelUjDGIGIRuJAolUKr04G1FhGLYLT2gmiMhowTf7+mieBeSy7dFRcCUcRAZQ50WYJxDi5cMWcZJ+67LlFVFoxz5OMMxmhXM7eqAGvwyMM34H3HWoiEhLI9qLKNxaUuDqz28NQrY2hd1m06eu4/eBg7/W0krdRXgKwqV4OMFo2IPlVV+euElIgi5vtD/DLGXLX840KgVG7OcPi6o4huvfuD1bkzr0DIGL2lJayfPztlf9CEhJ46VRT+6WlOfCiTCT1B9IQ0Jw8A0Op2MBoM0O0tuuuyzL8ynO1IFTmlnzARwehV1pxE0NOuy9JPpCbnld6uot9oktCcCDQnGqsHDmL9/FlvKsxO8OgBoLa9PR0xKJVDFzlKVaCqLKIoQlVVEEKCcQFEEZZWDzTMDOPNkuab4XL3ITqQdiX60kSH+EWmxtXIv9UDBzHY3oYuFQ5fXwvv+vmz9SsmweLSMsq6o2mr42eKzU9ZG9Fc1BnVtUJZlugu9DDcGfhrjVbgIvbHyfaZ/Z/aLMvSfzZtJTpfSgkuJrNXar95vV9KrM9t3sto5Y/P9n22L7PX0j2b51A7szRqTkqIJtRm81jzGurbLA3oPm/Hk1l6UZ+vRv5dunjBe3nWDl2D6L33PlC98t0Xptwmu+FSaj5xs8Y8aYgfpEuJNEhTszU1a3O23dRa79SF1NRYe+kCnP28GvmnS4Wjx25xE7amC2NXXEpE9HrW62bOyjOGiib/IFxKbvKRNGbnwruD4iRF2m77CUTTDdSceVN/aSwTn6fwx2nG/L1cSDSh+f9yAV7N/POKQ5coihzRhx78qerixsY7XuUQQriK23VSaq31O77m7WC0QrvTQ5YNwbl42zaa90uS1K8IDnf6U69rAH4i9f3ie/X1/3rt90u//+04rnb+re7fj/8GO6Pn3eR9G3UAAAAASUVORK5CYII=\")","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar SearchData = /** @class */ (function () {\n function SearchData() {\n this.reaper = false;\n this.task = 'Dragons';\n this.probability = 0;\n }\n return SearchData;\n}());\nexport { SearchData };\nvar SearchAlgorithm = /** @class */ (function () {\n function SearchAlgorithm() {\n this.data = new SearchData();\n }\n // Lookup best possible assignment based on input string\n SearchAlgorithm.prototype.lookup = function (lookup_1) {\n return __awaiter(this, arguments, void 0, function (lookup, skipReaper) {\n var probabilities, reapersResponse, reapers, _i, reapers_1, a, _a, _b, b, assignmentsResponse, assignments, _c, assignments_1, a, _d, _e, b, _f, _g, b, key, aliasKeys, _h, aliasKeys_1, aliasKey, creatureKeys, _j, creatureKeys_1, creatureKey;\n if (skipReaper === void 0) { skipReaper = false; }\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n probabilities = {};\n if (!!skipReaper) return [3 /*break*/, 3];\n return [4 /*yield*/, fetch(\"./data/reapers.json\")];\n case 1:\n reapersResponse = _k.sent();\n return [4 /*yield*/, reapersResponse.json()];\n case 2:\n reapers = _k.sent();\n for (_i = 0, reapers_1 = reapers; _i < reapers_1.length; _i++) {\n a = reapers_1[_i];\n probabilities[a[\"index\"]] = {\n reaper: true,\n index: Math.round(this.similarity(a[\"index\"], lookup) * 10000) / 100,\n creatures: {}\n };\n for (_a = 0, _b = a[\"creatures\"]; _a < _b.length; _a++) {\n b = _b[_a];\n probabilities[a[\"index\"]].creatures[b] = Math.round(this.similarity(b, lookup) * 10000) / 175;\n }\n }\n _k.label = 3;\n case 3: return [4 /*yield*/, fetch(\"./data/assignments.json\")];\n case 4:\n assignmentsResponse = _k.sent();\n return [4 /*yield*/, assignmentsResponse.json()];\n case 5:\n assignments = _k.sent();\n for (_c = 0, assignments_1 = assignments; _c < assignments_1.length; _c++) {\n a = assignments_1[_c];\n probabilities[a[\"index\"]] = {\n reaper: false,\n index: Math.round(this.similarity(a[\"index\"], lookup) * 10000) / 125,\n alias: {},\n creatures: {}\n };\n for (_d = 0, _e = a[\"alias\"]; _d < _e.length; _d++) {\n b = _e[_d];\n probabilities[a[\"index\"]].alias[b] = Math.round(this.similarity(b, lookup) * 10000) / 150;\n }\n for (_f = 0, _g = a[\"creatures\"]; _f < _g.length; _f++) {\n b = _g[_f];\n probabilities[a[\"index\"]].creatures[b] = Math.round(this.similarity(b, lookup) * 10000) / 175;\n }\n }\n // Find highest likelihood of the search\n for (key in probabilities) {\n if (probabilities[key].index > this.data.probability) {\n this.data.task = key;\n this.data.reaper = probabilities[key].reaper;\n this.data.probability = probabilities[key].index;\n }\n if (probabilities[key].alias) {\n aliasKeys = Object.keys(probabilities[key].alias);\n for (_h = 0, aliasKeys_1 = aliasKeys; _h < aliasKeys_1.length; _h++) {\n aliasKey = aliasKeys_1[_h];\n if (probabilities[key].alias[aliasKey] > this.data.probability) {\n this.data.task = key;\n this.data.reaper = probabilities[key].reaper;\n this.data.probability = probabilities[key].alias[aliasKey];\n }\n }\n }\n if (probabilities[key].creatures) {\n creatureKeys = Object.keys(probabilities[key].creatures);\n for (_j = 0, creatureKeys_1 = creatureKeys; _j < creatureKeys_1.length; _j++) {\n creatureKey = creatureKeys_1[_j];\n if (probabilities[key].creatures[creatureKey] > this.data.probability) {\n this.data.task = key;\n this.data.reaper = probabilities[key].reaper;\n this.data.probability = probabilities[key].creatures[creatureKey];\n }\n }\n }\n }\n return [2 /*return*/, this.data];\n }\n });\n });\n };\n // Check the similarity of 2 strings\n SearchAlgorithm.prototype.similarity = function (s1, s2) {\n var longer = s1;\n var shorter = s2;\n if (s1.length < s2.length) {\n longer = s2;\n shorter = s1;\n }\n var longerLength = longer.length;\n if (longerLength === 0)\n return 1.0;\n return (longerLength - this.editDistance(longer, shorter)) / parseFloat('' + longerLength);\n };\n // Calculate the edit distance between 2 strings\n SearchAlgorithm.prototype.editDistance = function (s1, s2) {\n s1 = s1.toLowerCase();\n s2 = s2.toLowerCase();\n var costs = [];\n for (var i = 0; i <= s1.length; i++) {\n var lastValue = i;\n for (var j = 0; j <= s2.length; j++) {\n if (i === 0) {\n costs[j] = j;\n }\n else if (j > 0) {\n var newValue = costs[j - 1];\n if (s1.charAt(i - 1) !== s2.charAt(j - 1)) {\n newValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1;\n }\n costs[j - 1] = lastValue;\n lastValue = newValue;\n }\n }\n if (i > 0) {\n costs[s2.length] = lastValue;\n }\n }\n return costs[s2.length];\n };\n return SearchAlgorithm;\n}());\nexport { SearchAlgorithm };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as a1lib from \"alt1\";\nimport DialogReader from 'alt1/dialog';\nvar SlayerData = /** @class */ (function () {\n function SlayerData() {\n this.selectYourOwn = false;\n this.ticket = false;\n this.reaper = false;\n this.count = [];\n this.task = [];\n }\n return SlayerData;\n}());\nvar SlayerDialogReader = /** @class */ (function () {\n function SlayerDialogReader() {\n }\n SlayerDialogReader.prototype.read = function () {\n return __awaiter(this, arguments, void 0, function (buffer) {\n var data, box, msg, countText, e, countText, e, i, msg, countText;\n if (buffer === void 0) { buffer = null; }\n return __generator(this, function (_a) {\n if (!buffer) {\n buffer = a1lib.captureHoldFullRs();\n }\n if (!this.dialogReader) {\n this.dialogReader = new DialogReader();\n }\n this.data = new SlayerData();\n data = this.dialogReader.find(buffer);\n if (!data)\n return [2 /*return*/, null];\n box = this.dialogReader.read(buffer);\n if (!box)\n return [2 /*return*/, null];\n if (box.text && (!box.opts || box.opts.length !== 2)) {\n msg = box.text.toString();\n // Parsing logic for various types of dialogs\n if (msg.toLowerCase().includes(\"select your own task\")) {\n this.data.selectYourOwn = true;\n }\n if (msg.toLowerCase().includes(\"require you to collect\")) {\n this.data.reaper = true;\n countText = msg.substring(msg.indexOf(\"collect \") + 8, msg.indexOf(\" souls\"));\n this.data.count[0] = parseInt(countText);\n this.data.task[0] = msg.substring(msg.indexOf(\"battle: \") + 8, msg.indexOf(\". Can\"));\n }\n if (msg.toLowerCase().includes(\"new task is to kill\")) {\n e = msg.substring(msg.indexOf(\"kill \") + 5, msg.length - 1);\n countText = e.substring(0, e.includes(\",\") ? e.indexOf(\",\") : e.indexOf(\" \"));\n this.data.count[0] = parseInt(countText);\n this.data.task[0] = e.substring((e.includes(\",\") ? e.indexOf(\",\") : e.indexOf(\" \")) + 1);\n }\n if (msg.toLowerCase().includes(\"still need to kill\")) {\n e = msg.substring(msg.indexOf(\"kill \") + 5);\n this.data.count[0] = parseInt(e.substring(0, e.indexOf(\" \")));\n this.data.task[0] = e.substring(e.indexOf(\" \") + 1, e.includes(\".\") ? e.indexOf(\".\") : e.length - 1);\n }\n if (msg.toLowerCase().includes(\"still hunting\")) {\n this.data.task[0] = msg.substring(msg.indexOf(\"hunting \") + 8, msg.indexOf(\";\"));\n }\n }\n if (box.opts && box.opts.length === 2 && (box.title && box.title.toLowerCase().includes(\"change your assigned slayer task\"))) {\n this.data.ticket = true;\n for (i = 0; i < box.opts.length; i++) {\n msg = box.opts[i].text;\n countText = msg.substring(0, msg.indexOf(' '));\n this.data.count[i] = parseInt(countText);\n this.data.task[i] = msg.substring(msg.indexOf(' ') + 1, msg.includes('(') ? msg.indexOf('(') - 1 : msg.length);\n }\n }\n return [2 /*return*/, this.data];\n });\n });\n };\n return SlayerDialogReader;\n}());\nexport { SlayerDialogReader };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as a1lib from \"alt1\";\nimport * as OCR from \"alt1/ocr\";\nimport * as settings from \"./settings\";\nvar imgs = a1lib.webpackImages({\n slayer_expanded_RS3: require(\"../images/data/slayer_expanded_RS3.data.png\"),\n slayer_expanded_OSL: require(\"../images/data/slayer_expanded_OSL.data.png\"),\n reaper_expanded_RS3: require(\"../images/data/reaper_expanded_RS3.data.png\"),\n reaper_expanded_OSL: require(\"../images/data/reaper_expanded_OSL.data.png\"),\n slayer_collapsed_RS3: require(\"../images/data/slayer_collapsed_RS3.data.png\"),\n slayer_collapsed_OSL: require(\"../images/data/slayer_collapsed_OSL.data.png\"),\n reaper_collapsed_RS3: require(\"../images/data/reaper_collapsed_RS3.data.png\"),\n reaper_collapsed_OSL: require(\"../images/data/reaper_collapsed_OSL.data.png\"),\n});\nvar UICounterData = /** @class */ (function () {\n function UICounterData() {\n }\n return UICounterData;\n}());\nexport { UICounterData };\nvar UICounterReader = /** @class */ (function () {\n function UICounterReader() {\n this.countFont = null;\n this.taskFont = null;\n this.data = null;\n }\n UICounterReader.prototype.read = function (buffer) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b, width, height, _i, _c, match, countText;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (!buffer)\n buffer = a1lib.captureHoldFullRs();\n if (!!this.countFont) return [3 /*break*/, 2];\n _a = this;\n return [4 /*yield*/, fetch(require(\"../fonts/aa_10px_mono.fontmeta.json\")).then(function (r) { return r.json(); })];\n case 1:\n _a.countFont = _d.sent();\n _d.label = 2;\n case 2:\n if (!!this.taskFont) return [3 /*break*/, 4];\n _b = this;\n return [4 /*yield*/, fetch(require(\"../fonts/aa_8px_mono.fontmeta.json\")).then(function (r) { return r.json(); })];\n case 3:\n _b.taskFont = _d.sent();\n _d.label = 4;\n case 4:\n // Reset data for next search\n this.pos = [];\n this.data = null;\n // Look for all UI Elements until we find one, then the rest will get skipped\n this.findUIElement(buffer, imgs.slayer_collapsed_OSL, { reaper: false, collapsed: true, OS: true });\n this.findUIElement(buffer, imgs.slayer_expanded_OSL, { reaper: false, collapsed: false, OS: true });\n this.findUIElement(buffer, imgs.slayer_collapsed_RS3, { reaper: false, collapsed: true, OS: false });\n this.findUIElement(buffer, imgs.slayer_expanded_RS3, { reaper: false, collapsed: false, OS: false });\n this.findUIElement(buffer, imgs.reaper_collapsed_OSL, { reaper: true, collapsed: true, OS: true });\n this.findUIElement(buffer, imgs.reaper_expanded_OSL, { reaper: true, collapsed: false, OS: true });\n this.findUIElement(buffer, imgs.reaper_collapsed_RS3, { reaper: true, collapsed: true, OS: false });\n this.findUIElement(buffer, imgs.reaper_expanded_RS3, { reaper: true, collapsed: false, OS: false });\n // If we don't find any data or we found too many matches then return\n if (!this.data && this.pos.length == 0)\n return [2 /*return*/, null];\n width = this.data.collapsed ? imgs.slayer_collapsed_OSL.width : imgs.slayer_expanded_OSL.width;\n height = this.data.collapsed ? imgs.slayer_collapsed_OSL.height : imgs.slayer_expanded_OSL.height;\n // Loop the results and return the data we find\n for (_i = 0, _c = this.pos; _i < _c.length; _i++) {\n match = _c[_i];\n // Overlay a rectangle around the matched area on screen if we're running in alt1\n if (window.alt1 && alt1.permissionOverlay && settings.controller.data.ui.counter)\n alt1.overLayRect(a1lib.mixColor(255, 255, 255), match.x, match.y, width, height, 500, 3);\n // Get the pixel data for the matched area\n this.data.img = buffer.toData(match.x, match.y, width, height);\n countText = OCR.findReadLine(this.data.img, this.countFont, this.data.OS ? [[255, 152, 31]] : [[255, 203, 5]], this.data.collapsed ? 10 : 72, 15, 30, 3);\n this.data.count = parseInt(countText.text);\n if (!this.data.collapsed)\n this.data.task = OCR.findReadLine(this.data.img, this.taskFont, this.data.OS ? [[255, 152, 31]] : [[255, 203, 5]], 9, 28, 156, 3).text;\n }\n return [2 /*return*/, (!this.pos || this.pos.length == 0) ? null : this.data];\n }\n });\n });\n };\n UICounterReader.prototype.findUIElement = function (buffer, img, mode) {\n if (!this.data && this.pos.length == 0)\n this.pos = buffer.findSubimage(img);\n if (!this.data && this.pos.length > 0)\n this.data = { reaper: mode.reaper, collapsed: mode.collapsed, OS: mode.OS, img: null, count: -1, task: null };\n };\n return UICounterReader;\n}());\nexport { UICounterReader };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n// Fetch a single assignment based on the index or alias\nexport function get(assignment) {\n return __awaiter(this, void 0, void 0, function () {\n var response, data, _i, data_1, a, _a, _b, b, error_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 3, , 4]);\n return [4 /*yield*/, fetch(\"./data/assignments.json\")];\n case 1:\n response = _c.sent();\n return [4 /*yield*/, response.json()];\n case 2:\n data = _c.sent();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (a[\"index\"].toLowerCase() === assignment.toLowerCase()) {\n return [2 /*return*/, a];\n }\n for (_a = 0, _b = a[\"alias\"]; _a < _b.length; _a++) {\n b = _b[_a];\n if (b.toLowerCase() === assignment.toLowerCase()) {\n return [2 /*return*/, a];\n }\n }\n }\n return [2 /*return*/, null];\n case 3:\n error_1 = _c.sent();\n console.error(\"Error fetching data:\", error_1);\n return [2 /*return*/, null];\n case 4: return [2 /*return*/];\n }\n });\n });\n}\n// Get an array of the index\nexport function getIndexList() {\n return __awaiter(this, void 0, void 0, function () {\n var dataList, response, data, _i, data_2, a, error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n dataList = \"\";\n return [4 /*yield*/, fetch(\"./data/assignments.json\")];\n case 1:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 2:\n data = _a.sent();\n for (_i = 0, data_2 = data; _i < data_2.length; _i++) {\n a = data_2[_i];\n dataList += \"<option>\".concat(a[\"index\"], \"</option>\\n\\r\");\n }\n return [2 /*return*/, dataList];\n case 3:\n error_2 = _a.sent();\n console.error(\"Error fetching data:\", error_2);\n return [2 /*return*/, \"\"];\n case 4: return [2 /*return*/];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n// Assuming decodeHtml function is defined or imported elsewhere\nimport { decodeHtml } from '../extrafuncs';\n// Fetch a single creature based on the name\nexport function get(creature) {\n return __awaiter(this, void 0, void 0, function () {\n var response, data, _i, data_1, a, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n return [4 /*yield*/, fetch(\"./data/creatures.json\")];\n case 1:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 2:\n data = _a.sent();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (decodeHtml(a[\"name\"].toLowerCase()) === creature.toLowerCase()) {\n return [2 /*return*/, a];\n }\n }\n return [2 /*return*/, null];\n case 3:\n error_1 = _a.sent();\n console.error(\"Error fetching data:\", error_1);\n return [2 /*return*/, null];\n case 4: return [2 /*return*/];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n// Assuming decodeHtml function is defined or imported elsewhere\nimport { decodeHtml } from '../extrafuncs';\n// Fetch a single master based on the name\nexport function get(master) {\n return __awaiter(this, void 0, void 0, function () {\n var response, data, _i, data_1, a, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n return [4 /*yield*/, fetch(\"./data/masters.json\")];\n case 1:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 2:\n data = _a.sent();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (decodeHtml(a[\"name\"].toLowerCase()) === master.toLowerCase()) {\n return [2 /*return*/, a];\n }\n }\n return [2 /*return*/, null];\n case 3:\n error_1 = _a.sent();\n console.error(\"Error fetching data:\", error_1);\n return [2 /*return*/, null];\n case 4: return [2 /*return*/];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n// Fetch a single reaper based on the index or alias\nexport function get(reaper) {\n return __awaiter(this, void 0, void 0, function () {\n var response, data, _i, data_1, a, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n return [4 /*yield*/, fetch(\"./data/reapers.json\")];\n case 1:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 2:\n data = _a.sent();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (a[\"index\"].toLowerCase() === reaper.toLowerCase()) {\n return [2 /*return*/, a];\n }\n }\n return [2 /*return*/, null];\n case 3:\n error_1 = _a.sent();\n console.error(\"Error fetching data:\", error_1);\n return [2 /*return*/, null];\n case 4: return [2 /*return*/];\n }\n });\n });\n}\n// Get an array of the index as HTML option elements\nexport function getIndexList() {\n return __awaiter(this, void 0, void 0, function () {\n var dataList, response, data, _i, data_2, a, error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n dataList = \"\";\n return [4 /*yield*/, fetch(\"./data/reapers.json\")];\n case 1:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 2:\n data = _a.sent();\n for (_i = 0, data_2 = data; _i < data_2.length; _i++) {\n a = data_2[_i];\n dataList += \"<option>\".concat(a[\"index\"], \"</option>\\n\\r\");\n }\n return [2 /*return*/, dataList];\n case 3:\n error_2 = _a.sent();\n console.error(\"Error fetching data:\", error_2);\n return [2 /*return*/, \"\"];\n case 4: return [2 /*return*/];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n// Import the decodeHtml function\nimport { decodeHtml } from '../extrafuncs';\n// Fetch a single variant based on the creature name and variant name\nexport function get(creature, variant) {\n return __awaiter(this, void 0, void 0, function () {\n var response, data, _i, data_1, a, _a, _b, b, error_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 3, , 4]);\n return [4 /*yield*/, fetch(\"./data/creatures.json\")];\n case 1:\n response = _c.sent();\n return [4 /*yield*/, response.json()];\n case 2:\n data = _c.sent();\n for (_i = 0, data_1 = data; _i < data_1.length; _i++) {\n a = data_1[_i];\n if (decodeHtml(a[\"name\"].toLowerCase()) === creature.toLowerCase()) {\n for (_a = 0, _b = a[\"variants\"]; _a < _b.length; _a++) {\n b = _b[_a];\n if (b[\"name\"].toLowerCase() === variant.toLowerCase()) {\n return [2 /*return*/, b];\n }\n }\n }\n }\n return [2 /*return*/, null];\n case 3:\n error_1 = _c.sent();\n console.error(\"Error fetching data:\", error_1);\n return [2 /*return*/, null];\n case 4: return [2 /*return*/];\n }\n });\n });\n}\n","// Import required modules\nimport * as main from './dochandler/main';\n// Export required modules\nexport * as animate from './dochandler/animate';\nexport * as change from './dochandler/change';\nexport * as hide from './dochandler/hide';\nexport * as hover from './dochandler/hover';\nexport * as main from './dochandler/main';\nexport * as show from './dochandler/show';\nexport * as open from './dochandler/open';\n// Function to get the side element based on the index\nexport function getSide(i) {\n var base = main.get.elid(\"base\");\n var side = main.get.elc(i === 0 ? \"left\" : \"right\", base);\n if (!side) {\n side = main.get.elc(\"single\", base);\n }\n return side;\n}\n","// Import required modules\nimport * as dochandler from '../dochandler';\n// Function to show the loading bar\nexport function loading() {\n var loadingBar = dochandler.main.get.elid(\"loading-bar\");\n if (loadingBar) {\n loadingBar.style.visibility = \"visible\";\n }\n}\n// Function to hide the loading bar\nexport function loadingStop() {\n var loadingBar = dochandler.main.get.elid(\"loading-bar\");\n if (loadingBar) {\n loadingBar.style.visibility = \"hidden\";\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n// Import all modules as namespaces\nimport * as settings from '../settings';\nimport * as dochandler from '../dochandler';\nimport * as extrafuncs from '../extrafuncs';\nimport * as masters from '../data/masters';\nimport * as reapers from '../data/reapers';\nimport * as assignments from '../data/assignnments';\nimport * as creatures from '../data/creatures';\nimport * as variants from '../data/variants';\nimport * as logger from \"../logger\";\n// Update the Creature variant shown\nexport function variant(i_1) {\n return __awaiter(this, arguments, void 0, function (i, creature, variant) {\n var side, data, imageContainer, imageElement, newSize, kills;\n if (creature === void 0) { creature = null; }\n if (variant === void 0) { variant = null; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // Start loading animation\n dochandler.animate.loading();\n side = dochandler.getSide(i);\n // Return early if UI is limited or data is not available\n if ((settings.controller.data.ui.limited || dochandler.main.limitedLoaded) && (!creature || !variant)) {\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n // Fetch creature and variant from UI elements if not provided\n if (!creature) {\n creature = dochandler.main.get.elc(\"creatures\", side).value;\n }\n if (!variant) {\n variant = dochandler.main.get.elc(\"variants\", side).value;\n }\n logger.log(\"Change variant to: \".concat(creature, \"#\").concat(variant));\n return [4 /*yield*/, variants.get(creature, variant)];\n case 1:\n data = _a.sent();\n if (data) {\n // Update UI if not limited\n if (!settings.controller.data.ui.limited && !dochandler.main.limitedLoaded) {\n imageContainer = dochandler.main.get.elc(\"image-container\", side);\n imageContainer.innerHTML = data[\"image\"].replace(\"#\", \"%23\");\n imageElement = imageContainer.firstElementChild;\n newSize = extrafuncs.calculateAspectRatioFit(parseInt(imageElement.getAttribute(\"width\")), parseInt(imageElement.getAttribute(\"height\")), imageContainer.offsetWidth, imageContainer.offsetHeight);\n imageElement.style.maxWidth = \"\".concat(newSize.width, \"px\");\n imageElement.style.maxHeight = \"\".concat(newSize.height, \"px\");\n // Update stats\n updateStats(side, data);\n }\n kills = parseInt(dochandler.main.get.elc(\"kills\", side).innerHTML, 10);\n dochandler.main.get.elc(\"total-slayer-exp\", side).innerHTML = extrafuncs.numberWithCommas((data[\"slayer-exp\"] * kills).toFixed(2));\n }\n // Stop loading animation\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n });\n });\n}\n// Helper function to update stats\nfunction updateStats(side, data) {\n dochandler.main.get.elc(\"level\", side).innerHTML = data[\"level\"];\n dochandler.main.get.elc(\"slayer-level\", side).innerHTML = data[\"slayer-level\"];\n dochandler.main.get.elc(\"lifepoints\", side).innerHTML = data[\"lifepoints\"];\n dochandler.main.get.elc(\"defence\", side).innerHTML = data[\"defence\"];\n dochandler.main.get.elc(\"max-melee\", side).innerHTML = data[\"max-melee\"];\n dochandler.main.get.elc(\"max-ranged\", side).innerHTML = data[\"max-ranged\"];\n dochandler.main.get.elc(\"max-magic\", side).innerHTML = data[\"max-magic\"];\n dochandler.main.get.elc(\"max-necromancy\", side).innerHTML = data[\"max-necromancy\"];\n dochandler.main.get.elc(\"max-spec\", side).innerHTML = data[\"max-spec\"];\n // Update weakness and susceptibility\n var weaknessElem = dochandler.main.get.elc(\"weaknessBox\", side);\n weaknessElem.innerHTML = \"<p id=\\\"weakness-text\\\">Weakness</p>\" + data[\"weakness\"].join(\"\");\n var susceptibleElem = dochandler.main.get.elc(\"susceptibleBox\", side);\n susceptibleElem.innerHTML = \"<p id=\\\"susceptible-text\\\">Susceptible</p>\" + data[\"susceptible\"].join(\"\");\n // Update experience values\n dochandler.main.get.elc(\"combat-exp\", side).innerHTML = extrafuncs.numberWithCommas(data[\"experience\"].toFixed(2));\n dochandler.main.get.elc(\"lifepoints-exp\", side).innerHTML = extrafuncs.numberWithCommas(data[\"lifepoint-exp\"].toFixed(2));\n dochandler.main.get.elc(\"slayer-exp\", side).innerHTML = extrafuncs.numberWithCommas(data[\"slayer-exp\"].toFixed(2));\n}\n// Update the Creature shown\nexport function creature(i_1) {\n return __awaiter(this, arguments, void 0, function (i, creature, variant) {\n var side, data, variantsElem_1;\n if (creature === void 0) { creature = null; }\n if (variant === void 0) { variant = null; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // Start loading animation\n dochandler.animate.loading();\n side = dochandler.getSide(i);\n // Return early if UI is limited and no creature is provided\n if ((settings.controller.data.ui.limited || dochandler.main.limitedLoaded) && !creature) {\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n // Fetch creature from UI elements if not provided\n if (!creature) {\n creature = dochandler.main.get.elc(\"creatures\", side).value;\n }\n logger.log(\"Change Creature to: \".concat(creature).concat(variant ? \"#\".concat(variant) : ''));\n return [4 /*yield*/, creatures.get(creature)];\n case 1:\n data = _a.sent();\n if (data) {\n // Update variants if available\n if (data[\"variants\"] && !settings.controller.data.ui.limited && !dochandler.main.limitedLoaded) {\n variantsElem_1 = dochandler.main.get.elc(\"variants\", side);\n variantsElem_1.innerHTML = \"\";\n data[\"variants\"].forEach(function (a) {\n variantsElem_1.innerHTML += \"<option value=\\\"\".concat(a[\"name\"], \"\\\"\").concat(variant && extrafuncs.decodeHtml(a[\"name\"]) === extrafuncs.decodeHtml(variant) ? \" selected\" : \"\", \">\").concat(a[\"name\"], \"</option>\");\n });\n if (!variant) {\n variant = data[\"variants\"][0][\"name\"];\n }\n }\n // Update the variant to reflect changes\n dochandler.change.variant(i, creature, variant);\n }\n // Stop loading animation\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n });\n });\n}\n// Update the reaper assignment data\nexport function reaper(task, count) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, assignment(2, task, count)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n}\n// Update the entire Assignment data\nexport function assignment(i, task, count) {\n return __awaiter(this, void 0, void 0, function () {\n var side, nameElement, slayer_exp, slayxp, data, total_exp, j, img, masterData, kills, _loop_1, j, j, j, j, j, _i, _a, a, defaultCreature, _b, creature_1, variant_1;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n // Ensure correct task loading conditions\n if (i === 1 && !dochandler.main.doubleLoaded) {\n console.error(\"Cannot load double slayer task if only 1 is displayed!\");\n return [2 /*return*/];\n }\n if (i === 2 && !dochandler.main.reaperLoaded) {\n console.error(\"Cannot load reaper task if 2 are displayed!\");\n return [2 /*return*/];\n }\n // Show loading animation\n dochandler.animate.loading();\n side = dochandler.getSide(i);\n nameElement = dochandler.main.get.elc(\"name\", side);\n if (!nameElement)\n return [2 /*return*/];\n // Check if the current task is the same as the new one\n if ((task == null && nameElement.innerHTML !== \"???\") || nameElement.innerHTML.toLowerCase() === task.toLowerCase()) {\n logger.log(\"Update task: [\".concat(count, \"] \").concat(task, \" \").concat(i === 0 ? \"(Default)\" : (i === 2 ? \"(Reaper)\" : \"(1 Slayer Token)\")));\n dochandler.main.get.elc(\"kills\", side).innerHTML = extrafuncs.numberWithCommas(count);\n slayer_exp = dochandler.main.get.elc(\"slayer-exp\", side);\n if (slayer_exp && slayer_exp.innerHTML !== \"\") {\n slayxp = parseInt(slayer_exp.innerHTML);\n dochandler.main.get.elc(\"total-slayer-exp\", side).innerHTML = extrafuncs.numberWithCommas((slayxp * count).toFixed(2));\n }\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n // Load new task data\n logger.log(\"Load task: [\".concat(count, \"] \").concat(task, \" \").concat(i === 0 ? \"(Default)\" : (i === 2 ? \"(Reaper)\" : \"(1 Slayer Token)\")));\n dochandler.main.get.elc(\"type\", side).innerHTML = i === 0 ? \"(Default)\" : (i === 2 ? \"(Reaper)\" : \"(1 Slayer Token)\");\n if (i === 2)\n dochandler.main.get.elc(\"type\", side).id = \"type-reaper\";\n return [4 /*yield*/, (i === 2 ? reapers.get(task) : assignments.get(task))];\n case 1:\n data = _d.sent();\n if (!data) {\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n // Update UI elements with the new data\n dochandler.main.get.elc(\"name\", side).innerHTML = data[\"index\"];\n dochandler.main.get.elc(\"name\", side).title = data[\"index\"];\n dochandler.main.get.elc(\"kills\", side).innerHTML = extrafuncs.numberWithCommas(count);\n if (dochandler.main.limitedLoaded) {\n total_exp = 0;\n dochandler.main.get.elc(\"total-slayer-exp\", side).innerHTML = extrafuncs.numberWithCommas(total_exp);\n }\n if (!(!settings.controller.data.ui.limited && !dochandler.main.limitedLoaded)) return [3 /*break*/, 6];\n dochandler.main.get.elc(\"masters\", side).innerHTML = \"<div class=\\\"nistext masterTitle\\\">Assignment Range</div>\";\n j = 0;\n _d.label = 2;\n case 2:\n if (!(j < data[\"masters\"].length)) return [3 /*break*/, 5];\n img = \"<img id=\\\"masterImage\".concat(j, \"\\\" alt=\\\"\").concat(data[\"masters\"][j], \"\\\" src=\\\"./images/masters/\").concat(data[\"masters\"][j], \".png\\\" title=\\\"\").concat(data[\"masters\"][j], \"\\\"></img>\");\n return [4 /*yield*/, masters.get(data[\"masters\"][j])];\n case 3:\n masterData = _d.sent();\n kills = masterData[\"task-counts\"][data[\"index\"]];\n dochandler.main.get.elc(\"masters\", side).innerHTML += \"<div class=\\\"nistext masterInfo\".concat(j, \"\\\">\").concat(img, \" Kills: \").concat(kills, \"</div>\");\n _d.label = 4;\n case 4:\n j++;\n return [3 /*break*/, 2];\n case 5:\n _loop_1 = function (j) {\n dochandler.main.get.elc(\"masterInfo\".concat(j), side).addEventListener('click', function () { return dochandler.open.wiki.master(i, j); });\n };\n for (j = 0; j < data[\"masters\"].length; j++) {\n _loop_1(j);\n }\n // Update equipment data\n if (data[\"equipment\"]) {\n for (j = 0; j < 3; j++) {\n dochandler.main.get.elc(\"equipInfo\".concat(j + 1), side).innerHTML = j === 0 ? \"None\" : \"\";\n }\n for (j = 0; j < data[\"equipment\"].length; j++) {\n dochandler.main.get.elc(\"equipInfo\".concat(j + 1), side).innerHTML = data[\"equipment\"][j] || \"<span style=\\\"color: red;\\\" title=\\\"There is no information in the database.\\\">Database Empty</span>\";\n }\n dochandler.main.get.elc(\"equipMore\", side).style.visibility = data[\"equipment\"].length < 3 ? \"hidden\" : \"visible\";\n }\n else {\n dochandler.main.get.elc(\"equipMore\", side).style.visibility = \"hidden\";\n dochandler.main.get.elc(\"equipInfo1\", side).innerHTML = \"<span style=\\\"color: red;\\\" title=\\\"There is no information in the database.\\\">Database Missing</span>\";\n }\n // Update locations data\n if (data[\"locations\"]) {\n for (j = 0; j < 3; j++) {\n dochandler.main.get.elc(\"locationInfo\".concat(j + 1), side).innerHTML = j === 0 ? \"None\" : \"\";\n }\n for (j = 0; j < data[\"locations\"].length; j++) {\n dochandler.main.get.elc(\"locationInfo\".concat(j + 1), side).innerHTML = data[\"locations\"][j] || \"<span style=\\\"color: red;\\\" title=\\\"There is no information in the database.\\\">Database Empty</span>\";\n }\n dochandler.main.get.elc(\"locationMore\", side).style.visibility = data[\"locations\"].length < 3 ? \"hidden\" : \"visible\";\n }\n else {\n dochandler.main.get.elc(\"locationMore\", side).style.visibility = \"hidden\";\n dochandler.main.get.elc(\"locationInfo1\", side).innerHTML = \"<span style=\\\"color: red;\\\" title=\\\"There is no information in the database.\\\">Database Missing</span>\";\n }\n // Update creatures data\n if (data[\"creatures\"]) {\n dochandler.main.get.elc(\"creatures\", side).innerHTML = \"\";\n for (_i = 0, _a = data[\"creatures\"]; _i < _a.length; _i++) {\n a = _a[_i];\n if (!extrafuncs.listContains(data[\"hidden-creatures\"], a)) {\n defaultCreature = ((_c = data[\"default-creature\"]) === null || _c === void 0 ? void 0 : _c.split(\"#\")[0]) || \"\";\n dochandler.main.get.elc(\"creatures\", side).innerHTML += \"<option value=\\\"\".concat(a, \"\\\" \").concat(extrafuncs.decodeHtml(a) === extrafuncs.decodeHtml(defaultCreature) ? \"selected\" : \"\", \">\").concat(a, \"</option>\");\n }\n }\n }\n // Set default creature and variant\n if (data[\"default-creature\"]) {\n _b = data[\"default-creature\"].split(\"#\"), creature_1 = _b[0], variant_1 = _b[1];\n dochandler.change.creature(i, creature_1, variant_1);\n }\n else {\n dochandler.change.creature(i);\n }\n _d.label = 6;\n case 6:\n // Stop loading animation\n dochandler.animate.loadingStop();\n return [2 /*return*/];\n }\n });\n });\n}\n","import * as dochandler from \"../dochandler\";\nimport * as settings from \"../settings\";\nexport function assignmentWikiPreview(i) {\n if (settings.controller.data.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"preview-task-wiki\", side).style.visibility = \"hidden\";\n}\nexport function creatureWikiPreview(i) {\n if (settings.controller.data.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"preview-creature-wiki\", side).style.visibility = \"hidden\";\n}\nexport function moreEquip(i) {\n if (settings.controller.data.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"equipHidden\", side).style.visibility = \"hidden\";\n}\nexport function moreLocations(i) {\n if (settings.controller.data.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"locationHidden\", side).style.visibility = \"hidden\";\n}\n","import * as dochandler from \"../dochandler\";\nimport * as settings from \"../settings\";\nexport function assignmentWiki(i) {\n if (settings.controller.data.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var showTimer;\n var hideTimer = null;\n showTimer = setTimeout(function () { return dochandler.show.assignmentWikiPreview(i); }, 500);\n dochandler.main.get.elc(\"task-wiki\", side).onmouseleave = function () {\n hideTimer = setTimeout(function () { return dochandler.hide.assignmentWikiPreview(i); }, 200);\n clearTimeout(showTimer);\n };\n dochandler.main.get.elc(\"preview-task-wiki\", side).onmouseenter = function () {\n if (hideTimer !== null)\n clearTimeout(hideTimer);\n };\n}\nexport function creatureWiki(i) {\n if (settings.controller.data.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var showTimer;\n var hideTimer = null;\n showTimer = setTimeout(function () { return dochandler.show.creatureWikiPreview(i); }, 500);\n dochandler.main.get.elc(\"creature-wiki\", side).onmouseleave = function () {\n hideTimer = setTimeout(function () { return dochandler.hide.creatureWikiPreview(i); }, 200);\n clearTimeout(showTimer);\n };\n dochandler.main.get.elc(\"preview-creature-wiki\", side).onmouseenter = function () {\n if (hideTimer !== null)\n clearTimeout(hideTimer);\n };\n}\nexport function moreEquip(i) {\n if (settings.controller.data.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var showTimer = setTimeout(function () { return dochandler.show.moreEquip(i); }, 500);\n dochandler.main.get.elc(\"equipMore\", side).onmouseleave = function () {\n clearTimeout(showTimer);\n };\n}\nexport function moreLocations(i) {\n if (settings.controller.data.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var showTimer = setTimeout(function () { return dochandler.show.moreLocations(i); }, 500);\n dochandler.main.get.elc(\"locationMore\", side).onmouseleave = function () {\n clearTimeout(showTimer);\n };\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as dochandler from '../dochandler';\nimport * as reapers from '../data/reapers';\nimport * as assignments from '../data/assignnments';\nimport * as settings from '../settings';\nimport * as slayer from '../slayer';\nimport * as logger from \"../logger\";\n// Define variables\nexport var doubleLoaded = false;\nexport var singleLoaded = false;\nexport var reaperLoaded = false;\nexport var suggestedLoaded = false;\nexport var limitedLoaded = false;\nexport var get;\n(function (get) {\n function elc(id, base) {\n return base.getElementsByClassName(id)[0];\n }\n get.elc = elc;\n function elid(id) {\n return document.getElementById(id);\n }\n get.elid = elid;\n function searchInput() {\n return document.querySelector(\"input[name='search-info']\").value;\n }\n get.searchInput = searchInput;\n})(get || (get = {}));\nexport var reset;\n(function (reset) {\n function single() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!singleLoaded)\n return [2 /*return*/];\n return [4 /*yield*/, get.elid(\"base\")];\n case 1:\n baseElement = _a.sent();\n baseElement.innerHTML = \"\";\n singleLoaded = false;\n return [2 /*return*/];\n }\n });\n });\n }\n reset.single = single;\n function double() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!doubleLoaded)\n return [2 /*return*/];\n return [4 /*yield*/, get.elid(\"base\")];\n case 1:\n baseElement = _a.sent();\n baseElement.innerHTML = \"\";\n doubleLoaded = false;\n return [2 /*return*/];\n }\n });\n });\n }\n reset.double = double;\n function reaper() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!reaperLoaded)\n return [2 /*return*/];\n return [4 /*yield*/, get.elid(\"base\")];\n case 1:\n baseElement = _a.sent();\n baseElement.innerHTML = \"\";\n reaperLoaded = false;\n return [2 /*return*/];\n }\n });\n });\n }\n reset.reaper = reaper;\n function suggested() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!suggestedLoaded)\n return [2 /*return*/];\n return [4 /*yield*/, get.elid(\"base\")];\n case 1:\n baseElement = _a.sent();\n baseElement.innerHTML = \"\";\n suggestedLoaded = false;\n return [2 /*return*/];\n }\n });\n });\n }\n reset.suggested = suggested;\n function searchBox() {\n return __awaiter(this, void 0, void 0, function () {\n var searchInfo;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, get.elid(\"search-info\")];\n case 1:\n searchInfo = _a.sent();\n searchInfo.value = \"\";\n toggle.searchText();\n return [2 /*return*/];\n }\n });\n });\n }\n reset.searchBox = searchBox;\n})(reset || (reset = {}));\nexport var set;\n(function (set) {\n // Set to use a double document\n function double(task0_1, task1_1) {\n return __awaiter(this, arguments, void 0, function (task0, task1, bypass) {\n if (bypass === void 0) { bypass = false; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if ((task0 == null || task1 == null) && !doubleLoaded)\n return [2 /*return*/];\n logger.log(\"Load Double: [\".concat(task0.count, \"] \").concat(task0.name, \" | [\").concat(task1.count, \"] \").concat(task1.name));\n // Reset all others\n return [4 /*yield*/, reset.single()];\n case 1:\n // Reset all others\n _a.sent();\n return [4 /*yield*/, reset.reaper()];\n case 2:\n _a.sent();\n return [4 /*yield*/, reset.suggested()];\n case 3:\n _a.sent();\n if (!!doubleLoaded) return [3 /*break*/, 5];\n return [4 /*yield*/, setup.doubleAssignment()];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [4 /*yield*/, dochandler.change.assignment(0, task0.name, task0.count)];\n case 6:\n _a.sent();\n return [4 /*yield*/, dochandler.change.assignment(1, task1.name, task1.count)];\n case 7:\n _a.sent();\n // Log history if not bypassed\n if (!bypass && task0.name && task1.name) {\n settings.change.addHistory({ type: 'double', tasks: [task0, task1] });\n }\n return [2 /*return*/];\n }\n });\n });\n }\n set.double = double;\n // Set to use a single document\n function single(task_1) {\n return __awaiter(this, arguments, void 0, function (task, bypass) {\n if (bypass === void 0) { bypass = false; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (task == null && !singleLoaded)\n return [2 /*return*/];\n logger.log(\"Load Single: [\".concat(task.count, \"] \").concat(task.name));\n // Reset all others\n return [4 /*yield*/, reset.double()];\n case 1:\n // Reset all others\n _a.sent();\n return [4 /*yield*/, reset.reaper()];\n case 2:\n _a.sent();\n return [4 /*yield*/, reset.suggested()];\n case 3:\n _a.sent();\n if (!!singleLoaded) return [3 /*break*/, 5];\n return [4 /*yield*/, setup.singleAssignment(0)];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5: return [4 /*yield*/, dochandler.change.assignment(0, task.name, task.count)];\n case 6:\n _a.sent();\n // Log history if not bypassed\n if (!bypass && task.name) {\n settings.change.addHistory({ type: 'single', tasks: [task] });\n }\n return [2 /*return*/];\n }\n });\n });\n }\n set.single = single;\n // Set to use reaper tasks doc\n function reaper(task_1) {\n return __awaiter(this, arguments, void 0, function (task, bypass) {\n if (bypass === void 0) { bypass = false; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (task == null && !reaperLoaded)\n return [2 /*return*/];\n logger.log(\"Load Reaper: [\".concat(task.count, \"] \").concat(task.name));\n // Reset all others\n return [4 /*yield*/, reset.single()];\n case 1:\n // Reset all others\n _a.sent();\n return [4 /*yield*/, reset.double()];\n case 2:\n _a.sent();\n return [4 /*yield*/, reset.suggested()];\n case 3:\n _a.sent();\n return [4 /*yield*/, setup.singleAssignment(2)];\n case 4:\n _a.sent();\n return [4 /*yield*/, dochandler.change.reaper(task.name, task.count)];\n case 5:\n _a.sent();\n // Log history if not bypassed\n if (!bypass && task.name) {\n settings.change.addHistory({ type: 'reaper', tasks: [task] });\n }\n return [2 /*return*/];\n }\n });\n });\n }\n set.reaper = reaper;\n // Set to use suggested tasks doc\n function suggested() {\n return __awaiter(this, arguments, void 0, function (bypass) {\n if (bypass === void 0) { bypass = false; }\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (suggestedLoaded)\n return [2 /*return*/];\n logger.log(\"Load Suggested!\");\n // Reset all others\n return [4 /*yield*/, reset.single()];\n case 1:\n // Reset all others\n _a.sent();\n return [4 /*yield*/, reset.double()];\n case 2:\n _a.sent();\n return [4 /*yield*/, reset.reaper()];\n case 3:\n _a.sent();\n return [4 /*yield*/, dochandler.main.setup.suggested()];\n case 4:\n _a.sent();\n // Log history if not bypassed\n if (!bypass) {\n settings.change.addHistory({ type: 'suggestion', tasks: null });\n }\n return [2 /*return*/];\n }\n });\n });\n }\n set.suggested = suggested;\n // Set search button\n function searchButtonText(s) {\n dochandler.main.get.elid(\"search-button\").innerHTML = \"\".concat(s, \"<span style=\\\"visibility: hidden;\\\">. . .</span>\");\n }\n set.searchButtonText = searchButtonText;\n // Set the search input\n function searchInput(s) {\n if (s == null)\n return;\n dochandler.main.get.elid(\"search-info\").value = s;\n dochandler.main.toggle.searchText();\n }\n set.searchInput = searchInput;\n})(set || (set = {}));\nexport var setup;\n(function (setup) {\n // Setup the main document\n function documentMain() {\n return __awaiter(this, void 0, void 0, function () {\n var nisElement, _a, reapersIndexList, assignmentsIndexList;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n nisElement = dochandler.main.get.elid(\"nis\");\n _a = nisElement;\n return [4 /*yield*/, fetch(\"./pages/doc/body.html\").then(function (r) { return r.text(); })];\n case 1:\n _a.innerHTML = _b.sent();\n // Setup event listeners\n dochandler.main.get.elid(\"infobutton\").addEventListener('click', dochandler.open.aboutInfo);\n dochandler.main.get.elid(\"menubutton\").addEventListener('click', dochandler.open.settingsPage);\n dochandler.main.get.elid(\"donatebutton\").addEventListener('click', dochandler.open.donate);\n dochandler.main.get.elid(\"backbutton\").addEventListener('click', settings.change.goPreviousHistory);\n dochandler.main.get.elid(\"forwardbutton\").addEventListener('click', settings.change.goNextHistory);\n dochandler.main.get.elid(\"search-button\").addEventListener('click', function () { slayer.searchTasks(); });\n dochandler.main.get.elid(\"search-info\").addEventListener('input', dochandler.main.toggle.searchText);\n dochandler.main.get.elid(\"search-info\").addEventListener('change', function () { slayer.searchTasks(); });\n dochandler.main.get.elid(\"search-info\").addEventListener('keyup', function (event) {\n switch (event.key) {\n case \"ArrowUp\":\n dochandler.main.set.searchInput(settings.search.getPreviousHistory());\n break;\n case \"ArrowDown\":\n dochandler.main.set.searchInput(settings.search.getNextHistory());\n break;\n }\n });\n return [4 /*yield*/, reapers.getIndexList()];\n case 2:\n reapersIndexList = _b.sent();\n dochandler.main.get.elid(\"search-info-list\").innerHTML = reapersIndexList;\n return [4 /*yield*/, assignments.getIndexList()];\n case 3:\n assignmentsIndexList = _b.sent();\n dochandler.main.get.elid(\"search-info-list\").innerHTML += assignmentsIndexList;\n return [2 /*return*/];\n }\n });\n });\n }\n setup.documentMain = documentMain;\n // Setup the base for double assignment\n function doubleAssignment() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement, _a, _loop_1, i;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n limitedLoaded = true;\n baseElement = dochandler.main.get.elid(\"base\");\n _a = baseElement;\n return [4 /*yield*/, fetch(\"./pages/doc/dual.html\").then(function (r) { return r.text(); })];\n case 1:\n _a.innerHTML = _b.sent();\n _loop_1 = function (i) {\n var side, _c, extraInfo, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n side = dochandler.getSide(i);\n _c = side;\n return [4 /*yield*/, fetch(\"./pages/doc/example.html\").then(function (r) { return r.text(); })];\n case 1:\n _c.innerHTML = _e.sent();\n // Setup event listeners\n dochandler.main.get.elc(\"task-wiki\", side).addEventListener('click', function () { return dochandler.open.wiki.assignment(i); });\n dochandler.main.get.elc(\"task-wiki\", side).addEventListener('mouseover', function () { return dochandler.hover.assignmentWiki(i); });\n if (!!settings.controller.data.ui.limited) return [3 /*break*/, 3];\n extraInfo = dochandler.main.get.elc(\"extra-info\", side);\n _d = extraInfo;\n return [4 /*yield*/, fetch(\"./pages/doc/example-extra.html\").then(function (r) { return r.text(); })];\n case 2:\n _d.innerHTML = _e.sent();\n limitedLoaded = false;\n dochandler.main.get.elc(\"preview-task-wiki\", side).addEventListener('mouseleave', function () { return dochandler.hide.assignmentWikiPreview(i); });\n dochandler.main.get.elc(\"preview-creature-wiki\", side).addEventListener('mouseleave', function () { return dochandler.hide.creatureWikiPreview(i); });\n dochandler.main.get.elc(\"equipMore\", side).addEventListener('mouseenter', function () { return dochandler.hover.moreEquip(i); });\n dochandler.main.get.elc(\"equipHidden\", side).addEventListener('mouseleave', function () { return dochandler.hide.moreEquip(i); });\n dochandler.main.get.elc(\"locationMore\", side).addEventListener('mouseenter', function () { return dochandler.hover.moreLocations(i); });\n dochandler.main.get.elc(\"locationHidden\", side).addEventListener('mouseleave', function () { return dochandler.hide.moreLocations(i); });\n dochandler.main.get.elc(\"creature-wiki\", side).addEventListener('click', function () { return dochandler.open.wiki.creature(i); });\n dochandler.main.get.elc(\"creature-wiki\", side).addEventListener('mouseover', function () { return dochandler.hover.creatureWiki(i); });\n dochandler.main.get.elc(\"creatures\", side).addEventListener('change', function () { return dochandler.change.creature(i); });\n dochandler.main.get.elc(\"variants\", side).addEventListener('change', function () { return dochandler.change.variant(i); });\n _e.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n };\n i = 0;\n _b.label = 2;\n case 2:\n if (!(i < 2)) return [3 /*break*/, 5];\n return [5 /*yield**/, _loop_1(i)];\n case 3:\n _b.sent();\n _b.label = 4;\n case 4:\n i++;\n return [3 /*break*/, 2];\n case 5:\n // Adjust the doc for limited and full\n adjustForSettings();\n doubleLoaded = true;\n return [2 /*return*/];\n }\n });\n });\n }\n setup.doubleAssignment = doubleAssignment;\n // Setup the base for single assignment\n function singleAssignment(i) {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement, _a, side, _b, extraInfo, _c, statusElement;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n limitedLoaded = true;\n baseElement = dochandler.main.get.elid(\"base\");\n _a = baseElement;\n return [4 /*yield*/, fetch(\"./pages/doc/single.html\").then(function (r) { return r.text(); })];\n case 1:\n _a.innerHTML = _d.sent();\n side = dochandler.getSide(i);\n _b = side;\n return [4 /*yield*/, fetch(\"./pages/doc/example.html\").then(function (r) { return r.text(); })];\n case 2:\n _b.innerHTML = _d.sent();\n // Setup event listeners\n dochandler.main.get.elc(\"task-wiki\", side).addEventListener('click', function () { return dochandler.open.wiki.assignment(i); });\n dochandler.main.get.elc(\"task-wiki\", side).addEventListener('mouseover', function () { return dochandler.hover.assignmentWiki(i); });\n if (!!settings.controller.data.ui.limited) return [3 /*break*/, 4];\n extraInfo = dochandler.main.get.elc(\"extra-info\", side);\n _c = extraInfo;\n return [4 /*yield*/, fetch(\"./pages/doc/example-extra.html\").then(function (r) { return r.text(); })];\n case 3:\n _c.innerHTML = _d.sent();\n limitedLoaded = false;\n dochandler.main.get.elc(\"preview-task-wiki\", side).addEventListener('mouseleave', function () { return dochandler.hide.assignmentWikiPreview(i); });\n dochandler.main.get.elc(\"preview-creature-wiki\", side).addEventListener('mouseleave', function () { return dochandler.hide.creatureWikiPreview(i); });\n dochandler.main.get.elc(\"equipMore\", side).addEventListener('mouseenter', function () { return dochandler.hover.moreEquip(i); });\n dochandler.main.get.elc(\"equipHidden\", side).addEventListener('mouseleave', function () { return dochandler.hide.moreEquip(i); });\n dochandler.main.get.elc(\"locationMore\", side).addEventListener('mouseenter', function () { return dochandler.hover.moreLocations(i); });\n dochandler.main.get.elc(\"locationHidden\", side).addEventListener('mouseleave', function () { return dochandler.hide.moreLocations(i); });\n dochandler.main.get.elc(\"creature-wiki\", side).addEventListener('click', function () { return dochandler.open.wiki.creature(i); });\n dochandler.main.get.elc(\"creature-wiki\", side).addEventListener('mouseover', function () { return dochandler.hover.creatureWiki(i); });\n dochandler.main.get.elc(\"creatures\", side).addEventListener('change', function () { return dochandler.change.creature(i); });\n dochandler.main.get.elc(\"variants\", side).addEventListener('change', function () { return dochandler.change.variant(i); });\n _d.label = 4;\n case 4:\n statusElement = dochandler.main.get.elc(\"status\", side);\n if (settings.controller.data.ui.status) {\n statusElement.style.visibility = \"visible\";\n }\n else {\n statusElement.style.visibility = \"hidden\";\n }\n // Adjust the doc for limited and full\n adjustForSettings();\n if (i === 2) {\n reaperLoaded = true;\n }\n else {\n singleLoaded = true;\n }\n return [2 /*return*/];\n }\n });\n });\n }\n setup.singleAssignment = singleAssignment;\n // Setup the base for suggested\n function suggested() {\n return __awaiter(this, void 0, void 0, function () {\n var baseElement, _a, suggestType, _loop_2, i;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n baseElement = dochandler.main.get.elid(\"base\");\n _a = baseElement;\n return [4 /*yield*/, fetch(\"./pages/doc/suggested.html\").then(function (r) { return r.text(); })];\n case 1:\n _a.innerHTML = _b.sent();\n suggestType = dochandler.main.get.elid(\"type-suggest\");\n if (suggestType) {\n suggestType.addEventListener('click', function () { return window.open(\"https://runescape.wiki/w/Slayer_training/High-levelled\"); });\n }\n _loop_2 = function (i) {\n var element = dochandler.main.get.elid(\"suggestion-\".concat(i));\n if (element) {\n element.addEventListener('click', function () { return slayer.searchTasks(element.innerHTML); });\n }\n };\n for (i = 1; i <= 12; i++) {\n _loop_2(i);\n }\n suggestedLoaded = true;\n return [2 /*return*/];\n }\n });\n });\n }\n setup.suggested = suggested;\n // If limited, set the size of the base\n function adjustForSettings() {\n var baseElement = dochandler.main.get.elid(\"base\");\n var divideElement = dochandler.main.get.elid(\"divide\");\n var copyrightElement = dochandler.main.get.elid(\"copyright\");\n if (settings.controller.data.ui.limited) {\n baseElement.classList.remove(\"base-full\");\n if (divideElement) {\n divideElement.classList.remove(\"divide-full\");\n }\n copyrightElement.classList.remove(\"copyright-full\");\n }\n else {\n baseElement.classList.add(\"base-full\");\n if (divideElement) {\n divideElement.classList.add(\"divide-full\");\n }\n copyrightElement.classList.add(\"copyright-full\");\n }\n }\n})(setup || (setup = {}));\nexport var toggle;\n(function (toggle) {\n // Toggle if we are capturing screen or searching text\n function searchText() {\n var searchResult = slayer.searchResult;\n var autoCaptureEnabled = settings.controller.data.autoCapture.enabled;\n var searchInput = dochandler.main.get.searchInput();\n if (searchResult || (!autoCaptureEnabled && searchInput === \"\")) {\n dochandler.main.set.searchButtonText(\"Capture\");\n }\n else {\n dochandler.main.set.searchButtonText(\"Search\");\n }\n }\n toggle.searchText = searchText;\n})(toggle || (toggle = {}));\n","import * as dochandler from '../dochandler';\nimport * as settings from '../settings';\n// Open the Donate Page (https://www.paypal.com/donate/?hosted_button_id=LRFC6766YMVTQ)\nexport function donate() {\n window.open(\"https://www.paypal.com/donate/?hosted_button_id=LRFC6766YMVTQ\");\n}\n// Open the about info page\nexport function aboutInfo() {\n window.open(\"./pages/about.html\", null, \"width=680,height=550\");\n}\n// Open the settings page\nexport function settingsPage() {\n var settingsWindow = window.open(\"./pages/settings.html\", \"_blank\", \"width=420,height=550\");\n console.warn(\"Settings Opened!\");\n settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.window.console.warn(\"Settings Loaded!\");\n settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.addEventListener('keyup', function (e) {\n if ((e.which || e.keyCode) === 116) {\n // Prevent F5 key press from refreshing the page\n e.preventDefault();\n }\n });\n settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.addEventListener('beforeunload', function () {\n // Load the new settings and apply them\n settings.controller.load();\n dochandler.main.toggle.searchText();\n console.warn(\"Settings Closed!\");\n settingsWindow === null || settingsWindow === void 0 ? void 0 : settingsWindow.window.console.warn(\"Settings Saved!\");\n });\n}\nexport var wiki;\n(function (wiki) {\n // Opens the wiki page for a specific task\n function assignment(i) {\n var side = dochandler.getSide(i);\n var task = dochandler.main.get.elc(\"name\", side).innerHTML;\n if (task) {\n window.open('https://runescape.wiki/' + task + '_(Slayer_assignment)');\n }\n }\n wiki.assignment = assignment;\n // Opens the wiki page for a specific creature\n function creature(i) {\n var side = dochandler.getSide(i);\n var creature = dochandler.main.get.elc(\"creatures\", side).value;\n var variant = dochandler.main.get.elc(\"variants\", side).value;\n if (creature && variant) {\n window.open('https://runescape.wiki/' + creature + \"#\" + variant);\n }\n }\n wiki.creature = creature;\n // Opens the wiki page for a specific master\n function master(i, j) {\n var side = dochandler.getSide(i);\n var master = dochandler.main.get.elc(\"masterImage\" + j, side).alt;\n if (master) {\n window.open('https://runescape.wiki/' + master);\n }\n }\n wiki.master = master;\n})(wiki || (wiki = {}));\n","import * as dochandler from '../dochandler';\nimport * as settings from '../settings';\n// Show the specific Creature's preview wiki page\nexport function assignmentWikiPreview(i) {\n if (settings.controller.data.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"preview-task-wiki\", side).style.visibility = \"visible\";\n}\n// Show the specific Creature's preview wiki page\nexport function creatureWikiPreview(i) {\n if (settings.controller.data.ui.limited)\n return;\n var side = dochandler.getSide(i);\n dochandler.main.get.elc(\"preview-creature-wiki\", side).style.visibility = \"visible\";\n}\n// Show more Equipment for task\nexport function moreEquip(i) {\n var _a;\n if (settings.controller.data.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var equipHiddenElement = dochandler.main.get.elc(\"equipHidden\", side);\n if ((_a = equipHiddenElement.innerHTML) === null || _a === void 0 ? void 0 : _a.trimEnd()) {\n equipHiddenElement.style.visibility = \"visible\";\n }\n}\n// Show more Locations for task\nexport function moreLocations(i) {\n var _a;\n if (settings.controller.data.ui.limited)\n return;\n var side = dochandler.getSide(i);\n var locationHiddenElement = dochandler.main.get.elc(\"locationHidden\", side);\n if ((_a = locationHiddenElement.innerHTML) === null || _a === void 0 ? void 0 : _a.trimEnd()) {\n locationHiddenElement.style.visibility = \"visible\";\n }\n}\n","// Add commas into a number if its big enough\nexport function numberWithCommas(n) {\n if (n == null)\n return \"<span style=\\\"color: red;\\\">Empty</span>\";\n if (n === -666)\n return \"<span style=\\\"color: red;\\\">Error</span>\";\n return n.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n}\n// Check if the list contains what you want to find\nexport function listContains(list, find) {\n for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {\n var l = list_1[_i];\n if (decodeHtml(l).toLowerCase() === decodeHtml(find).toLowerCase())\n return true;\n }\n return false;\n}\n// Get new width and height for image based on aspect ratio\nexport function calculateAspectRatioFit(srcWidth, srcHeight, maxWidth, maxHeight) {\n var ratio = Math.min(maxWidth / srcWidth, maxHeight / srcHeight);\n return { width: srcWidth * ratio, height: srcHeight * ratio };\n}\n// Decode the HTML chars that have been encoded during database downloading\nexport function decodeHtml(html) {\n var txt = document.createElement(\"textarea\");\n txt.innerHTML = html;\n return txt.value;\n}\n","// Private queues and settings\nvar debugQueue = [];\nvar verboseQueue = [];\nvar queueLimit = 50;\nvar debugEnabled = false;\nvar verboseEnabled = false;\n// Set the queue limit for debug and verbose\nexport function setLimit(limit) {\n queueLimit = limit;\n}\n// Enable or disable debug logging\nexport function setDebug(enabled) {\n debugEnabled = enabled;\n if (enabled)\n debug(\"Debug logging enabled\"); // Force Flush the Queue\n}\n// Enable or disable verbose logging\nexport function setVerbose(enabled) {\n verboseEnabled = enabled;\n if (enabled)\n verbose(\"Verbose logging enabled\"); // Force Flush the Queue\n}\n// Public: Log to the normal queue and flush the queue\nexport function log() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n console.log.apply(console, messages);\n}\n// Public: Log to the warn queue and flush the queue\nexport function warn() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n console.warn.apply(console, messages);\n}\n// Public: Log to the error queue and flush the queue\nexport function error() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n console.error.apply(console, messages);\n}\n// Public: Log to the debug queue only if debug is enabled and flush the queue\nexport function debug() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n debugQueue.push(messages.join(' '));\n trimQueue(debugQueue);\n if (debugEnabled)\n flushQueue(debugQueue, \"Debug\");\n}\n// Public: Log to the verbose queue only if verbose is enabled and flush the queue\nexport function verbose() {\n var messages = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n messages[_i] = arguments[_i];\n }\n verboseQueue.push(messages.join(' '));\n trimQueue(verboseQueue);\n if (verboseEnabled)\n flushQueue(verboseQueue, \"Verbose\");\n}\n// Private: Trim the queue if it exceeds the limit (FIFO: remove first entry)\nfunction trimQueue(queue) {\n if (queue.length > queueLimit)\n queue.shift();\n}\n// Private: Flush and output the entire queue, emptying it afterward\nfunction flushQueue(queue, label) {\n while (queue.length > 0) {\n var message = queue.shift();\n if (label === \"Debug\")\n console.log(\"[\".concat(label, \"] \").concat(message));\n if (label === \"Verbose\")\n console.warn(\"[\".concat(label, \"] \").concat(message));\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as dochandler from \"./dochandler\";\nimport * as slayer from \"./slayer\";\nimport * as main from \"./dochandler/main\";\nimport * as logger from \"./logger\";\n// Define classes\nvar AutoCaptureData = /** @class */ (function () {\n function AutoCaptureData() {\n }\n return AutoCaptureData;\n}());\nexport { AutoCaptureData };\nvar UIData = /** @class */ (function () {\n function UIData() {\n }\n return UIData;\n}());\nexport { UIData };\nvar DefaultData = /** @class */ (function () {\n function DefaultData() {\n }\n return DefaultData;\n}());\nexport { DefaultData };\nvar HiddenData = /** @class */ (function () {\n function HiddenData() {\n }\n return HiddenData;\n}());\nexport { HiddenData };\nvar SettingsData = /** @class */ (function () {\n function SettingsData() {\n }\n return SettingsData;\n}());\nexport { SettingsData };\n// Controls all the settings data\nvar SettingsDataController = /** @class */ (function () {\n function SettingsDataController() {\n this.configLoaded = false;\n this.data = {\n version: 1,\n searchAlgorithim: \"default\",\n autoCapture: {\n enabled: true,\n counter: true,\n search: false,\n loopTimer: 500,\n counterTimer: 500,\n dialogTimer: 5000,\n searchTimer: 10000,\n },\n ui: {\n style: \"default\",\n limited: false,\n status: true,\n counter: false,\n counterTimer: 500,\n historyRetentionCount: 10,\n lookupRetentionCount: 0,\n },\n showHidden: {\n creatures: false,\n eliteCreatures: false,\n dragonkinCreatures: false,\n godWarsCreatures: false,\n ghorrockCreatures: false,\n heartGielinorCreatures: false,\n monsterCreatures: false,\n newVarrockCreatures: false,\n shadowReefCreatures: false,\n strongholdSecurityCreatures: false,\n summonedCreatures: false,\n templeTrekkingCreatures: false,\n unchartedIslesCreatures: false\n },\n default: {\n taskName0: \"waterfiends\",\n taskName1: \"black demons\",\n taskCount0: 777,\n taskCount1: 666\n },\n };\n }\n SettingsDataController.prototype.load = function () {\n return __awaiter(this, void 0, void 0, function () {\n var res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (window.localStorage.getItem('version') != null) {\n this.data.version = this.decodeVersion(window.localStorage.getItem('version'));\n }\n if (this.data.version <= 5 && !this.configLoaded) {\n logger.log(\"(Versioning System Missing) Setting up versioning system.\");\n window.localStorage.removeItem('recent_task_0');\n window.localStorage.removeItem('recent_task_count_0');\n window.localStorage.removeItem('recent_task_1');\n window.localStorage.removeItem('recent_task_count_1');\n this.save();\n }\n return [4 /*yield*/, fetch(\"./data/version.json\").then(function (r) { return r.json(); })];\n case 1:\n res = _a.sent();\n if (this.data.version < this.decodeVersion(res['version'])) {\n this.data.version = this.decodeVersion(res['version']);\n }\n controller.data.autoCapture.enabled = window.localStorage.getItem(\"auto-capture-enabled\") === \"true\";\n controller.data.autoCapture.counter = window.localStorage.getItem(\"auto-capture-counter\") === \"true\";\n controller.data.autoCapture.search = window.localStorage.getItem(\"auto-capture-search\") === \"true\";\n controller.data.autoCapture.loopTimer = parseInt(window.localStorage.getItem(\"auto-capture-timer-loop\"));\n controller.data.autoCapture.dialogTimer = parseInt(window.localStorage.getItem(\"auto-capture-timer-dialog\"));\n controller.data.autoCapture.counterTimer = parseInt(window.localStorage.getItem(\"auto-capture-timer-counter\"));\n controller.data.autoCapture.searchTimer = parseInt(window.localStorage.getItem(\"auto-capture-timer-search\"));\n controller.data.ui.limited = window.localStorage.getItem(\"ui-limited\") === \"true\";\n controller.data.ui.status = window.localStorage.getItem(\"ui-status\") === \"true\";\n controller.data.ui.counter = window.localStorage.getItem(\"ui-counter\") === \"true\";\n controller.data.ui.counterTimer = parseInt(window.localStorage.getItem(\"ui-counter-timer\"));\n // TODO Load history here then reset the UI and load them\n main.reset.single();\n main.reset.double();\n main.reset.reaper();\n main.reset.suggested();\n if (!(this.data.default.taskName0 != null && this.data.default.taskName1 != null)) return [3 /*break*/, 3];\n return [4 /*yield*/, main.set.double({ name: this.data.default.taskName0, count: this.data.default.taskCount0 }, { name: this.data.default.taskName1, count: this.data.default.taskCount1 })];\n case 2:\n _a.sent();\n return [3 /*break*/, 5];\n case 3:\n if (!(this.data.default.taskName0 != null && this.data.default.taskName1 == null)) return [3 /*break*/, 5];\n return [4 /*yield*/, main.set.single({ name: this.data.default.taskName0, count: this.data.default.taskCount0 })];\n case 4:\n _a.sent();\n _a.label = 5;\n case 5:\n console.warn(\"Config Loaded\");\n this.configLoaded = true;\n return [2 /*return*/];\n }\n });\n });\n };\n SettingsDataController.prototype.save = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.data.version > 1) {\n window.localStorage.setItem('version', this.encodeVersion(this.data.version));\n }\n window.localStorage.setItem(\"auto-capture-enabled\", \"\" + controller.data.autoCapture.enabled);\n window.localStorage.setItem(\"auto-capture-counter\", \"\" + controller.data.autoCapture.counter);\n window.localStorage.setItem(\"auto-capture-search\", \"\" + controller.data.autoCapture.search);\n window.localStorage.setItem(\"auto-capture-timer-loop\", \"\" + controller.data.autoCapture.loopTimer);\n window.localStorage.setItem(\"auto-capture-timer-dialog\", \"\" + controller.data.autoCapture.dialogTimer);\n window.localStorage.setItem(\"auto-capture-timer-counter\", \"\" + controller.data.autoCapture.counterTimer);\n window.localStorage.setItem(\"auto-capture-timer-search\", \"\" + controller.data.autoCapture.searchTimer);\n window.localStorage.setItem(\"ui-limited\", \"\" + controller.data.ui.limited);\n window.localStorage.setItem(\"ui-status\", \"\" + controller.data.ui.status);\n window.localStorage.setItem(\"ui-counter\", \"\" + controller.data.ui.counter);\n window.localStorage.setItem(\"ui-counter-timer\", \"\" + controller.data.ui.counterTimer);\n console.warn(\"Config Saved\");\n return [2 /*return*/];\n });\n });\n };\n SettingsDataController.prototype.decodeVersion = function (version) {\n var versionSplit = version.split(\".\");\n var versionUpper = versionSplit.length > 2 ? parseInt(versionSplit[0]) : 0;\n var versionLower = parseInt(versionSplit.length > 2 ? versionSplit[1] : versionSplit[0]);\n var versionPatch = parseInt(versionSplit.length > 2 ? versionSplit[2] : versionSplit[1]);\n return ((versionUpper * 256 * 256) + (versionLower * 256) + versionPatch);\n };\n SettingsDataController.prototype.encodeVersion = function (version) {\n var versionUpper = version > 256 * 256 ? version / (256 * 256) : 0;\n var versionLower = version > 256 ? (version - (versionUpper * 256 * 256)) / 256 : 0;\n var versionPatch = (version - (versionUpper * 256 * 256) - (versionLower * 256));\n return versionUpper + \".\" + versionLower + \".\" + versionPatch;\n };\n return SettingsDataController;\n}());\nexport { SettingsDataController };\nexport var controller = new SettingsDataController();\n// Change history functions\nexport var change;\n(function (change) {\n change.history = [];\n change.index = 0;\n function addHistory(history) {\n if (!history || !history.tasks || !change.history[change.index])\n return;\n if ((history.type === \"single\" || history.type === \"reaper\") &&\n history.tasks[0].name === change.history[change.index].tasks[0].name)\n return;\n if (history.type === \"double\" &&\n history.tasks[0].name === change.history[change.index].tasks[0].name &&\n history.tasks[1].name === change.history[change.index].tasks[1].name)\n return;\n if (history.type === \"suggestion\" && history.type === change.history[change.index].type)\n return;\n if (change.index + 1 != change.history.length) {\n change.history = change.history.slice(0, change.index + 1);\n }\n change.history.push(history);\n change.index = change.history.length - 1;\n console.warn(\"Save History\");\n controller.save();\n }\n change.addHistory = addHistory;\n function refreshCurrent() {\n if (change.index < 0 || change.index >= change.history.length)\n return;\n main.reset.single();\n main.reset.double();\n main.reset.reaper();\n main.reset.suggested();\n var previousChange = change.history[change.index];\n if (previousChange.type === 'double')\n main.set.double(previousChange.tasks[0], previousChange.tasks[1], true);\n if (previousChange.type === 'single')\n main.set.single(previousChange.tasks[0], true);\n if (previousChange.type === 'reaper')\n main.set.reaper(previousChange.tasks[0], true);\n if (previousChange.type === 'suggestion')\n main.set.suggested(true);\n console.warn(\"Save History\");\n controller.save();\n }\n change.refreshCurrent = refreshCurrent;\n function goPreviousHistory() {\n if (change.index - 1 < 0)\n return;\n var previousChange = change.history[--change.index];\n if (previousChange.type === 'double')\n main.set.double(previousChange.tasks[0], previousChange.tasks[1], true);\n if (previousChange.type === 'single')\n main.set.single(previousChange.tasks[0], true);\n if (previousChange.type === 'reaper')\n main.set.reaper(previousChange.tasks[0], true);\n if (previousChange.type === 'suggestion')\n main.set.suggested(true);\n console.warn(\"Save History\");\n controller.save();\n }\n change.goPreviousHistory = goPreviousHistory;\n function goNextHistory() {\n if (change.index + 1 >= change.history.length)\n return;\n var nextChange = change.history[++change.index];\n if (nextChange.type === 'double')\n main.set.double(nextChange.tasks[0], nextChange.tasks[1], true);\n if (nextChange.type === 'single')\n main.set.single(nextChange.tasks[0], true);\n if (nextChange.type === 'reaper')\n main.set.reaper(nextChange.tasks[0], true);\n if (nextChange.type === 'suggestion')\n main.set.suggested(true);\n console.warn(\"Save History\");\n controller.save();\n }\n change.goNextHistory = goNextHistory;\n})(change || (change = {}));\nexport var search;\n(function (search) {\n var temp = null;\n var history = [];\n var index = 0;\n function addHistory(value) {\n if (!value)\n return;\n history.push(value);\n index = history.length;\n temp = null;\n console.warn(\"Save History\");\n controller.save();\n }\n search.addHistory = addHistory;\n function getPreviousHistory() {\n tempValue();\n console.warn(\"Save History\");\n controller.save();\n if (index - 1 < 0)\n return null;\n if (--index === history.length)\n return temp;\n return history[index];\n }\n search.getPreviousHistory = getPreviousHistory;\n function getNextHistory() {\n tempValue();\n console.warn(\"Save History\");\n controller.save();\n if (index + 1 > history.length + (temp === \"\" ? 0 : 1))\n return null;\n if (++index === history.length + (temp === \"\" ? 0 : 1))\n return \"\";\n if (temp !== \"\" && index === history.length)\n return temp;\n return history[index];\n }\n search.getNextHistory = getNextHistory;\n function tempValue() {\n var currentValue = dochandler.main.get.elid(\"search-info\").value;\n if (temp === null)\n temp = currentValue;\n if (index === history.length && temp !== currentValue)\n temp = currentValue;\n if (index === history.length + 1 && currentValue !== \"\") {\n temp = currentValue;\n --index;\n }\n }\n})(search || (search = {}));\nexport function executeDevTools(value) {\n return __awaiter(this, void 0, void 0, function () {\n var counterData, slayerData, a, a, pos, box, _i, _a, _b, index, option, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (value === \"devTools\") {\n logger.log(\" ~~~ Dev Tools ~ Information Opened ~~~ \");\n alt1.openBrowser(\"https://runeapps.org/forums/viewtopic.php?id=101\");\n return [2 /*return*/];\n }\n logger.log(\" ~~~ Dev Tools ~ Started ~~~ \");\n _c.label = 1;\n case 1:\n _c.trys.push([1, 10, , 11]);\n if (!(value === \"size\")) return [3 /*break*/, 2];\n logger.log(\"Current Size: \".concat(document.body.clientWidth, \", \").concat(document.body.clientHeight));\n return [3 /*break*/, 9];\n case 2:\n if (!(value === \"debug\")) return [3 /*break*/, 3];\n logger.setDebug(true);\n return [3 /*break*/, 9];\n case 3:\n if (!(value === \"verbose\")) return [3 /*break*/, 4];\n logger.setVerbose(true);\n return [3 /*break*/, 9];\n case 4:\n if (!(value === \"counterReader\")) return [3 /*break*/, 6];\n return [4 /*yield*/, slayer.counterReader.read()];\n case 5:\n counterData = _c.sent();\n if (counterData) {\n logger.log(\"The Counter UI Collapsed [\".concat(counterData.collapsed, \"]\"));\n logger.log(\"The Counter UI Old School [\".concat(counterData.OS, \"]\"));\n logger.log(\"The Counter UI Reaper [\".concat(counterData.reaper, \"]\"));\n logger.log(\"The Counter UI Count [\".concat(counterData.count, \"]\"));\n logger.log(\"The Counter UI Task [\".concat(counterData.task, \"]\"));\n }\n else {\n logger.log(\" ~~~ Dev Tools ~ Error: Cannot read counter data! ~~~ \");\n }\n return [3 /*break*/, 9];\n case 6:\n if (!(value === \"slayerReader\")) return [3 /*break*/, 8];\n return [4 /*yield*/, slayer.slayerReader.read()];\n case 7:\n slayerData = _c.sent();\n if (slayerData) {\n logger.log(\"The Slayer Reader Select Your Own [\".concat(slayerData.selectYourOwn, \"]\"));\n logger.log(\"The Slayer Reader Reaper [\".concat(slayerData.reaper, \"]\"));\n logger.log(\"The Slayer Reader Ticket [\".concat(slayerData.ticket, \"]\"));\n for (a in slayerData.count) {\n logger.log(\"The Slayer Reader Count{\".concat(a, \"} [\").concat(slayerData.count[a], \"]\"));\n }\n for (a in slayerData.task) {\n logger.log(\"The Slayer Reader Task{\".concat(a, \"} [\").concat(slayerData.task[a], \"]\"));\n }\n }\n else {\n logger.log(\" ~~~ Dev Tools ~ Error: Cannot read slayer data! ~~~ \");\n }\n return [3 /*break*/, 9];\n case 8:\n if (value === \"dialogReader\") {\n logger.log(\"Searching for Dialog...\");\n pos = slayer.slayerReader.dialogReader.find();\n if (!pos) {\n logger.log(\" ~~~ Dev Tools ~ Error: Cannot find the Dialog! ~~~ \");\n return [2 /*return*/];\n }\n box = slayer.slayerReader.dialogReader.read();\n if (!box) {\n logger.log(\" ~~~ Dev Tools ~ Error: Cannot read the Dialog! ~~~ \");\n return [2 /*return*/];\n }\n if (box.title)\n logger.log(\"The Dialog Box Title [\".concat(box.title, \"]\"));\n if (box.text)\n logger.log(\"The Dialog Box Text [\".concat(box.text, \"]\"));\n if (box.opts) {\n logger.log(\"The Dialog Box Options (\".concat(box.opts.length, \") [\").concat(box.opts, \"]\"));\n for (_i = 0, _a = box.opts.entries(); _i < _a.length; _i++) {\n _b = _a[_i], index = _b[0], option = _b[1];\n logger.log(\"\\t\".concat(index + 1, \". \").concat(option.text));\n }\n }\n }\n _c.label = 9;\n case 9: return [3 /*break*/, 11];\n case 10:\n e_1 = _c.sent();\n console.error(\"~~~ Dev Tools ~ Error: Issue Capturing Screen! ~~~ \");\n return [3 /*break*/, 11];\n case 11:\n logger.log(\" ~~~ Dev Tools ~ Finished ~~~ \");\n return [2 /*return*/];\n }\n });\n });\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as a1lib from \"alt1\";\nimport { SearchAlgorithm } from './SearchAlgorithm';\nimport { SlayerDialogReader } from './SlayerDialogReader';\nimport { UICounterReader } from './UICounterReader';\nimport * as settings from './settings';\nimport * as docHandler from './dochandler';\nimport * as logger from \"./logger\";\n// Setup the readers and search algo\nexport var searchAlgo = new SearchAlgorithm();\nexport var slayerReader = new SlayerDialogReader();\nexport var counterReader = new UICounterReader();\nexport var searchResult = false;\n// Get a timer and setup vars\nvar timer = function (ms) { return new Promise(function (res) { return setTimeout(res, ms); }); };\nvar loopRunning = false;\n// Check if we can capture the screen\nexport function canCaptureRunescape() {\n return window.alt1 && alt1.rsLinked && alt1.permissionPixel;\n}\n// Capture the screen\nexport function captureRunescape() {\n if (!canCaptureRunescape())\n return null;\n try {\n return a1lib.captureHoldFullRs();\n }\n catch (ex) {\n if (ex.message === \"capturehold failed\")\n console.warn(\"Capturing screen failed! Is runescape open?\");\n }\n return null;\n}\n// Find a task on the current screen\nexport function findTask(buffer) {\n return __awaiter(this, void 0, void 0, function () {\n var slayerData, counterData;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!settings.controller.data.autoCapture.enabled || loopRunning || searchResult)\n return [2 /*return*/];\n if (!buffer)\n buffer = captureRunescape();\n if (!buffer)\n return [2 /*return*/];\n loopRunning = true;\n docHandler.animate.loadingStop();\n return [4 /*yield*/, slayerReader.read(buffer)];\n case 1:\n slayerData = _a.sent();\n if (!(slayerData && slayerData[0])) return [3 /*break*/, 11];\n docHandler.animate.loading();\n if (!slayerData.selectYourOwn) return [3 /*break*/, 3];\n docHandler.main.set.suggested();\n docHandler.animate.loadingStop();\n return [4 /*yield*/, timer(settings.controller.data.autoCapture.dialogTimer)];\n case 2:\n _a.sent();\n loopRunning = false;\n return [2 /*return*/];\n case 3:\n if (!(slayerData.reaper && !slayerData.ticket)) return [3 /*break*/, 5];\n return [4 /*yield*/, docHandler.main.set.reaper({ name: slayerData[0].task, count: slayerData[0].count })];\n case 4:\n _a.sent();\n return [3 /*break*/, 9];\n case 5:\n if (!slayerData.ticket) return [3 /*break*/, 7];\n return [4 /*yield*/, docHandler.main.set.double({ name: slayerData[0].task, count: slayerData[0].count }, { name: slayerData[1].task, count: slayerData[1].count })];\n case 6:\n _a.sent();\n return [3 /*break*/, 9];\n case 7: return [4 /*yield*/, docHandler.main.set.single({ name: slayerData[0].task, count: slayerData[0].count })];\n case 8:\n _a.sent();\n _a.label = 9;\n case 9:\n docHandler.animate.loadingStop();\n return [4 /*yield*/, timer(settings.controller.data.autoCapture.dialogTimer)];\n case 10:\n _a.sent();\n loopRunning = false;\n return [3 /*break*/, 21];\n case 11:\n if (!settings.controller.data.autoCapture.counter) return [3 /*break*/, 20];\n return [4 /*yield*/, counterReader.read(buffer)];\n case 12:\n counterData = _a.sent();\n if (!counterData) return [3 /*break*/, 18];\n docHandler.animate.loading();\n if (!(counterData.reaper && (docHandler.main.reaperLoaded || counterData.task != null))) return [3 /*break*/, 14];\n return [4 /*yield*/, docHandler.main.set.reaper({ name: counterData.task, count: counterData.count })];\n case 13:\n _a.sent();\n return [3 /*break*/, 16];\n case 14:\n if (!(!counterData.reaper && (docHandler.main.singleLoaded || counterData.task != null))) return [3 /*break*/, 16];\n return [4 /*yield*/, docHandler.main.set.single({ name: counterData.task, count: counterData.count })];\n case 15:\n _a.sent();\n _a.label = 16;\n case 16:\n docHandler.animate.loadingStop();\n return [4 /*yield*/, timer(settings.controller.data.autoCapture.counterTimer)];\n case 17:\n _a.sent();\n loopRunning = false;\n return [3 /*break*/, 19];\n case 18:\n docHandler.animate.loadingStop();\n loopRunning = false;\n _a.label = 19;\n case 19: return [3 /*break*/, 21];\n case 20:\n docHandler.animate.loadingStop();\n loopRunning = false;\n _a.label = 21;\n case 21: return [2 /*return*/];\n }\n });\n });\n}\n// Search for tasks\nexport function searchTasks(value) {\n return __awaiter(this, void 0, void 0, function () {\n var tool, lookup, tasks, _i, lookup_1, term, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!value) return [3 /*break*/, 2];\n return [4 /*yield*/, docHandler.main.get.searchInput()];\n case 1:\n value = _a.sent();\n _a.label = 2;\n case 2:\n docHandler.main.reset.searchBox();\n settings.search.addHistory(value);\n if (!(value.length == 0 && (searchResult || !settings.controller.data.autoCapture.enabled))) return [3 /*break*/, 4];\n searchResult = false;\n docHandler.main.toggle.searchText();\n return [4 /*yield*/, findTask()];\n case 3:\n _a.sent();\n return [2 /*return*/];\n case 4:\n if (value.startsWith(\"devTools\")) {\n tool = value.includes(\" \") ? value.substring(value.indexOf(\" \") + 1) : value;\n settings.executeDevTools(tool);\n return [2 /*return*/];\n }\n else if (value.toLowerCase().includes(\"suggest\")) {\n docHandler.main.set.suggested();\n return [2 /*return*/];\n }\n _a.label = 5;\n case 5:\n searchResult = true;\n docHandler.main.toggle.searchText();\n lookup = value.includes(\"|\") ?\n [value.substring(0, value.indexOf(\"|\")), value.substring(value.indexOf(\"|\") + 1)] :\n [value];\n tasks = [];\n _i = 0, lookup_1 = lookup;\n _a.label = 6;\n case 6:\n if (!(_i < lookup_1.length)) return [3 /*break*/, 9];\n term = lookup_1[_i];\n return [4 /*yield*/, searchAlgo.lookup(term, lookup.length > 1)];\n case 7:\n data = _a.sent();\n if (data) {\n logger.log(\"Search for (Reaper/Slayer Assignment, Alias, or Creature): \" + data.task);\n tasks.push({ name: data.task, reaper: data.reaper });\n }\n _a.label = 8;\n case 8:\n _i++;\n return [3 /*break*/, 6];\n case 9:\n if (!(tasks.length > 1)) return [3 /*break*/, 11];\n return [4 /*yield*/, docHandler.main.set.double({ name: tasks[0].name, count: 1 }, { name: tasks[1].name, count: 1 })];\n case 10:\n _a.sent();\n return [3 /*break*/, 15];\n case 11:\n if (!(tasks.length == 1)) return [3 /*break*/, 15];\n if (!tasks[0].reaper) return [3 /*break*/, 13];\n return [4 /*yield*/, docHandler.main.set.reaper({ name: tasks[0].name, count: 1 })];\n case 12:\n _a.sent();\n return [3 /*break*/, 15];\n case 13: return [4 /*yield*/, docHandler.main.set.single({ name: tasks[0].name, count: 1 })];\n case 14:\n _a.sent();\n _a.label = 15;\n case 15:\n docHandler.animate.loadingStop();\n if (!!settings.controller.data.autoCapture.search) return [3 /*break*/, 17];\n return [4 /*yield*/, timer(settings.controller.data.autoCapture.searchTimer)];\n case 16:\n _a.sent();\n searchResult = false;\n docHandler.main.toggle.searchText();\n _a.label = 17;\n case 17: return [2 /*return*/];\n }\n });\n });\n}\n","if(typeof __WEBPACK_EXTERNAL_MODULE_canvas__ === 'undefined') { var e = new Error(\"Cannot find module 'canvas'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_canvas__;","if(typeof __WEBPACK_EXTERNAL_MODULE_electron_common__ === 'undefined') { var e = new Error(\"Cannot find module 'electron/common'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_electron_common__;","if(typeof __WEBPACK_EXTERNAL_MODULE_sharp__ === 'undefined') { var e = new Error(\"Cannot find module 'sharp'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_sharp__;","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory((function webpackLoadOptionalExternalModule() { try { return require(\"sharp\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"canvas\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"electron/common\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sharp\", \"canvas\", \"electron/common\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"base\"] = factory((function webpackLoadOptionalExternalModule() { try { return require(\"sharp\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"canvas\"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require(\"electron/common\"); } catch(e) {} }()));\n\telse\n\t\troot[\"A1lib\"] = factory(root[\"sharp\"], root[\"canvas\"], root[\"electron/common\"]);\n})(globalThis, (__WEBPACK_EXTERNAL_MODULE_sharp__, __WEBPACK_EXTERNAL_MODULE_canvas__, __WEBPACK_EXTERNAL_MODULE_electron_common__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./src/base/alt1api.ts\":\n/*!*****************************!*\\\n !*** ./src/base/alt1api.ts ***!\n \\*****************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\n\n/***/ }),\n\n/***/ \"./src/base/declarations.ts\":\n/*!**********************************!*\\\n !*** ./src/base/declarations.ts ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\n\n/***/ }),\n\n/***/ \"./src/base/imagedata-extensions.ts\":\n/*!******************************************!*\\\n !*** ./src/base/imagedata-extensions.ts ***!\n \\******************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ImageData = void 0;\nconst a1lib = __importStar(__webpack_require__(/*! ./index */ \"./src/base/index.ts\"));\nconst nodeimports = __importStar(__webpack_require__(/*! ./nodepolyfill */ \"./src/base/nodepolyfill.ts\"));\n// //TODO revamp this madness a bit?\n// (function () {\n// \tvar globalvar = (typeof self != \"undefined\" ? self : (typeof (global as any) != \"undefined\" ? (global as any) : null)) as any;\n// \t//use the node-canvas version when on node\n// \tif (typeof globalvar.ImageData == \"undefined\") {\n// \t\tlet nodecnv = requireNodeCanvas();\n// \t\tglobalvar.ImageData = nodecnv.ImageData;\n// \t}\n// \tvar fill = typeof globalvar.ImageData == \"undefined\";\n// \t//should never be reach anymore\n// \tvar constr = function (this: any) {\n// \t\tvar i = 0;\n// \t\tvar data = (arguments[i] instanceof Uint8ClampedArray ? arguments[i++] : null);\n// \t\tvar width = arguments[i++];\n// \t\tvar height = arguments[i++];\n// \t\tif (fill) {\n// \t\t\tif (!data) { data = new Uint8ClampedArray(width * height * 4); }\n// \t\t\tthis.width = width;\n// \t\t\tthis.height = height;\n// \t\t\tthis.data = data;\n// \t\t}\n// \t\telse if (oldconstr) {\n// \t\t\treturn (data ? new oldconstr(data, width, height) : new oldconstr(width, height));\n// \t\t} else {\n// \t\t\tvar canvas = document.createElement('canvas');\n// \t\t\tcanvas.width = width;\n// \t\t\tcanvas.height = height;\n// \t\t\tvar ctx = canvas.getContext(\"2d\")!;\n// \t\t\tvar imageData = ctx.createImageData(width, height);\n// \t\t\tif (data) { imageData.data.set(data); }\n// \t\t\treturn imageData;\n// \t\t}\n// \t}\n// \tvar oldconstr = globalvar.ImageData;\n// \tif (typeof document != \"undefined\") {\n// \t\ttry {\n// \t\t\tnew oldconstr(1, 1);\n// \t\t} catch (e) {\n// \t\t\t//direct constructor call not allowed in ie\n// \t\t\toldconstr = null;\n// \t\t}\n// \t}\n// \tif (!fill) { constr.prototype = globalvar.ImageData.prototype; }\n// \tglobalvar.ImageData = constr;\n// \tImageData = constr as any;\n// })();\n(function () {\n var globalvar = (typeof self != \"undefined\" ? self : (typeof __webpack_require__.g != \"undefined\" ? __webpack_require__.g : null));\n var filltype = typeof globalvar.ImageData == \"undefined\" || typeof globalvar.document == \"undefined\";\n var fillconstr = filltype;\n if (!filltype) {\n var oldconstr = globalvar.ImageData;\n try {\n let data = new Uint8ClampedArray(4);\n data[0] = 1;\n let a = new globalvar.ImageData(data, 1, 1);\n fillconstr = a.data[0] != 1;\n }\n catch (e) {\n fillconstr = true;\n }\n }\n if (fillconstr) {\n var constr = function ImageDataShim() {\n var i = 0;\n var data = (arguments[i] instanceof Uint8ClampedArray ? arguments[i++] : null);\n var width = arguments[i++];\n var height = arguments[i++];\n if (filltype) {\n if (!data) {\n data = new Uint8ClampedArray(width * height * 4);\n }\n this.width = width;\n this.height = height;\n this.data = data;\n }\n else if (fillconstr) {\n //WARNING This branch of code does not use the same pixel data backing store\n //(problem with wasm, however all wasm browser have a native constructor (unless asm.js is used))\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n var ctx = canvas.getContext(\"2d\");\n var imageData = ctx.createImageData(width, height);\n if (data) {\n imageData.data.set(data);\n }\n return imageData;\n }\n // else {\n // \t//oh no...\n // \t//we need this monstrocity in order to call the native constructor with variable number of args\n // \t//when es5 transpile is enable (that strips the spread operator)\n // \treturn new (Function.prototype.bind.apply(oldconstr, [null,...arguments]));\n // }\n };\n if (!filltype) {\n constr.prototype = globalvar.ImageData.prototype;\n }\n globalvar.ImageData = constr;\n exports.ImageData = constr;\n }\n else {\n exports.ImageData = globalvar.ImageData;\n }\n})();\n//Recast into a drawable imagedata class on all platforms, into a normal browser ImageData on browsers or a node-canvas imagedata on nodejs\nexports.ImageData.prototype.toDrawableData = function () {\n if (typeof document == \"undefined\") {\n return nodeimports.imageDataToDrawable(this);\n }\n else {\n return this;\n }\n};\nexports.ImageData.prototype.putImageData = function (buf, cx, cy) {\n for (var dx = 0; dx < buf.width; dx++) {\n for (var dy = 0; dy < buf.height; dy++) {\n var i1 = (dx + cx) * 4 + (dy + cy) * 4 * this.width;\n var i2 = dx * 4 + dy * 4 * buf.width;\n this.data[i1] = buf.data[i2];\n this.data[i1 + 1] = buf.data[i2 + 1];\n this.data[i1 + 2] = buf.data[i2 + 2];\n this.data[i1 + 3] = buf.data[i2 + 3];\n }\n }\n};\nexports.ImageData.prototype.pixelOffset = function (x, y) {\n return x * 4 + y * this.width * 4;\n};\n//creates a hash of a portion of the buffer used to check for changes\nexports.ImageData.prototype.getPixelHash = function (rect) {\n if (!rect) {\n rect = new a1lib.Rect(0, 0, this.width, this.height);\n }\n var hash = 0;\n for (var x = rect.x; x < rect.x + rect.width; x++) {\n for (var y = rect.y; y < rect.y + rect.height; y++) {\n var i = x * 4 + y * 4 * this.width;\n hash = (((hash << 5) - hash) + this.data[i]) | 0;\n hash = (((hash << 5) - hash) + this.data[i + 1]) | 0;\n hash = (((hash << 5) - hash) + this.data[i + 2]) | 0;\n hash = (((hash << 5) - hash) + this.data[i + 3]) | 0;\n }\n }\n return hash;\n};\nexports.ImageData.prototype.clone = function (rect) {\n return this.toImage(rect).getContext(\"2d\").getImageData(0, 0, rect.width, rect.height);\n};\nexports.ImageData.prototype.show = function (x = 5, y = 5, zoom = 1) {\n if (typeof document == \"undefined\") {\n console.error(\"need a document to show an imagedata object\");\n return;\n }\n var imgs = document.getElementsByClassName(\"debugimage\");\n while (imgs.length > exports.ImageData.prototype.show.maxImages) {\n imgs[0].remove();\n }\n var el = this.toImage();\n el.classList.add(\"debugimage\");\n el.style.position = \"absolute\";\n el.style.zIndex = \"1000\";\n el.style.left = x / zoom + \"px\";\n el.style.top = y / zoom + \"px\";\n el.style.background = \"purple\";\n el.style.cursor = \"pointer\";\n el.style.imageRendering = \"pixelated\";\n el.style.outline = \"1px solid #0f0\";\n el.style.width = (this.width == 1 ? 100 : this.width) * zoom + \"px\";\n el.style.height = (this.height == 1 ? 100 : this.height) * zoom + \"px\";\n el.onclick = function () { el.remove(); };\n document.body.appendChild(el);\n return el;\n};\nexports.ImageData.prototype.show.maxImages = 10;\nexports.ImageData.prototype.toImage = function (rect) {\n if (!rect) {\n rect = new a1lib.Rect(0, 0, this.width, this.height);\n }\n if (typeof document != \"undefined\") {\n var el = document.createElement(\"canvas\");\n el.width = rect.width;\n el.height = rect.height;\n }\n else {\n el = nodeimports.createCanvas(rect.width, rect.height);\n }\n var ctx = el.getContext(\"2d\");\n ctx.putImageData(this.toDrawableData(), -rect.x, -rect.y);\n return el;\n};\nexports.ImageData.prototype.getPixel = function (x, y) {\n var i = x * 4 + y * 4 * this.width;\n return [this.data[i], this.data[i + 1], this.data[i + 2], this.data[i + 3]];\n};\nexports.ImageData.prototype.getPixelValueSum = function (x, y) {\n var i = x * 4 + y * 4 * this.width;\n return this.data[i] + this.data[i + 1] + this.data[i + 2];\n};\nexports.ImageData.prototype.getPixelInt = function (x, y) {\n var i = x * 4 + y * 4 * this.width;\n return (this.data[i + 3] << 24) + (this.data[i + 0] << 16) + (this.data[i + 1] << 8) + (this.data[i + 2] << 0);\n};\nexports.ImageData.prototype.getColorDifference = function (x, y, r, g, b, a = 255) {\n var i = x * 4 + y * 4 * this.width;\n return Math.abs(this.data[i] - r) + Math.abs(this.data[i + 1] - g) + Math.abs(this.data[i + 2] - b) * a / 255;\n};\nexports.ImageData.prototype.setPixel = function (x, y, ...color) {\n var r, g, b, a;\n var [r, g, b, a] = (Array.isArray(color[0]) ? color[0] : color);\n var i = x * 4 + y * 4 * this.width;\n this.data[i] = r;\n this.data[i + 1] = g;\n this.data[i + 2] = b;\n this.data[i + 3] = a == undefined ? 255 : a;\n};\nexports.ImageData.prototype.setPixelInt = function (x, y, color) {\n var i = x * 4 + y * 4 * this.width;\n this.data[i] = (color >> 24) & 0xff;\n this.data[i + 1] = (color >> 16) & 0xff;\n this.data[i + 2] = (color >> 8) & 0xff;\n this.data[i + 3] = (color >> 0) & 0xff;\n};\nexports.ImageData.prototype.toFileBytes = function (format, quality) {\n if (typeof HTMLCanvasElement != \"undefined\") {\n return new Promise(d => this.toImage().toBlob(b => {\n var r = new FileReader();\n r.readAsArrayBuffer(b);\n r.onload = () => d(new Uint8Array(r.result));\n }, format, quality));\n }\n else {\n return nodeimports.imageDataToFileBytes(this, format, quality);\n }\n};\nexports.ImageData.prototype.toPngBase64 = function () {\n if (typeof HTMLCanvasElement != \"undefined\") {\n var str = this.toImage().toDataURL(\"image/png\");\n return str.slice(str.indexOf(\",\") + 1);\n }\n else {\n throw new Error(\"synchronous image conversion not supported in nodejs, try using ImageData.prototype.toFileBytes\");\n }\n};\nexports.ImageData.prototype.pixelCompare = function (buf, x = 0, y = 0, max) {\n return a1lib.ImageDetect.simpleCompare(this, buf, x, y, max);\n};\nexports.ImageData.prototype.copyTo = function (target, sourcex, sourcey, width, height, targetx, targety) {\n //convince v8 that these are 31bit uints\n const targetwidth = target.width | 0;\n const thiswidth = this.width | 0;\n const copywidth = width | 0;\n const fastwidth = Math.floor(width / 4) * 4;\n const thisdata = new Int32Array(this.data.buffer, this.data.byteOffset, this.data.byteLength / 4);\n const targetdata = new Int32Array(target.data.buffer, target.data.byteOffset, target.data.byteLength / 4);\n for (let cy = 0; cy < height; cy++) {\n let cx = 0;\n let it = (cx + targetx) + (cy + targety) * targetwidth;\n let is = (cx + sourcex) + (cy + sourcey) * thiswidth;\n //copy 4 pixels per iter (xmm)\n for (; cx < fastwidth; cx += 4) {\n targetdata[it] = thisdata[is];\n targetdata[it + 1] = thisdata[is + 1];\n targetdata[it + 2] = thisdata[is + 2];\n targetdata[it + 3] = thisdata[is + 3];\n it += 4;\n is += 4;\n }\n //copy remainder per pixel\n for (; cx < copywidth; cx++) {\n targetdata[it] = thisdata[is];\n it += 1;\n is += 1;\n }\n }\n};\nif (typeof HTMLImageElement != \"undefined\") {\n HTMLImageElement.prototype.toBuffer = function (x = 0, y = 0, w = this.width, h = this.height) {\n var cnv = document.createElement(\"canvas\");\n cnv.width = w;\n cnv.height = h;\n var ctx = cnv.getContext(\"2d\");\n ctx.drawImage(this, -x, -y);\n return ctx.getImageData(0, 0, w, h);\n };\n HTMLImageElement.prototype.toCanvas = function (x = 0, y = 0, w = this.width, h = this.height) {\n var cnv = document.createElement(\"canvas\");\n cnv.width = w;\n cnv.height = h;\n var ctx = cnv.getContext(\"2d\");\n ctx.drawImage(this, -x, -y);\n return cnv;\n };\n}\n\n\n/***/ }),\n\n/***/ \"./src/base/imagedetect.ts\":\n/*!*********************************!*\\\n !*** ./src/base/imagedetect.ts ***!\n \\*********************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ImageDataSet = exports.webpackImages = exports.asyncMap = exports.coldif = exports.simpleCompareRMSE = exports.simpleCompare = exports.findSubbuffer = exports.findSubimage = exports.clearPngColorspace = exports.isPngBuffer = exports.imageDataFromFileBuffer = exports.imageDataFromBase64 = exports.imageDataFromUrl = void 0;\nconst imgref_1 = __webpack_require__(/*! ./imgref */ \"./src/base/imgref.ts\");\nconst wapper = __importStar(__webpack_require__(/*! ./wrapper */ \"./src/base/wrapper.ts\"));\nconst nodeimports = __importStar(__webpack_require__(/*! ./nodepolyfill */ \"./src/base/nodepolyfill.ts\"));\nconst _1 = __webpack_require__(/*! . */ \"./src/base/index.ts\");\n/**\n* Downloads an image and returns the ImageData\n* Make sure the png image does not have a sRGB chunk or the resulting pixels will differ for different users!!!\n* @param url http(s) or data url to the image\n*/\nasync function imageDataFromUrl(url) {\n if (typeof Image != \"undefined\") {\n var img = new Image();\n img.crossOrigin = \"crossorigin\";\n return await new Promise((done, fail) => {\n img.onload = function () { done(img.toBuffer()); };\n img.onerror = fail;\n img.src = url;\n });\n }\n else {\n var hdr = \"data:image/png;base64,\";\n if (url.startsWith(hdr)) {\n return imageDataFromBase64(url.slice(hdr.length));\n }\n throw new Error(\"loading remote images in nodejs has been disabled, load the raw bytes and use imageDataFromNodeBuffer instead\");\n }\n}\nexports.imageDataFromUrl = imageDataFromUrl;\n/**\n* Loads an ImageData object from a base64 encoded png image\n* Make sure the png image does not have a sRGB chunk or the resulting pixels will differ for different users!!!\n* @param data a base64 encoded png image\n*/\nasync function imageDataFromBase64(data) {\n if (typeof Image != \"undefined\") {\n return imageDataFromUrl(\"data:image/png;base64,\" + data);\n }\n else {\n return nodeimports.imageDataFromBase64(data);\n }\n}\nexports.imageDataFromBase64 = imageDataFromBase64;\n/**\n * Loads an ImageData object directly from a png encoded file buffer\n * This method ensures that png color space headers are taken care off\n * @param data The bytes of a png file\n */\nasync function imageDataFromFileBuffer(data) {\n clearPngColorspace(data);\n if (typeof Image != \"undefined\") {\n let blob = new Blob([data], { type: \"image/png\" });\n let url = URL.createObjectURL(blob);\n let r = await imageDataFromUrl(url);\n URL.revokeObjectURL(url);\n return r;\n }\n else {\n return nodeimports.imageDataFromBuffer(data);\n }\n}\nexports.imageDataFromFileBuffer = imageDataFromFileBuffer;\n/**\n* Checks if a given byte array is a png file (by checking for ?PNG as first 4 bytes)\n* @param bytes Raw bytes of the png file\n*/\nfunction isPngBuffer(bytes) {\n return bytes[0] == 137 && bytes[1] == 80 && bytes[2] == 78 && bytes[3] == 71;\n}\nexports.isPngBuffer = isPngBuffer;\n/**\n* Resets the colorspace data in the png file.\n* This makes sure the browser renders the exact colors in the file instead of filtering it in order to obtain the best real life representation of\n* what it looked like on the authors screen. (this feature is often broken and not supported)\n* For example a round trip printscreen -> open in browser results in different colors than the original\n* @param data Raw bytes of the png file\n*/\nfunction clearPngColorspace(data) {\n if (!isPngBuffer(data)) {\n throw new Error(\"non-png image received\");\n }\n var i = 8;\n while (i < data.length) {\n var length = data[i++] * 0x1000000 + data[i++] * 0x10000 + data[i++] * 0x100 + data[i++];\n var ancillary = !!((data[i] >> 5) & 1);\n var chunkname = String.fromCharCode(data[i], data[i + 1], data[i + 2], data[i + 3]);\n var chunkid = chunkname.toLowerCase();\n if (chunkid != \"trns\" && ancillary) {\n data[i + 0] = \"n\".charCodeAt(0);\n data[i + 1] = \"o\".charCodeAt(0);\n data[i + 2] = \"P\".charCodeAt(0);\n data[i + 3] = \"E\".charCodeAt(0);\n //calculate new chunk checksum\n //http://www.libpng.org/pub/png/spec/1.2/PNG-CRCAppendix.html\n var end = i + 4 + length;\n var crc = 0xffffffff;\n //should be fast enough like this\n var bitcrc = function (bit) {\n for (var k = 0; k < 8; k++) {\n if (bit & 1) {\n bit = 0xedb88320 ^ (bit >>> 1);\n }\n else {\n bit = bit >>> 1;\n }\n }\n return bit;\n };\n for (var a = i; a < end; a++) {\n if (a >= i + 4) {\n data[a] = 0;\n }\n var bit = data[a];\n crc = bitcrc((crc ^ bit) & 0xff) ^ (crc >>> 8);\n }\n crc = crc ^ 0xffffffff;\n //new chunk checksum\n data[i + 4 + length + 0] = (crc >> 24) & 0xff;\n data[i + 4 + length + 1] = (crc >> 16) & 0xff;\n data[i + 4 + length + 2] = (crc >> 8) & 0xff;\n data[i + 4 + length + 3] = (crc >> 0) & 0xff;\n }\n if (chunkname == \"IEND\") {\n break;\n }\n i += 4; //type\n i += length; //data\n i += 4; //crc\n }\n}\nexports.clearPngColorspace = clearPngColorspace;\n/**\n* finds the given needle ImageBuffer in the given haystack ImgRef this function uses the best optimized available\n* code depending on the type of the haystack. It will use fast c# searching if the haystack is an ImgRefBind, js searching\n* is used otherwise.\n* the checklist argument is no longer used and should ignored or null/undefined\n* The optional sx,sy,sw,sh arguments indicate a bounding rectangle in which to search the needle. The rectangle should be bigger than the needle\n* @returns An array of points where the needle is found. The array is empty if none are found\n*/\nfunction findSubimage(haystackImgref, needleBuffer, sx = 0, sy = 0, sw = haystackImgref.width, sh = haystackImgref.height) {\n if (!haystackImgref) {\n throw new TypeError();\n }\n if (!needleBuffer) {\n throw new TypeError();\n }\n var max = 30;\n //check if we can do this in alt1\n if (haystackImgref instanceof imgref_1.ImgRefBind && wapper.hasAlt1 && alt1.bindFindSubImg) {\n var needlestr = wapper.encodeImageString(needleBuffer);\n var r = alt1.bindFindSubImg(haystackImgref.handle, needlestr, needleBuffer.width, sx, sy, sw, sh);\n if (!r) {\n throw new wapper.Alt1Error();\n }\n return JSON.parse(r);\n }\n return findSubbuffer(haystackImgref.read(), needleBuffer, sx, sy, sw, sh);\n}\nexports.findSubimage = findSubimage;\n/**\n* Uses js to find the given needle ImageBuffer in the given haystack ImageBuffer. It is better to use the alt1.bind- functions in\n* combination with a1nxt.findsubimg.\n* the optional sx,sy,sw,sh arguments indicate a bounding rectangle in which to search.\n* @returns An array of points where the needle is found. The array is empty if none are found\n*/\nfunction findSubbuffer(haystack, needle, sx = 0, sy = 0, sw = haystack.width, sh = haystack.height) {\n var r = [];\n var maxdif = 30;\n var maxresults = 50;\n var needlestride = needle.width * 4;\n var heystackstride = haystack.width * 4;\n //built list of non trans pixel to check\n var checkList = [];\n for (var y = 0; y < needle.height; y++) {\n for (var x = 0; x < needle.width; x++) {\n var i = x * 4 + y * needlestride;\n if (needle.data[i + 3] == 255) {\n checkList.push({ x: x, y: y });\n }\n if (checkList.length == 10) {\n break;\n }\n }\n if (checkList.length == 10) {\n break;\n }\n }\n var cw = (sx + sw) - needle.width;\n var ch = (sy + sh) - needle.height;\n var checklength = checkList.length;\n for (var y = sy; y <= ch; y++) {\n outer: for (var x = sx; x <= cw; x++) {\n for (var a = 0; a < checklength; a++) {\n var i1 = (x + checkList[a].x) * 4 + (y + checkList[a].y) * heystackstride;\n var i2 = checkList[a].x * 4 + checkList[a].y * needlestride;\n var d = 0;\n d = d + Math.abs(haystack.data[i1 + 0] - needle.data[i2 + 0]) | 0;\n d = d + Math.abs(haystack.data[i1 + 1] - needle.data[i2 + 1]) | 0;\n d = d + Math.abs(haystack.data[i1 + 2] - needle.data[i2 + 2]) | 0;\n d *= 255 / needle.data[i2 + 3];\n if (d > maxdif) {\n continue outer;\n }\n }\n if (simpleCompare(haystack, needle, x, y, maxdif) != Infinity) {\n r.push({ x, y });\n if (r.length > maxresults) {\n return r;\n }\n }\n }\n }\n return r;\n}\nexports.findSubbuffer = findSubbuffer;\n/**\n* Compares two images and returns the average color difference per pixel between them\n* @param max The max color difference at any point in the image before short circuiting the function and returning Infinity. set to -1 to always continue.\n* @returns The average color difference per pixel or Infinity if the difference is more than max at any point in the image\n*/\nfunction simpleCompare(bigbuf, checkbuf, x, y, max = 30) {\n if (x < 0 || y < 0) {\n throw new RangeError();\n }\n if (x + checkbuf.width > bigbuf.width || y + checkbuf.height > bigbuf.height) {\n throw new RangeError();\n }\n if (max == -1) {\n max = 255 * 4;\n }\n var dif = 0;\n for (var step = 8; step >= 1; step /= 2) {\n for (var cx = 0; cx < checkbuf.width; cx += step) {\n for (var cy = 0; cy < checkbuf.height; cy += step) {\n var i1 = (x + cx) * 4 + (y + cy) * bigbuf.width * 4;\n var i2 = cx * 4 + cy * checkbuf.width * 4;\n var d = 0;\n d = d + Math.abs(bigbuf.data[i1 + 0] - checkbuf.data[i2 + 0]) | 0;\n d = d + Math.abs(bigbuf.data[i1 + 1] - checkbuf.data[i2 + 1]) | 0;\n d = d + Math.abs(bigbuf.data[i1 + 2] - checkbuf.data[i2 + 2]) | 0;\n d *= checkbuf.data[i2 + 3] / 255;\n if (step == 1) {\n dif += d;\n }\n if (d > max) {\n return Infinity;\n }\n }\n }\n }\n return dif / checkbuf.width / checkbuf.height;\n}\nexports.simpleCompare = simpleCompare;\n/**\n* Calculates the root mean square error between the two buffers at the given coordinate, this method can be used in situations with significant blur or\n* transparency, it does not bail early on non-matching images like simpleCompare does so it can be expected to be much slower when called often.\n* @returns The root mean square error beteen the images, high single pixel errors are penalized more than consisten low errors. return of 0 means perfect match.\n*/\nfunction simpleCompareRMSE(bigbuf, checkbuf, x, y) {\n if (x < 0 || y < 0) {\n throw new RangeError();\n }\n if (x + checkbuf.width > bigbuf.width || y + checkbuf.height > bigbuf.height) {\n throw new RangeError();\n }\n var dif = 0;\n var numpix = 0;\n for (var cx = 0; cx < checkbuf.width; cx++) {\n for (var cy = 0; cy < checkbuf.height; cy++) {\n var i1 = (x + cx) * 4 + (y + cy) * bigbuf.width * 4;\n var i2 = cx * 4 + cy * checkbuf.width * 4;\n var d = 0;\n d = d + Math.abs(bigbuf.data[i1 + 0] - checkbuf.data[i2 + 0]) | 0;\n d = d + Math.abs(bigbuf.data[i1 + 1] - checkbuf.data[i2 + 1]) | 0;\n d = d + Math.abs(bigbuf.data[i1 + 2] - checkbuf.data[i2 + 2]) | 0;\n var weight = checkbuf.data[i2 + 3] / 255;\n numpix += weight;\n dif += d * d * weight;\n }\n }\n return Math.sqrt(dif / numpix);\n}\nexports.simpleCompareRMSE = simpleCompareRMSE;\n/**\n* Returns the difference between two colors (scaled to the alpha of the second color)\n*/\nfunction coldif(r1, g1, b1, r2, g2, b2, a2) {\n return (Math.abs(r1 - r2) + Math.abs(g1 - g2) + Math.abs(b1 - b2)) * a2 / 255; //only applies alpha for 2nd buffer!\n}\nexports.coldif = coldif;\n/**\n * Turns map of promises into a map that contains the resolved values after loading.\n * @param input\n */\nfunction asyncMap(input) {\n var raw = {};\n var promises = [];\n for (var a in input) {\n if (input.hasOwnProperty(a)) {\n raw[a] = null;\n promises.push(input[a].then(function (a, i) { raw[a] = i; r[a] = i; }.bind(null, a)));\n }\n }\n var r = {};\n var promise = Promise.all(promises).then(() => { r.loaded = true; return r; });\n Object.defineProperty(r, \"loaded\", { enumerable: false, value: false, writable: true });\n Object.defineProperty(r, \"promise\", { enumerable: false, value: promise });\n Object.defineProperty(r, \"raw\", { enumerable: false, value: raw });\n return Object.assign(r, raw);\n}\nexports.asyncMap = asyncMap;\n/**\n* Same as asyncMap, but casts the properties to ImageData in typescript\n*/\nfunction webpackImages(input) {\n return asyncMap(input);\n}\nexports.webpackImages = webpackImages;\nclass ImageDataSet {\n constructor() {\n this.buffers = [];\n }\n matchBest(img, x, y, max) {\n let best = null;\n let bestscore = max;\n for (let a = 0; a < this.buffers.length; a++) {\n let score = img.pixelCompare(this.buffers[a], x, y, bestscore);\n if (isFinite(score) && (bestscore == undefined || score < bestscore)) {\n bestscore = score;\n best = a;\n }\n }\n if (best == null) {\n return null;\n }\n return { index: best, score: bestscore };\n }\n static fromFilmStrip(baseimg, width) {\n if ((baseimg.width % width) != 0) {\n throw new Error(\"slice size does not fit in base img\");\n }\n let r = new ImageDataSet();\n for (let x = 0; x < baseimg.width; x += width) {\n r.buffers.push(baseimg.clone(new _1.Rect(x, 0, width, baseimg.height)));\n }\n return r;\n }\n static fromFilmStripUneven(baseimg, widths) {\n let r = new ImageDataSet();\n let x = 0;\n for (let w of widths) {\n r.buffers.push(baseimg.clone(new _1.Rect(x, 0, w, baseimg.height)));\n x += w;\n if (x > baseimg.width) {\n throw new Error(\"sampling filmstrip outside bounds\");\n }\n }\n if (x != baseimg.width) {\n throw new Error(\"unconsumed pixels left in film strip imagedata\");\n }\n return r;\n }\n static fromAtlas(baseimg, slices) {\n let r = new ImageDataSet();\n for (let slice of slices) {\n r.buffers.push(baseimg.clone(slice));\n }\n return r;\n }\n}\nexports.ImageDataSet = ImageDataSet;\n\n\n/***/ }),\n\n/***/ \"./src/base/imgref.ts\":\n/*!****************************!*\\\n !*** ./src/base/imgref.ts ***!\n \\****************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ImgRefData = exports.ImgRefBind = exports.ImgRefCtx = exports.ImgRef = void 0;\nconst index_1 = __webpack_require__(/*! ./index */ \"./src/base/index.ts\");\n/**\n * Represents an image that might be in different types of memory\n * This is mostly used to represent images still in Alt1 memory that have\n * not been transfered to js yet. Various a1lib api's use this type and\n * choose the most efficient approach based on the memory type\n */\nclass ImgRef {\n constructor(x, y, w, h) {\n this.t = \"none\";\n this.x = x;\n this.y = y;\n this.width = w;\n this.height = h;\n }\n read(x = 0, y = 0, w = this.width, h = this.height) {\n throw new Error(\"This imgref (\" + this.t + \") does not support toData\");\n }\n findSubimage(needle, sx = 0, sy = 0, w = this.width, h = this.height) {\n return index_1.ImageDetect.findSubimage(this, needle, sx, sy, w, h);\n }\n toData(x = this.x, y = this.y, w = this.width, h = this.height) {\n return this.read(x - this.x, y - this.y, w, h);\n }\n ;\n containsArea(rect) {\n return this.x <= rect.x && this.y <= rect.y && this.x + this.width >= rect.x + rect.width && this.y + this.height >= rect.y + rect.height;\n }\n}\nexports.ImgRef = ImgRef;\n/**\n * Represents an image in js render memory (canvas/image tag)\n */\nclass ImgRefCtx extends ImgRef {\n constructor(img, x = 0, y = 0) {\n if (img instanceof CanvasRenderingContext2D) {\n super(x, y, img.canvas.width, img.canvas.height);\n this.ctx = img;\n }\n else {\n super(x, y, img.width, img.height);\n var cnv = (img instanceof HTMLCanvasElement ? img : img.toCanvas());\n this.ctx = cnv.getContext(\"2d\");\n }\n this.t = \"ctx\";\n }\n read(x = 0, y = 0, w = this.width, h = this.height) {\n return this.ctx.getImageData(x, y, w, h);\n }\n}\nexports.ImgRefCtx = ImgRefCtx;\n/**\n * Represents in image in Alt1 memory, This type of image can be searched for subimages\n * very efficiently and transfering the full image to js can be avoided this way\n */\nclass ImgRefBind extends ImgRef {\n constructor(handle, x = 0, y = 0, w = 0, h = 0) {\n super(x, y, w, h);\n this.handle = handle;\n this.t = \"bind\";\n }\n read(x = 0, y = 0, w = this.width, h = this.height) {\n return (0, index_1.transferImageData)(this.handle, x, y, w, h);\n }\n}\nexports.ImgRefBind = ImgRefBind;\n/**\n * Represents an image in js memory\n */\nclass ImgRefData extends ImgRef {\n constructor(buf, x = 0, y = 0) {\n super(x, y, buf.width, buf.height);\n this.buf = buf;\n this.t = \"data\";\n }\n read(x = 0, y = 0, w = this.width, h = this.height) {\n if (x == 0 && y == 0 && w == this.width && h == this.height) {\n return this.buf;\n }\n var r = new ImageData(w, h);\n for (var b = y; b < y + h; b++) {\n for (var a = x; a < x + w; a++) {\n var i1 = (a - x) * 4 + (b - y) * w * 4;\n var i2 = a * 4 + b * 4 * this.buf.width;\n r.data[i1] = this.buf.data[i2];\n r.data[i1 + 1] = this.buf.data[i2 + 1];\n r.data[i1 + 2] = this.buf.data[i2 + 2];\n r.data[i1 + 3] = this.buf.data[i2 + 3];\n }\n }\n return r;\n }\n}\nexports.ImgRefData = ImgRefData;\n\n\n/***/ }),\n\n/***/ \"./src/base/index.ts\":\n/*!***************************!*\\\n !*** ./src/base/index.ts ***!\n \\***************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ImageDataSet = exports.findSubbuffer = exports.simpleCompare = exports.findSubimage = exports.webpackImages = exports.NodePolyfill = exports.ImageData = exports.Rect = exports.PasteInput = exports.ImageDetect = void 0;\n__webpack_require__(/*! ./declarations */ \"./src/base/declarations.ts\");\nexports.ImageDetect = __importStar(__webpack_require__(/*! ./imagedetect */ \"./src/base/imagedetect.ts\"));\nexports.PasteInput = __importStar(__webpack_require__(/*! ./pasteinput */ \"./src/base/pasteinput.ts\"));\nvar rect_1 = __webpack_require__(/*! ./rect */ \"./src/base/rect.ts\");\nObject.defineProperty(exports, \"Rect\", ({ enumerable: true, get: function () { return __importDefault(rect_1).default; } }));\nvar imagedata_extensions_1 = __webpack_require__(/*! ./imagedata-extensions */ \"./src/base/imagedata-extensions.ts\");\nObject.defineProperty(exports, \"ImageData\", ({ enumerable: true, get: function () { return imagedata_extensions_1.ImageData; } }));\nexports.NodePolyfill = __importStar(__webpack_require__(/*! ./nodepolyfill */ \"./src/base/nodepolyfill.ts\"));\n__exportStar(__webpack_require__(/*! ./imgref */ \"./src/base/imgref.ts\"), exports);\n__exportStar(__webpack_require__(/*! ./wrapper */ \"./src/base/wrapper.ts\"), exports);\nvar imagedetect_1 = __webpack_require__(/*! ./imagedetect */ \"./src/base/imagedetect.ts\");\nObject.defineProperty(exports, \"webpackImages\", ({ enumerable: true, get: function () { return imagedetect_1.webpackImages; } }));\nObject.defineProperty(exports, \"findSubimage\", ({ enumerable: true, get: function () { return imagedetect_1.findSubimage; } }));\nObject.defineProperty(exports, \"simpleCompare\", ({ enumerable: true, get: function () { return imagedetect_1.simpleCompare; } }));\nObject.defineProperty(exports, \"findSubbuffer\", ({ enumerable: true, get: function () { return imagedetect_1.findSubbuffer; } }));\nObject.defineProperty(exports, \"ImageDataSet\", ({ enumerable: true, get: function () { return imagedetect_1.ImageDataSet; } }));\n\n\n/***/ }),\n\n/***/ \"./src/base/nodepolyfill.ts\":\n/*!**********************************!*\\\n !*** ./src/base/nodepolyfill.ts ***!\n \\**********************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\n//nodejs and electron polyfills for web api's\n//commented out type info as that breaks webpack with optional dependencies\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.imageDataFromBuffer = exports.imageDataFromBase64 = exports.imageDataToFileBytes = exports.createCanvas = exports.imageDataToDrawable = exports.requireElectronCommon = exports.requireNodeCanvas = exports.requireSharp = exports.polyfillRequire = void 0;\nconst index_1 = __webpack_require__(/*! ./index */ \"./src/base/index.ts\");\nconst imagedetect_1 = __webpack_require__(/*! ./imagedetect */ \"./src/base/imagedetect.ts\");\nvar requirefunction = null;\n/**\n * Call this function to let the libs require extra dependencies on nodejs in order\n * to polyfill some browser api's (mostly image compression/decompression)\n * `NodePolifill.polyfillRequire(require);` should solve most cases\n */\nfunction polyfillRequire(requirefn) {\n requirefunction = requirefn;\n}\nexports.polyfillRequire = polyfillRequire;\nfunction requireSharp() {\n try {\n if (requirefunction) {\n return requirefunction(\"sharp\");\n }\n else {\n return __webpack_require__(/* webpackIgnore: true */ /*! sharp */ \"sharp\"); // as typeof import(\"sharp\");\n }\n }\n catch (e) { }\n return null;\n}\nexports.requireSharp = requireSharp;\nfunction requireNodeCanvas() {\n //attempt to require sharp first, after loading canvas the module sharp fails to load\n requireSharp();\n try {\n if (requirefunction) {\n return requirefunction(\"canvas\");\n }\n else {\n return __webpack_require__(/* webpackIgnore: true */ /*! canvas */ \"canvas\"); // as typeof import(\"sharp\");\n }\n }\n catch (e) { }\n return null;\n}\nexports.requireNodeCanvas = requireNodeCanvas;\nfunction requireElectronCommon() {\n try {\n if (requirefunction) {\n return requirefunction(\"electron/common\");\n }\n else {\n return __webpack_require__(/* webpackIgnore: true */ /*! electron/common */ \"electron/common\");\n }\n }\n catch (e) { }\n return null;\n}\nexports.requireElectronCommon = requireElectronCommon;\nfunction imageDataToDrawable(buf) {\n let nodecnv = requireNodeCanvas();\n if (!nodecnv) {\n throw new Error(\"couldn't find built-in canvas or the module 'canvas'\");\n }\n return new nodecnv.ImageData(buf.data, buf.width, buf.height);\n}\nexports.imageDataToDrawable = imageDataToDrawable;\nfunction createCanvas(w, h) {\n let nodecnv = requireNodeCanvas();\n if (!nodecnv) {\n throw new Error(\"couldn't find built-in canvas or the module 'canvas'\");\n }\n return nodecnv.createCanvas(w, h);\n}\nexports.createCanvas = createCanvas;\nfunction flipBGRAtoRGBA(data) {\n for (let i = 0; i < data.length; i += 4) {\n let tmp = data[i + 2];\n data[i + 2] = data[i + 0];\n data[i + 0] = tmp;\n }\n}\nasync function imageDataToFileBytes(buf, format, quality) {\n //use the electron API if we're in electron\n var electronCommon;\n var sharp;\n if (electronCommon = requireElectronCommon()) {\n let nativeImage = electronCommon.nativeImage;\n //need to copy the buffer in order to flip it without destroying the original\n let bufcpy = Buffer.from(buf.data.slice(buf.data.byteOffset, buf.data.byteLength));\n flipBGRAtoRGBA(bufcpy);\n let nativeimg = nativeImage.createFromBitmap(bufcpy, { width: buf.width, height: buf.height });\n return nativeimg.toPNG();\n }\n else if (sharp = requireSharp()) {\n let img = sharp(Buffer.from(buf.data.buffer), { raw: { width: buf.width, height: buf.height, channels: 4 } });\n if (format == \"image/png\") {\n img.png();\n }\n else if (format == \"image/webp\") {\n var opts = { quality: 80 };\n if (typeof quality == \"number\") {\n opts.quality = quality * 100;\n }\n img.webp(opts);\n }\n else {\n throw new Error(\"unknown image format: \" + format);\n }\n return await img.toBuffer({ resolveWithObject: false }).buffer;\n }\n throw new Error(\"coulnd't find build-in image compression methods or the module 'electron/common' or 'sharp'\");\n}\nexports.imageDataToFileBytes = imageDataToFileBytes;\nfunction imageDataFromBase64(base64) {\n return imageDataFromBuffer(Buffer.from(base64, \"base64\"));\n}\nexports.imageDataFromBase64 = imageDataFromBase64;\nasync function imageDataFromBuffer(buffer) {\n (0, imagedetect_1.clearPngColorspace)(buffer);\n //use the electron API if we're in electron\n var electronCommon;\n var nodecnv;\n if (electronCommon = requireElectronCommon()) {\n let nativeImage = electronCommon.nativeImage;\n let img = nativeImage.createFromBuffer(buffer);\n let pixels = img.toBitmap();\n let size = img.getSize();\n let pixbuf = new Uint8ClampedArray(pixels.buffer, pixels.byteOffset, pixels.byteLength);\n flipBGRAtoRGBA(pixbuf);\n return new index_1.ImageData(pixbuf, size.width, size.height);\n }\n else if (nodecnv = requireNodeCanvas()) {\n return new Promise((done, err) => {\n let img = new nodecnv.Image();\n img.onerror = err;\n img.onload = () => {\n var cnv = nodecnv.createCanvas(img.naturalWidth, img.naturalHeight);\n var ctx = cnv.getContext(\"2d\");\n ctx.drawImage(img, 0, 0);\n var data = ctx.getImageData(0, 0, img.naturalWidth, img.naturalHeight);\n //use our own class\n done(new index_1.ImageData(data.data, data.width, data.height));\n };\n img.src = Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n });\n }\n throw new Error(\"couldn't find built-in canvas, module 'electron/common' or the module 'canvas'\");\n}\nexports.imageDataFromBuffer = imageDataFromBuffer;\n\n\n/***/ }),\n\n/***/ \"./src/base/pasteinput.ts\":\n/*!********************************!*\\\n !*** ./src/base/pasteinput.ts ***!\n \\********************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.fileDialog = exports.start = exports.startDragNDrop = exports.triggerPaste = exports.unlisten = exports.listen = exports.lastref = void 0;\nconst index_1 = __webpack_require__(/*! ./index */ \"./src/base/index.ts\");\nconst ImageDetect = __importStar(__webpack_require__(/*! ./imagedetect */ \"./src/base/imagedetect.ts\"));\nvar listeners = [];\nvar started = false;\nvar dndStarted = false;\nvar pasting = false;\nexports.lastref = null;\nfunction listen(func, errorfunc, dragndrop) {\n listeners.push({ cb: func, error: errorfunc });\n if (!started) {\n start();\n }\n if (dragndrop && !dndStarted) {\n startDragNDrop();\n }\n}\nexports.listen = listen;\nfunction unlisten(func) {\n let i = listeners.findIndex(c => c.cb == func);\n if (i != -1) {\n listeners.splice(i, 1);\n }\n}\nexports.unlisten = unlisten;\n/**\n * currently used in multiple document situations (iframe), might be removed in the future\n */\nfunction triggerPaste(img) {\n exports.lastref = img;\n for (var a in listeners) {\n listeners[a].cb(exports.lastref);\n }\n}\nexports.triggerPaste = triggerPaste;\nfunction pasted(img) {\n pasting = false;\n let cnv = img instanceof HTMLCanvasElement ? img : img.toCanvas();\n triggerPaste(new index_1.ImgRefCtx(cnv));\n}\nfunction error(error, mes) {\n var _a, _b;\n pasting = false;\n for (var a in listeners) {\n (_b = (_a = listeners[a]).error) === null || _b === void 0 ? void 0 : _b.call(_a, mes, error);\n }\n}\nfunction startDragNDrop() {\n var getitem = function (items) {\n var foundimage = \"\";\n for (var a = 0; a < items.length; a++) {\n var item = items[a];\n var m = item.type.match(/^image\\/(\\w+)$/);\n if (m) {\n if (m[1] == \"png\") {\n return item;\n }\n else {\n foundimage = m[1];\n }\n }\n }\n if (foundimage) {\n error(\"notpng\", \"The image you uploaded is not a .png image. Other image type have compression noise and can't be used for image detection.\");\n }\n return null;\n };\n window.addEventListener(\"dragover\", function (e) {\n e.preventDefault();\n });\n window.addEventListener(\"drop\", function (e) {\n if (!e.dataTransfer) {\n return;\n }\n var item = getitem(e.dataTransfer.items);\n e.preventDefault();\n if (!item) {\n return;\n }\n fromFile(item.getAsFile());\n });\n}\nexports.startDragNDrop = startDragNDrop;\nfunction start() {\n if (started) {\n return;\n }\n started = true;\n //determine if we have a clipboard api\n //try{a=new Event(\"clipboard\"); a=\"clipboardData\" in a;}\n //catch(e){a=false;}\n var ischrome = !!navigator.userAgent.match(/Chrome/) && !navigator.userAgent.match(/Edge/);\n //old method breaks after chrome 41, revert to good old user agent sniffing\n //nvm, internet explorer (edge) decided that it wants to be chrome, however fails at delivering\n //turns out this one is interesting, edge is a hybrid between the paste api's\n var apipasted = function (e) {\n if (!e.clipboardData) {\n return;\n }\n for (var a = 0; a < e.clipboardData.items.length; a++) { //loop all data types\n if (e.clipboardData.items[a].type.indexOf(\"image\") != -1) {\n var file = e.clipboardData.items[a].getAsFile();\n if (file) {\n var img = new Image();\n img.src = (window.URL || window.webkitURL).createObjectURL(file);\n if (img.width > 0) {\n pasted(img);\n }\n else {\n img.onload = function () { pasted(img); };\n }\n }\n }\n }\n };\n if (ischrome) {\n document.addEventListener(\"paste\", apipasted);\n }\n else {\n var catcher = document.createElement(\"div\");\n catcher.setAttribute(\"contenteditable\", \"\");\n catcher.className = \"forcehidden\"; //retarded ie safety/bug, cant apply styles using js//TODO i don't even know what's going on\n catcher.onpaste = function (e) {\n if (e.clipboardData && e.clipboardData.items) {\n apipasted(e);\n return;\n }\n setTimeout(function () {\n var b = catcher.children[0];\n if (!b || b.tagName != \"IMG\") {\n return;\n }\n var img = new Image();\n img.src = b.src;\n var a = img.src.match(/^data:([\\w\\/]+);/);\n if (img.width > 0) {\n pasted(img);\n }\n else {\n img.onload = function () { pasted(img); };\n }\n catcher.innerHTML = \"\";\n }, 1);\n };\n document.body.appendChild(catcher);\n }\n //detect if ctrl-v is pressed and focus catcher if needed\n document.addEventListener(\"keydown\", function (e) {\n if (e.target.tagName == \"INPUT\") {\n return;\n }\n if (e.keyCode != \"V\".charCodeAt(0) || !e.ctrlKey) {\n return;\n }\n pasting = true;\n setTimeout(function () {\n if (pasting) {\n error(\"noimg\", \"You pressed Ctrl+V, but no image was pasted by your browser, make sure your clipboard contains an image, and not a link to an image.\");\n }\n }, 1000);\n if (catcher) {\n catcher.focus();\n }\n });\n}\nexports.start = start;\nfunction fileDialog() {\n var fileinput = document.createElement(\"input\");\n fileinput.type = \"file\";\n fileinput.accept = \"image/png\";\n fileinput.onchange = function () { if (fileinput.files && fileinput.files[0]) {\n fromFile(fileinput.files[0]);\n } };\n fileinput.click();\n return fileinput;\n}\nexports.fileDialog = fileDialog;\nfunction fromFile(file) {\n if (!file) {\n return;\n }\n var reader = new FileReader();\n reader.onload = function () {\n var bytearray = new Uint8Array(reader.result);\n if (ImageDetect.isPngBuffer(bytearray)) {\n ImageDetect.clearPngColorspace(bytearray);\n }\n var blob = new Blob([bytearray], { type: \"image/png\" });\n var img = new Image();\n img.onerror = () => error(\"invalidfile\", \"The file you uploaded could not be opened as an image.\");\n var bloburl = URL.createObjectURL(blob);\n img.src = bloburl;\n if (img.width > 0) {\n pasted(img);\n URL.revokeObjectURL(bloburl);\n }\n else {\n img.onload = function () { pasted(img); URL.revokeObjectURL(bloburl); };\n }\n };\n reader.readAsArrayBuffer(file);\n}\n\n\n/***/ }),\n\n/***/ \"./src/base/rect.ts\":\n/*!**************************!*\\\n !*** ./src/base/rect.ts ***!\n \\**************************/\n/***/ ((__unused_webpack_module, exports) => {\n\n\n//util class for rectangle maths\n//TODO shit this sucks can we remove it again?\n//more of a shorthand to get {x,y,width,height} than a class\n//kinda starting to like it again\n//TODO remove rant\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n;\n/**\n * Simple rectangle class with some util functions\n */\nclass Rect {\n constructor(x, y, w, h) {\n this.x = x;\n this.y = y;\n this.width = w;\n this.height = h;\n }\n static fromArgs(...args) {\n if (typeof args[0] == \"object\") {\n return new Rect(args[0].x, args[0].y, args[0].width, args[0].height);\n }\n else if (typeof args[0] == \"number\" && args.length >= 4) {\n return new Rect(args[0], args[1], args[2], args[3]);\n }\n else {\n throw new Error(\"invalid rect args\");\n }\n }\n /**\n * Resizes this Rect to include the full size of a given second rectangle\n */\n union(r2) {\n var x = Math.min(this.x, r2.x);\n var y = Math.min(this.y, r2.y);\n this.width = Math.max(this.x + this.width, r2.x + r2.width) - x;\n this.height = Math.max(this.y + this.height, r2.y + r2.height) - y;\n this.x = x;\n this.y = y;\n return this;\n }\n /**\n * Resizes this Rect to include a given point\n */\n includePoint(x, y) {\n this.union(new Rect(x, y, 0, 0));\n }\n /**\n * Grows the rectangle with the given dimensions\n */\n inflate(w, h) {\n this.x -= w;\n this.y -= h;\n this.width += 2 * w;\n this.height += 2 * h;\n }\n /**\n * Resizes this Rect to the area that overlaps a given Rect\n * width and height will be set to 0 if the intersection does not exist\n */\n intersect(r2) {\n if (this.x < r2.x) {\n this.width -= r2.x - this.x;\n this.x = r2.x;\n }\n if (this.y < r2.y) {\n this.height -= r2.y - this.y;\n this.y = r2.y;\n }\n this.width = Math.min(this.x + this.width, r2.x + r2.width) - this.x;\n this.height = Math.min(this.y + this.height, r2.y + r2.height) - this.y;\n if (this.width <= 0 || this.height <= 0) {\n this.width = 0;\n this.height = 0;\n }\n }\n /**\n * Returns wether this Rect has at least one pixel overlap with a given Rect\n */\n overlaps(r2) {\n return this.x < r2.x + r2.width && this.x + this.width > r2.x && this.y < r2.y + r2.height && this.y + this.height > r2.y;\n }\n /**\n * Returns wether a given Rect fits completely inside this Rect\n * @param r2\n */\n contains(r2) {\n return this.x <= r2.x && this.x + this.width >= r2.x + r2.width && this.y <= r2.y && this.y + this.height >= r2.y + r2.height;\n }\n /**\n * Returns wether a given point lies inside this Rect\n */\n containsPoint(x, y) {\n return this.x <= x && this.x + this.width > x && this.y <= y && this.y + this.height > y;\n }\n}\nexports[\"default\"] = Rect;\n\n\n/***/ }),\n\n/***/ \"./src/base/wrapper.ts\":\n/*!*****************************!*\\\n !*** ./src/base/wrapper.ts ***!\n \\*****************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.captureStream = exports.captureMultiAsync = exports.captureAsync = exports.ImageStreamReader = exports.once = exports.removeListener = exports.on = exports.addResizeElement = exports.getMousePosition = exports.hasAlt1Version = exports.resetEnvironment = exports.identifyApp = exports.unmixColor = exports.mixColor = exports.encodeImageString = exports.decodeImageString = exports.transferImageData = exports.captureHoldFullRs = exports.captureHoldScreen = exports.captureHold = exports.capture = exports.getdisplaybounds = exports.requireAlt1 = exports.openbrowser = exports.skinName = exports.hasAlt1 = exports.newestversion = exports.Alt1Error = exports.NoAlt1Error = void 0;\nconst rect_1 = __importDefault(__webpack_require__(/*! ./rect */ \"./src/base/rect.ts\"));\nconst imgref_1 = __webpack_require__(/*! ./imgref */ \"./src/base/imgref.ts\");\nconst imagedata_extensions_1 = __webpack_require__(/*! ./imagedata-extensions */ \"./src/base/imagedata-extensions.ts\");\n__webpack_require__(/*! ./alt1api */ \"./src/base/alt1api.ts\");\n/**\n * Thrown when a method is called that can not be used outside of Alt1\n */\nclass NoAlt1Error extends Error {\n constructor() {\n super();\n this.message = \"This method can not be ran outside of Alt1\";\n }\n}\nexports.NoAlt1Error = NoAlt1Error;\n;\n/**\n * Thrown when the Alt1 API returns an invalid result\n * Errors of a different type are throw when internal Alt1 errors occur\n */\nclass Alt1Error extends Error {\n}\nexports.Alt1Error = Alt1Error;\n/**\n * The latest Alt1 version\n */\nexports.newestversion = \"1.5.5\";\n/**\n * Whether the Alt1 API is available\n */\nexports.hasAlt1 = (typeof alt1 != \"undefined\");\n/**\n * The name of the Alt1 interface skin. (Always \"default\" if running in a browser)\n */\nexports.skinName = exports.hasAlt1 ? alt1.skinName : \"default\";\n/**\n * Max number of bytes that can be sent by alt1 in one function\n * Not completely sure why this number is different than window.alt1.maxtranfer\n */\nvar maxtransfer = 4000000;\n/**\n * Open a link in the default browser\n * @deprecated use window.open instead\n */\nfunction openbrowser(url) {\n if (exports.hasAlt1) {\n alt1.openBrowser(url);\n }\n else {\n window.open(url, '_blank');\n }\n}\nexports.openbrowser = openbrowser;\n/**\n * Throw if Alt1 API is not available\n */\nfunction requireAlt1() {\n if (!exports.hasAlt1) {\n throw new NoAlt1Error();\n }\n}\nexports.requireAlt1 = requireAlt1;\n/**\n * Returns an object with a rectangle that spans all screens\n */\nfunction getdisplaybounds() {\n if (!exports.hasAlt1) {\n return false;\n }\n return new rect_1.default(alt1.screenX, alt1.screenY, alt1.screenWidth, alt1.screenHeight);\n}\nexports.getdisplaybounds = getdisplaybounds;\n/**\n * gets an imagebuffer with pixel data about the requested region\n */\nfunction capture(...args) {\n //TODO change null return on error into throw instead (x3)\n if (!exports.hasAlt1) {\n throw new NoAlt1Error();\n }\n var rect = rect_1.default.fromArgs(...args);\n if (alt1.capture) {\n return new imagedata_extensions_1.ImageData(alt1.capture(rect.x, rect.y, rect.width, rect.height), rect.width, rect.height);\n }\n var buf = new imagedata_extensions_1.ImageData(rect.width, rect.height);\n if (rect.width * rect.height * 4 <= maxtransfer) {\n var data = alt1.getRegion(rect.x, rect.y, rect.width, rect.height);\n if (!data) {\n return null;\n }\n decodeImageString(data, buf, 0, 0, rect.width, rect.height);\n }\n else {\n //split up the request to to exceed the single transfer limit (for now)\n var x1 = rect.x;\n var ref = alt1.bindRegion(rect.x, rect.y, rect.width, rect.height);\n if (ref <= 0) {\n return null;\n }\n while (x1 < rect.x + rect.width) {\n var x2 = Math.min(rect.x + rect.width, Math.floor(x1 + (maxtransfer / 4 / rect.height)));\n var data = alt1.bindGetRegion(ref, x1, rect.y, x2 - x1, rect.height);\n if (!data) {\n return null;\n }\n decodeImageString(data, buf, x1 - rect.x, 0, x2 - x1, rect.height);\n x1 = x2;\n }\n }\n return buf;\n}\nexports.capture = capture;\n/**\n * Makes alt1 bind an area of the rs client in memory without sending it to the js client\n * returns an imgref object which can be used to get pixel data using the imgreftobuf function\n * currently only one bind can exist per app and the ref in (v) will always be 1\n */\nfunction captureHold(x, y, w, h) {\n x = Math.round(x);\n y = Math.round(y);\n w = Math.round(w);\n h = Math.round(h);\n requireAlt1();\n var r = alt1.bindRegion(x, y, w, h);\n if (r <= 0) {\n throw new Alt1Error(\"capturehold failed\");\n }\n return new imgref_1.ImgRefBind(r, x, y, w, h);\n}\nexports.captureHold = captureHold;\n/**\n * Same as captureHoldRegion, but captures the screen instead of the rs client. it also uses screen coordinates instead and can capture outside of the rs client\n */\nfunction captureHoldScreen(x, y, w, h) {\n x = Math.round(x);\n y = Math.round(y);\n w = Math.round(w);\n h = Math.round(h);\n requireAlt1();\n var r = alt1.bindScreenRegion(x, y, w, h);\n if (r <= 0) {\n return false;\n }\n return new imgref_1.ImgRefBind(r, x, y, w, h);\n}\nexports.captureHoldScreen = captureHoldScreen;\n/**\n * bind the full rs window if the rs window can be detected by alt1, otherwise return the full screen\n */\nfunction captureHoldFullRs() {\n return captureHold(0, 0, alt1.rsWidth, alt1.rsHeight);\n}\nexports.captureHoldFullRs = captureHoldFullRs;\n/**\n * returns a subregion from a bound image\n * used internally in imgreftobuf if imgref is a bound image\n * @deprecated This should be handled internall by the imgrefbind.toData method\n */\nfunction transferImageData(handle, x, y, w, h) {\n x = Math.round(x);\n y = Math.round(y);\n w = Math.round(w);\n h = Math.round(h);\n requireAlt1();\n if (alt1.bindGetRegionBuffer) {\n return new imagedata_extensions_1.ImageData(alt1.bindGetRegionBuffer(handle, x, y, w, h), w, h);\n }\n var r = new imagedata_extensions_1.ImageData(w, h);\n var x1 = x;\n while (true) { //split up the request to to exceed the single transfer limit (for now)\n var x2 = Math.min(x + w, Math.floor(x1 + (maxtransfer / 4 / h)));\n var a = alt1.bindGetRegion(handle, x1, y, x2 - x1, h);\n if (!a) {\n throw new Alt1Error();\n }\n decodeImageString(a, r, x1 - x, 0, x2 - x1, h);\n x1 = x2;\n if (x1 == x + w) {\n break;\n }\n ;\n }\n return r;\n}\nexports.transferImageData = transferImageData;\n/**\n * decodes a returned string from alt1 to an imagebuffer\n */\nfunction decodeImageString(imagestring, target, x, y, w, h) {\n var bin = atob(imagestring);\n var bytes = target.data;\n w |= 0;\n h |= 0;\n var offset = 4 * x + 4 * y * target.width;\n var target_width = target.width | 0;\n for (var a = 0; a < w; a++) {\n for (var b = 0; b < h; b++) {\n var i1 = (offset + (a * 4 | 0) + (b * target_width * 4 | 0)) | 0;\n var i2 = ((a * 4 | 0) + (b * 4 * w | 0)) | 0;\n bytes[i1 + 0 | 0] = bin.charCodeAt(i2 + 2 | 0); //fix weird red/blue swap in c#\n bytes[i1 + 1 | 0] = bin.charCodeAt(i2 + 1 | 0);\n bytes[i1 + 2 | 0] = bin.charCodeAt(i2 + 0 | 0);\n bytes[i1 + 3 | 0] = bin.charCodeAt(i2 + 3 | 0);\n }\n }\n return target;\n}\nexports.decodeImageString = decodeImageString;\n/**\n * encodes an imagebuffer to a string\n */\nfunction encodeImageString(buf, sx = 0, sy = 0, sw = buf.width, sh = buf.height) {\n var raw = \"\";\n for (var y = sy; y < sy + sh; y++) {\n for (var x = sx; x < sx + sw; x++) {\n var i = 4 * x + 4 * buf.width * y | 0;\n raw += String.fromCharCode(buf.data[i + 2 | 0]);\n raw += String.fromCharCode(buf.data[i + 1 | 0]);\n raw += String.fromCharCode(buf.data[i + 0 | 0]);\n raw += String.fromCharCode(buf.data[i + 3 | 0]);\n }\n }\n return btoa(raw);\n}\nexports.encodeImageString = encodeImageString;\n/**\n * mixes the given color into a single int. This format is used by alt1\n */\nfunction mixColor(r, g, b, a = 255) {\n return (b << 0) + (g << 8) + (r << 16) + (a << 24);\n}\nexports.mixColor = mixColor;\nfunction unmixColor(col) {\n var r = (col >> 16) & 0xff;\n var g = (col >> 8) & 0xff;\n var b = (col >> 0) & 0xff;\n return [r, g, b];\n}\nexports.unmixColor = unmixColor;\nfunction identifyApp(url) {\n if (exports.hasAlt1) {\n alt1.identifyAppUrl(url);\n }\n}\nexports.identifyApp = identifyApp;\nfunction resetEnvironment() {\n exports.hasAlt1 = (typeof alt1 != \"undefined\");\n exports.skinName = exports.hasAlt1 ? alt1.skinName : \"default\";\n}\nexports.resetEnvironment = resetEnvironment;\nfunction convertAlt1Version(str) {\n var a = str.match(/^(\\d+)\\.(\\d+)\\.(\\d+)$/);\n if (!a) {\n throw new RangeError(\"Invalid version string\");\n }\n return (+a[1]) * 1000 * 1000 + (+a[2]) * 1000 + (+a[3]) * 1;\n}\nvar cachedVersionInt = -1;\n/**\n * checks if alt1 is running and at least the given version. versionstr should be a string with the version eg: 1.3.2\n * @param versionstr\n */\nfunction hasAlt1Version(versionstr) {\n if (!exports.hasAlt1) {\n return false;\n }\n if (cachedVersionInt == -1) {\n cachedVersionInt = alt1.versionint;\n }\n return cachedVersionInt >= convertAlt1Version(versionstr);\n}\nexports.hasAlt1Version = hasAlt1Version;\n/**\n * Gets the current cursor position in the game, returns null if the rs window is not active (alt1.rsActive)\n */\nfunction getMousePosition() {\n var pos = alt1.mousePosition;\n if (pos == -1) {\n return null;\n }\n return { x: pos >>> 16, y: pos & 0xFFFF };\n}\nexports.getMousePosition = getMousePosition;\n/**\n * Registers a given HTML element as a frame border, when this element is dragged by the user the Alt1 frame will resize accordingly\n * Use the direction arguements to make a given direction stick to the mouse. eg. Only set left to true to make the element behave as the left border\n * Or set all to true to move the whole window. Not all combinations are permitted\n */\nfunction addResizeElement(el, left, top, right, bot) {\n if (!exports.hasAlt1 || !alt1.userResize) {\n return;\n }\n el.addEventListener(\"mousedown\", function (e) {\n alt1.userResize(left, top, right, bot);\n e.preventDefault();\n });\n}\nexports.addResizeElement = addResizeElement;\n/**\n * Add an event listener\n */\nfunction on(type, listener) {\n if (!exports.hasAlt1) {\n return;\n }\n if (!alt1.events) {\n alt1.events = {};\n }\n if (!alt1.events[type]) {\n alt1.events[type] = [];\n }\n alt1.events[type].push(listener);\n}\nexports.on = on;\n/**\n * Removes an event listener\n */\nfunction removeListener(type, listener) {\n var elist = exports.hasAlt1 && alt1.events && alt1.events[type];\n if (!elist) {\n return;\n }\n var i = elist.indexOf(listener);\n if (i == -1) {\n return;\n }\n elist.splice(i, 1);\n}\nexports.removeListener = removeListener;\n/**\n * Listens for the event to fire once and then stops listening\n * @param event\n * @param cb\n */\nfunction once(type, listener) {\n var fn = (e) => {\n removeListener(type, fn);\n listener(e);\n };\n on(type, fn);\n}\nexports.once = once;\n;\n/**\n * Used to read a set of images from a binary stream returned by the Alt1 API\n */\nclass ImageStreamReader {\n constructor(reader, ...args) {\n this.framebuffer = null;\n this.pos = 0;\n this.reading = false;\n this.closed = false;\n //paused state\n this.pausedindex = -1;\n this.pausedbuffer = null;\n this.streamreader = reader;\n if (args[0] instanceof imagedata_extensions_1.ImageData) {\n this.setFrameBuffer(args[0]);\n }\n else if (typeof args[0] == \"number\") {\n this.setFrameBuffer(new imagedata_extensions_1.ImageData(args[0], args[1]));\n }\n }\n /**\n *\n */\n setFrameBuffer(buffer) {\n if (this.reading) {\n throw new Error(\"can't change framebuffer while reading\");\n }\n this.framebuffer = buffer;\n }\n /**\n * Closes the underlying stream and ends reading\n */\n close() {\n this.streamreader.cancel();\n }\n /**\n * Reads a single image from the stream\n */\n async nextImage() {\n if (this.reading) {\n throw new Error(\"already reading from this stream\");\n }\n if (!this.framebuffer) {\n throw new Error(\"framebuffer not set\");\n }\n this.reading = true;\n var synctime = -Date.now();\n var starttime = Date.now();\n var r = false;\n while (!r) {\n if (this.pausedindex != -1 && this.pausedbuffer) {\n r = this.readChunk(this.pausedindex, this.framebuffer.data, this.pausedbuffer);\n }\n else {\n synctime += Date.now();\n var res = await this.streamreader.read();\n synctime -= Date.now();\n if (res.done) {\n throw new Error(\"Stream closed while reading\");\n }\n var data = res.value;\n r = this.readChunk(0, this.framebuffer.data, data);\n }\n }\n synctime += Date.now();\n //console.log(\"Decoded async image, \" + this.framebuffer.width + \"x\" + this.framebuffer.height + \" time: \" + (Date.now() - starttime) + \"ms (\" + synctime + \"ms main thread)\");\n this.reading = false;\n return this.framebuffer;\n }\n readChunk(i, framedata, buffer) {\n //very hot code, explicit int32 casting with |0 speeds it up by ~ x2\n i = i | 0;\n var framesize = framedata.length | 0;\n var pos = this.pos;\n var datalen = buffer.length | 0;\n //var data32 = new Float64Array(buffer.buffer);\n //var framedata32 = new Float64Array(framedata.buffer);\n //fix possible buffer misalignment\n //align to 16 for extra loop unrolling\n while (i < datalen) {\n //slow loop, fix alignment and other issues\n while (i < datalen && pos < framesize && (pos % 16 != 0 || !((i + 16 | 0) <= datalen && (pos + 16 | 0) <= framesize))) {\n var rel = pos;\n if (pos % 4 == 0) {\n rel = rel + 2 | 0;\n }\n if (pos % 4 == 2) {\n rel = rel - 2 | 0;\n }\n framedata[rel | 0] = buffer[i | 0];\n i = i + 1 | 0;\n pos = pos + 1 | 0;\n }\n //fast unrolled loop for large chunks i wish js had some sort of memcpy\n if (pos % 16 == 0) {\n while ((i + 16 | 0) <= datalen && (pos + 16 | 0) <= framesize) {\n framedata[pos + 0 | 0] = buffer[i + 2 | 0];\n framedata[pos + 1 | 0] = buffer[i + 1 | 0];\n framedata[pos + 2 | 0] = buffer[i + 0 | 0];\n framedata[pos + 3 | 0] = buffer[i + 3 | 0];\n framedata[pos + 4 | 0] = buffer[i + 6 | 0];\n framedata[pos + 5 | 0] = buffer[i + 5 | 0];\n framedata[pos + 6 | 0] = buffer[i + 4 | 0];\n framedata[pos + 7 | 0] = buffer[i + 7 | 0];\n framedata[pos + 8 | 0] = buffer[i + 10 | 0];\n framedata[pos + 9 | 0] = buffer[i + 9 | 0];\n framedata[pos + 10 | 0] = buffer[i + 8 | 0];\n framedata[pos + 11 | 0] = buffer[i + 11 | 0];\n framedata[pos + 12 | 0] = buffer[i + 14 | 0];\n framedata[pos + 13 | 0] = buffer[i + 13 | 0];\n framedata[pos + 14 | 0] = buffer[i + 12 | 0];\n framedata[pos + 15 | 0] = buffer[i + 15 | 0];\n //could speed it up another x2 but wouldn't be able to swap r/b swap and possible alignment issues\n //framedata32[pos / 8 + 0 | 0] = data32[i / 8 + 0 | 0];\n //framedata32[pos / 8 + 1 | 0] = data32[i / 8 + 1 | 0];\n //framedata32[pos / 4 + 2 | 0] = data32[i / 4 + 2 | 0];\n //framedata32[pos / 4 + 3 | 0] = data32[i / 4 + 3 | 0];\n pos = pos + 16 | 0;\n i = i + 16 | 0;\n }\n }\n if (pos >= framesize) {\n this.pausedbuffer = null;\n this.pausedindex = -1;\n this.pos = 0;\n if (i != buffer.length - 1) {\n this.pausedbuffer = buffer;\n this.pausedindex = i;\n }\n return true;\n }\n }\n this.pos = pos;\n this.pausedbuffer = null;\n this.pausedindex = -1;\n return false;\n }\n}\nexports.ImageStreamReader = ImageStreamReader;\n/**\n * Asynchronously captures a section of the game screen\n */\nasync function captureAsync(...args) {\n requireAlt1();\n var rect = rect_1.default.fromArgs(...args);\n if (alt1.captureAsync) {\n let img = await alt1.captureAsync(rect.x, rect.y, rect.width, rect.height);\n return new imagedata_extensions_1.ImageData(img, rect.width, rect.height);\n }\n if (!hasAlt1Version(\"1.4.6\")) {\n return capture(rect.x, rect.y, rect.width, rect.height);\n }\n var url = \"https://alt1api/pixel/getregion/\" + encodeURIComponent(JSON.stringify(Object.assign(Object.assign({}, rect), { format: \"raw\", quality: 1 })));\n var res = await fetch(url);\n var imgreader = new ImageStreamReader(res.body.getReader(), rect.width, rect.height);\n return imgreader.nextImage();\n}\nexports.captureAsync = captureAsync;\n/**\n * Asynchronously captures multple area's. This method captures the images in the same render frame if possible\n * @param areas\n */\nasync function captureMultiAsync(areas) {\n requireAlt1();\n var r = {};\n if (alt1.captureMultiAsync) {\n let bufs = await alt1.captureMultiAsync(areas);\n for (let a in areas) {\n if (!bufs[a]) {\n r[a] = null;\n }\n r[a] = new imagedata_extensions_1.ImageData(bufs[a], areas[a].width, areas[a].height);\n }\n return r;\n }\n var capts = [];\n var captids = [];\n for (var id in areas) {\n if (areas[id]) {\n capts.push(areas[id]);\n captids.push(id);\n }\n else {\n r[id] = null;\n }\n }\n if (capts.length == 0) {\n return r;\n }\n if (!hasAlt1Version(\"1.5.1\")) {\n var proms = [];\n for (var a = 0; a < capts.length; a++) {\n proms.push(captureAsync(capts[a]));\n }\n var results = await Promise.all(proms);\n for (var a = 0; a < capts.length; a++) {\n r[captids[a]] = results[a];\n }\n }\n else {\n var res = await fetch(\"https://alt1api/pixel/getregionmulti/\" + encodeURIComponent(JSON.stringify({ areas: capts, format: \"raw\", quality: 1 })));\n var imgreader = new ImageStreamReader(res.body.getReader());\n for (var a = 0; a < capts.length; a++) {\n var capt = capts[a];\n imgreader.setFrameBuffer(new imagedata_extensions_1.ImageData(capt.width, capt.height));\n r[captids[a]] = await imgreader.nextImage();\n }\n }\n return r;\n}\nexports.captureMultiAsync = captureMultiAsync;\n/**\n * Starts capturing a realtime stream of the game. Make sure you keep reading the stream and close it when you're done or Alt1 WILL crash\n * @param framecb Called whenever a new frame is decoded\n * @param errorcb Called whenever an error occurs, the error is rethrown if not defined\n * @param fps Maximum fps of the stream\n */\nfunction captureStream(x, y, width, height, fps, framecb, errorcb) {\n requireAlt1();\n if (!hasAlt1Version(\"1.4.6\")) {\n throw new Alt1Error(\"This function is not supported in this version of Alt1\");\n }\n var url = \"https://alt1api/pixel/streamregion/\" + encodeURIComponent(JSON.stringify({ x, y, width, height, fps, format: \"raw\" }));\n var res = fetch(url).then(async (res) => {\n var reader = new ImageStreamReader(res.body.getReader(), width, height);\n try {\n while (!reader.closed && !state.closed) {\n var img = await reader.nextImage();\n if (!state.closed) {\n framecb(img);\n state.framenr++;\n }\n }\n }\n catch (e) {\n if (!state.closed) {\n reader.close();\n if (errorcb) {\n errorcb(e);\n }\n else {\n throw e;\n }\n }\n }\n if (!reader.closed && state.closed) {\n reader.close();\n }\n });\n var state = {\n x, y, width, height,\n framenr: 0,\n close: () => { state.closed = true; },\n closed: false,\n };\n return state;\n}\nexports.captureStream = captureStream;\n\n\n/***/ }),\n\n/***/ \"canvas\":\n/*!*************************!*\\\n !*** external \"canvas\" ***!\n \\*************************/\n/***/ ((module) => {\n\nif(typeof __WEBPACK_EXTERNAL_MODULE_canvas__ === 'undefined') { var e = new Error(\"Cannot find module 'canvas'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_canvas__;\n\n/***/ }),\n\n/***/ \"electron/common\":\n/*!**********************************!*\\\n !*** external \"electron/common\" ***!\n \\**********************************/\n/***/ ((module) => {\n\nif(typeof __WEBPACK_EXTERNAL_MODULE_electron_common__ === 'undefined') { var e = new Error(\"Cannot find module 'electron/common'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_electron_common__;\n\n/***/ }),\n\n/***/ \"sharp\":\n/*!************************!*\\\n !*** external \"sharp\" ***!\n \\************************/\n/***/ ((module) => {\n\nif(typeof __WEBPACK_EXTERNAL_MODULE_sharp__ === 'undefined') { var e = new Error(\"Cannot find module 'sharp'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_sharp__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/global */\n/******/ \t(() => {\n/******/ \t\t__webpack_require__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t})();\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(\"./src/base/index.ts\");\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"alt1/base\"), require(\"alt1/ocr\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"alt1/base\", \"alt1/ocr\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"dialog\"] = factory(require(\"alt1/base\"), require(\"alt1/ocr\"));\n\telse\n\t\troot[\"Dialog\"] = factory(root[\"A1lib\"], root[\"OCR\"]);\n})(globalThis, (__WEBPACK_EXTERNAL_MODULE_alt1_base__, __WEBPACK_EXTERNAL_MODULE_alt1_ocr__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./src/dialog/imgs/boxtl.data.png\":\n/*!****************************************!*\\\n !*** ./src/dialog/imgs/boxtl.data.png ***!\n \\****************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAx0lEQVQ4T5VRywrCMBBMaytYyMFHDw16CNWDBg8WoWAFpTf//4ecsGENMQ0UhmVmO5PdNEKZru0GVCLEL/cnS/MYwU3/Jo+AFiKbgevrE7bSmArksgk6DumVsrIKOmJ/G8JWGrMvjUBkbgLBhFzufBkB7uBPQKDcKJYR4C39ALhUuqj15J7/KwHIVIfztjWoZXOkmYuVtB4OQAM4GAFUh+UabmelZ0GANXdh+mW83eyoUz/ykeQm0G4g/j+wnC9NNQAl+VNR6y/yyxm6AFlANgAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/boxtl_leg.data.png\":\n/*!********************************************!*\\\n !*** ./src/dialog/imgs/boxtl_leg.data.png ***!\n \\********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAE0SURBVDhPjZFNTsMwEIVtJ45D05YmLVKBJRISsOIILNiw5QosOXpIKcpPHduFl0wINAHEJ+tpPB6/Gcv8+emRHZIX1TQ6QuBLbs37QNnVxQlj/P+L31yuH+7vZrNptt2QhxSy0vXe6SAMlYrQqshzyiPmt9fny2WslMqyrQr4+vQsTV8m0eTtdRNN582IjGmtob4nrNsLiqBJcjxfxKhGXBblIk6cNVL68AKwQDUCUVuHCsJZR8egrCpkdq0SSEIbb89vhoOZ53vNSYv0JeVpHni16fYCYYztsz10hzDWQEXQulI7Aq266BD0hHYdqC+BVl30CXlDUUZv+Bp9DIrIG4pBxE7XdPAb/bTkK0IVjN/6I1QmVquE9mMGo2KLJdI06xIjBOff72CLn/rr0YOfwVZr/QEeBH9rQlJ0YgAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/boxtr.data.png\":\n/*!****************************************!*\\\n !*** ./src/dialog/imgs/boxtr.data.png ***!\n \\****************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA3UlEQVQ4T6WTwQrCMBBEk9oKigEVFSweLOLF6sFehOYgePP/P2jNrE1ZcJFUD68J2cwkO23NofF0vD0IY1k3VLfveXVu+jWMALVYxzowxtjw+A2YGVtM1WIKl/szjEohlb8NuAWtkMru6sMYJplbkR0vKF9XH5s0kBs0fYgxyJRAM7clV1YMGxB9R4pxAG6J04tlOdwAIm63uzVnoIkk2unRAF+kKpJEg9HEcdAwQA59iJpIEg2kEEa4QbIBNkMYM0Arg0NEC1KM14i/WBVJuPcutHy+YQMw259CiJ5egv+YzBEq3jQAAAAASUVORK5CYII=\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/boxtr_leg.data.png\":\n/*!********************************************!*\\\n !*** ./src/dialog/imgs/boxtr_leg.data.png ***!\n \\********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAFgSURBVDhPnZO9TsMwFIWPHZuUpo2g6hswsbMzsbEgMfAKiIUnYOWNWBh4F1CFhFKKojatmx/jY+E2RRWK+KSrm9ycHF//iceHO7tal5hM3tGLDyAkIIVAY+0maxUBjYApDYSwOOgdulqMxXwOAbjKPzk9GUPc315bLTWWZo2mNs69hzhOvIAjKC3A72Q4HOAj+9zUnp5fIG6uzm2WTdFP+si/ZkgGqRcTY4zPKpKo6sbnfjJAsZj79+l0BsmfSbEocHQ8Ql2V0Fq5LmIfNKaYz8x5nvsckEHIKJZLX1z95AC/kTRNN1rpullXNdyab9FKI3JBQvu1EwVCjVBLdgwCwSRQumm1aRsJ6/b5Ly4vzvYKInc23l4n+zv4DTtoj0pUpHzuZMD5hoUMBMNOBmx3Hyt3+DoZhJ3g+Wib8e507oBRltXOto7Ho24GvJVcNHbACGTuXnQy4MhcNGbGdhrAN5b0ly21yuFfAAAAAElFTkSuQmCC\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimg.data.png\":\n/*!******************************************!*\\\n !*** ./src/dialog/imgs/chatimg.data.png ***!\n \\******************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAAwUlEQVQYV2OYPGlSV1dXcnJyRmqSqbUdQ3VNNRB5uTkJCwuLKqgxtLS0ACVVFGQ4eQUFpRUZgBxHWytOHl4oX0tLS1lZGaiYkZOXW1CUQVXXGChkbGwsJSUFFGI4YM+fqycmpahqoG8AVMVwxJipUptPUFIOqEtEkJdBT4JPSVYSqBgoCTSSQUVLG8QCms/DCzI/OjrK0syEgYERaDiI7+3lHRwcDNQC5bu6ukKEgLp4RKUZsjPSgEJAfrC/t7GhHgChFSifluVS6gAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimg_leg.data.png\":\n/*!**********************************************!*\\\n !*** ./src/dialog/imgs/chatimg_leg.data.png ***!\n \\**********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEOSURBVChTVY+7SgNBFIZnZ3aTWdCYddVcRBIVREEC2gcsFnwMO9/JxsrGzkbQB1AkleArWJjLXhRhJnNbf9ltcviL/3z/nDMzXjI+Hx0PDoadh6dJI6DGOUKIT6kPenZ6eHv/fDTo7vbbRSF5GCCjoDd3j/v9rThel0sLKoWG2DzN97rxdrwhlFHaCqGNdRAF7e1EUhlrHIQl1sAbGjb/N1aFXgqptYEoD3nx/Yu+QvURXI6+tqtFPcpru1os3my5oBX6tgaEaOtcWbKmTywJGF+rMlA8Cgm9vkry+ed0luXLxo9Q+I12JcSGvc7F+ORt8oE5a32pvEositqeI5fJ6OX1/Ws2TbNFUWR5nv4B2LeYEU2WizoAAAAASUVORK5CYII=\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimgactive.data.png\":\n/*!************************************************!*\\\n !*** ./src/dialog/imgs/chatimgactive.data.png ***!\n \\************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAApklEQVQYV2Po6upqaWmJjo4CIk1dQ4ZiMLCzNGVgYGQRkGCorqmOjggTEeQF8hm4BRmCg4ONDfVAHAhfWVlZWFgYygciKUVVSVkFoCgnD1jLHkOGZHlWbkFRoBCIf0CdIV+GgZGTF6pLnoNBkJcLqhiIBCXloCwgAprv7eWtraGG4FtZWXq5OQG1QPnGxsaurq5AIRCfhYshKTYKqASoy83RRkVBBgAFhh2w1olrrAAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimgactive_leg.data.png\":\n/*!****************************************************!*\\\n !*** ./src/dialog/imgs/chatimgactive_leg.data.png ***!\n \\****************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEESURBVChTPY4xTgMxEEXtmfFmE1hpRSQECqIIVRBCEanpuABnyImo09FzASokjgAVVUQBURpCSMiKHdt8ZwVf1mj8/veM7dXlxbBfnvTad4/vmSMNwRgjRAJ6fno4uX3IssA5k5KV5BHozeQedK9s5bm0dwmVmfh1OisLAa3rEJV8DCFE7wOBFjsO1AbGBAg0jerkDNTQSL6hyRDrfIjN5f8RRPpjmCw6NEhgjakdKknWJGCnhFj8yKDSfK7IQla2/p+46LBRaTkiNlETwvoYDY2vBx/V6m2x2u5IpxH3j4+Gg4Pnl1mluvSi335TBRwuu/vO+NFZ72m6+FxvlnW99v5L9ReDbXkhpJVqYwAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimghover.data.png\":\n/*!***********************************************!*\\\n !*** ./src/dialog/imgs/chatimghover.data.png ***!\n \\***********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAAz0lEQVQYV2M4dfLEjp07W1pamhrrnL38GFavXr10yeKk2ChhYWEpFW2GLVu2dLQ1a2uocfIKiipoMABVRoaFcPLwcguKiiqoMVhZWRob6kmKCgGFBMSkGUztnU2t7VxdXZWVlYFCDP9DhSfbyaloaQMVSklJMfz3YF1sJSylqKqlpQW0gsFOQVhLTRnC4RGVZjAyBymDma/BUF1T7e3lzcDACJQUlFZkSE5OLsjNAmoByoP4YZGR2RlpQCGgLpD+Sb2d0dFR2dnZQC8Y6WkBAPN1NR2AAHfmAAAAAElFTkSuQmCC\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/chatimghover_leg.data.png\":\n/*!***************************************************!*\\\n !*** ./src/dialog/imgs/chatimghover_leg.data.png ***!\n \\***************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEjSURBVChTVc89SwNBEIDh2727fChqFosQLExMY4gIsbOIBLT0B9joX9RKTCOksLESSa1Y5TSa+8rdze7s7jl4lfAUw7sMy7CL8cnx4f5Bt3338FzzubbWcRyPc4/q6Kg/nT7eXA72erurz2xHNCBXnOrt/ex01G2JjSwq6nUeh5Ci67ISR30x7DVXqQVAkmegC+BUOx3xFhilNEmTQgIS3qh79JtWOksKkudQ4TXPWyxCpXWSAQGpK3wZrmmDJqn+4VSryRgkIFXF3doUvldyVtJlf8c5gFbbkh5qa822mz5FUBYRpTJaG359dRYE3/OPKEpgncu0MBJtCMztdtqT8eDl9V0xP0cXFe05BktXiBazzvlkOHuaB8vVVxj/xOkySn4BoaPZbEW+44oAAAAASUVORK5CYII=\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/continueimg.data.png\":\n/*!**********************************************!*\\\n !*** ./src/dialog/imgs/continueimg.data.png ***!\n \\**********************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAABTklEQVRIS72PMUsDQRCFB2Jjk85KsPEPmMYmgig2gWAlKWwCIiIihIC1WIpiJZY2SpqgpLCQNDZRAjZWHqmvsVEQ1Ebl8J0D4zIXD5HdgY/lzey7fffoeVD9fFxikpfaP/jLhxLhojy+kPdRjZKokhIvBieqIC+6WcVpkfjdiz5u55P7BR6CgqDu2dbeaQdnGpoxeAcpaT0buBsD/XQ1pwwhoPde2YDX/oxbTxpir5x+sasXt8vZhm/9knL6hR5OJm0YHI2D9c1GdeWH7sG0svmF4uMJA7jbbnPW7YaR98rsC7xMHGBAttvd/pjyeIeQYcD1TtGtB42N8oSAettFBnkgR+SPEIxaytVlc5Qb4oQG7q37FSOjMiibQjwMcZIBnY0RcNiYYqFuA0GtOl0s0/laYSj4D6XdjSBLCLENdQru7W9OeUpGhsd8YGvV6Qu6U2ehlR3eegAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/continueimg_leg.data.png\":\n/*!**************************************************!*\\\n !*** ./src/dialog/imgs/continueimg_leg.data.png ***!\n \\**************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAASPSURBVEhLrVZLaFxVGD7nPubeO5NMZpIQTYfaNn2RREsrbQXbuOnKR4WCiKtCV2JABF24qTvdCK5ciIWudeFCqkuLC6WKQqVmEVsMjUkTyySTec993+t37n/n5CZNShQ/Dof/db7z/efce2f4J+++PDbqsgz0sN2y9a7NYResmIKPgTVgptY26IOpwViz0cnFdur04XFrqJDw64OargZ+ODKQJPaAWr1td5zs1lq+pKpmztBzYaPWYcxvV9cN/v7sa4cr1ulzz6Oitv7As0OqBnzH6ThRr1VPfcbyxfKAqeimWRotwe1126hHGWW3Fft2jwzdyn/42U2ygatvXaAU4iAsl/KwiQTMoqK/deymbNwoY95oBiZvJwGhhAzSk7PUbr1brdZkCkoWVmzR3jOT+1p+Keita/nRRnVpYEDs1+n0YGAWHAkCvVwyXGyw3lbhbstKtBylaEbNFg4wxRc3bn19fSaf97hy5O8H9y6/9+vrLz2naoIE4Lki6skmZJmJTQZB67DCE0XxZFEKcZKdlKdAcHhIm5tfFe1V9o1hJapjrxUG4vZ8P8BsWgZmx3Z1XYMaMihFoDgMpMjFTJVBIMo0TYPxzfd3Pv/giFUq5y02NHKMOnxxZpoKABgAtiMeLKGgNAjZOGbYMGSQXMsySRKaWlmtpu3B6rS7iEpIIkC6j4JIUycDCnp++qjf/PmPj9/cPzRmjIyXZYcXzhxmqo5sTk9vcjdInj0ChNPTRxcWltXzZ6YUzpuNtud5UQZJXwEMWkBBx/U5Z4qiUFDWIEKGBLKbmkJ/ojJ87cbiC5OFKPYVtTf65LFzx/Offjk3MT7EFDWMYjlUNSUHwEDB1N8zsAQaOp2uaM80crWaeIkl3W7DdV0ehX4Y+0GIIYK+F8YctpS1RVPoszhygwjuU+Pl69/+9cYrxcDrdZvL+4+ffPrg4LWvfhcdxhGaTFYLZXJQ5L+hULAcx+XvXLnIrOFWdVlIAZKnZRvQVWrtAsMQbymBig1NdIvGkpjAj7/d/2h2Csbd+bWV9bXbS2a96Zw/dYgqBR7dGpIQ3F3YYzA2NtyoN9WTkwcCp92znfTM+tB4LA4VZ5/5lmSBWwtjRoNF6SqAsqCy/UgW/HRn8erlibxqz99tNZuL9Vb050N29sRBVeG0r6bgoe+/gaGPTUEFBi/ZnYRJSZuVu0M8nVGknjhaCYMgK4UG1KMIvJiznciRxbYURIvlUcC4gvmXuaW3Xy2xwL2/EqG3jY5+a8E4PVXhDI1FIcQmTW4eaHLnJCBLLiUlxyiQLsmcCzEggs+4aO/U5IG2GwoplMCAJiru824BVVJNfxUuD5McUdKVyCMes9W19nihttFouW4Dvf1wL4fekEWK40sV480UTSIC6fKgd4SUhBMRLt180qS48MSliO/hNDi/cmmGVv5fwNnL14nuweT2d7cfwiga4n/Z2elDIpfAiS3MKCBj8z38lyiqvpP5DyjBZy8+qxs5WGEURH76JVB0sY2q7PxbtyOwnAwiIQbp7hFy1Y4QVKrNQnEQBNRnRWrGFsGBG/wD9kSQTvgpZ/YAAAAASUVORK5CYII=\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/continueimgdown.data.png\":\n/*!**************************************************!*\\\n !*** ./src/dialog/imgs/continueimgdown.data.png ***!\n \\**************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAABMklEQVRIS92VoU4DQRCG5wKGNyEo3gB1BtWEYGqaNAGBoQ3BoAiqKVXwDJUEgcAgCQIUBoPgVfg2/2WzGUpqdk40+XqZ3Z3u3Le32bXbQbMc2UaCmj2cbr1dWTSvl4mXC3s82+appsupDmqp3ueNRaN6s+nBaHzCU82Pa59WF9TSihJ9zex7EQgl7s/3cRPEcqNuUGkmRy2tohsIotSTIW/gcurS6f3c9QFf6a8hL+HSKoJatznzPsm7pWyu7FlL+RfmZzdS73BwtNseZ56nOyq9dv6VCerMQwSKZZS+Xj9Hi9wmw73SjSadcQdMOlr4qUYczP+fm3D5VWDapNfPvQelHjE7xyVUJ9173O66ZKNhLWUoNzcaAWqd3vsknFxSgRutjmrZvG34iE9D2zCQmrfNLxl9slarbU3QAAAAAElFTkSuQmCC\")\n\n/***/ }),\n\n/***/ \"./src/dialog/imgs/continueimgdown_leg.data.png\":\n/*!******************************************************!*\\\n !*** ./src/dialog/imgs/continueimgdown_leg.data.png ***!\n \\******************************************************/\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\nmodule.exports=(__webpack_require__(/*! alt1/base */ \"alt1/base\").ImageDetect.imageDataFromBase64)(\"iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAQQSURBVEhL1VW9bxxFFN/52NvbO59sEic5GZMIEHFkAiICKaRDAlGAlJKGioqShpqejn+ABiEoqFIhkIJEk44miSCRyIcSJXawfT6f7253dueD39xbz62/Ekei4ae5pzdv3rz3fm9m59jHb780N5tFu1GWttKOgDjmlXY4DgsY9nKRQkppaAqkup3JUTXZh0IViFlP3UgalTZZhexvpezyu6ePH4u73QXMc+15ltZBxpxBscNxVnhXQtpo8JkWlljccGVlJ394QpKzZSl3WaZYmjiSV69PO/j+mymMUGCHZ+eFhOwEBIek1GQJGJUCYUlHJaRQPVCwZdTrBzsq2eiVnt7phZOYb6u8HRuEoOWAEBGlkKLyPGk2SQ+AkchU8x2oTP/xoPj2m8+gt9qdR3/f/PLr395alILzJJXkQ6CYSBcShR7VU0PCk5ZI7yRNFF9f8l1Lmg8e/yOWFmfjNM1LheWssEbrPWM0NI4Jbdh4O4+YhTTaqrzAwJR8yAg3X8KEUlHosjTWOGPt6sBeXErKfOzc+MTi2UvL7e9+vjPfjIyxlY9GHEvRkI4iI2ae+yWEhU4ZyRMKLZG+PRyHJWxEqb4qFuWZ8vSSpgQ31EQeewbKrSuT+iuQPRjrU+f8jYU0pTs1w3+8+vDCa3NWS602uy8vg+H3v9ydSyxzzBgXce8Jqhi4+BTKR5zAx7QWDkcBBcFIW8lokHt60CaHsKv0A4E0lP6ZgJsu8AFV02Mtd+Xa6jtLLYbuqhEx/OHXe2COVbhhcOEj1+MTK1ggyYIrHfSnA46jceHpzXQ6w8GuNyrEreuFMigCzQ79BgGaCjl9waad3uFWWv8ezrejK9fWPnpvCXdyfWXtzLnzyy+qn35fIYYAMUSiEKGyOxdYOc3wRWJa54wLQg2iwSMhJJMxz7LS/zHMd2cHm0NUD9dGIlgZafQpjrwirDRcTep7CrCLFGzZ70z0bq1FX31+yfLW9b/+XF/Zunl/Y6DSN07teskEF/TaoIBIVO1BAZAuppkHshBghE4y1EyeeLe2+8rTQ3HErQ7KhD349ivT84OIAeD2xScXoNy7/2R9q9/rjWE5dwJ/A1N6CRfTth6UN5QEWad0GEBKnDk+I7kIBx0Ai8HvaBf9MDSUKSy73Ys+/fDVXJnV1R644Q27sWLOzk3uEm4a27nYjKNuYyOc2oE9nZbEOPbS4Yb+gC3zD6cfkYiaPFZai1dOdmod/C+Bo5PGlYxt5FFHqs3+AO83/Q2CGwF/JYEe1Q3lmfeFh45gl/W3GJRwkuCFgTVM8YXjr51dfr0rW3v/o+sXnUB3GvJ5QZ/ijSdeaq2llPXvDRey0nYQsoQaKHXQgf3l4awqrYZBlrMPzi+00IH/P/Yf0iAr/gXJh0N13Pe/YwAAAABJRU5ErkJggg==\")\n\n/***/ }),\n\n/***/ \"./src/dialog/index.ts\":\n/*!*****************************!*\\\n !*** ./src/dialog/index.ts ***!\n \\*****************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst a1lib = __importStar(__webpack_require__(/*! alt1/base */ \"alt1/base\"));\nconst OCR = __importStar(__webpack_require__(/*! alt1/ocr */ \"alt1/ocr\"));\nconst base_1 = __webpack_require__(/*! alt1/base */ \"alt1/base\");\nvar imgs_rs3 = (0, base_1.webpackImages)({\n chatimg: __webpack_require__(/*! ./imgs/chatimg.data.png */ \"./src/dialog/imgs/chatimg.data.png\"),\n chatimghover: __webpack_require__(/*! ./imgs/chatimghover.data.png */ \"./src/dialog/imgs/chatimghover.data.png\"),\n chatimgactive: __webpack_require__(/*! ./imgs/chatimgactive.data.png */ \"./src/dialog/imgs/chatimgactive.data.png\"),\n continueimg: __webpack_require__(/*! ./imgs/continueimg.data.png */ \"./src/dialog/imgs/continueimg.data.png\"),\n continueimgdown: __webpack_require__(/*! ./imgs/continueimgdown.data.png */ \"./src/dialog/imgs/continueimgdown.data.png\"),\n boxtl: __webpack_require__(/*! ./imgs/boxtl.data.png */ \"./src/dialog/imgs/boxtl.data.png\"),\n boxtr: __webpack_require__(/*! ./imgs/boxtr.data.png */ \"./src/dialog/imgs/boxtr.data.png\")\n});\nvar imgs_leg = (0, base_1.webpackImages)({\n chatimg: __webpack_require__(/*! ./imgs/chatimg_leg.data.png */ \"./src/dialog/imgs/chatimg_leg.data.png\"),\n chatimghover: __webpack_require__(/*! ./imgs/chatimghover_leg.data.png */ \"./src/dialog/imgs/chatimghover_leg.data.png\"),\n chatimgactive: __webpack_require__(/*! ./imgs/chatimgactive_leg.data.png */ \"./src/dialog/imgs/chatimgactive_leg.data.png\"),\n continueimg: __webpack_require__(/*! ./imgs/continueimg_leg.data.png */ \"./src/dialog/imgs/continueimg_leg.data.png\"),\n continueimgdown: __webpack_require__(/*! ./imgs/continueimgdown_leg.data.png */ \"./src/dialog/imgs/continueimgdown_leg.data.png\"),\n boxtl: __webpack_require__(/*! ./imgs/boxtl_leg.data.png */ \"./src/dialog/imgs/boxtl_leg.data.png\"),\n boxtr: __webpack_require__(/*! ./imgs/boxtr_leg.data.png */ \"./src/dialog/imgs/boxtr_leg.data.png\")\n});\nvar fontmono = __webpack_require__(/*! ../fonts/aa_8px_mono.fontmeta.json */ \"./src/fonts/aa_8px_mono.fontmeta.json\");\nvar fontheavy = __webpack_require__(/*! ../fonts/aa_8px_mono_allcaps.fontmeta.json */ \"./src/fonts/aa_8px_mono_allcaps.fontmeta.json\");\nclass DialogReader {\n constructor() {\n this.pos = null;\n }\n find(imgref) {\n if (!imgref) {\n imgref = a1lib.captureHoldFullRs();\n }\n if (!imgref) {\n return null;\n }\n var boxes = [];\n for (let imgs of [imgs_rs3, imgs_leg]) {\n var pos = imgref.findSubimage(imgs.boxtl);\n for (var a in pos) {\n var p = pos[a];\n if (imgref.findSubimage(imgs.boxtr, p.x + 492, p.y, 16, 16).length != 0) {\n boxes.push(Object.assign(Object.assign({}, p), { legacy: imgs == imgs_leg }));\n }\n }\n }\n if (boxes.length == 0) {\n return false;\n }\n var box = boxes[0];\n if (boxes.length > 1) {\n console.log(\"More than one dialog box found\");\n }\n this.pos = { x: box.x + 1, y: box.y + 1, width: 506, height: 130, legacy: box.legacy };\n return this.pos;\n }\n ensureimg(imgref) {\n if (!this.pos) {\n return null;\n }\n if (imgref && a1lib.Rect.fromArgs(imgref).contains(this.pos)) {\n return imgref;\n }\n return a1lib.captureHold(this.pos.x, this.pos.y, this.pos.width, this.pos.height);\n }\n read(imgref) {\n imgref = this.ensureimg(imgref);\n if (!imgref) {\n return false;\n }\n let title = this.readTitle(imgref);\n var r = {\n text: null,\n opts: null,\n title\n };\n if (this.checkDialog(imgref)) {\n r.text = this.readDialog(imgref, true);\n return r;\n }\n else {\n var opts = this.findOptions(imgref);\n if (opts.length != 0) {\n r.opts = this.readOptions(imgref, opts);\n return r;\n }\n else {\n return null;\n }\n }\n }\n readTitle(imgref) {\n if (!this.pos) {\n throw new Error(\"position not found yet\");\n }\n var buf = imgref.toData(this.pos.x, this.pos.y, this.pos.width, 32);\n //somehow y coord can change, 19 for \"choose and option:\" 18 for npc names\n var pos = OCR.findChar(buf, fontheavy, [255, 203, 5], Math.round(this.pos.width / 2) - 10, 16, 20, 4);\n if (!pos) {\n return \"\";\n }\n var read = OCR.readSmallCapsBackwards(buf, fontheavy, [[255, 203, 5]], Math.round(this.pos.width / 2) - 10, pos.y, 150, 1);\n return read.text.toLowerCase(); //normalize case since we don't actually know the original\n }\n checkDialog(imgref) {\n if (!this.pos) {\n throw new Error(\"position not found yet\");\n }\n var locs = [];\n let imgs = (this.pos.legacy ? imgs_leg : imgs_rs3);\n locs = locs.concat(imgref.findSubimage(imgs.continueimg, this.pos.x - imgref.x, this.pos.y - imgref.y, this.pos.width, this.pos.height));\n locs = locs.concat(imgref.findSubimage(imgs.continueimgdown, this.pos.x - imgref.x, this.pos.y - imgref.y, this.pos.width, this.pos.height));\n return locs.length != 0;\n }\n readDialog(imgref, checked) {\n if (!this.pos) {\n throw new Error(\"position not found yet\");\n }\n imgref = this.ensureimg(imgref);\n if (!imgref) {\n return null;\n }\n if (!checked) {\n checked = this.checkDialog(imgref);\n }\n if (!checked) {\n return null;\n }\n var lines = [];\n var buf = imgref.toData(this.pos.x, this.pos.y + 33, this.pos.width, 80);\n for (var y = 0; y < buf.height; y++) {\n var hastext = false;\n for (var x = 200; x < 300; x++) {\n var i = x * 4 + y * 4 * buf.width;\n if (buf.data[i] + buf.data[i + 1] + buf.data[i + 2] < 50) {\n hastext = true;\n break;\n }\n }\n if (hastext) {\n var chr = null;\n chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 192, y + 5, 12, 3);\n chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 246, y + 5, 12, 3);\n chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 310, y + 5, 12, 3);\n if (chr) {\n var read = OCR.readLine(buf, fontmono, [0, 0, 0], chr.x, chr.y, true, true);\n if (read.text.length >= 3) {\n lines.push(read.text);\n }\n y = chr.y + 5;\n }\n }\n }\n return lines;\n }\n findOptions(imgref) {\n var locs = [];\n if (!this.pos) {\n throw new Error(\"position not found yet\");\n }\n let imgs = (this.pos.legacy ? imgs_leg : imgs_rs3);\n var a = imgref.findSubimage(imgs.chatimg);\n for (var b in a) {\n locs.push({ x: a[b].x, y: a[b].y, hover: false, active: false });\n }\n var a = imgref.findSubimage(imgs.chatimghover);\n for (var b in a) {\n locs.push({ x: a[b].x, y: a[b].y, hover: true, active: false });\n }\n var a = imgref.findSubimage(imgs.chatimgactive);\n for (var b in a) {\n locs.push({ x: a[b].x, y: a[b].y, hover: false, active: true });\n }\n return locs;\n }\n readOptions(imgref, locs) {\n imgref = this.ensureimg(imgref);\n if (!imgref) {\n return null;\n }\n if (!this.pos) {\n throw new Error(\"interface not found\");\n }\n var buf = imgref.toData();\n if (!locs) {\n locs = this.findOptions(imgref);\n }\n var bgcol = [150, 135, 105];\n var fontcol = this.pos.legacy ? [255, 255, 255] : [174, 208, 224];\n var r = [];\n for (var a = 0; a < locs.length; a++) {\n var dx = locs[a].x + 30;\n var dy = locs[a].y + 6;\n var checkline = imgref.toData(dx, dy, Math.min(500, imgref.width - a), 1);\n var row = null;\n for (var x = 0; x < checkline.width; x++) {\n var i = x * 4;\n if (row) {\n if (coldiff(checkline.data[i], checkline.data[i + 1], checkline.data[i + 2], bgcol[0], bgcol[1], bgcol[2]) < 75) {\n row.width = x + 20;\n break;\n }\n }\n else if (coldiff(checkline.data[i], checkline.data[i + 1], checkline.data[i + 2], fontcol[0], fontcol[1], fontcol[2]) < 100) {\n var text = \"\";\n var chr = OCR.findChar(buf, fontmono, fontcol, dx + x + 2 - imgref.x, dy + 3 - imgref.y, 30, 1);\n if (chr) {\n var read = OCR.readLine(buf, fontmono, fontcol, chr.x, chr.y, true, true);\n var text = read.text;\n }\n row = { text: text, x: dx + x, y: dy, width: 200, buttonx: dx - 31, hover: !!locs[a].hover, active: locs[a].active };\n }\n }\n if (row) {\n r.push(row);\n }\n }\n r.sort((a, b) => a.y - b.y);\n return r;\n }\n}\nexports[\"default\"] = DialogReader;\n//TODO get rid of this or make it standard\nfunction coldiff(r1, g1, b1, r2, g2, b2) {\n return Math.abs(r1 - r2) + Math.abs(g1 - g2) + Math.abs(b1 - b2);\n}\n\n\n/***/ }),\n\n/***/ \"alt1/base\":\n/*!**************************************************************************************************!*\\\n !*** external {\"root\":\"A1lib\",\"commonjs2\":\"alt1/base\",\"commonjs\":\"alt1/base\",\"amd\":\"alt1/base\"} ***!\n \\**************************************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_alt1_base__;\n\n/***/ }),\n\n/***/ \"alt1/ocr\":\n/*!*********************************************************************************************!*\\\n !*** external {\"root\":\"OCR\",\"commonjs2\":\"alt1/ocr\",\"commonjs\":\"alt1/ocr\",\"amd\":\"alt1/ocr\"} ***!\n \\*********************************************************************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_alt1_ocr__;\n\n/***/ }),\n\n/***/ \"./src/fonts/aa_8px_mono.fontmeta.json\":\n/*!*********************************************!*\\\n !*** ./src/fonts/aa_8px_mono.fontmeta.json ***!\n \\*********************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = JSON.parse('{\"chars\":[{\"width\":7,\"bonus\":75,\"chr\":\"a\",\"pixels\":[0,7,187,1,3,221,1,6,170,1,8,255,2,3,255,2,5,187,2,8,255,3,3,255,3,5,255,3,8,221,4,4,238,4,5,255,4,6,204,4,7,255,4,8,238],\"secondary\":false},{\"width\":7,\"bonus\":105,\"chr\":\"b\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,204,1,4,170,1,7,170,1,8,187,2,3,255,2,8,255,3,3,255,3,8,255,4,3,170,4,4,170,4,7,170,5,5,187,5,6,187],\"secondary\":false},{\"width\":7,\"bonus\":50,\"chr\":\"c\",\"pixels\":[0,5,170,0,6,187,1,4,187,1,7,187,2,3,255,2,8,255,3,3,255,3,8,255,4,3,221,4,8,221],\"secondary\":false},{\"width\":7,\"bonus\":105,\"chr\":\"d\",\"pixels\":[0,5,187,0,6,187,1,4,170,1,7,170,1,8,170,2,3,255,2,8,255,3,3,255,3,8,255,4,3,204,4,4,170,4,7,170,4,8,187,5,1,204,5,2,221,5,3,221,5,4,221,5,5,221,5,6,221,5,7,221,5,8,204],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"e\",\"pixels\":[0,5,187,0,6,170,1,4,187,1,5,255,1,7,204,2,3,255,2,5,255,2,8,255,3,3,255,3,5,255,3,8,255,4,3,187,4,5,255,4,8,221,5,5,204],\"secondary\":false},{\"width\":4,\"bonus\":50,\"chr\":\"f\",\"pixels\":[0,3,204,1,2,221,1,3,255,1,4,221,1,5,221,1,6,221,1,7,221,1,8,204,2,1,255,2,3,255],\"secondary\":false},{\"width\":7,\"bonus\":115,\"chr\":\"g\",\"pixels\":[0,5,187,0,6,187,1,3,170,1,4,153,1,7,170,1,11,153,2,3,255,2,8,255,2,11,238,3,3,255,3,8,255,3,11,221,4,3,221,4,7,153,4,8,221,4,10,204,5,3,204,5,4,221,5,5,221,5,6,221,5,7,221,5,8,221,5,9,170],\"secondary\":false},{\"width\":7,\"bonus\":90,\"chr\":\"h\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,170,1,4,204,2,3,255,3,3,255,4,3,170,4,4,221,4,5,221,4,6,221,4,7,221,4,8,204],\"secondary\":false},{\"width\":3,\"bonus\":35,\"chr\":\"i\",\"pixels\":[0,1,238,0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204],\"secondary\":false},{\"width\":4,\"bonus\":50,\"chr\":\"j\",\"pixels\":[0,11,153,1,11,170,2,1,204,2,3,204,2,4,221,2,5,221,2,6,221,2,7,221,2,8,221,2,9,221],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"k\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,5,255,2,4,153,2,5,255,2,6,221,3,3,204,3,7,221],\"secondary\":false},{\"width\":3,\"bonus\":40,\"chr\":\"l\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,1,8,255],\"secondary\":false},{\"width\":10,\"bonus\":115,\"chr\":\"m\",\"pixels\":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,221,2,3,238,3,3,255,4,3,153,4,4,255,4,5,221,4,6,221,4,7,221,4,8,204,5,4,187,6,3,255,7,3,238,8,4,170,8,5,221,8,6,221,8,7,221,8,8,204],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"n\",\"pixels\":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,221,2,3,238,3,3,255,4,3,238,5,4,170,5,5,221,5,6,221,5,7,221,5,8,204],\"secondary\":false},{\"width\":8,\"bonus\":70,\"chr\":\"o\",\"pixels\":[0,5,187,0,6,170,1,4,204,1,7,221,2,3,238,2,8,238,3,3,255,3,8,255,4,3,238,4,8,255,5,4,204,5,7,221,6,5,170,6,6,170],\"secondary\":false},{\"width\":6,\"bonus\":90,\"chr\":\"p\",\"pixels\":[0,3,238,0,4,255,0,5,187,0,6,204,0,7,255,0,8,221,0,9,221,0,10,221,1,3,255,1,8,238,2,3,255,2,8,255,3,3,238,3,8,238,4,4,238,4,5,255,4,6,255,4,7,238],\"secondary\":false},{\"width\":7,\"bonus\":90,\"chr\":\"q\",\"pixels\":[0,5,187,0,6,187,1,3,170,1,4,153,1,7,153,1,8,170,2,3,255,2,8,255,3,3,238,3,8,238,4,3,255,4,4,255,4,5,187,4,6,187,4,7,255,4,8,238,4,9,221,4,10,221],\"secondary\":false},{\"width\":4,\"bonus\":45,\"chr\":\"r\",\"pixels\":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,187,1,4,204,2,3,255],\"secondary\":false},{\"width\":6,\"bonus\":50,\"chr\":\"s\",\"pixels\":[0,4,187,1,3,255,1,5,238,1,8,255,2,3,255,2,8,255,3,3,255,3,6,238,3,8,255,4,7,187],\"secondary\":false},{\"width\":5,\"bonus\":45,\"chr\":\"t\",\"pixels\":[1,2,221,1,3,255,1,4,221,1,5,221,1,6,221,1,7,170,2,3,255,2,8,238,3,8,153],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"u\",\"pixels\":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,170,1,8,238,2,8,255,3,8,204,4,3,204,4,4,221,4,5,221,4,6,204,4,7,255,4,8,221],\"secondary\":false},{\"width\":6,\"bonus\":50,\"chr\":\"v\",\"pixels\":[0,3,238,1,5,238,1,6,204,2,7,255,2,8,255,3,5,153,3,6,255,3,7,153,4,3,238,4,4,204],\"secondary\":false},{\"width\":10,\"bonus\":95,\"chr\":\"w\",\"pixels\":[1,3,153,1,4,238,1,5,187,2,6,153,2,7,238,2,8,187,3,6,204,3,7,238,3,8,153,4,3,170,4,4,255,5,4,221,5,5,221,6,7,255,6,8,221,7,6,238,7,7,204,8,3,238,8,4,204],\"secondary\":false},{\"width\":6,\"bonus\":55,\"chr\":\"x\",\"pixels\":[0,8,170,1,3,170,1,4,204,1,7,221,2,5,255,2,6,238,3,4,255,3,6,187,3,7,187,4,3,221,4,8,255],\"secondary\":false},{\"width\":6,\"bonus\":65,\"chr\":\"y\",\"pixels\":[0,3,255,0,4,153,0,11,221,1,5,204,1,6,221,1,11,187,2,7,187,2,8,255,2,9,238,3,6,238,3,7,187,4,3,204,4,4,221],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"z\",\"pixels\":[0,3,153,0,8,204,1,3,255,1,7,221,1,8,255,2,3,255,2,6,255,2,8,255,3,3,255,3,4,170,3,5,170,3,8,255,4,3,255,4,8,255],\"secondary\":false},{\"width\":8,\"bonus\":85,\"chr\":\"A\",\"pixels\":[0,8,153,1,6,221,1,7,238,2,3,170,2,4,255,2,5,187,2,6,255,3,1,255,3,2,255,3,6,255,4,2,255,4,3,238,4,6,255,5,5,255,5,6,255,6,7,187,6,8,255],\"secondary\":false},{\"width\":7,\"bonus\":125,\"chr\":\"B\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,4,255,1,8,255,2,1,255,2,4,255,2,8,255,3,1,255,3,4,255,3,8,255,4,1,221,4,4,255,4,5,170,4,8,204,5,2,170,5,3,170,5,6,187,5,7,153],\"secondary\":false},{\"width\":9,\"bonus\":80,\"chr\":\"C\",\"pixels\":[0,4,187,0,5,187,1,2,221,1,3,153,1,6,153,1,7,204,2,1,170,2,8,170,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,255,6,1,170,6,8,170],\"secondary\":false},{\"width\":8,\"bonus\":100,\"chr\":\"D\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,8,255,2,1,255,2,8,255,3,1,255,3,8,255,4,1,204,4,8,204,5,2,221,5,7,221,6,4,187,6,5,187],\"secondary\":false},{\"width\":6,\"bonus\":95,\"chr\":\"E\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,1,8,255,2,1,255,2,5,255,2,8,255,3,1,255,3,5,255,3,8,255,4,1,153,4,8,221],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"F\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255],\"secondary\":false},{\"width\":9,\"bonus\":105,\"chr\":\"G\",\"pixels\":[0,4,170,0,5,187,1,2,204,1,3,153,1,7,221,2,1,170,2,8,187,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,238,6,1,170,6,5,255,6,7,153,6,8,170,7,5,153,7,6,221,7,7,221,7,8,204],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"H\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,5,255,2,5,255,3,5,255,4,5,255,5,5,255,6,1,204,6,2,221,6,3,221,6,4,221,6,5,221,6,6,221,6,7,221,6,8,204],\"secondary\":false},{\"width\":4,\"bonus\":60,\"chr\":\"I\",\"pixels\":[0,1,192,0,8,191,1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,2,1,192,2,8,191],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"J\",\"pixels\":[0,6,153,0,7,153,1,8,204,2,1,221,2,8,255,3,1,255,3,8,204,4,1,204,4,2,221,4,3,221,4,4,221,4,5,221,4,6,221,4,7,153],\"secondary\":false},{\"width\":7,\"bonus\":85,\"chr\":\"K\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,255,2,4,255,3,3,221,3,5,170,3,6,204,4,1,204,4,2,153,4,7,238,4,8,153],\"secondary\":false},{\"width\":6,\"bonus\":60,\"chr\":\"L\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,8,255,2,8,255,3,8,255,4,8,255],\"secondary\":false},{\"width\":9,\"bonus\":130,\"chr\":\"M\",\"pixels\":[0,1,245,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,1,2,170,1,3,225,2,4,207,2,5,190,3,6,232,4,6,232,5,4,207,5,5,190,6,2,170,6,3,224,7,1,245,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255],\"secondary\":false},{\"width\":8,\"bonus\":110,\"chr\":\"N\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,2,255,2,3,221,3,4,187,3,5,187,4,6,221,5,7,255,6,1,204,6,2,221,6,3,221,6,4,221,6,5,221,6,6,221,6,7,221,6,8,204],\"secondary\":false},{\"width\":10,\"bonus\":110,\"chr\":\"O\",\"pixels\":[0,4,187,0,5,170,1,2,204,1,3,153,1,6,170,1,7,204,2,1,153,2,8,153,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,255,6,1,153,6,8,153,7,2,204,7,3,153,7,6,170,7,7,204,8,4,187,8,5,170],\"secondary\":false},{\"width\":7,\"bonus\":85,\"chr\":\"P\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255,4,1,187,4,5,187,5,3,221],\"secondary\":false},{\"width\":9,\"bonus\":100,\"chr\":\"Q\",\"pixels\":[0,4,187,0,5,187,1,2,221,1,6,153,1,7,221,2,1,187,2,8,170,3,1,255,3,8,255,4,1,255,4,8,255,5,1,238,5,8,238,6,2,204,6,7,255,7,3,255,7,4,204,7,5,221,7,6,255,7,8,204],\"secondary\":false},{\"width\":7,\"bonus\":100,\"chr\":\"R\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255,3,6,187,4,2,238,4,3,204,4,4,255,4,7,238,4,8,170],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"S\",\"pixels\":[0,2,153,0,3,170,1,1,204,1,4,221,1,8,238,2,1,255,2,4,170,2,8,255,3,1,255,3,5,255,3,8,255,4,1,170,4,6,221,4,7,238],\"secondary\":false},{\"width\":8,\"bonus\":65,\"chr\":\"T\",\"pixels\":[0,1,255,1,1,255,2,1,255,3,1,255,3,2,221,3,3,221,3,4,221,3,5,221,3,6,221,3,7,221,3,8,204,4,1,255,5,1,255],\"secondary\":false},{\"width\":8,\"bonus\":85,\"chr\":\"U\",\"pixels\":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,187,1,7,170,2,8,255,3,8,255,4,8,221,5,1,204,5,2,221,5,3,221,5,4,221,5,5,221,5,6,255,5,7,238],\"secondary\":false},{\"width\":7,\"bonus\":70,\"chr\":\"V\",\"pixels\":[0,1,255,0,2,187,1,3,153,1,4,255,1,5,153,2,6,187,2,7,238,3,7,255,3,8,204,4,4,204,4,5,238,5,1,170,5,2,255,5,3,153],\"secondary\":false},{\"width\":10,\"bonus\":125,\"chr\":\"W\",\"pixels\":[0,1,255,0,2,221,1,4,187,1,5,255,1,6,204,2,7,255,2,8,255,3,3,153,3,4,238,3,5,221,4,1,255,4,2,255,4,3,153,5,3,170,5,4,238,5,5,204,6,7,255,6,8,255,7,4,153,7,5,238,7,6,238,7,7,153,8,1,238,8,2,238,8,3,153],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"X\",\"pixels\":[0,8,170,1,1,187,1,2,204,1,7,238,2,3,221,2,4,153,2,5,255,2,6,153,3,4,255,3,5,238,4,2,238,4,6,204,4,7,170,5,1,204,5,8,255],\"secondary\":false},{\"width\":7,\"bonus\":55,\"chr\":\"Y\",\"pixels\":[0,1,170,1,2,238,2,3,153,2,4,255,3,4,221,3,5,204,3,6,221,3,7,221,3,8,204,4,3,255,5,1,238],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"Z\",\"pixels\":[0,8,187,1,1,255,1,7,221,1,8,255,2,1,255,2,5,204,2,8,255,3,1,255,3,4,204,3,8,255,4,1,255,4,2,221,4,8,255,5,1,187,5,8,153],\"secondary\":false},{\"width\":7,\"bonus\":90,\"chr\":\"0\",\"pixels\":[0,2,153,0,3,221,0,4,255,0,5,255,0,6,238,0,7,170,1,1,187,1,8,204,2,1,187,2,8,187,3,1,221,3,8,204,4,2,170,4,3,255,4,4,187,4,5,187,4,6,238,4,7,170],\"secondary\":false},{\"width\":7,\"bonus\":50,\"chr\":\"1\",\"pixels\":[1,8,187,2,1,204,2,2,204,2,3,187,2,4,187,2,5,187,2,6,187,2,7,187,2,8,238,3,8,204],\"secondary\":false},{\"width\":7,\"bonus\":55,\"chr\":\"2\",\"pixels\":[1,8,255,2,1,187,2,6,153,2,8,187,3,1,204,3,5,153,3,8,187,4,1,187,4,2,153,4,4,204,4,8,187],\"secondary\":false},{\"width\":7,\"bonus\":50,\"chr\":\"3\",\"pixels\":[0,8,204,1,1,187,1,8,187,2,1,187,2,4,187,2,8,204,3,2,221,3,3,204,3,5,204,3,7,170],\"secondary\":false},{\"width\":7,\"bonus\":80,\"chr\":\"4\",\"pixels\":[0,6,238,1,4,187,1,6,187,2,3,170,2,6,187,3,1,187,3,2,153,3,6,204,4,1,187,4,2,187,4,3,187,4,4,187,4,5,187,4,6,238,4,7,187,4,8,187],\"secondary\":false},{\"width\":7,\"bonus\":70,\"chr\":\"5\",\"pixels\":[1,1,238,1,2,187,1,3,187,1,4,187,1,8,204,2,1,187,2,4,187,2,8,187,3,1,187,3,4,204,3,8,204,4,5,238,4,6,187,4,7,221],\"secondary\":false},{\"width\":7,\"bonus\":80,\"chr\":\"6\",\"pixels\":[0,3,170,0,4,255,0,5,255,0,6,238,0,7,153,1,2,187,1,8,187,2,1,204,2,4,187,2,8,187,3,1,187,3,4,204,3,8,187,4,5,221,4,6,255,4,7,187],\"secondary\":false},{\"width\":7,\"bonus\":55,\"chr\":\"7\",\"pixels\":[0,1,187,1,1,187,1,8,204,2,1,187,2,6,238,2,7,153,3,1,187,3,3,153,3,4,221,4,1,255,4,2,187],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"8\",\"pixels\":[1,2,238,1,3,221,1,6,204,1,7,221,2,1,204,2,4,204,2,5,170,2,8,221,3,1,187,3,4,170,3,8,187,4,1,221,4,4,170,4,5,204,4,8,187,5,2,170,5,3,153,5,6,238,5,7,238],\"secondary\":false},{\"width\":7,\"bonus\":85,\"chr\":\"9\",\"pixels\":[1,2,221,1,3,187,1,4,238,1,8,153,2,1,204,2,5,221,2,8,187,3,1,187,3,5,187,3,8,204,4,1,187,4,7,170,5,2,153,5,3,238,5,4,255,5,5,255,5,6,187],\"secondary\":false},{\"width\":8,\"bonus\":75,\"chr\":\"%\",\"pixels\":[0,3,255,0,8,255,1,2,255,1,4,255,1,7,255,2,3,255,2,6,255,3,5,255,4,4,255,4,7,255,5,3,255,5,6,255,5,8,255,6,2,255,6,7,255],\"secondary\":false},{\"width\":4,\"bonus\":40,\"chr\":\"/\",\"pixels\":[0,7,153,0,8,238,0,9,221,1,4,187,1,5,238,1,6,170,2,1,221,2,2,221],\"secondary\":false},{\"width\":7,\"bonus\":60,\"chr\":\"+\",\"pixels\":[0,5,221,1,5,255,2,5,255,3,2,153,3,3,221,3,4,221,3,5,255,3,6,221,3,7,221,3,8,204,4,5,255,5,5,255],\"secondary\":false},{\"width\":5,\"bonus\":40,\"chr\":\"?\",\"pixels\":[0,1,170,1,1,255,1,6,221,1,8,255,2,1,255,2,5,170,3,2,255,3,3,221],\"secondary\":false},{\"width\":2,\"bonus\":35,\"chr\":\"!\",\"pixels\":[0,1,170,0,2,187,0,3,187,0,4,187,0,5,187,0,6,170,0,8,255],\"secondary\":false},{\"width\":8,\"bonus\":130,\"chr\":\"@\",\"pixels\":[0,4,255,0,5,255,0,6,221,0,7,255,0,8,187,1,3,221,1,9,238,2,2,221,2,5,255,2,6,238,2,7,255,2,10,153,3,2,255,3,4,255,3,8,204,3,10,187,4,2,238,4,4,255,4,8,255,5,3,238,5,4,255,5,5,221,5,6,221,5,7,221,5,8,238,6,8,221],\"secondary\":false},{\"width\":8,\"bonus\":120,\"chr\":\"#\",\"pixels\":[0,6,255,1,3,255,1,6,255,1,7,170,1,8,238,2,1,170,2,2,238,2,3,255,2,4,221,2,5,170,2,6,255,3,3,255,3,6,255,4,3,255,4,4,153,4,5,204,4,6,255,4,7,238,4,8,187,5,1,255,5,2,187,5,3,255,5,6,255,6,3,255],\"secondary\":false},{\"width\":6,\"bonus\":70,\"chr\":\"$\",\"pixels\":[0,2,153,0,3,170,1,1,204,1,4,221,1,8,238,2,0,204,2,1,238,2,8,238,2,9,204,3,1,238,3,5,238,3,8,255,4,6,170,4,7,170],\"secondary\":false},{\"width\":6,\"bonus\":40,\"chr\":\"^\",\"pixels\":[0,4,153,0,5,238,1,2,204,1,3,221,2,1,221,2,2,221,3,3,187,3,4,221],\"secondary\":false},{\"width\":6,\"bonus\":20,\"chr\":\"~\",\"pixels\":[1,5,255,2,5,221,3,6,221,4,5,204],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"&\",\"pixels\":[0,6,187,1,2,238,1,3,255,1,4,187,1,5,187,1,8,187,2,1,255,2,4,255,2,8,255,3,1,255,3,4,255,3,8,255,4,4,255,4,8,187,5,3,204,5,4,255,5,5,221,5,6,187,6,4,153],\"secondary\":false},{\"width\":6,\"bonus\":45,\"chr\":\"*\",\"pixels\":[0,2,170,1,2,170,1,3,204,1,4,255,2,1,204,2,2,238,2,3,255,3,2,170,3,4,153],\"secondary\":false},{\"width\":4,\"bonus\":55,\"chr\":\"(\",\"pixels\":[0,3,173,0,4,239,0,5,253,0,6,230,0,7,171,1,1,194,1,2,204,1,8,204,1,9,191,2,0,210,2,10,216],\"secondary\":false},{\"width\":4,\"bonus\":55,\"chr\":\")\",\"pixels\":[1,0,211,1,10,216,2,1,194,2,2,203,2,8,203,2,9,191,3,3,174,3,4,240,3,5,253,3,6,229,3,7,171],\"secondary\":false},{\"width\":7,\"bonus\":30,\"chr\":\"_\",\"pixels\":[0,9,153,1,9,255,2,9,255,3,9,255,4,9,255,5,9,255],\"secondary\":false},{\"width\":4,\"bonus\":15,\"chr\":\"-\",\"pixels\":[0,5,255,1,5,255,2,5,255],\"secondary\":true},{\"width\":8,\"bonus\":50,\"chr\":\"=\",\"pixels\":[0,4,255,0,6,255,1,4,255,1,6,255,2,4,255,2,6,255,3,4,255,3,6,255,4,4,255,4,6,255],\"secondary\":false},{\"width\":3,\"bonus\":55,\"chr\":\"[\",\"pixels\":[0,0,204,0,1,221,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,0,238,1,8,238],\"secondary\":false},{\"width\":3,\"bonus\":55,\"chr\":\"]\",\"pixels\":[0,0,238,0,8,238,1,0,204,1,1,221,1,2,221,1,3,221,1,4,221,1,5,221,1,6,221,1,7,221,1,8,204],\"secondary\":false},{\"width\":5,\"bonus\":50,\"chr\":\"{\",\"pixels\":[0,5,153,1,2,170,1,3,221,1,4,221,1,5,204,1,6,255,1,7,221,1,8,170,2,1,238,2,9,238],\"secondary\":false},{\"width\":5,\"bonus\":50,\"chr\":\"}\",\"pixels\":[1,1,238,1,9,238,2,2,170,2,3,221,2,4,221,2,5,204,2,6,255,2,7,221,2,8,170,3,5,153],\"secondary\":false},{\"width\":3,\"bonus\":10,\"chr\":\":\",\"pixels\":[1,3,255,1,7,255],\"secondary\":true},{\"width\":3,\"bonus\":20,\"chr\":\";\",\"pixels\":[0,9,201,1,3,255,1,7,241,1,8,255],\"secondary\":true},{\"width\":3,\"bonus\":20,\"chr\":\"\\\\\"\",\"pixels\":[0,1,255,0,2,255,2,1,255,2,2,255],\"secondary\":true},{\"width\":2,\"bonus\":10,\"chr\":\"\\'\",\"pixels\":[0,1,255,0,2,177],\"secondary\":true},{\"width\":7,\"bonus\":40,\"chr\":\"<\",\"pixels\":[0,5,204,1,5,255,2,4,238,2,6,238,3,4,170,3,6,170,4,3,221,4,7,221],\"secondary\":false},{\"width\":7,\"bonus\":45,\"chr\":\">\",\"pixels\":[0,3,204,0,7,204,1,7,187,2,4,238,2,6,255,3,4,170,3,5,153,3,6,204,4,5,255],\"secondary\":false},{\"width\":5,\"bonus\":35,\"chr\":\"\\\\\\\\\",\"pixels\":[1,1,153,1,2,255,1,3,204,2,5,255,2,6,204,3,8,255,3,9,204],\"secondary\":false},{\"width\":2,\"bonus\":5,\"chr\":\".\",\"pixels\":[0,8,255],\"secondary\":true},{\"width\":3,\"bonus\":15,\"chr\":\",\",\"pixels\":[0,9,205,1,7,205,1,8,255],\"secondary\":true},{\"width\":3,\"bonus\":50,\"chr\":\"|\",\"pixels\":[0,1,221,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,221,0,9,221,0,10,204],\"secondary\":false}],\"width\":10,\"spacewidth\":3,\"shadow\":false,\"height\":12,\"basey\":8}');\n\n/***/ }),\n\n/***/ \"./src/fonts/aa_8px_mono_allcaps.fontmeta.json\":\n/*!*****************************************************!*\\\n !*** ./src/fonts/aa_8px_mono_allcaps.fontmeta.json ***!\n \\*****************************************************/\n/***/ ((module) => {\n\n\"use strict\";\nmodule.exports = JSON.parse('{\"chars\":[{\"width\":3,\"bonus\":35,\"chr\":\"!\",\"pixels\":[0,2,170,1,1,221,1,2,255,1,3,221,1,4,187,1,5,170,1,9,204],\"secondary\":false},{\"width\":6,\"bonus\":20,\"chr\":\"\\\\\"\",\"pixels\":[1,2,221,1,3,255,3,2,221,3,3,255],\"secondary\":true},{\"width\":8,\"bonus\":125,\"chr\":\"#\",\"pixels\":[0,7,187,1,4,255,1,7,255,1,10,170,2,3,170,2,4,255,2,5,255,2,6,221,2,7,255,2,8,170,3,4,255,3,7,255,4,4,255,4,5,153,4,7,255,4,8,238,4,9,255,4,10,204,5,2,238,5,3,204,5,4,255,5,5,153,5,7,255,6,4,255,6,7,153],\"secondary\":false},{\"width\":7,\"bonus\":115,\"chr\":\"$\",\"pixels\":[0,8,187,1,2,255,1,3,255,1,4,221,1,9,238,2,1,187,2,4,255,2,5,204,2,8,170,2,9,255,2,10,221,3,0,187,3,1,238,3,2,187,3,3,170,3,4,153,3,5,255,3,6,221,3,9,221,4,1,221,4,6,255,4,7,255,4,8,255],\"secondary\":false},{\"width\":12,\"bonus\":135,\"chr\":\"%\",\"pixels\":[1,2,255,1,3,255,1,4,221,2,5,153,3,1,153,3,9,187,4,1,170,4,2,255,4,3,255,4,4,221,4,7,238,4,8,204,5,4,153,5,5,238,5,6,153,6,1,153,6,2,187,6,3,204,6,6,221,6,7,255,6,8,255,7,1,153,7,9,187,8,9,187,9,6,221,9,7,255,9,8,255],\"secondary\":false},{\"width\":11,\"bonus\":190,\"chr\":\"&\",\"pixels\":[0,6,187,0,7,255,0,8,170,1,2,204,1,3,255,1,4,153,1,5,238,1,6,170,1,7,187,1,8,255,1,9,153,2,1,170,2,2,153,2,3,153,2,4,255,2,5,187,2,9,238,3,1,221,3,5,238,3,6,170,3,9,255,4,1,238,4,6,238,4,7,153,4,9,204,5,1,187,5,2,187,5,7,255,5,8,204,6,7,170,6,8,255,7,5,238,7,6,255,7,7,170,7,8,170,7,9,221,8,9,238,9,9,153],\"secondary\":false},{\"width\":4,\"bonus\":10,\"chr\":\"\\'\",\"pixels\":[1,2,204,1,3,255],\"secondary\":true},{\"width\":4,\"bonus\":50,\"chr\":\"(\",\"pixels\":[0,3,170,0,4,238,0,5,255,0,6,221,0,7,153,1,1,153,1,2,221,1,3,153,1,7,170,1,8,238],\"secondary\":false},{\"width\":4,\"bonus\":40,\"chr\":\")\",\"pixels\":[1,1,170,1,2,221,1,7,170,1,8,238,2,3,187,2,4,238,2,5,255,2,6,204],\"secondary\":false},{\"width\":5,\"bonus\":25,\"chr\":\"*\",\"pixels\":[1,1,170,1,2,221,1,3,153,2,2,255,2,3,204],\"secondary\":false},{\"width\":8,\"bonus\":45,\"chr\":\"+\",\"pixels\":[1,6,255,2,6,255,3,4,255,3,5,255,3,6,255,3,7,255,3,8,255,4,6,255,5,6,255],\"secondary\":false},{\"width\":3,\"bonus\":10,\"chr\":\",\",\"pixels\":[1,8,187,1,9,221],\"secondary\":true},{\"width\":5,\"bonus\":20,\"chr\":\"-\",\"pixels\":[0,7,204,1,7,255,2,7,238,3,7,187],\"secondary\":true},{\"width\":3,\"bonus\":5,\"chr\":\".\",\"pixels\":[0,9,204],\"secondary\":true},{\"width\":7,\"bonus\":40,\"chr\":\"/\",\"pixels\":[0,9,221,1,7,187,1,8,187,2,6,221,3,4,221,4,2,170,4,3,187,5,1,187],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"0\",\"pixels\":[0,6,153,1,3,221,1,4,255,1,5,255,1,6,255,1,7,255,1,8,238,2,2,187,2,8,153,2,9,204,3,2,187,3,9,204,4,2,221,4,9,187,5,3,238,5,4,255,5,5,255,5,6,255,5,7,255,5,8,221,6,5,153],\"secondary\":false},{\"width\":6,\"bonus\":85,\"chr\":\"1\",\"pixels\":[1,3,170,1,9,153,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,3,2,153,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221],\"secondary\":false},{\"width\":8,\"bonus\":100,\"chr\":\"2\",\"pixels\":[1,2,187,1,3,153,1,9,255,2,2,187,2,8,221,2,9,255,3,2,221,3,7,221,3,9,255,4,2,187,4,3,238,4,4,187,4,5,238,4,6,238,4,9,255,5,3,221,5,4,255,5,5,170,5,8,153,5,9,238],\"secondary\":false},{\"width\":7,\"bonus\":100,\"chr\":\"3\",\"pixels\":[0,2,170,0,8,170,0,9,204,1,2,221,1,9,238,2,2,238,2,5,221,2,9,221,3,2,221,3,3,187,3,4,204,3,5,255,3,6,153,3,9,187,4,3,238,4,4,153,4,6,255,4,7,255,4,8,255,5,7,153],\"secondary\":false},{\"width\":8,\"bonus\":85,\"chr\":\"4\",\"pixels\":[0,7,153,1,6,187,1,7,255,2,5,187,2,7,255,3,4,187,3,7,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,7,255,5,9,204,6,7,221],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"5\",\"pixels\":[0,8,153,0,9,221,1,2,255,1,3,187,1,4,238,1,9,221,2,2,255,2,4,187,2,5,170,2,9,204,3,2,255,3,5,255,3,9,170,4,2,255,4,5,204,4,6,255,4,7,255,4,8,238,5,7,153],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"6\",\"pixels\":[0,7,153,1,4,153,1,5,255,1,6,255,1,7,255,1,8,255,2,4,204,2,9,221,3,3,170,3,5,153,3,9,204,4,2,153,4,5,187,4,9,204,5,6,238,5,7,170,5,8,187,5,9,153,6,6,187,6,7,255,6,8,170],\"secondary\":false},{\"width\":7,\"bonus\":75,\"chr\":\"7\",\"pixels\":[0,2,204,0,3,187,1,2,255,1,9,187,2,2,255,2,7,238,2,8,255,2,9,170,3,2,255,3,5,221,3,6,204,4,2,255,4,3,204,4,4,170,5,2,204],\"secondary\":false},{\"width\":8,\"bonus\":120,\"chr\":\"8\",\"pixels\":[1,3,221,1,4,204,1,6,187,1,7,255,1,8,255,2,2,187,2,4,204,2,5,221,2,6,153,2,9,221,3,2,153,3,5,255,3,9,187,4,2,187,4,5,238,4,6,204,4,9,204,5,2,170,5,3,255,5,4,238,5,6,238,5,7,255,5,8,255,6,7,153],\"secondary\":false},{\"width\":8,\"bonus\":95,\"chr\":\"9\",\"pixels\":[0,4,153,1,3,255,1,4,255,1,5,255,2,2,187,2,6,153,3,2,204,3,6,153,3,9,153,4,2,221,4,7,153,4,8,204,5,3,255,5,4,255,5,5,255,5,6,255,5,7,187,6,4,153,6,5,153],\"secondary\":false},{\"width\":3,\"bonus\":10,\"chr\":\":\",\"pixels\":[0,3,204,0,7,204],\"secondary\":true},{\"width\":3,\"bonus\":20,\"chr\":\";\",\"pixels\":[0,2,204,0,6,153,0,7,187,0,8,153],\"secondary\":true},{\"width\":7,\"bonus\":55,\"chr\":\"<\",\"pixels\":[0,6,187,0,7,153,1,6,221,1,7,238,2,5,153,3,5,238,3,8,238,4,5,153,4,8,187,5,4,187,5,9,153],\"secondary\":false},{\"width\":7,\"bonus\":60,\"chr\":\"=\",\"pixels\":[0,5,255,0,8,255,1,5,255,1,8,255,2,5,255,2,8,255,3,5,255,3,8,255,4,5,255,4,8,255,5,5,221,5,8,221],\"secondary\":false},{\"width\":7,\"bonus\":50,\"chr\":\">\",\"pixels\":[0,4,204,0,9,170,1,5,170,1,8,187,2,5,238,2,8,221,3,7,153,4,6,238,4,7,238,5,6,153],\"secondary\":false},{\"width\":6,\"bonus\":65,\"chr\":\"?\",\"pixels\":[0,2,153,0,3,187,1,2,221,1,7,221,2,2,238,2,6,238,2,10,204,3,2,204,3,3,221,3,4,204,3,5,255,4,3,238,4,4,221],\"secondary\":false},{\"width\":11,\"bonus\":180,\"chr\":\"@\",\"pixels\":[0,4,187,0,5,255,0,6,255,0,7,238,1,3,170,1,8,204,2,5,187,2,6,238,2,7,187,2,9,204,3,4,204,3,5,153,3,6,153,3,7,204,3,9,204,4,3,153,4,6,153,4,9,187,5,0,153,5,3,221,5,4,170,5,5,238,5,6,255,5,7,187,5,9,170,6,3,221,6,4,153,6,7,238,7,1,153,7,7,170,8,1,170,8,2,153,8,6,170,9,3,187,9,4,221,9,5,170],\"secondary\":false},{\"width\":9,\"bonus\":110,\"chr\":\"A\",\"pixels\":[1,9,238,2,6,153,2,7,255,2,8,170,2,9,170,3,4,187,3,5,238,3,7,221,4,2,187,4,3,255,4,4,238,4,7,221,5,4,221,5,5,255,5,6,238,5,7,238,6,6,187,6,7,255,6,8,255,6,9,187,7,8,170,7,9,255],\"secondary\":false},{\"width\":7,\"bonus\":150,\"chr\":\"B\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,255,3,2,221,3,5,221,3,9,204,4,2,187,4,3,255,4,4,255,4,5,170,4,6,255,4,7,170,4,8,187,4,9,187,5,6,153,5,7,255,5,8,204],\"secondary\":false},{\"width\":8,\"bonus\":120,\"chr\":\"C\",\"pixels\":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,3,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,221,5,2,221,5,9,221,6,2,187,6,3,187,6,8,153,6,9,170],\"secondary\":false},{\"width\":10,\"bonus\":165,\"chr\":\"D\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,9,221,4,2,238,4,9,221,5,2,221,5,9,204,6,2,153,6,3,238,6,8,187,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,8,5,187,8,6,170],\"secondary\":false},{\"width\":7,\"bonus\":110,\"chr\":\"E\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,170,2,9,239,3,2,214,3,5,221,3,9,212,4,2,212,4,5,226,4,9,238],\"secondary\":false},{\"width\":7,\"bonus\":100,\"chr\":\"F\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,2,221,3,5,221,4,2,238,4,5,238],\"secondary\":false},{\"width\":9,\"bonus\":135,\"chr\":\"G\",\"pixels\":[0,4,170,0,5,238,0,6,255,0,7,187,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,238,5,2,238,5,9,221,6,2,204,6,6,255,6,7,255,6,8,255,6,9,204,7,6,204,7,7,153,7,8,153],\"secondary\":false},{\"width\":10,\"bonus\":175,\"chr\":\"H\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,5,221,4,5,221,5,5,221,6,2,204,6,3,153,6,4,153,6,5,238,6,6,153,6,7,153,6,8,153,6,9,221,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,255],\"secondary\":false},{\"width\":5,\"bonus\":80,\"chr\":\"I\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,153,2,9,221],\"secondary\":false},{\"width\":6,\"bonus\":90,\"chr\":\"J\",\"pixels\":[2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,255,2,11,187,3,2,204,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,153],\"secondary\":false},{\"width\":10,\"bonus\":140,\"chr\":\"K\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,187,2,7,153,2,8,153,2,9,204,3,5,238,3,6,238,4,6,170,4,7,255,5,2,238,5,3,153,5,7,170,5,8,255,6,2,204,6,8,170,6,9,238,7,9,204],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"L\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,9,221,4,9,221,5,9,204],\"secondary\":false},{\"width\":12,\"bonus\":150,\"chr\":\"M\",\"pixels\":[1,6,170,1,7,221,1,8,255,1,9,255,2,2,170,2,3,255,2,4,255,2,5,221,3,4,204,3,5,255,3,6,238,4,6,204,4,7,255,4,8,221,5,7,187,5,8,255,6,6,221,7,4,238,7,5,204,8,2,187,8,3,255,8,4,255,8,5,255,8,6,255,8,7,238,8,8,204,8,9,187,9,7,170,9,8,204,9,9,255],\"secondary\":false},{\"width\":10,\"bonus\":130,\"chr\":\"N\",\"pixels\":[1,2,204,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,3,221,2,4,238,3,4,221,3,5,238,4,5,238,4,6,238,5,6,238,5,7,238,6,7,238,6,8,238,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,204],\"secondary\":false},{\"width\":10,\"bonus\":155,\"chr\":\"O\",\"pixels\":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,170,2,8,204,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,238,6,8,170,7,3,238,7,4,255,7,5,255,7,6,255,7,7,255,7,8,187,8,4,153,8,5,221,8,6,204],\"secondary\":false},{\"width\":8,\"bonus\":130,\"chr\":\"P\",\"pixels\":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,1,238,2,2,153,2,3,153,2,4,153,2,5,170,2,6,153,2,7,153,2,8,153,2,9,221,3,1,204,4,1,238,4,5,187,5,1,153,5,2,255,5,3,255,5,4,255,6,3,153],\"secondary\":false},{\"width\":10,\"bonus\":180,\"chr\":\"Q\",\"pixels\":[0,4,153,0,5,238,0,6,238,0,7,170,1,3,221,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,8,221,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,221,6,8,153,6,9,238,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,7,9,187,7,10,153,8,4,153,8,5,204,8,6,204,8,10,255,9,10,204],\"secondary\":false},{\"width\":7,\"bonus\":140,\"chr\":\"R\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,238,2,7,153,2,8,153,2,9,221,3,2,238,3,6,238,4,2,204,4,3,204,4,4,153,4,5,204,4,6,204,4,7,255,5,3,221,5,4,221,5,8,255,6,9,238],\"secondary\":false},{\"width\":6,\"bonus\":115,\"chr\":\"S\",\"pixels\":[0,3,221,0,4,238,0,8,187,0,9,187,1,2,187,1,4,204,1,5,255,1,9,238,2,2,187,2,5,255,2,6,187,2,9,221,3,2,204,3,5,153,3,6,255,3,7,170,3,8,153,3,9,170,4,2,204,4,3,153,4,6,170,4,7,255,4,8,187],\"secondary\":false},{\"width\":9,\"bonus\":105,\"chr\":\"T\",\"pixels\":[1,2,238,2,2,221,3,2,238,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221,4,2,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,2,221,6,2,221,7,2,255],\"secondary\":false},{\"width\":10,\"bonus\":120,\"chr\":\"U\",\"pixels\":[1,2,204,1,3,153,1,4,153,1,5,153,1,6,153,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,3,9,221,4,9,238,5,9,221,6,9,170,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,204,8,2,153],\"secondary\":false},{\"width\":10,\"bonus\":90,\"chr\":\"V\",\"pixels\":[1,2,255,1,3,153,2,2,238,2,3,255,2,4,255,2,5,187,3,5,238,3,6,255,3,7,221,4,7,221,4,8,255,4,9,187,5,6,187,5,7,204,6,4,221,6,5,187,7,2,255,7,3,170],\"secondary\":false},{\"width\":13,\"bonus\":165,\"chr\":\"W\",\"pixels\":[1,2,255,1,3,221,2,2,204,2,3,221,2,4,255,2,5,255,2,6,221,3,6,187,3,7,255,3,8,255,3,9,187,4,6,153,4,7,221,5,4,221,5,5,187,6,2,187,6,3,255,6,4,255,6,5,153,7,4,170,7,5,255,7,6,255,7,7,187,8,7,255,8,8,255,8,9,187,9,5,153,9,6,221,9,7,170,10,2,221,10,3,238,10,4,187,11,2,187],\"secondary\":false},{\"width\":9,\"bonus\":115,\"chr\":\"X\",\"pixels\":[1,2,221,1,9,238,2,2,255,2,3,255,2,7,153,2,8,221,2,9,153,3,3,153,3,4,255,3,5,221,3,6,204,4,5,255,4,6,255,4,7,170,5,3,187,5,4,170,5,7,255,5,8,255,5,9,153,6,2,255,6,8,204,6,9,255,7,9,170],\"secondary\":false},{\"width\":8,\"bonus\":95,\"chr\":\"Y\",\"pixels\":[0,2,187,1,2,255,1,3,221,2,3,221,2,4,255,2,5,153,3,5,238,3,6,255,3,7,255,3,8,255,3,9,255,4,5,204,4,6,170,4,7,153,4,8,153,4,9,204,5,3,187,5,4,187,6,2,238],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"Z\",\"pixels\":[0,9,204,1,2,238,1,7,153,1,8,255,1,9,255,2,2,221,2,6,221,2,7,255,2,9,221,3,2,221,3,4,153,3,5,255,3,6,221,3,9,221,4,2,238,4,3,221,4,4,255,4,9,221,5,2,255,5,3,204,5,9,255],\"secondary\":false},{\"width\":4,\"bonus\":65,\"chr\":\"[\",\"pixels\":[0,0,255,0,1,255,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,0,9,255,0,10,187,1,0,187,1,10,170],\"secondary\":false},{\"width\":8,\"bonus\":40,\"chr\":\"\\\\\\\\\",\"pixels\":[1,1,170,1,2,187,2,3,221,3,5,221,4,6,187,4,7,187,5,8,221,6,9,153],\"secondary\":false},{\"width\":5,\"bonus\":65,\"chr\":\"]\",\"pixels\":[1,0,153,1,10,153,2,0,255,2,1,255,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,187],\"secondary\":false},{\"width\":7,\"bonus\":40,\"chr\":\"^\",\"pixels\":[0,5,204,1,3,238,1,4,170,2,1,238,3,1,221,3,2,204,4,3,187,4,4,238],\"secondary\":false},{\"width\":7,\"bonus\":30,\"chr\":\"_\",\"pixels\":[0,10,221,1,10,221,2,10,221,3,10,221,4,10,221,5,10,221],\"secondary\":false},{\"width\":9,\"bonus\":110,\"chr\":\"a\",\"pixels\":[1,9,238,2,6,153,2,7,255,2,8,170,2,9,170,3,4,187,3,5,238,3,7,221,4,2,187,4,3,255,4,4,238,4,7,221,5,4,221,5,5,255,5,6,238,5,7,238,6,6,187,6,7,255,6,8,255,6,9,187,7,8,170,7,9,255],\"secondary\":false},{\"width\":7,\"bonus\":150,\"chr\":\"b\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,255,3,2,221,3,5,221,3,9,204,4,2,187,4,3,255,4,4,255,4,5,170,4,6,255,4,7,170,4,8,187,4,9,187,5,6,153,5,7,255,5,8,204],\"secondary\":false},{\"width\":8,\"bonus\":120,\"chr\":\"c\",\"pixels\":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,3,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,221,5,2,221,5,9,221,6,2,187,6,3,187,6,8,153,6,9,170],\"secondary\":false},{\"width\":10,\"bonus\":165,\"chr\":\"d\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,9,221,4,2,238,4,9,221,5,2,221,5,9,204,6,2,153,6,3,238,6,8,187,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,8,5,187,8,6,170],\"secondary\":false},{\"width\":7,\"bonus\":110,\"chr\":\"e\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,5,221,3,9,221,4,2,238,4,5,238,4,9,238],\"secondary\":false},{\"width\":7,\"bonus\":100,\"chr\":\"f\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,2,221,3,5,221,4,2,238,4,5,238],\"secondary\":false},{\"width\":10,\"bonus\":135,\"chr\":\"g\",\"pixels\":[0,4,170,0,5,238,0,6,255,0,7,187,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,238,5,2,238,5,9,221,6,2,204,6,6,255,6,7,255,6,8,255,6,9,204,7,6,204,7,7,153,7,8,153],\"secondary\":false},{\"width\":10,\"bonus\":175,\"chr\":\"h\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,5,221,4,5,221,5,5,221,6,2,204,6,3,153,6,4,153,6,5,238,6,6,153,6,7,153,6,8,153,6,9,221,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,255],\"secondary\":false},{\"width\":5,\"bonus\":80,\"chr\":\"i\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,153,2,9,221],\"secondary\":false},{\"width\":5,\"bonus\":90,\"chr\":\"j\",\"pixels\":[2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,255,2,11,187,3,2,204,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,153],\"secondary\":false},{\"width\":9,\"bonus\":140,\"chr\":\"k\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,187,2,7,153,2,8,153,2,9,204,3,5,238,3,6,238,4,6,170,4,7,255,5,2,238,5,3,153,5,7,170,5,8,255,6,2,204,6,8,170,6,9,238,7,9,204],\"secondary\":false},{\"width\":7,\"bonus\":95,\"chr\":\"l\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,9,221,4,9,221,5,9,204],\"secondary\":false},{\"width\":12,\"bonus\":150,\"chr\":\"m\",\"pixels\":[1,6,170,1,7,221,1,8,255,1,9,255,2,2,170,2,3,255,2,4,255,2,5,221,3,4,204,3,5,255,3,6,238,4,6,204,4,7,255,4,8,221,5,7,187,5,8,255,6,6,221,7,4,238,7,5,204,8,2,187,8,3,255,8,4,255,8,5,255,8,6,255,8,7,238,8,8,204,8,9,187,9,7,170,9,8,204,9,9,255],\"secondary\":false},{\"width\":10,\"bonus\":130,\"chr\":\"n\",\"pixels\":[1,2,204,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,3,221,2,4,238,3,4,221,3,5,238,4,5,238,4,6,238,5,6,238,5,7,238,6,7,238,6,8,238,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,204],\"secondary\":false},{\"width\":10,\"bonus\":155,\"chr\":\"o\",\"pixels\":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,170,2,8,204,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,238,6,8,170,7,3,238,7,4,255,7,5,255,7,6,255,7,7,255,7,8,187,8,4,153,8,5,221,8,6,204],\"secondary\":false},{\"width\":7,\"bonus\":115,\"chr\":\"p\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,170,2,7,153,2,8,153,2,9,221,3,2,221,4,2,221,4,3,204,4,4,153,4,5,221,5,3,221,5,4,221],\"secondary\":false},{\"width\":10,\"bonus\":180,\"chr\":\"q\",\"pixels\":[0,4,153,0,5,238,0,6,238,0,7,170,1,3,221,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,8,221,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,221,6,8,153,6,9,238,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,7,9,187,7,10,153,8,4,153,8,5,204,8,6,204,8,10,255,9,10,204],\"secondary\":false},{\"width\":9,\"bonus\":145,\"chr\":\"r\",\"pixels\":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,238,2,7,153,2,8,153,2,9,221,3,2,238,3,6,238,4,2,204,4,3,204,4,4,153,4,5,204,4,6,204,4,7,255,5,3,221,5,4,221,5,8,255,6,9,238,7,9,153],\"secondary\":false},{\"width\":6,\"bonus\":115,\"chr\":\"s\",\"pixels\":[0,3,221,0,4,238,0,8,187,0,9,187,1,2,187,1,4,204,1,5,255,1,9,238,2,2,187,2,5,255,2,6,187,2,9,221,3,2,204,3,5,153,3,6,255,3,7,170,3,8,153,3,9,170,4,2,204,4,3,153,4,6,170,4,7,255,4,8,187],\"secondary\":false},{\"width\":9,\"bonus\":105,\"chr\":\"t\",\"pixels\":[1,2,238,2,2,221,3,2,238,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221,4,2,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,2,221,6,2,221,7,2,255],\"secondary\":false},{\"width\":10,\"bonus\":120,\"chr\":\"u\",\"pixels\":[1,2,204,1,3,153,1,4,153,1,5,153,1,6,153,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,3,9,221,4,9,238,5,9,221,6,9,170,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,204,8,2,153],\"secondary\":false},{\"width\":10,\"bonus\":90,\"chr\":\"v\",\"pixels\":[1,2,255,1,3,153,2,2,238,2,3,255,2,4,255,2,5,187,3,5,238,3,6,255,3,7,221,4,7,221,4,8,255,4,9,187,5,6,187,5,7,204,6,4,221,6,5,187,7,2,255,7,3,170],\"secondary\":false},{\"width\":13,\"bonus\":165,\"chr\":\"w\",\"pixels\":[1,2,255,1,3,221,2,2,204,2,3,221,2,4,255,2,5,255,2,6,221,3,6,187,3,7,255,3,8,255,3,9,187,4,6,153,4,7,221,5,4,221,5,5,187,6,2,187,6,3,255,6,4,255,6,5,153,7,4,170,7,5,255,7,6,255,7,7,187,8,7,255,8,8,255,8,9,187,9,5,153,9,6,221,9,7,170,10,2,221,10,3,238,10,4,187,11,2,187],\"secondary\":false},{\"width\":9,\"bonus\":115,\"chr\":\"x\",\"pixels\":[1,2,221,1,9,238,2,2,255,2,3,255,2,7,153,2,8,221,2,9,153,3,3,153,3,4,255,3,5,221,3,6,204,4,5,255,4,6,255,4,7,170,5,3,187,5,4,170,5,7,255,5,8,255,5,9,153,6,2,255,6,8,204,6,9,255,7,9,170],\"secondary\":false},{\"width\":8,\"bonus\":95,\"chr\":\"y\",\"pixels\":[0,2,187,1,2,255,1,3,221,2,3,221,2,4,255,2,5,153,3,5,238,3,6,255,3,7,255,3,8,255,3,9,255,4,5,204,4,6,170,4,7,153,4,8,153,4,9,204,5,3,187,5,4,187,6,2,238],\"secondary\":false},{\"width\":8,\"bonus\":105,\"chr\":\"z\",\"pixels\":[0,9,204,1,2,238,1,7,153,1,8,255,1,9,255,2,2,221,2,6,221,2,7,255,2,9,221,3,2,221,3,4,153,3,5,255,3,6,221,3,9,221,4,2,238,4,3,221,4,4,255,4,9,221,5,2,255,5,3,204,5,9,255],\"secondary\":false},{\"width\":4,\"bonus\":45,\"chr\":\"{\",\"pixels\":[1,1,255,1,2,255,1,3,255,1,5,187,1,6,255,1,7,255,1,8,255,1,9,221,2,0,153],\"secondary\":false},{\"width\":2,\"bonus\":60,\"chr\":\"|\",\"pixels\":[0,0,255,0,1,255,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,0,9,255,0,10,255,0,11,255],\"secondary\":true},{\"width\":4,\"bonus\":45,\"chr\":\"}\",\"pixels\":[0,0,153,1,1,255,1,2,255,1,3,255,1,5,187,1,6,255,1,7,255,1,8,255,1,9,221],\"secondary\":false},{\"width\":7,\"bonus\":30,\"chr\":\"~\",\"pixels\":[0,5,221,1,4,255,2,4,187,3,5,187,4,5,255,5,4,204],\"secondary\":false}],\"width\":13,\"spacewidth\":3,\"shadow\":false,\"height\":12,\"basey\":9}');\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(\"./src/dialog/index.ts\");\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"alt1/base\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"alt1/base\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ocr\"] = factory(require(\"alt1/base\"));\n\telse\n\t\troot[\"OCR\"] = factory(root[\"A1lib\"]);\n})(globalThis, (__WEBPACK_EXTERNAL_MODULE_alt1_base__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./src/ocr/index.ts\":\n/*!**************************!*\\\n !*** ./src/ocr/index.ts ***!\n \\**************************/\n/***/ ((__unused_webpack_module, exports, __webpack_require__) => {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.generatefont = exports.readChar = exports.readSmallCapsBackwards = exports.readLine = exports.getChatColor = exports.GetChatColorMono = exports.findReadLine = exports.findChar = exports.decompose3col = exports.decomposeblack = exports.decompose2col = exports.canblend = exports.unblendTrans = exports.unblendKnownBg = exports.unblendBlackBackground = exports.debugFont = exports.debugout = exports.debug = void 0;\nconst base_1 = __webpack_require__(/*! alt1/base */ \"alt1/base\");\nexports.debug = {\n printcharscores: false,\n trackread: false\n};\nexports.debugout = {};\n/**\n * draws the font definition to a buffer and displays it in the dom for debugging purposes\n * @param font\n */\nfunction debugFont(font) {\n var spacing = font.width + 2;\n var buf = new base_1.ImageData(spacing * font.chars.length, font.height + 1);\n for (var a = 0; a < buf.data.length; a += 4) {\n buf.data[a] = buf.data[a + 1] = buf.data[a + 2] = 0;\n buf.data[a + 3] = 255;\n }\n for (var a = 0; a < font.chars.length; a++) {\n var bx = a * spacing;\n var chr = font.chars[a];\n for (var b = 0; b < chr.pixels.length; b += (font.shadow ? 4 : 3)) {\n buf.setPixel(bx + chr.pixels[b], chr.pixels[b + 1], [chr.pixels[b + 2], chr.pixels[b + 2], chr.pixels[b + 2], 255]);\n if (font.shadow) {\n buf.setPixel(bx + chr.pixels[b], chr.pixels[b + 1], [chr.pixels[b + 3], 0, 0, 255]);\n }\n }\n }\n buf.show();\n}\nexports.debugFont = debugFont;\nfunction unblendBlackBackground(img, r, g, b) {\n var rimg = new base_1.ImageData(img.width, img.height);\n for (var i = 0; i < img.data.length; i += 4) {\n var col = decomposeblack(img.data[i], img.data[i + 1], img.data[i + 2], r, g, b);\n rimg.data[i + 0] = col[0] * 255;\n rimg.data[i + 1] = rimg.data[i + 0];\n rimg.data[i + 2] = rimg.data[i + 0];\n rimg.data[i + 3] = 255;\n }\n return rimg;\n}\nexports.unblendBlackBackground = unblendBlackBackground;\n/**\n * unblends a imagebuffer into match strength with given color\n * the bgimg argument should contain a second image with pixel occluded by the font visible.\n * @param img\n * @param shadow detect black as second color\n * @param bgimg optional second image to\n */\nfunction unblendKnownBg(img, bgimg, shadow, r, g, b) {\n if (bgimg && (img.width != bgimg.width || img.height != bgimg.height)) {\n throw \"bgimg size doesn't match\";\n }\n var rimg = new base_1.ImageData(img.width, img.height);\n var totalerror = 0;\n for (var i = 0; i < img.data.length; i += 4) {\n var col = decompose2col(img.data[i], img.data[i + 1], img.data[i + 2], r, g, b, bgimg.data[i + 0], bgimg.data[i + 1], bgimg.data[i + 2]);\n if (shadow) {\n if (col[2] > 0.01) {\n console.log(\"high error component: \" + (col[2] * 100).toFixed(1) + \"%\");\n }\n totalerror += col[2];\n var m = 1 - col[1] - Math.abs(col[2]); //main color+black=100%-bg-error\n rimg.data[i + 0] = m * 255;\n rimg.data[i + 1] = col[0] / m * 255;\n rimg.data[i + 2] = rimg.data[i + 0];\n }\n else {\n rimg.data[i + 0] = col[0] * 255;\n rimg.data[i + 1] = rimg.data[i + 0];\n rimg.data[i + 2] = rimg.data[i + 0];\n }\n rimg.data[i + 3] = 255;\n }\n return rimg;\n}\nexports.unblendKnownBg = unblendKnownBg;\n/**\n * Unblends a font image that is already conpletely isolated to the raw image used ingame. This is the easiest mode for pixel fonts where alpha is 0 or 255, or for extracted font files.\n * @param img\n * @param r\n * @param g\n * @param b\n * @param shadow whether the font has a black shadow\n */\nfunction unblendTrans(img, shadow, r, g, b) {\n var rimg = new base_1.ImageData(img.width, img.height);\n var pxlum = r + g + b;\n for (var i = 0; i < img.data.length; i += 4) {\n if (shadow) {\n var lum = img.data[i + 0] + img.data[i + 1] + img.data[i + 2];\n rimg.data[i + 0] = img.data[i + 3];\n rimg.data[i + 1] = lum / pxlum * 255;\n rimg.data[i + 2] = rimg.data[i + 0];\n }\n else {\n rimg.data[i + 0] = img.data[i + 3];\n rimg.data[i + 1] = rimg.data[i + 0];\n rimg.data[i + 2] = rimg.data[i + 0];\n }\n rimg.data[i + 3] = 255;\n }\n return rimg;\n}\nexports.unblendTrans = unblendTrans;\n/**\n * Determised wether color [rgb]m can be a result of a blend with color [rgb]1 that is p (0-1) of the mix\n * It returns the number that the second color has to lie outside of the possible color ranges\n * @param rm resulting color\n * @param r1 first color of the mix (the other color is unknown)\n * @param p the portion of the [rgb]1 in the mix (0-1)\n */\nfunction canblend(rm, gm, bm, r1, g1, b1, p) {\n var m = Math.min(50, p / (1 - p));\n var r = rm + (rm - r1) * m;\n var g = gm + (gm - g1) * m;\n var b = bm + (bm - b1) * m;\n return Math.max(0, -r, -g, -b, r - 255, g - 255, b - 255);\n}\nexports.canblend = canblend;\n/**\n * decomposes a color in 2 given component colors and returns the amount of each color present\n * also return a third (noise) component which is the the amount leftover orthagonal from the 2 given colors\n */\nfunction decompose2col(rp, gp, bp, r1, g1, b1, r2, g2, b2) {\n //get the normal of the error (cross-product of both colors)\n var r3 = g1 * b2 - g2 * b1;\n var g3 = b1 * r2 - b2 * r1;\n var b3 = r1 * g2 - r2 * g1;\n //normalize to length 255\n var norm = 255 / Math.sqrt(r3 * r3 + g3 * g3 + b3 * b3);\n r3 *= norm;\n g3 *= norm;\n b3 *= norm;\n return decompose3col(rp, gp, bp, r1, g1, b1, r2, g2, b2, r3, g3, b3);\n}\nexports.decompose2col = decompose2col;\n/**\n * decomposes a pixel in a given color component and black and returns what proportion of the second color it contains\n * this is not as formal as decompose 2/3 and only give a \"good enough\" number\n */\nfunction decomposeblack(rp, gp, bp, r1, g1, b1) {\n var dr = Math.abs(rp - r1);\n var dg = Math.abs(gp - g1);\n var db = Math.abs(bp - b1);\n var maxdif = Math.max(dr, dg, db);\n return [1 - maxdif / 255];\n}\nexports.decomposeblack = decomposeblack;\n/**\n * decomposes a color in 3 given component colors and returns the amount of each color present\n */\nfunction decompose3col(rp, gp, bp, r1, g1, b1, r2, g2, b2, r3, g3, b3) {\n //P=x*C1+y*C2+z*C3\n //assemble as matrix \n //M*w=p\n //get inverse of M\n //dirty written out version of cramer's rule\n var A = g2 * b3 - b2 * g3;\n var B = g3 * b1 - b3 * g1;\n var C = g1 * b2 - b1 * g2;\n var D = b2 * r3 - r2 * b3;\n var E = b3 * r1 - r3 * b1;\n var F = b1 * r2 - r1 * b2;\n var G = r2 * g3 - g2 * r3;\n var H = r3 * g1 - g3 * r1;\n var I = r1 * g2 - g1 * r2;\n var det = r1 * A + g1 * D + b1 * G;\n //M^-1*p=w\n var x = (A * rp + D * gp + G * bp) / det;\n var y = (B * rp + E * gp + H * bp) / det;\n var z = (C * rp + F * gp + I * bp) / det;\n return [x, y, z];\n}\nexports.decompose3col = decompose3col;\n/**\n * brute force to the exact position of the text\n */\nfunction findChar(buffer, font, col, x, y, w, h) {\n if (x < 0) {\n return null;\n }\n if (y - font.basey < 0) {\n return null;\n }\n if (x + w + font.width > buffer.width) {\n return null;\n }\n if (y + h - font.basey + font.height > buffer.height) {\n return null;\n }\n var best = 1000; //TODO finetune score constants\n var bestchar = null;\n for (var cx = x; cx < x + w; cx++) {\n for (var cy = y; cy < y + h; cy++) {\n var chr = readChar(buffer, font, col, cx, cy, false, false);\n if (chr != null && chr.sizescore < best) {\n best = chr.sizescore;\n bestchar = chr;\n }\n }\n }\n return bestchar;\n}\nexports.findChar = findChar;\n/**\n * reads text with unknown exact coord or color. The given coord should be inside the text\n * color selection not implemented yet\n */\nfunction findReadLine(buffer, font, cols, x, y, w = -1, h = -1) {\n if (w == -1) {\n w = font.width + font.spacewidth;\n x -= Math.ceil(w / 2);\n }\n if (h == -1) {\n h = 7;\n y -= 1;\n }\n var chr = null;\n if (cols.length > 1) {\n //TODO use getChatColor() instead for non-mono?\n var sorted = GetChatColorMono(buffer, new base_1.Rect(x, y - font.basey, w, h), cols);\n //loop until we have a match (max 2 cols)\n for (var a = 0; a < 2 && a < sorted.length && chr == null; a++) {\n chr = findChar(buffer, font, sorted[a].col, x, y, w, h);\n }\n }\n else {\n chr = findChar(buffer, font, cols[0], x, y, w, h);\n }\n if (chr == null) {\n return { debugArea: { x, y, w, h }, text: \"\", fragments: [] };\n }\n return readLine(buffer, font, cols, chr.x, chr.y, true, true);\n}\nexports.findReadLine = findReadLine;\nfunction GetChatColorMono(buf, rect, colors) {\n var colormap = colors.map(c => ({ col: c, score: 0 }));\n if (rect.x < 0 || rect.y < 0 || rect.x + rect.width > buf.width || rect.y + rect.height > buf.height) {\n return colormap;\n }\n var data = buf.data;\n var maxd = 50;\n for (var colobj of colormap) {\n var score = 0;\n var col = colobj.col;\n for (var y = rect.y; y < rect.y + rect.height; y++) {\n for (var x = rect.x; x < rect.x + rect.width; x++) {\n var i = x * 4 + y * 4 * buf.width;\n var d = Math.abs(data[i] - col[0]) + Math.abs(data[i + 1] - col[1]) + Math.abs(data[i + 2] - col[2]);\n if (d < maxd) {\n score += maxd - d;\n }\n }\n }\n colobj.score = score;\n }\n return colormap.sort((a, b) => b.score - a.score);\n}\nexports.GetChatColorMono = GetChatColorMono;\nfunction unblend(r, g, b, R, G, B) {\n var m = Math.sqrt(r * r + g * g + b * b);\n var n = Math.sqrt(R * R + G * G + B * B);\n var x = (r * R + g * G + b * B) / n;\n var y = Math.sqrt(Math.max(0, m * m - x * x));\n var r1 = Math.max(0, (63.75 - y) * 4);\n var r2 = x / n * 255;\n if (r2 > 255) //brighter than refcol\n {\n r1 = Math.max(0, r1 - r2 + 255);\n r2 = 255;\n }\n return [r1, r2];\n}\nfunction getChatColor(buf, rect, colors) {\n var bestscore = -1.0;\n var best = null;\n var b2 = 0.0;\n var data = buf.data;\n for (let col of colors) {\n var score = 0.0;\n for (var y = rect.y; y < rect.y + rect.height; y++) {\n for (var x = rect.x; x < rect.x + rect.width; x++) {\n if (x < 0 || x + 1 >= buf.width) {\n continue;\n }\n if (y < 0 || y + 1 >= buf.width) {\n continue;\n }\n let i1 = buf.pixelOffset(x, y);\n let i2 = buf.pixelOffset(x + 1, y + 1);\n var pixel1 = unblend(data[i1 + 0], data[i1 + 1], data[i1 + 2], col[0], col[1], col[2]);\n var pixel2 = unblend(data[i2 + 0], data[i2 + 1], data[i2 + 2], col[0], col[1], col[2]);\n //TODO this is from c# can simplify a bit\n var s = (pixel1[0] / 255 * pixel1[1] / 255) * (pixel2[0] / 255 * (255.0 - pixel2[1]) / 255);\n score += s;\n }\n }\n if (score > bestscore) {\n b2 = bestscore;\n bestscore = score;\n best = col;\n }\n else if (score > b2) {\n b2 = score;\n }\n }\n //Console.WriteLine(\"color: \" + bestcol + \" - \" + (bestscore - b2));\n //bestscore /= rect.width * rect.height;\n return best;\n}\nexports.getChatColor = getChatColor;\n/**\n * reads a line of text with exactly known position and color. y should be the y coord of the text base line, x should be the first pixel of a new character\n */\nfunction readLine(buffer, font, colors, x, y, forward, backward = false) {\n if (typeof colors[0] != \"number\" && colors.length == 1) {\n colors = colors[0];\n }\n var multicol = typeof colors[0] != \"number\";\n var allcolors = multicol ? colors : [colors];\n var detectcolor = function (sx, sy, backward) {\n var w = Math.floor(font.width * 1.5);\n if (backward) {\n sx -= w;\n }\n sy -= font.basey;\n return getChatColor(buffer, { x: sx, y: sy, width: w, height: font.height }, allcolors);\n };\n var fragments = [];\n var x1 = x;\n var x2 = x;\n var maxspaces = (typeof font.maxspaces == \"number\" ? font.maxspaces : 1);\n let fragtext = \"\";\n let fraghadprimary = false;\n var lastcol = null;\n let addfrag = (forward) => {\n if (!fragtext) {\n return;\n }\n let frag = {\n text: fragtext,\n color: lastcol,\n index: 0,\n xstart: x + (forward ? fragstartdx : fragenddx),\n xend: x + (forward ? fragenddx : fragstartdx)\n };\n if (forward) {\n fragments.push(frag);\n }\n else {\n fragments.unshift(frag);\n }\n fragtext = \"\";\n fragstartdx = dx;\n fraghadprimary = false;\n };\n for (var dirforward of [true, false]) {\n //init vars\n if (dirforward && !forward) {\n continue;\n }\n if (!dirforward && !backward) {\n continue;\n }\n var dx = 0;\n var fragstartdx = dx;\n var fragenddx = dx;\n var triedspaces = 0;\n var triedrecol = false;\n var col = multicol ? null : colors;\n while (true) {\n col = col || detectcolor(x + dx, y, !dirforward);\n var chr = (col ? readChar(buffer, font, col, x + dx, y, !dirforward, true) : null);\n if (col == null || chr == null) {\n if (triedspaces < maxspaces) {\n dx += (dirforward ? 1 : -1) * font.spacewidth;\n triedspaces++;\n continue;\n }\n if (multicol && !triedrecol && fraghadprimary) {\n dx -= (dirforward ? 1 : -1) * triedspaces * font.spacewidth;\n triedspaces = 0;\n col = null;\n triedrecol = true;\n continue;\n }\n if (dirforward) {\n x2 = x + dx - font.spacewidth;\n }\n else {\n x1 = x + dx + font.spacewidth;\n }\n break;\n }\n else {\n if (lastcol && (col[0] != lastcol[0] || col[1] != lastcol[1] || col[2] != lastcol[2])) {\n addfrag(dirforward);\n }\n var spaces = \"\";\n for (var a = 0; a < triedspaces; a++) {\n spaces += \" \";\n }\n if (dirforward) {\n fragtext += spaces + chr.chr;\n }\n else {\n fragtext = chr.chr + spaces + fragtext;\n }\n if (!chr.basechar.secondary) {\n fraghadprimary = true;\n }\n triedspaces = 0;\n triedrecol = false;\n dx += (dirforward ? 1 : -1) * chr.basechar.width;\n fragenddx = dx;\n lastcol = col;\n }\n }\n if (lastcol && fraghadprimary) {\n addfrag(dirforward);\n }\n }\n fragments.forEach((f, i) => f.index = i);\n return {\n debugArea: { x: x1, y: y - 9, w: x2 - x1, h: 10 },\n text: fragments.map(f => f.text).join(\"\"),\n fragments\n };\n}\nexports.readLine = readLine;\n/**\n * Reads a line of text that uses a smallcaps font, these fonts can have duplicate chars that only have a different amount of\n * empty space after the char before the next char starts.\n * The coordinates should be near the end of the string, or a rectangle with high 1 containing all points where the string can end.\n */\nfunction readSmallCapsBackwards(buffer, font, cols, x, y, w = -1, h = -1) {\n if (w == -1) {\n w = font.width + font.spacewidth;\n x -= Math.ceil(w / 2);\n }\n if (h == -1) {\n h = 7;\n y -= 1;\n }\n var matchedchar = null;\n var sorted = (cols.length == 1 ? [{ col: cols[0], score: 1 }] : GetChatColorMono(buffer, new base_1.Rect(x, y - font.basey, w, h), cols));\n //loop until we have a match (max 2 cols)\n for (var a = 0; a < 2 && a < sorted.length && matchedchar == null; a++) {\n for (var cx = x + w - 1; cx >= x; cx--) {\n var best = 1000; //TODO finetune score constants\n var bestchar = null;\n for (var cy = y; cy < y + h; cy++) {\n var chr = readChar(buffer, font, sorted[a].col, cx, cy, true, false);\n if (chr != null && chr.sizescore < best) {\n best = chr.sizescore;\n bestchar = chr;\n }\n }\n if (bestchar) {\n matchedchar = bestchar;\n break;\n }\n }\n }\n if (matchedchar == null) {\n return { text: \"\", debugArea: { x, y, w, h } };\n }\n return readLine(buffer, font, cols, matchedchar.x, matchedchar.y, false, true);\n}\nexports.readSmallCapsBackwards = readSmallCapsBackwards;\n/**\n * Reads a single character at the exact given location\n * @param x exact x location of the start of the character domain (includes part of the spacing between characters)\n * @param y exact y location of the baseline pixel of the character\n * @param backwards read in backwards direction, the x location should be the first pixel after the character domain in that case\n */\nfunction readChar(buffer, font, col, x, y, backwards, allowSecondary) {\n y -= font.basey;\n var shiftx = 0;\n var shifty = font.basey;\n var shadow = font.shadow;\n var debugobj = null;\n var debugimg = null;\n if (exports.debug.trackread) {\n var name = x + \";\" + y + \" \" + JSON.stringify(col);\n if (!exports.debugout[name]) {\n exports.debugout[name] = [];\n }\n debugobj = exports.debugout[name];\n }\n //===== make sure the full domain is inside the bitmap/buffer ======\n if (y < 0 || y + font.height >= buffer.height) {\n return null;\n }\n if (!backwards) {\n if (x < 0 || x + font.width > buffer.width) {\n return null;\n }\n }\n else {\n if (x - font.width < 0 || x > buffer.width) {\n return null;\n }\n }\n //====== start reading the char ======\n var scores = [];\n for (var chr = 0; chr < font.chars.length; chr++) {\n var chrobj = font.chars[chr];\n if (chrobj.secondary && !allowSecondary) {\n continue;\n }\n scores[chr] = { score: 0, sizescore: 0, chr: chrobj };\n var chrx = (backwards ? x - chrobj.width : x);\n if (exports.debug.trackread) {\n debugimg = new base_1.ImageData(font.width, font.height);\n }\n for (var a = 0; a < chrobj.pixels.length;) {\n var i = (chrx + chrobj.pixels[a]) * 4 + (y + chrobj.pixels[a + 1]) * buffer.width * 4;\n var penalty = 0;\n if (!shadow) {\n penalty = canblend(buffer.data[i], buffer.data[i + 1], buffer.data[i + 2], col[0], col[1], col[2], chrobj.pixels[a + 2] / 255);\n a += 3;\n }\n else {\n var lum = chrobj.pixels[a + 3] / 255;\n penalty = canblend(buffer.data[i], buffer.data[i + 1], buffer.data[i + 2], col[0] * lum, col[1] * lum, col[2] * lum, chrobj.pixels[a + 2] / 255);\n a += 4;\n }\n scores[chr].score += Math.max(0, penalty);\n //TODO add compiler flag to this to remove it for performance\n if (debugimg) {\n debugimg.setPixel(chrobj.pixels[a], chrobj.pixels[a + 1], [penalty, penalty, penalty, 255]);\n }\n }\n scores[chr].sizescore = scores[chr].score - chrobj.bonus;\n if (debugobj) {\n debugobj.push({ chr: chrobj.chr, score: scores[chr].sizescore, rawscore: scores[chr].score, img: debugimg });\n }\n }\n scores.sort((a, b) => a.sizescore - b.sizescore);\n if (exports.debug.printcharscores) {\n scores.slice(0, 5).forEach(q => console.log(q.chr.chr, q.score.toFixed(3), q.sizescore.toFixed(3)));\n }\n var winchr = scores[0];\n if (!winchr || winchr.score > 400) {\n return null;\n }\n return { chr: winchr.chr.chr, basechar: winchr.chr, x: x + shiftx, y: y + shifty, score: winchr.score, sizescore: winchr.sizescore };\n}\nexports.readChar = readChar;\n/**\n * Generates a font json description to use in reader functions\n * @param unblended A source image with all characters lined up. The image should be unblended into components using the unblend functions\n * The lowest pixel line of this image is used to mark the location and size of the charecters if the red component is 255 it means there is a character on that pixel column\n * @param chars A string containing all the characters of the image in the same order\n * @param seconds A string with characters that are considered unlikely and should only be detected if no other character is possible.\n * For example the period (.) character matches positive inside many other characters and should be marked as secondary\n * @param bonusses An object that contains bonus scores for certain difficult characters to make the more likely to be red.\n * @param basey The y position of the baseline pixel of the font\n * @param spacewidth the number of pixels a space takes\n * @param treshold minimal color match proportion (0-1) before a pixel is used for the font\n * @param shadow whether this font also uses the black shadow some fonts have. The \"unblended\" image should be unblended correspondingly\n * @returns a javascript object describing the font which is used as input for the different read functions\n */\nfunction generatefont(unblended, chars, seconds, bonusses, basey, spacewidth, treshold, shadow) {\n //settings vars\n treshold *= 255;\n //initial vars\n var miny = unblended.height - 1;\n var maxy = 0;\n var font = { chars: [], width: 0, spacewidth: spacewidth, shadow: shadow, height: 0, basey: 0 };\n var ds = false;\n var chardata = [];\n //index all chars\n for (var dx = 0; dx < unblended.width; dx++) {\n var i = 4 * dx + 4 * unblended.width * (unblended.height - 1);\n if (unblended.data[i] == 255 && unblended.data[i + 3] == 255) {\n if (ds === false) {\n ds = dx;\n }\n }\n else {\n if (ds !== false) {\n //char found, start detection\n var de = dx;\n var char = chars[chardata.length];\n var chr = {\n ds: ds,\n de: de,\n width: de - ds,\n chr: char,\n bonus: (bonusses && bonusses[char]) || 0,\n secondary: seconds.indexOf(chars[chardata.length]) != -1,\n pixels: []\n };\n chardata.push(chr);\n font.width = Math.max(font.width, chr.width);\n for (x = 0; x < de - ds; x++) {\n for (y = 0; y < unblended.height - 1; y++) {\n var i = (x + ds) * 4 + y * unblended.width * 4;\n if (unblended.data[i] >= treshold) {\n miny = Math.min(miny, y);\n maxy = Math.max(maxy, y);\n }\n }\n }\n ds = false;\n }\n }\n }\n font.height = maxy + 1 - miny;\n font.basey = basey - miny;\n //detect all pixels\n for (var a in chardata) {\n var chr = chardata[a];\n for (var x = 0; x < chr.width; x++) {\n for (var y = 0; y < maxy + 1 - miny; y++) {\n var i = (x + chr.ds) * 4 + (y + miny) * unblended.width * 4;\n if (unblended.data[i] >= treshold) {\n chr.pixels.push(x, y);\n chr.pixels.push(unblended.data[i]);\n if (shadow) {\n chr.pixels.push(unblended.data[i + 1]);\n }\n chr.bonus += 5;\n }\n }\n }\n //prevent js from doing the thing with unnecessary output precision\n chr.bonus = +chr.bonus.toFixed(3);\n font.chars.push({ width: chr.width, bonus: chr.bonus, chr: chr.chr, pixels: chr.pixels, secondary: chr.secondary });\n }\n return font;\n}\nexports.generatefont = generatefont;\n\n\n/***/ }),\n\n/***/ \"alt1/base\":\n/*!**************************************************************************************************!*\\\n !*** external {\"root\":\"A1lib\",\"commonjs2\":\"alt1/base\",\"commonjs\":\"alt1/base\",\"amd\":\"alt1/base\"} ***!\n \\**************************************************************************************************/\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_alt1_base__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(\"./src/ocr/index.ts\");\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport * as dochandler from \"./modules/dochandler\";\nimport * as settings from \"./modules/settings\";\nimport * as slayer from \"./modules/slayer\";\nimport * as logger from \"./modules/logger\";\nimport \"./index.html\";\nimport \"./appconfig.json\";\n/* COPYRIGHT NOTICE - DO NOT REMOVE\n 2021 @ Unlishema Dragonsworn\n I have programmed this enitre app myself; however, I must give credit where credit is due.\n \n The credits have been moved into their own file @ https://slayer.unlishema.org/pages/credits.html\n*/\n/*\n ~~~ Slayer Assistant App ~~~\n Features coming in the near future (Also my current TODO List)\n\n ~ Before Release for Sure ~\n Update the about page. (Will need updated again on next release)\n Update the changelog page. (Will need updated again on next release)\n Update the credits page. (Will need updated again on next release)\n\n ~ Coming Next Release ~\n Adjust where the CNAME for the app on github is located for source update (Done)\n Upload the source of the app to github so we won't lose it again (Ready but source needs Tested First)\n Adjust the DNS Record for https://slayer.unlishema.org to point at https://unlishema.github.io/slayerassistant/dist instead for new update because the source is the main dir\n Add ability to load the database through a php file instead of the json (Done, except for reapers.json)\n - We will still use a json database in the app but the php file will build the json via MySQL (Done)\n - The php file will be creatures.json via the .htaccess file (Done)\n - http://slayer.unlishema.org/data/creatures.json will load http://slayer.unlishema.org/data/creatures.php?q=all (Done)\n - Add other features to the database query php even if the app don't use them yet (Coming in the future)\n -- Example: http://slayer.unlishema.org/data/creatures.php?q=Dragon&l=10\n -- l=100 could limit results, d could have it give extra details, q could also be setup for seaching, and so on\n Adjust the caching of the json database files to make sure they get updated timely (use .htaccess and mode_expires.c)\n - This may not be needed once I change over to the php file instead. (Doesn't seem to be needed anymore, more testing required)\n\n ~ Coming Very Soon Maybe even next Release ~\n Add in a status tracking area to keep track of xp/hr, kills/hr, and more (Needs finished)\n Add settings into the app finally (Needs rest added)\n Adjust histories to use sessionStorage\n Make it show if it detects your using alt1toolkit or not and warn a users of the features they are missing without using alt1toolkit.\n - Also add into settings ability to hide this warning. Also add setting to turn off injection of the alt1 app.\n\n ~ Near future Release ~\n Add support for Ushubti\n\n ~ Settings for the app ~\n Settings:\n - Ability to toggle on and off Debug and Verbose mode\n - Ability to toggle auto find task via dialog (Done)\n - Ability to toggle auto find current task via Slayer Count RS3UI (Done)\n - Ability to toggle extra info to make box smaller without scrollbar (Done)\n - Ability to toggle all hidden creatures\n -- Ability to toggle sub-classes of hidden creatures like (elite), (dragonkin lab) and such\n - Ability to select default loading\n -- Default Task(s) on open and adjust doc based on it (Done, Partially)\n -- Load previous task(s) and adjust doc based on it\n - Ability to select defaults for everything (Later On)\n -- Select default creature per task\n -- Select default variant per creature\n - Ability to customize the Look N Feel of the Slayer Assistant UI (Way Later On)\n - Ability to select how long to save search history (Way Later On)\n - Ability to select the type of search algo for the app (Maybe Later On)\n - Ability to toggle warnings (eg. Missing Features due to not on Alt1Toolkit, Missing Data, and so on...)\n - Ability to turn off app injection (This will fix issues where a user can't inject into the client)\n\n*/\nif (window.alt1)\n alt1.identifyAppUrl(\"./appconfig.json\");\n// Initialize the JavaScript for the app\ndocument.addEventListener(\"DOMContentLoaded\", function () { return __awaiter(void 0, void 0, void 0, function () {\n var error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n // Setup the main document and load assignment index\n return [4 /*yield*/, dochandler.main.setup.documentMain()];\n case 1:\n // Setup the main document and load assignment index\n _a.sent();\n // Run the Config Setup Process\n return [4 /*yield*/, settings.controller.load()];\n case 2:\n // Run the Config Setup Process\n _a.sent();\n // Start the capture loop at the configured interval\n setInterval(function () {\n slayer.findTask();\n }, settings.controller.data.autoCapture.loopTimer);\n return [3 /*break*/, 4];\n case 3:\n error_1 = _a.sent();\n console.error(\"Initialization error:\", error_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n}); });\n// Save settings before closing the app\ndocument.addEventListener(\"beforeunload\", function () { return __awaiter(void 0, void 0, void 0, function () {\n var error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, settings.controller.save()];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_2 = _a.sent();\n logger.error(\"Error saving settings:\", error_2);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n}); });\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
--- /dev/null
+<html>
+
+<head>
+ <title>About Slayer Assistant</title>
+ <link rel="icon" href="../images/icon.png" type="image/png">
+ <link rel="stylesheet" href="../styles/default/about.css">
+</head>
+
+<body class="nis">
+
+ <div class="nisbutton" id="changelog-button" onclick="openCredits();">Open Credits</div>
+ <div class="nisbutton" id="changelog-button" onclick="openChangelog();">Open Changelog</div>
+ <h2 class="nistext">Need Help or Having Trouble?</br>Welcome to the Correct Place!</h2>
+
+ <h3 class="nistext">Current Slayer Assistant Look N Feel</h3>
+ <p class="nistext">This Look N Feel has been designed by the community. It has slowly but surely updated to
+ accomadate new information and features.</p>
+ <img src="../images/ui/default/about/Slayer_assistant_interface.png" alt="Slayer Assistant Interface Image"></img>
+
+ <h3 class="nistext">What activates the Slayer Assistant?</h3>
+ <p class="nistext">There are a few different instances that will cause the Slayer Assistant to update it's
+ information. The first is if you go get a new task from a slayer master or death for reaper tasks. The next is
+ while you are on a task, it will keep track of your kills vis the slayer/reaper counter GUI.</p>
+ <p class="nistext">Once it reads an interface similar to the examples below it will save this assignment information
+ and automatically do a lookup for you. You can also click on Capture to make it try and lookup a task on the
+ screen at the very moment.</p>
+ <h4 class="nistext">The following are examples of the interfaces it can read for slayer tasks.</h4>
+ <div class="example">
+ <img src="../images/ui/default/about/Slayer_task_interface.png" alt="Slayer Assignment Interface Image"></img>
+ <p class="info nistext">Example Slayer Assignment Interface</p>
+ </div>
+ <div class="example">
+ <img src="../images/ui/default/about/VIP_ticket_interface.png" alt="VIP Ticket Interface Image"></img>
+ <p class="info nistext">Example Slayer Ticket Assignment Interface</p>
+ </div>
+ <div class="example">
+ <img class="expanded" src="../images/ui/default/about/Slayer_counter_expanded.png"
+ alt="Slayer Counter Expanded Image"></img>
+ <img class="collapsed" src="../images/ui/default/about/Slayer_counter.png"
+ alt="Slayer Counter Collapsed Image"></img>
+ <p class="info nistext">Example Slayer Counter Interface</p>
+ <p class="info nistext">This interface will cause it to lookup the exact assignment that is given (if expanded)
+ and display relevant data; otherwise, it will just attempt to update the count of the current task it has
+ loaded.</p>
+ </div>
+ <h4 class="nistext">The following are examples of the interfaces it can read for reaper tasks.</h4>
+ <div class="example">
+ <img src="../images/ui/default/about/Reaper_task_interface.png" alt="Reaper Assignment Interface Image"></img>
+ <p class="info nistext">Example Reaper Assignment Interface</p>
+ <p class="info nistext">This interface will cause it to lookup the exact assignment that is given and display
+ relevant data.</p>
+ </div>
+ <div class="example">
+ <img class="expanded" src="../images/ui/default/about/Reaper_counter_expanded.png"
+ alt="Reaper Counter Expanded Image"></img>
+ <img class="collapsed" src="../images/ui/default/about/Reaper_counter.png"
+ alt="Reaper Counter Collapsed Image"></img>
+ <p class="info nistext">Example Reaper Counter Interface</p>
+ <p class="info nistext">This interface will cause it to lookup the exact assignment that is given (if expanded)
+ and display relevant data; otherwise, it will just attempt to update the count of the current task it has
+ loaded.</p>
+ </div>
+ <h4 class="nistext">The following are examples of the interfaces it can read for select your own assignment tasks.
+ </h4>
+ <div class="example">
+ <img src="../images/ui/default/about/Select_your_own_task.png"
+ alt="Select Your Own Assignment Interface Image"></img>
+ <p class="info nistext">Example Select Your Own Assignment Interface</p>
+ <p class="info nistext">This interface will cause it to display a list of suggested tasks and why they are
+ suggested for the Select Your Own Assignment.</p>
+ </div>
+
+
+ <h3 class="nistext">Did you know?</h3>
+ <p class="info nistext">There is now a search history you can use with the up and down arrow key? It resets
+ everytime you close the app.</p>
+ <p class="info nistext">If you hover over the assignment wiki, creature wiki, and See More... on the app it shows
+ more data. Give it a try</p>
+ <img src="../images/ui/default/about/Right_click_interface.png" alt="Right Click Image"></img>
+ <p class="info nistext">Opens up Slayer Assistant</p>
+
+ <div id="copyright">Copyright ©2021 Unlishema Dragonsworn</div>
+
+ <script type="text/javascript">
+ function openChangelog() {
+ window.open("./changelog.html", null, "width=480,height=550");
+ }
+
+ function openCredits() {
+ window.open("./credits.html", null, "width=480,height=550");
+ }
+ </script>
+
+</body>
+
+</html>
\ No newline at end of file
--- /dev/null
+<html>
+
+<head>
+ <title>Changelog</title>
+ <link rel="icon" href="../images/icon.png" type="image/png">
+ <link rel="stylesheet" href="../styles/default/changelog.css">
+</head>
+
+<body class="nis">
+ <div class="nisbutton" id="changelog-button" onclick="history.back();">Go Back</div>
+
+ <h2>06/22/2024 - Bug Fixes and Future Updates</h2>
+ <p class="nistext">
+ <b>Bug Fixes:</b> Quite a bit of minor (and a couple major) bugs that poped up during the newest development of
+ the app has been fixed in this release. There was quick pushes for the major bugs to get rid of them as fast as
+ possible.
+ </p>
+ <p class="nistext">
+ <b>Basic Settings Added:</b> Basic settings have been added, more will come in the future. The current settings
+ will allow at least simple control over the app so far. A few to more coming soon is search and lookup history.
+ </p>
+ <p class="nistext">
+ <b>Updates to Allow Better Future Updates:</b> Quite a bit of the backend of the app has been re-wrote to allow
+ better future updates. A couple examples are adding settings to allow better usability of the app, making other
+ looks for the app to allow a more personal feel for the app, and adding comments to the code along with
+ restructuring it to be easier to navigate and understand. All of these changes were to allow the next future
+ updates to be easier to implement and the settings are working but not all of them have been added where you can
+ change them. This should come in the next update.
+ </p>
+ <p class="nistext">
+ <b>A few Tweaks:</b> There is also a few tweaks to different parts of the app that happened as well due to these
+ changes. The About Page width has changed to make it easier to read. The LookNFeel of the app has been slightly
+ altered during the update due to making it more flexible for the future style update. The LookNFeel also has a
+ limited UI option now that is changable in the settings.
+ </p>
+
+ <h2>06/15/2024 - Added Counter UI Support</h2>
+ <p class="nistext">
+ <b>Slayer and Reaper Counter UI:</b> Full support added. When collapsed, it updates only the current assignment
+ count; when expanded, it loads and updates the assignment unless it's already loaded.
+ </p>
+ <p class="nistext">
+ <b>Task Comparison:</b> Compare Slayer tasks by separating them with a "|". Note: Reaper assignments cannot be
+ compared.
+ </p>
+ <p class="nistext">
+ <b>Suggested Slayer Assignments:</b> For level 120, "Select Your Own Assignment" dialog now includes suggested
+ tasks. Search "suggest" in the search bar to view suggestions.
+ </p>
+ <p class="nistext">
+ <b>Navigation Enhancements:</b> Navigate forward and backward through lookups, making it easy to revisit
+ previous tasks and suggested assignments.
+ </p>
+ <p class="nistext">
+ <b>UI Adjustments:</b> Improved look and feel for all pages when resized. Additional tweaks are planned for
+ perfection.
+ </p>
+ <p class="nistext">
+ <b>Project Adjustments:</b> Updates now designed to avoid disruptions, ensuring smoother future Alt1 updates.
+ </p>
+ <p class="nistext">
+ <b>Code Refactoring:</b> Improved readability and data separation into Readers for better portability. Skillbert
+ can now extract Readers for the main Alt1 source.
+ </p>
+ <p class="nistext">
+ <b>New DevTools:</b> Added debugging functions for testing and resolving issues.
+ </p>
+
+
+ <h2>06/11/2024 - Major Recode
+ </h2>
+ <p class="nistext">Today is a special day because a massive recode has came for Slayer Assistant. This recode
+ started on 06/02/2024. Most of the changes were due to an update to the base alt1. You may not see a lot of
+ changes but there is a lot, so lets go over them all.</p>
+ <p class="nistext">The recode has allowed me to have all the code neater so updates should be much easier. Also
+ new features won't be as hard to add in because the code before was a huge mess</p>
+ <p class="nistext">Features coming soon</p>
+ <ul class="nistext">
+ <li>Update the forum post</li>
+ <li>Add in some basic settings</li>
+ <li>120 Slayer Assignment suggestions (Needs Page Made)</li>
+ <li>Ability to lookup task via Slayer Counter RS3</li>
+ <li>Ability to lookup task via Reaper Counter RS3</li>
+ <li>Add support for Ushabti</li>
+ </ul>
+ <p class="nistext">Features added</p>
+ <ul class="nistext">
+ <li>Adjusted Search Algorithm to work better</li>
+ <li>Reaper Task support has been added (Needs more Work)</li>
+ <li>Added Necromancy Support to databaase and app</li>
+ <li>Ability to Ctrl+V paste an image for lookup</li>
+ <li>Ability to Drag & Drop an image for lookup</li>
+ <li>Added a small copyright at the bottom of all pages</li>
+ <li>Search bar now has history using up and down arrows</li>
+ <ul>
+ <li>It also temp saves the current search too</li>
+ </ul>
+ <li>Optimized the updating of current task</li>
+ <ul>
+ <li>This way it won't flicker on updates</li>
+ </ul>
+ </ul>
+ <p class="nistext">Features updated</p>
+ <ul class="nistext">
+ <li>Massive fixes to the database</li>
+ <li>Updated the database for new content</li>
+ <li>Updated the about page with new info</li>
+ <li>Capture Loop has been optimized</li>
+ <li>Capture Button has now been added</li>
+ <li>Search Button is also the Capture Button</li>
+ <ul>
+ <li>It changes when you type in search</li>
+ </ul>
+ </ul>
+ <p class="nistext">Features kept from previous version</p>
+ <ul class="nistext">
+ <li>Help/About, Settings, & Donate Buttons</li>
+ <li>Search Bar and Capture/Search Button</li>
+ <li>Ability to show single Assignments</li>
+ <li>Ability to show 2(vs) Assignments</li>
+ <li>Important Info Shown at All Times</li>
+ <ul>
+ <li>Wiki, Kills, & Assignment</li>
+ <ul>
+ <li>Total Exp for Assignment</li>
+ <li>Hover Assignment Wiki</li>
+ <ul>
+ <li>Slayer Master Info</li>
+ </ul>
+ </ul>
+ <li>Locations for Assignment</li>
+ <li>Equipment Suggested for Assignment</li>
+ <li>Wiki, Creatures, & Creature Variants</li>
+ <ul>
+ <li>Slayer Level & Exp</li>
+ <li>Weakness & Susceptible</li>
+ <li>Hover Creature Wiki</li>
+ <ul>
+ <li>Image</li>
+ <li>Stats</li>
+ <ul>
+ <li>Combat Level</li>
+ <li>Lifepoints</li>
+ <li>Defence</li>
+ </ul>
+ <li>Exp</li>
+ <ul>
+ <li>Combat</li>
+ <li>Lifepoints</li>
+ </ul>
+ <li>Max Hit</li>
+ <ul>
+ <li>Melee</li>
+ <li>Range</li>
+ <li>Magic</li>
+ <li>Spec</li>
+ </ul>
+ </ul>
+ </ul>
+ </ul>
+ </ul>
+
+ <h2>04/27/2024 - Minor Bug Fixes</h2>
+ <p class="nistext">Fixed a bug that caused only the first assignment to get loaded and not the second one.</p>
+ <p class="nistext">Fixed a bug that caused the wiki links to not go to the currently loaded assignment.</p>
+
+ <h2>02/13/2022 - Minor but Needed</h2>
+ <p class="nistext">Finally have a little time to work on updating the Forum Post as well as the credits. Also going
+ to update the about section soon.</p>
+
+ <h2>12/24/2021 - Merry Christmas</h2>
+ <p class="nistext">Finished updating all the old changelog information, some may be missing but the most of it is
+ there for now. Need to backup discord info during development so I can check later.</p>
+ <p class="nistext">Adding about info section soon...</p>
+ <p class="nistext">Current App Features to Date</p>
+ <ul class="nistext">
+ <li>Help/About, Settings, & Donate Buttons</li>
+ <li>Search Bar and Button</li>
+ <li>Ability to show 1 or 2(vs) Assignments</li>
+ <li>Important Info Shown at All Times</li>
+ <ul>
+ <li>Wiki, Kills, & Assignment</li>
+ <ul>
+ <li>Total Exp for Assignment</li>
+ <li>Hover Assignment Wiki</li>
+ <ul>
+ <li>Slayer Master Info</li>
+ </ul>
+ </ul>
+ <li>Locations for Assignment</li>
+ <li>Equipment Suggested for Assignment</li>
+ <li>Wiki, Creatures, & Creature Varants</li>
+ <ul>
+ <li>Slayer Level & Exp</li>
+ <li>Weakness & Susceptible</li>
+ <li>Hover Creature Wiki</li>
+ <ul>
+ <li>Image</li>
+ <li>Stats</li>
+ <ul>
+ <li>Combat Level</li>
+ <li>Lifepoints</li>
+ <li>Defence</li>
+ </ul>
+ <li>Exp</li>
+ <ul>
+ <li>Combat</li>
+ <li>Lifepoints</li>
+ </ul>
+ <li>Max Hit</li>
+ <ul>
+ <li>Melee</li>
+ <li>Range</li>
+ <li>Magic</li>
+ <li>Spec</li>
+ </ul>
+ </ul>
+ </ul>
+ </ul>
+ </ul>
+
+ <h2>12/09/2021 - Beta Updated</h2>
+ <p class="nistext">Massively adjusted the look and feel of the app. Moved a lot of data into a "Wiki Preview Screen"
+ that shows up when hovering over the wiki button.</p>
+ <p class="nistext">Adjusted and added a lot of the user experience features.</p>
+ <ul class="nistext">
+ <li>Hover Assigment Wiki for Slayer Master Info</li>
+ <li>Hover Creature Wiki for Creature Info</li>
+ <li>Adjusted/Added hovering effects timer</li>
+ <li>Added donate button just to have it for now</li>
+ </ul>
+
+ <h2>11/29/2021 - Beta Updated</h2>
+ <p class="nistext">Added 2 items that was missed before even though they aren't complete yet.</p>
+ <ul class="nistext">
+ <li>Added About Info Button</li>
+ <li>Added Settings Button</li>
+ </ul>
+
+ <h2>11/19/2021 - Beta Released</h2>
+ <p class="nistext">Released the Beta to the public as it was working well enough for the public to use without worry
+ about it crashing.</p>
+ <ul class="nistext">
+ <li>Ability to search for an assignment</li>
+ <li>Compare 2 Assignments side by side</li>
+ <li>Most Information for Assignments</li>
+ <ul>
+ <li>Kills Required and Total Exp</li>
+ <li>Locations for assignments</li>
+ <li>Equipment required for assignments</li>
+ <li>Slayer Master info per assignment</li>
+ <li>Cluster Task Support (Creature List and Variants)</li>
+ <li>Wiki links for each assignment and creature</li>
+ <li>Creature information</li>
+ <ul>
+ <li>Name, Image, Location, and Examine Info</li>
+ <li>Level, Slayer Lvl, LP, Defence</li>
+ <li>Max Hits for Melee, Range, Magic, and Spec</li>
+ <li>Weakness & Susceptible</li>
+ <li>Exp for Combat, Lifepoints, and Slayer</li>
+ </ul>
+ </ul>
+ </ul>
+
+ <h2>11/09/2021 - Beta Getting Close</h2>
+ <p class="nistext">Fixed almost all the major bugs and most of the minor bugs, next is to finish adjusting the look
+ of the new app.</p>
+ <p class="nistext">With a massive amount of help from <a onclick="openDiscordUser('Emma Kitty#6969');">Emma
+ Kitty</a>, I was finally able to add the first bit of
+ user experience features to the app making the list of creatures smaller and easiler to navigate. Also default
+ selected creatures were added. These features still need refined more so they do everything they are supposed
+ to.</p>
+
+ <h2>08/12/2021 - Changelog Added</h2>
+ <p class="nistext">Added the changelog and about webpages for the app; however, still haven't added them to the app
+ intself. Still need to work on settings and updating the look and feel even more to work out the rest of the
+ bugs.</p>
+
+ <h2>08/05/2021 - New Alpha Release</h2>
+ <p class="nistext">Released the alpha to the development channel on Discord with a few bugs and a lot of information
+ missing to see how it worked for others before releasing to the public.</p>
+ <p class="nistext">Features partially or fully added.</p>
+ <ul class="nistext">
+ <li>Ability to search for an assignment</li>
+ <li>Compare 2 Assignments side by side</li>
+ <li>Most Information for Assignments</li>
+ <ul>
+ <li>Kills Required and Total Exp</li>
+ <li>Locations for assignments</li>
+ <li>Equipment required for assignments</li>
+ <li>Slayer Master info per assignment</li>
+ <li>Cluster Task Support (Creature List and Variants)</li>
+ <li>Wiki links for each assignment and creature</li>
+ <li>Creature information</li>
+ <ul>
+ <li>Name, Image, Location, and Examine Info</li>
+ <li>Level, Slayer Lvl, LP, Defence</li>
+ <li>Max Hits for Melee, Range, Magic, and Spec</li>
+ <li>Weakness & Susceptible</li>
+ <li>Exp for Combat, Lifepoints, and Slayer</li>
+ </ul>
+ </ul>
+ </ul>
+
+ <h2>07/09/2021 - Major Bug Found</h2>
+ <p class="nistext">Soon after doing the redesign of the Database Updater, a major bug came up that almost crashed
+ the computer many times. Come to find out this was a bug in the compiler I was using and had nothing to do with
+ the way I created the app at all.</p>
+
+ <h2>06/11/2021 - Redesign Revealed</h2>
+ <p class="nistext">Revealed the redesigned look and feel of the Slayer Assistant to the Development channel on
+ RuneApps Discord. Public didn't have access to the app but got to see it's progress.</p>
+ <p class="nistext">Features partially or fully added.</p>
+ <ul class="nistext">
+ <li>Ability to search for an assignment</li>
+ <li>Compare 2 Assignments side by side</li>
+ <li>Most Information for Assignments</li>
+ <ul>
+ <li>Kills Required and Total Exp</li>
+ <li>Locations for assignments</li>
+ <li>Equipment required for assignments</li>
+ <li>Slayer Master info per assignment</li>
+ <li>Cluster Task Support (Creature List and Variants)</li>
+ <li>Wiki links for each assignment and creature</li>
+ <li>Creature information</li>
+ <ul>
+ <li>Name, Image, Location, and Examine Info</li>
+ <li>Level, Slayer Lvl, LP, Defence</li>
+ <li>Max Hits for Melee, Range, Magic, and Spec</li>
+ <li>Weakness & Susceptible</li>
+ <li>Exp for Combat, Lifepoints, and Slayer</li>
+ </ul>
+ </ul>
+ </ul>
+
+ <h2>05/20/2021 - Redesign Started</h2>
+ <p class="nistext">Due to a major computer crash that required a re-install of the OS, all source for the database
+ updater was lost. This lead to a complete redesign of the app for many reasons, but the biggest was due to the
+ system not supporting cluster tasks.</p>
+ <p class="nistext">After a lot of discussion with <a onclick="openDiscordUser('Zykrow#8009');">Zykrow</a> on the
+ matter, I started working on the new database
+ updater and redesigning the Alt1 app.</p>
+ <p class="nistext">Features planned for the redesign.</p>
+ <ul class="nistext">
+ <li>Ability to search for an assignment</li>
+ <li>Settings for app</li>
+ <li>About info for app</li>
+ <li>Refresh/reload button to allow manual reading of task incase the loop breaks</li>
+ <li>Compare 2 Assignments side by side</li>
+ <li>Most Information for Assignments</li>
+ <ul>
+ <li>Kills Required and Total Exp</li>
+ <li>Locations for assignments</li>
+ <li>Equipment required for assignments</li>
+ <li>Slayer Master info per assignment</li>
+ <li>Cluster Task Support (Creature List and Variants)</li>
+ <li>Wiki links for each assignment and creature</li>
+ <li>Creature information</li>
+ <ul>
+ <li>Name, Image, Location, and Examine Info</li>
+ <li>Level, Slayer Lvl, LP, Defence</li>
+ <li>Max Hits for Melee, Range, Magic, and Spec</li>
+ <li>Weakness & Susceptible</li>
+ <li>Exp for Combat, Lifepoints, and Slayer</li>
+ </ul>
+ </ul>
+ <li>Donate to contributers button</li>
+ </ul>
+
+ <h2>05/14/2021 - First Release</h2>
+ <p class="nistext">With a lot of assistance from <a onclick="openDiscordUser('Skillbert#9582');">Skillbert</a> on
+ discord, I was finally able to create my first
+ basic app on Alt1.</p>
+ <p class="nistext">Not long after the first app was working, I was able to turn it into the Slayer Assistant app.
+ This was not without help from the rest of the discord comunity though. <a
+ onclick="openDiscordUser('crazye97#2027');">crazye97</a> assisted a lot to get the first version created. <a
+ onclick="openDiscordUser('troy236#2361');">troy236</a> gave me the answer to my last issue with
+ the app allowing me to get it released.</p>
+ <p class="nistext">Here is a list of all features supported in this version.</p>
+ <ul class="nistext">
+ <li>A button to read the task on screen incase the app had a glitch and wasn't working correctly</li>
+ <li>Compare 2 Assignments side by side</li>
+ <li>Basic Information for Assignments</li>
+ <ul>
+ <li>Kills Required and Total Exp</li>
+ <li>Creature information</li>
+ <ul>
+ <li>Name, Image, and Examine Info</li>
+ <li>Level, Slayer Lvl, LP, Defence</li>
+ <li>Max Hits for Melee, Range, Magic, and Spec</li>
+ <li>Weakness (as Displayed on wiki)</li>
+ <li>Exp for Combat, Lifepoints, and Slayer</li>
+ </ul>
+ <li>Wiki links for each creature</li>
+ </ul>
+ </ul>
+
+ <h2>05/12/2021 - Project Started</h2>
+ <p class="nistext">Here is a little history on how this app came to be.</p>
+ <p class="nistext">After a long conversation with <a onclick="openDiscordUser('Zykrow#8009');">Zykrow</a> on the
+ viability of a new slayer app for Alt1, I
+ started doing some research on creating Alt1 apps and come to find out it is not hard but not easy either;
+ however, redesigning the wheel is bad practice so lets see if anyone else has already created an app like this.
+ </p>
+ <p class="nistext">To my suprise there was one; however, it was outdated and no source code was known to exist for
+ it. Oh well. Time to start designing it then.</p>
+ <p class="nistext">The original Slayer Decision App was used as a base for the look and feel for the new app I
+ started creating. The original app can be found <a
+ onclick="window.open('https://runeapps.org/forums/viewtopic.php?id=570');">here</a>.</p>
+ <p class="nistext">There was a lot discussed on what could be added to the app; however, quite a bit of it was for
+ way later on once the app was made and working. So here is a list of what was planned for the first release.</p>
+ <ul class="nistext">
+ <li>Ability to search for an assignment</li>
+ <li>Compare 2 Assignments side by side</li>
+ <li>Basic Information for Assignments</li>
+ <ul>
+ <li>Kills Required and Total Exp</li>
+ <li>Creature information</li>
+ <ul>
+ <li>Name, Image, Location, and Examine Info</li>
+ <li>Level, Slayer Lvl, LP, Defence</li>
+ <li>Max Hits for Melee, Range, Magic, and Spec</li>
+ <li>Weakness (aka. Melee, Range, Magic)</li>
+ <li>Exp for Combat, Lifepoints, and Slayer</li>
+ </ul>
+ </ul>
+ </ul>
+
+ <div id="copyright">Copyright ©2021 Unlishema Dragonsworn</div>
+
+ <script type="text/javascript">
+ function openDiscordUser(user) {
+ window.open('https://discordapp.com/users/' + user);
+ }
+ </script>
+</body>
+
+</html>
\ No newline at end of file
--- /dev/null
+<html>
+
+<head>
+ <title>Credits</title>
+ <link rel="icon" href="../images/icon.png" type="image/png">
+ <link rel="stylesheet" href="../styles/default/credits.css">
+</head>
+
+<body class="nis">
+ <div class="nisbutton" id="changelog-button" onclick="history.back();">Go Back</div>
+ <h2>Credit due where deserved</h2>
+ <p class="nistext">Assistance with Slayer Assistant for Alt1</p>
+ <ul class="nistext">
+ <li><a onclick="window.open('https://runeapps.org/forums/viewtopic.php?id=570');">codedninja</a> -
+ For creating the original app and inspiring the look and feel of this app</li>
+ <li><a onclick="openDiscordUser('Skillbert#9582');">Skillbert</a> - For all the assistance during
+ the creation of this app, as well as for creating Alt1 Toolkit</li>
+ <li><a onclick="openDiscordUser('Zykrow#8009');">Zykrow</a> - For support and assistance during the
+ entire development of this app</li>
+ <li><a onclick="openDiscordUser('crazye97#2027');">crazye97</a> - For all the assistance during the
+ development of this app, too much to specify each one</li>
+ <li><a onclick="openDiscordUser('troy236#2361');">troy236</a> - For giving me the answer to why I
+ couldn't edit the src of an img in javascript</li>
+ <li><a onclick="openDiscordUser('Emma Kitty#6969');">Emma Kitty</a> - For helping manage the
+ database; formatting, adding manual entries, and adding user experience content to the app</li>
+ <li><a onclick="openDiscordUser('Annie the Eagle#0001');">Annie the Eagle</a> - For help with
+ adjusting the Look and Feel of the app</li>
+ <li><a onclick="openDiscordUser('MrSlayerGod#5656');">MrSlayerGod</a> - For suggestions on the
+ newest Look and Feel of the app</li>
+ <li><a onclick="openDiscordUser('Poop Skewer#7325');">Poop Skewer</a> - For suggesting moving the
+ app over to github for better uptime</li>
+ <li><a onclick="openDiscordUser('vinay#5636');">display_this</a> - For reporting app breaking bugs
+ that kept the app from running at its full potential</li>
+ <li><a onclick="openDiscordUser('Leridon#6812');">Leridon</a> - For assisting me on getting the
+ slayer/reaper counter lookup started as well as helping fix major issues during upgrading alt1 source</li>
+ <li><a onclick="openDiscordUser('Umbra#5689');">Nex ex Umbra</a> - For assitance on getting the
+ Select
+ your own task detection to work</li>
+ <li><a
+ onclick="window.open('https://stackoverflow.com/questions/10473745/compare-strings-javascript-return-of-likely');">overlord1234
+ & David</a> - For the Levenshtein distance algorithim for the search feature</li>
+ </ul>
+
+ <p class="nistext">Assistance with Slayer Assistant Database Updater</p>
+ <ul class="nistext">
+ <li><a onclick="window.open('https://runescape.wiki');">Runescape Wiki</a> - For having an amazing
+ database that I can just parse to make use of in this app</li>
+ <li><a onclick="openDiscordUser('achievementshunter');">Chiev Hunter</a> - For assistance in fixing
+ the slayer assignment wiki so my updater would quit throwing an error</li>
+ <li><a onclick="openDiscordUser('Wahi#5030');">Wahi</a> - For explaining the Wights task was old
+ content that was removed</li>
+ <li><a onclick="openDiscordUser('Robert571#7543');">Robert571</a> - For suggesting the new query
+ search for database downloading from the wiki</li>
+ <li><a onclick="openDiscordUser('Wired In#2593');">Im Wired In</a> - For all the assistance in
+ helping to figure out how to use the new query search for database downloading from the wiki</li>
+ </ul>
+
+ <p class="nistext">For Creating Something Amazing</p>
+ <ul class="nistext">
+ <li><a onclick="window.open('http://jagex.com');">Jagex</a> - For creating an amazing game that has
+ many more years to come</li>
+ <li><a onclick="window.open('http://runescape.com');">Runescape</a> - For still being here after
+ all these years, it has came a long way</li>
+ <li><a onclick="window.open('https://runescape.wiki');">Runescape Wiki</a> - For having an amazing
+ database for all of the RuneScape community</li>
+ <li><a onclick="window.open('https://chat.openai.com');">Chat GPT</a> - For creating something
+ amazing that can assist with anything</li>
+ <li><a onclick="openDiscordUser('Skillbert#9582');">Skillbert</a> - For creating Alt1 Toolkit and
+ keeping it maintained</li>
+ </ul>
+
+ <div id="copyright">Copyright ©2021 Unlishema Dragonsworn</div>
+
+ <script type="text/javascript">
+ function openDiscordUser(user) {
+ window.open('https://discordapp.com/users/' + user);
+ }
+ </script>
+</body>
+
+</html>
\ No newline at end of file
--- /dev/null
+<div id="menubar">
+ <div id="infobutton" class="transbutton" title="About"></div>
+ <div id="menubutton" class="transbutton" title="Settings"></div>
+ <div id="donatebutton" class="transbutton" title="Donate"></div>
+ <div id="backbutton" class="transbutton" title="Previous Lookup"></div>
+ <div id="forwardbutton" class="transbutton" title="Next Lookup"></div>
+
+ <input type="text" list="search-info-list" class="nistext" id="search-info" name="search-info"
+ title="Search assignments, alias, or creatures" placeholder="Search..." autofocus></input>
+ <datalist id="search-info-list"></datalist>
+ <div class="nisbutton" id="search-button" title="You can also just press enter">Search<span
+ style="visibility: hidden;">. . .</span></div>
+ <div class="loading-container"><span class="loading" id="loading-bar" title="Loading..."></span></div>
+</div>
+
+<div id="base">
+</div>
+<div id="copyright" class="copyright-limited">Copyright ©2021 Unlishema Dragonsworn</div>
\ No newline at end of file
--- /dev/null
+<div class="left"></div>
+<div id="divide" class="divide-limited"></div>
+<div class="right"></div>
\ No newline at end of file
--- /dev/null
+<div class="nistext preview-task-wiki">
+ <div class="nistext masters">
+ <div class="nistext masterInfo1"><img id="masterImage1" alt="Chaeldar" src="./images/masters/Chaeldar.png"
+ title="Chaeldar"></img> Kills: Coming Soon...</div>
+ <div class="nistext masterInfo2"><img id="masterImage2" alt="Duradel" src="./images/masters/Duradel.png"
+ title="Duradel"></img> Kills: Coming Soon...</div>
+ <div class="nistext masterInfo3"><img id="masterImage3" alt="Jacquelyn" src="./images/masters/Jacquelyn.png"
+ title="Jacquelyn"></img> Kills: Coming Soon...</div>
+ <div class="nistext masterInfo4"><img id="masterImage4" alt="Kuradal" src="./images/masters/Kuradal.png"
+ title="Kuradal"></img> Kills: Coming Soon...</div>
+ <div class="nistext masterInfo5"><img id="masterImage5" alt="Laniakea" src="./images/masters/Laniakea.png"
+ title="Laniakea"></img> Kills: Coming Soon...</div>
+ <div class="nistext masterInfo6"><img id="masterImage6" alt="Mandrith" src="./images/masters/Mandrith.png"
+ title="Mandrith"></img> Kills: Coming Soon...</div>
+ <div class="nistext masterInfo7"><img id="masterImage7" alt="Mazchna" src="./images/masters/Mazchna.png"
+ title="Mazchna"></img> Kills: Coming Soon...</div>
+ </div>
+</div>
+
+<div class="nistext preview-creature-wiki">
+ <div class="nistext image-container"></div>
+ <div class="nistext stats">
+ <div class="nistext" id="title-4">Stats</div>
+ <img class="first-third-image" src="./images/misc/combat.png" title="Combat Level"></img>
+ <img class="second-third-image" src="./images/misc/lifepoints.png" title="Lifepoints"></img>
+ <img class="third-third-image" src="./images/misc/defence.png" title="Defense"></img>
+ <div class="nistext first-third level" title="Combat Level">???</div>
+ <div class="nistext second-third lifepoints" title="Lifepoints">???</div>
+ <div class="nistext third-third defence" title="Defense">???</div>
+ </div>
+
+ <div class="nistext exp">
+ <div class="nistext" id="title-5">Exp</div>
+ <img class="first-third-image" src="./images/misc/combat.png" title="Combat Exp"></img>
+ <img class="second-third-image" src="./images/misc/lifepoints.png" title="Lifepoints Exp"></img>
+ <div class="nistext first-third combat-exp" title="Combat Exp">???</div>
+ <div class="nistext second-third lifepoints-exp" title="Lifepoints Exp">???</div>
+ </div>
+
+ <div class="nistext max-hits">
+ <div class="nistext" id="title-6">Max Hit</div>
+ <img class="first-quarter-image" src="./images/misc/melee.png" title="Max Melee"></img>
+ <img class="second-quarter-image" src="./images/misc/ranged.png" title="Max Ranged"></img>
+ <img class="third-quarter-image" src="./images/misc/magic.png" title="Max Magic"></img>
+ <img class="forth-quarter-image" src="./images/misc/necromancy.png" title="Max Necromancy"></img>
+ <img class="fifth-quarter-image" src="./images/misc/spec.png" title="Max Special"></img>
+ <div class="nistext first-quarter max-melee" title="Max Melee">???</div>
+ <div class="nistext second-quarter max-ranged" title="Max Ranged">???</div>
+ <div class="nistext third-quarter max-magic" title="Max Magic">???</div>
+ <div class="nistext forth-quarter max-necromancy" title="Max Necromancy">???</div>
+ <div class="nistext fifth-quarter max-spec" title="Max Special">???</div>
+ </div>
+</div>
+
+<div class="nistext equipment">
+ <div class="nistext" id="title-1">Equipment</div>
+ <div class="nistext equipInfo1"></div>
+ <div class="nistext equipInfo2"></div>
+ <div class="nistext equipMore">See More...</div>
+ <div class="nistext equipHidden">
+ <div class="nistext equipInfo3"></div>
+ <div class="nistext equipInfo4"></div>
+ <div class="nistext equipInfo5"></div>
+ <div class="nistext equipInfo6"></div>
+ <div class="nistext equipInfo7"></div>
+ <div class="nistext equipInfo8"></div>
+ <div class="nistext equipInfo9"></div>
+ </div>
+</div>
+
+<div class="nistext locations">
+ <div class="nistext" id="title-2">Locations</div>
+ <div class="nistext locationInfo1"></div>
+ <div class="nistext locationInfo2"></div>
+ <div class="nistext locationMore">See More...</div>
+ <div class="nistext locationHidden">
+ <div class="nistext locationInfo3"></div>
+ <div class="nistext locationInfo4"></div>
+ <div class="nistext locationInfo5"></div>
+ <div class="nistext locationInfo6"></div>
+ <div class="nistext locationInfo7"></div>
+ <div class="nistext locationInfo8"></div>
+ <div class="nistext locationInfo9"></div>
+ <div class="nistext locationInfo10"></div>
+ <div class="nistext locationInfo11"></div>
+ <div class="nistext locationInfo12"></div>
+ <div class="nistext locationInfo13"></div>
+ <div class="nistext locationInfo14"></div>
+ <div class="nistext locationInfo15"></div>
+ <div class="nistext locationInfo16"></div>
+ <div class="nistext locationInfo17"></div>
+ <div class="nistext locationInfo18"></div>
+ <div class="nistext locationInfo19"></div>
+ <div class="nistext locationInfo20"></div>
+ <div class="nistext locationInfo21"></div>
+ <div class="nistext locationInfo22"></div>
+ <div class="nistext locationInfo23"></div>
+ <div class="nistext locationInfo24"></div>
+ <div class="nistext locationInfo25"></div>
+ </div>
+</div>
+
+<div class="nistext" id="creature-container">
+ <div class="nistext" id="title-3">Creatures</div>
+ <div class="nistext creature-wiki"></div>
+
+ <select class="nistext creatures" name="creatures" title="Creatures">
+ </select>
+
+ <select class="nistext variants" name="variants" title="variants">
+ </select>
+</div>
+
+<div class="nistext summary">
+ <div class="nistext" id="title-7">Summary</div>
+ <div class="nistext first-quarter" style="left: 5px;">Slayer Level</div>
+ <div class="nistext third-quarter" style="left: 5px;">Slayer Exp</div>
+ <img class="second-quarter-image" src="./images/misc/slayer.png" title="Slayer Level"></img>
+ <img class="forth-quarter-image" src="./images/misc/slayer.png" title="Slayer Exp"></img>
+ <div class="nistext second-quarter slayer-level" title="Slayer Level">???</div>
+ <div class="nistext forth-quarter slayer-exp" title="Slayer Exp">???</div>
+
+ <div class="nistext weaknessBox">
+ <p id="weakness-text">Weakness</p>
+ <img class="weakness-image weakness-image1" src=""></img>
+ <img class="weakness-image weakness-image2" src=""></img>
+ </div>
+
+ <div class="nistext susceptibleBox">
+ <p id="susceptible-text">Susceptible</p>
+ <img class="susceptible-image susceptible-image1" src=""></img>
+ <img class="susceptible-image susceptible-image2" src=""></img>
+ </div>
+</div>
\ No newline at end of file
--- /dev/null
+<div class="nistext type">(Default)</div>
+
+<div class="nistext info">
+ <div class="nistext task-wiki"></div>
+
+ <div class="nistext kills" title="Kills Left">???</div>
+ <div class="nistext name" title="Assignment">???</div>
+ <div class="nistext" id="slayer-exp-text" title="Total Slayer Experience">Exp:</div>
+ <div class="nistext total-slayer-exp" title="Total Slayer Experience">???</div>
+</div>
+
+<div class="nistext status">
+ <div class="nistext timer-text" title="Timer">Timer:
+ <div class="nistext timer-value">??:??:??</div>
+ </div>
+ <div class="nistext kills-per-text" title="Kills/Hr">Kills/Hr:
+ <div class="nistext kills-per-hour">?,???</div>
+ </div>
+ <div class="nistext exp-per-text" title="XP/Hr">XP/Hr:
+ <div class="nistext exp-per-hour">???,???</div>
+ </div>
+</div>
+
+
+<div class="nistext extra-info"></div>
\ No newline at end of file
--- /dev/null
+<div class="single"></div>
\ No newline at end of file
--- /dev/null
+<div class="nistext type" id="type-suggest">(Suggested)</div>
+
+<table id="suggestions">
+ <thead>
+ <tr>
+ <td class="nistext">Assignment</td>
+ <td class="nistext">Slayer xp/hr</td>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td class="nistext" id="suggestion-1" title="Gemstone dragons">Gemstone dragons</td>
+ <td class="nistext">1400k (Hydrix)</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-2" title="Ripper Demon">Ripper Demon</td>
+ <td class="nistext">700k (Darklight)</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-3" title="Soul devourer">Soul devourer</td>
+ <td class="nistext">680k</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-4" title="Shadow creatures">Shadow creatures</td>
+ <td class="nistext">680k (Manifest)</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-5" title="Nightmare">Nightmare</td>
+ <td class="nistext">650k</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-6" title="Lost Grove creatures">Lost Grove creatures</td>
+ <td class="nistext" title="Legacy 1324k">610k (Golem)<span class="starnote">*</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-7" title="Acheron mammoth">Acheron mammoth</td>
+ <td class="nistext">600k</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-8" title="Corrupted creatures">Corrupted creatures</td>
+ <td class="nistext">580k (Worker)</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-9" title="Elves">Elves</td>
+ <td class="nistext" title="1200k (chinning)">560k<span class="starnote">*</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-10" title="Living wyverns">Living wyverns</td>
+ <td class="nistext">530k</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-11" title="Crystal shapeshifters">Crystal shapeshifters</td>
+ <td class="nistext">500k</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-12" title="Greater demons">Greater demons</td>
+ <td class="nistext" title="180k (K'ril)">1000k (Berserkers)<span class="starnote">*</span>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<div class="nistext" id="footnote">* - More information on hover</div>
\ No newline at end of file
--- /dev/null
+<html>
+
+<head>
+ <title>Slayer Assistant Settings</title>
+ <link rel="icon" href="../images/icon.png" type="image/png">
+ <link rel="stylesheet" href="../styles/default/settings.css">
+</head>
+
+<body class="nis">
+
+ <h2 class="nistext">Settings</h2>
+ <p class="nistext" id="test">More Coming soon... This is only the basic settings for now</p>
+
+ <label class="nistext">Auto Capture Settings</label><br>
+ <input type="checkbox" id="auto-capture-enabled">
+ <label class="nistext" for="auto-capture-enabled"> Enabled?</label><br>
+ <input type="checkbox" id="auto-capture-counter">
+ <label class="nistext" for="auto-capture-counter"> Counter UI?</label><br>
+ <input type="checkbox" id="auto-capture-search">
+ <label class="nistext" for="auto-capture-search"> Search Toggle?</label><br>
+ <br>
+ <label class="nistext">UI Settings</label><br>
+ <input type="checkbox" id="ui-limited">
+ <label class="nistext" for="ui-limited"> Limited?</label><br>
+ <input type="checkbox" id="ui-status">
+ <label class="nistext" for="ui-status"> Status?</label><br>
+ <input type="checkbox" id="ui-overlay">
+ <label class="nistext" for="ui-overlay"> Overlay?</label><br>
+
+ <div class="nisbutton" id="changelog-button" onclick="closeSettings();">Close Settings</div>
+ <div id="copyright">Copyright ©2021 Unlishema Dragonsworn</div>
+
+ <script type="text/javascript">
+ function closeSettings() {
+ window.close();
+ }
+
+ // On Load lets load in the settings from the local storage
+ document.addEventListener("DOMContentLoaded", async (event) => {
+ // FIXME Finished setting up settings
+
+ if (localStorage.getItem("auto-capture-enabled")) document.getElementById("auto-capture-enabled").checked = localStorage.getItem("auto-capture-enabled") === "true";
+ if (localStorage.getItem("auto-capture-counter")) document.getElementById("auto-capture-counter").checked = localStorage.getItem("auto-capture-counter") === "true";
+ if (localStorage.getItem("auto-capture-search")) document.getElementById("auto-capture-search").checked = localStorage.getItem("auto-capture-search") === "true";
+
+ if (localStorage.getItem("ui-limited")) document.getElementById("ui-limited").checked = localStorage.getItem("ui-limited") === "true";
+ if (localStorage.getItem("ui-status")) document.getElementById("ui-status").checked = localStorage.getItem("ui-status") === "true";
+ if (localStorage.getItem("ui-overlay")) document.getElementById("ui-overlay").checked = localStorage.getItem("ui-overlay") === "true";
+ });
+
+ // On change lets update the locally stored settings
+ document.getElementById("auto-capture-enabled").addEventListener("input", function () {
+ localStorage.setItem("auto-capture-enabled", document.getElementById("auto-capture-enabled").checked);
+ });
+ document.getElementById("auto-capture-counter").addEventListener("input", function () {
+ localStorage.setItem("auto-capture-counter", document.getElementById("auto-capture-counter").checked);
+ });
+ document.getElementById("auto-capture-search").addEventListener("input", function () {
+ localStorage.setItem("auto-capture-search", document.getElementById("auto-capture-search").checked);
+ });
+ document.getElementById("ui-limited").addEventListener("input", function () {
+ localStorage.setItem("ui-limited", document.getElementById("ui-limited").checked);
+ });
+ document.getElementById("ui-status").addEventListener("input", function () {
+ localStorage.setItem("ui-status", document.getElementById("ui-status").checked);
+ });
+ document.getElementById("ui-overlay").addEventListener("input", function () {
+ localStorage.setItem("ui-overlay", document.getElementById("ui-overlay").checked);
+ });
+ </script>
+</body>
+
+</html>
\ No newline at end of file
--- /dev/null
+/* Global Settings */
+.nis {background: url("../../images/ui/default/background.png");}
+.nistext {color: #E5E6EB;}
+a {color: #ffffff; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+a:hover {color: #a19100; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+
+/* Buttons */
+.nisbutton {position: relative; width: auto; height: 32px; cursor: pointer; text-align: center; color: #000000; font-family: 'trajan-pro-3'; font-size: 18px; text-shadow: 1px 1px 2px #ECC622; margin: 5px; padding: 0px 12px; line-height: 32px; user-select: none; -webkit-user-select: none; background: url('../../images/ui/default/nisbutton.png') 0px -100%/24px 400% repeat content-box;}
+.nisbutton::before {position: absolute; width: 12px; height: 100%; top: 0px; left: 00px; content: ""; background: url('../../images/ui/default/nisbutton.png') 0px 0px / 24px 400%;}
+.nisbutton::after {position: absolute; width: 12px; height: 100%; top: 0px; right: 1px; content: ""; background: url('../../images/ui/default/nisbutton.png') -12px 0px / 24px 400%;}
+.nisbutton:hover {background-position: 000px -300%;}
+.nisbutton:hover::before {background-position: 000px -200%;}
+.nisbutton:hover::after {background-position: -12px -200%;}
+.nisbutton:active, .nisbutton.fakeactive{-webkit-filter: brightness(1.2); filter: brightness(1.2);}
+
+/* Main Settings */
+body{font-family:sans-serif; font-size:14px; overflow-x:hidden; margin:5px; width: calc(100% - 10px);}
+h2{text-align: center; font-size: 22px; font-weight:normal;}
+h2:first-child{margin-top:5px;}
+h3{text-align: center; font-size: 18px; border-top:3px double rgb(255, 231, 185); font-weight:bold;}
+h4{text-align: center; font-size: 16px; border-top:3px dashed rgb(255, 231, 185); font-weight:normal;}
+table{margin:auto;}
+img{width:100%;}
+img.expanded{width:60%;}
+img.collapsed{width:35%;}
+
+/* Sections */
+.info{text-align: center;}
+.example{border: 1px solid rgb(84, 85, 66); margin-top: 5px; margin-bottom: 5px;}
+
+/* Credits */
+#copyright {font-size: 10px; color: #5a6400; text-align:center; padding-top: 3px; height:20px; width: calc(100% - 10px);}
\ No newline at end of file
--- /dev/null
+/* Global Settings */
+.nis {background: url("../../images/ui/default/background.png");}
+.nistext {color: #E5E6EB;}
+a {color: #ffffff; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+a:hover {color: #a19100; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+
+/* Buttons */
+.nisbutton {position: relative; width: auto; height: 32px; cursor: pointer; text-align: center; color: #000000; font-family: 'trajan-pro-3'; font-size: 18px; text-shadow: 1px 1px 2px #ECC622; margin: 5px; padding: 0px 12px; line-height: 32px; user-select: none; -webkit-user-select: none; background: url('../../images/ui/default/nisbutton.png') 0px -100%/24px 400% repeat content-box;}
+.nisbutton::before {position: absolute; width: 12px; height: 100%; top: 0px; left: 00px; content: ""; background: url('../../images/ui/default/nisbutton.png') 0px 0px / 24px 400%;}
+.nisbutton::after {position: absolute; width: 12px; height: 100%; top: 0px; right: 1px; content: ""; background: url('../../images/ui/default/nisbutton.png') -12px 0px / 24px 400%;}
+.nisbutton:hover {background-position: 000px -300%;}
+.nisbutton:hover::before {background-position: 000px -200%;}
+.nisbutton:hover::after {background-position: -12px -200%;}
+.nisbutton:active, .nisbutton.fakeactive{-webkit-filter: brightness(1.2); filter: brightness(1.2);}
+
+/* Main Settings */
+body{font-family: sans-serif; font-size: 14px; overflow-x: hidden; margin: 10px; width: calc(100% - 10px);}
+h2{border-top:1px solid #A3A3A3; font-weight: normal; margin-top: 25px; margin-bottom: -10px; color: #068b1c;}
+h2:first-child{margin-top:10px;}
+
+/* Credits */
+#copyright {font-size: 10px; color: #5a6400; text-align:center; padding-top: 3px; height:20px; width: calc(100% - 10px);}
\ No newline at end of file
--- /dev/null
+/* Global Settings */
+.nis {background: url("../../images/ui/default/background.png");}
+.nistext {color: #E5E6EB;}
+a {color: #ffffff; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+a:hover {color: #a19100; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+
+/* Buttons */
+.nisbutton {position: relative; width: auto; height: 32px; cursor: pointer; text-align: center; color: #000000; font-family: 'trajan-pro-3'; font-size: 18px; text-shadow: 1px 1px 2px #ECC622; margin: 5px; padding: 0px 12px; line-height: 32px; user-select: none; -webkit-user-select: none; background: url('../../images/ui/default/nisbutton.png') 0px -100%/24px 400% repeat content-box;}
+.nisbutton::before {position: absolute; width: 12px; height: 100%; top: 0px; left: 00px; content: ""; background: url('../../images/ui/default/nisbutton.png') 0px 0px / 24px 400%;}
+.nisbutton::after {position: absolute; width: 12px; height: 100%; top: 0px; right: 1px; content: ""; background: url('../../images/ui/default/nisbutton.png') -12px 0px / 24px 400%;}
+.nisbutton:hover {background-position: 000px -300%;}
+.nisbutton:hover::before {background-position: 000px -200%;}
+.nisbutton:hover::after {background-position: -12px -200%;}
+.nisbutton:active, .nisbutton.fakeactive{-webkit-filter: brightness(1.2); filter: brightness(1.2);}
+
+/* Main Settings */
+body{font-family:sans-serif; font-size:14px; overflow-x:hidden; margin: 10px; width: calc(100% - 10px);}
+h2{border-top:1px solid #A3A3A3; font-weight:normal; margin-top: 25px; margin-bottom:-10px; color:#068b1c;}
+h2:first-child{margin-top:10px;}
+
+/* Credits */
+#copyright {font-size: 10px; color: #5a6400; text-align:center; padding-top: 3px; height:20px; width: calc(100% - 10px);}
\ No newline at end of file
--- /dev/null
+/* Global App settings */
+.nis {background: url("../../images/ui/default/background.png");}
+.nistext {color: #E5E6EB;}
+a {color: #ffffff; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; text-decoration: none; cursor: pointer;}
+a:hover {color: #a19100; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; text-decoration: none; cursor: pointer;}
+
+/* Base Sections of App */
+div#menubar {position: relative; width: 100%; height: 34px;}
+div#base {position: relative; width: 100%; height: 70px;}
+#copyright {position: relative; width: 100%; height: 13px; font-family: 'trajan-pro-3'; font-size: 11px; color: #5a6400; text-align: center; }
+div.base-full {height: 310px;}
+.copyright-limited {top: 0px;}
+.copyright-full {top: 250px;}
+
+/* Menu Bar Controls */
+#infobutton {position: absolute; width: 12px; height: 12px; top: 00px; left: 00px; z-index: 11; cursor:pointer; background: url('../../images/ui/default/infoicon.png') 0px 0px / cover;}
+#menubutton {position: absolute; width: 12px; height: 12px; top: 16px; left: 00px; z-index: 11; cursor:pointer; background: url('../../images/ui/default/settingscog.png') 0px 0px / cover;}
+#donatebutton {position: absolute; width: 12px; height: 12px; top: 32px; left: 00px; z-index: 11; cursor:pointer; background: url('../../images/ui/default/donate.png') 0px 0px / cover;}
+#backbutton {position: absolute; width: 12px; height: 12px; top: 32px; left: 16px; z-index: 11; cursor:pointer; background: url('../../images/ui/default/back.png') 0px 0px / cover;}
+#forwardbutton {position: absolute; width: 12px; height: 12px; top: 32px; left: 32px; z-index: 11; cursor:pointer; background: url('../../images/ui/default/forward.png') 0px 0px / cover;}
+#infobutton:hover {background-position: 0px -12px;}
+#menubutton:hover {background-position: 0px -12px;}
+#donatebutton:hover {background-position: 0px -12px;}
+#backbutton:hover {background-position: 0px -12px;}
+#forwardbutton:hover {background-position: 0px -12px;}
+
+/* Search Box & Button */
+#search-info {position: relative; width: calc(100% - 20px - 100px); height: 20px; top: 3px; left: 18px; color:#a39e00; cursor:pointer; background-color:#2f2f2f;}
+#search-button {position: absolute; width: 66px; height: 33px; top: 0px; right: 0px; color:#370042; font-size: 18px; text-align: left;}
+
+/* Search Button LookNFeel */
+.nisbutton {position: relative; width: auto; height: 32px; cursor: pointer; text-align: center; color: #000000; font-family: 'trajan-pro-3'; font-size: 18px; text-shadow: 1px 1px 2px #ECC622; margin-left: 5px; padding: 0px 12px; line-height: 32px; user-select: none; -webkit-user-select: none; background: url('../../images/ui/default/nisbutton.png') 0px -100%/24px 400% repeat content-box;}
+.nisbutton::before {position: absolute; width: 12px; height: 100%; top: 0px; left: 00px; content: ""; background: url('../../images/ui/default/nisbutton.png') 0px 0px / 24px 400%;}
+.nisbutton::after {position: absolute; width: 12px; height: 100%; top: 0px; right: 1px; content: ""; background: url('../../images/ui/default/nisbutton.png') -12px 0px / 24px 400%;}
+.nisbutton:hover {background-position: 000px -300%;}
+.nisbutton:hover::before {background-position: 000px -200%;}
+.nisbutton:hover::after {background-position: -12px -200%;}
+.nisbutton:active {-webkit-filter: brightness(1.2); filter: brightness(1.2);}
+.nisbutton.fakeactive {-webkit-filter: brightness(1.2); filter: brightness(1.2);}
+
+/* Loading Spinner */
+.loading-container {position: absolute; width: 20px; height: 20px; top: 8px; right: 8px; cursor:pointer; }
+.loading {width: 20px; height: 20px; display: flex; justify-content: center; visibility: hidden;}
+.loading::after {width: 12px; height: 12px; content: ""; border: 3px dashed #13314e; border-radius: 100%; transform: rotate(0.125turn); animation: loading 2.5s ease-in-out infinite;}
+@keyframes loading {to {transform: rotate(1.130turn);}}
+
+/* Division Bar */
+div.left {position: absolute; width: calc(050% - 01px); left: 00%;}
+div.right {position: absolute; width: calc(050% - 01px); left: 50%;}
+div.single {position: absolute; width: 100%; left: 00%;}
+div#divide {position: absolute; width: 2px; left: calc(50% - 2px); background-color: #afad1f;}
+.divide-limited {height: 65px;}
+.divide-full {height: 310px;}
+
+/* Headers for Sections */
+div#title-1 {position: absolute; height: 13px; left: calc(25%); right: calc(25%); z-index: 10; margin-top: -10px; font-size: 14px; text-align: center; padding: 0px 8px 0px; color: #778899; background: url("../../images/ui/default/background.png");}
+div#title-2 {position: absolute; height: 13px; left: calc(25%); right: calc(25%); z-index: 10; margin-top: -10px; font-size: 14px; text-align: center; padding: 0px 8px 0px; color: #778899; background: url("../../images/ui/default/background.png");}
+div#title-3 {position: absolute; height: 13px; left: calc(25%); right: calc(25%); z-index: 10; margin-top: -10px; font-size: 14px; text-align: center; padding: 0px 8px 0px; color: #778899; background: url("../../images/ui/default/background.png");}
+div#title-4 {position: absolute; height: 11px; left: calc(15%); right: calc(15%); z-index: 22; margin-top: -06px; font-size: 12px; text-align: center; padding: 0px 8px 0px; color: #778899; background: url("../../images/ui/default/background.png");}
+div#title-5 {position: absolute; height: 11px; left: calc(15%); right: calc(15%); z-index: 22; margin-top: -08px; font-size: 12px; text-align: center; padding: 0px 8px 0px; color: #778899; background: url("../../images/ui/default/background.png");}
+div#title-6 {position: absolute; height: 11px; left: calc(15%); right: calc(15%); z-index: 22; margin-top: -08px; font-size: 12px; text-align: center; padding: 0px 8px 0px; color: #778899; background: url("../../images/ui/default/background.png");}
+div#title-7 {position: absolute; height: 13px; left: calc(25%); right: calc(25%); z-index: 10; margin-top: -10px; font-size: 14px; text-align: center; padding: 0px 8px 0px; color: #778899; background: url("../../images/ui/default/background.png");}
+
+/* Type of Assignment */
+div.type {position: relative; width: 100%; height: 22px; color: #008000; font-family: 'trajan-pro-3'; font-size: 20px; text-align: center;}
+.right div.type {color: #ff0000;}
+#type-reaper {color: #ffd700;}
+#type-suggest {color: #ff00d4; cursor:pointer;}
+#type-suggest:hover {color: #6d0077;}
+
+/* Suggested Creatures */
+span.starnote {position: relative; display: inline; color: #ffd700; font-size: 11px;}
+div#footnote {position: relative; width: 100%; height: 015px; left: 0%; top: 0px; color: #ffd700; font-size: 11px; text-align: right;}
+table#suggestions {position: relative; width: 100%; height: 200px; left: 0%; top: 0px; font-size: 16px; text-align: left;}
+table#suggestions thead td {color: #ffd700; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+table#suggestions td {color: #39cf96; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+td[id^="suggestion"] {color: #008000; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; cursor:pointer;}
+td[id^="suggestion"]:hover {color: #00db00;}
+
+/* Assignment Info */
+div.info {position: relative; width: 068%; height: 40px; left: 3px; top: 0px; margin-top: 5px; text-align: left;}
+div.info div.task-wiki {position: absolute; width: 24px; height: 24px; left: 0px; top: -4px; cursor:pointer; text-align: left; background: transparent url("../../images/ui/default/wikipedia.png") 0px 0px / cover;}
+div.info div.kills {position: absolute; width: 40px; height: 16px; left: 18px; top: 0px; text-align: right; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+div.info div#slayer-exp-text {position: absolute; width: 33px; height: 16px; left: 3px; top: 20px; text-align: left;}
+div.info div.name {position: absolute; width: calc(100% - 65px); height: 16px; left: 62px; top: 0px; text-align: left; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+div.info div.total-slayer-exp {position: absolute; width: calc(100% - 40px); height: 16px; left: 35px; top: 20px; text-align: left; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+div.left div.info {width: 100%;}
+div.right div.info {width: 100%;}
+div.info:hover {background-color: #324e6165;}
+div.info div.task-wiki:hover {background-position:0px -24px;}
+
+/* Preview Task Wiki */
+div.preview-task-wiki {position: absolute; width: calc(100% - 8px); height: auto; left: 0px; top: 0px; z-index: 11; visibility: hidden; text-align: left; border: 2px ridge #a19100; background: url("../../images/ui/default/background.png");}
+div.preview-task-wiki div.masters {position: relative; width: calc(100% - 8px); height: auto; left: 0px; top: 0px; text-align: left;}
+div.preview-task-wiki div.masterTitle {position: relative; width: 100%; height: 27px; font-size: 18px; margin: 2px 0px 0px 3px; border-bottom: 3px double #a19100;}
+div.preview-task-wiki div[class*="masterInfo"] {position: relative; width: 100%; height: 27px; cursor:pointer; font-size: 14px; padding: 2px 0px 0px 3px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+div.preview-task-wiki img[id^="masterImage"] {position: relative; width: 20px; height: 27px; cursor:pointer; vertical-align: middle; text-align: center;}
+div.preview-task-wiki div[class*="masterInfo"]:hover {background-color: #64643065;}
+div.left div.preview-task-wiki {left: 0px;}
+div.right div.preview-task-wiki {left: 4px;}
+
+/* Status Menu */
+div.status {position: absolute; width: 100px; height: 60px; right: 0px; top: 2px; z-index: 10; text-align: left; border: 2px ridge #5a6400;}
+div.status div.kills-per-text {position: absolute; width: 100%; height: calc(33% - 6px); left: 0px; top: 33%; padding-top: 2px; font-size: 16px; border-top: 1px solid #a19100; margin-top: -2px;}
+div.status div.exp-per-text {position: absolute; width: 100%; height: calc(33% - 6px); left: 0px; top: 66%; padding-top: 2px; font-size: 16px; border-top: 1px solid #a19100; margin-top: -2px;}
+div.status div.timer-text {position: absolute; width: 100%; height: calc(33% - 6px); left: 0px; top: 0%; padding-top: 2px; font-size: 16px; margin-top: -2px;}
+div.status div.timer-value {position: absolute; width: calc(100% - 46px); height: 100%; left: 46px; top: 0px; padding: 2px 2px 0px 0px; font-size: 16px; text-align: right; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+div.status div.kills-per-hour {position: absolute; width: calc(100% - 60px); height: 100%; left: 60px; top: 0px; padding: 2px 2px 0px 0px; font-size: 16px; text-align: right; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+div.status div.exp-per-hour {position: absolute; width: calc(100% - 50px); height: 100%; left: 50px; top: 0px; padding: 2px 2px 0px 0px; font-size: 16px; text-align: right; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+div.status div.timer-text:hover {background-color: #324e6165;}
+div.status div.kills-per-text:hover {background-color: #324e6165;}
+div.status div.exp-per-text:hover {background-color: #324e6165;}
+div.left div.status {visibility: hidden;}
+div.right div.status {visibility: hidden;}
+
+/* Extra Data (Not shown on limited) */
+div.extra-info {position: relative; width: 100%;}
+
+/* Equpiment */
+img#equip-image {position: relative; width: 18px; height: 18px;}
+div.equipment {position: relative; width: calc(100% - 8px); height: 60px; left: 5px; top: 0px; padding-top: 3px; text-align: left; border-top: 3px double #a19100;}
+div.equipment div[class*="equipInfo"] {position: relative; width: 100%; height: auto; text-align: left;}
+div.equipment div.equipHidden {position: absolute; width: 100%; height: auto; left: 0px; top: 42px; z-index: 11; margin-left: -3px; visibility: hidden; border: 3px groove #778899; border-top-style:none; background: url("../../images/ui/default/background.png");}
+div.equipment div.equipMore {position: absolute; width: 100%; height: 16px; left: 0px; top: 42px; cursor:pointer; text-decoration: underline; color: #778899; font-size: 10px; text-align: left;}
+div.equipment div[class*="equipInfo"]:hover {background-color: #64643065;}
+div.equipment div.equipMore:hover {background-color: #64643065;}
+
+/* Locations */
+img#location-image {position: relative; width: 18px; height: 18px;}
+div.locations {position: relative; width: calc(100% - 8px); height: 60px; left: 5px; top: 0px; padding-top: 3px; text-align: left; border-top: 3px double #a19100;}
+div.locations div[class*="locationInfo"] {position: relative; width: 100%; height: auto; text-align: left;}
+div.locations div.locationHidden {position: absolute; width: 100%; height: auto; left: 0px; top: 42px; z-index: 11; margin-left: -3px; visibility: hidden; border: 3px groove #778899; border-top-style:none; background: url("../../images/ui/default/background.png");}
+div.locations div.locationMore {position: absolute; width: 100%; height: 16px; left: 0px; top: 42px; cursor:pointer; text-decoration: underline; color: #778899; font-size: 10px; text-align: left;}
+div.locations div[class*="locationInfo"]:hover {background-color: #64643065;}
+div.locations div.locationMore:hover {background-color: #64643065;}
+
+/* Creature Wiki */
+div#creature-container {position: relative; width: calc(100% - 08px); height: 32px; left: 03px; top: 0px; padding-top: 3px; border-top: 3px double #a19100;}
+select.creatures {position: absolute; width: calc(64% - 10px); height: 20px; left: 24px; top: 9px; cursor:pointer; background-color: #2f2f2f;}
+select.variants {position: absolute; width: calc(34.5% - 15px); height: 20px; left: calc(65% + 16px); top: 9px; cursor:pointer; background-color: #2f2f2f;}
+div.creature-wiki {position: absolute; width: 24px; height: 24px; left: -2px; top: 5px; cursor:pointer; text-align: left; background: transparent url("../../images/ui/default/wikipedia.png") 0px 0px / cover;}
+div.creature-wiki:hover {background-position: 0px -24px;}
+
+/* Creature Wiki Preview */
+div.preview-creature-wiki {position: absolute; width: calc(100% - 6px); height: 178px; left: 0px; top: -42px; z-index: 11; visibility: hidden; border: 2px ridge #a19100; background: url("../../images/ui/default/background.png"); text-align: left;}
+div.preview-creature-wiki div.image-container {position: absolute; width: 50%; height: 50%; left: 0px; top: 0px; border-top: 1px solid #a19100; border-right: 1px ridge #a19100;}
+div.preview-creature-wiki div.stats {position: absolute; width: 50%; height: 50%; left: 50%; top: 0px; font-size: 12px; text-align: center; border-top: 1px solid #a19100;}
+div.preview-creature-wiki div.exp {position: absolute; width: 50%; height: 50%; left: 0px; top: 50%; font-size: 12px; text-align: center; border-top: 3px double #a19100; border-right: 1px ridge #a19100; padding-top: -1px;}
+div.preview-creature-wiki div.max-hits {position: absolute; width: 50%; height: 50%; left: 50%; top: 50%; font-size: 12px; text-align: center; border-top: 3px double #a19100; padding-top: -1px;}
+div.preview-creature-wiki img.image {display: block; margin-left: auto; margin-right: auto; background-color: transparent;}
+div.preview-creature-wiki div.image-container:hover {background-color: #64643065;}
+div.preview-creature-wiki div.stats:hover {background-color: #64643065;}
+div.preview-creature-wiki div.exp:hover {background-color: #64643065;}
+div.preview-creature-wiki div.max-hits:hover {background-color: #64643065;}
+div.left div.preview-creature-wiki {left: -2px;}
+div.right div.preview-creature-wiki {left: 3px;}
+
+/* Summary */
+div.summary {position: relative; width: calc(100% - 8px); height: 75px; left: 5px; top: 0px; padding-top: 3px; font-size: 12px; text-align: center; border-top: 3px double #a19100;}
+div.summary:hover {background-color: #324e6165;}
+
+div.summary div.weaknessBox {position: absolute; width: 048%; height: 35px; left: 50%; top: 5px; font-size: 12px; text-align: center;}
+div.summary div.weaknessBox img {position: relative; width: 18px; height: 18px; padding: 0px 3px 0px 3px;}
+div.summary div.weaknessBox p#weakness-text {margin: 0px; padding: 0px;}
+
+div.summary div.susceptibleBox {position: absolute; width: 048%; height: 35px; left: 50%; top: 40px; font-size: 12px; text-align: center;}
+div.summary div.susceptibleBox img {position: relative; width: 18px; height: 18px; padding: 0px 3px 0px 3px;}
+div.summary div.susceptibleBox p#susceptible-text {margin: 0px; padding: 0px;}
+
+/* Third Sections */
+img.first-third-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 10px;}
+img.second-third-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 28px;}
+img.third-third-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 43px;}
+
+.first-third {position: absolute; width: 50%; height: 12px; left: 25px; top: 10px; font-size: 10px; text-align: left;}
+.second-third {position: absolute; width: 50%; height: 12px; left: 25px; top: 28px; font-size: 10px; text-align: left;}
+.third-third {position: absolute; width: 50%; height: 12px; left: 25px; top: 46px; font-size: 10px; text-align: left;}
+
+/* Quarter Sections */
+img.first-quarter-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 8px;}
+img.second-quarter-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 23px;}
+img.third-quarter-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 38px;}
+img.forth-quarter-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 53px;}
+img.fifth-quarter-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 68px;}
+
+.first-quarter {position: absolute; width: 50%; height: 12px; left: 25px; top: 10px; font-size: 10px; text-align: left;}
+.second-quarter {position: absolute; width: 50%; height: 12px; left: 25px; top: 26px; font-size: 10px; text-align: left;}
+.third-quarter {position: absolute; width: 50%; height: 12px; left: 25px; top: 40px; font-size: 10px; text-align: left;}
+.forth-quarter {position: absolute; width: 50%; height: 12px; left: 25px; top: 55px; font-size: 10px; text-align: left;}
+.fifth-quarter {position: absolute; width: 50%; height: 12px; left: 25px; top: 70px; font-size: 10px; text-align: left;}
\ No newline at end of file
--- /dev/null
+/* Global Settings */
+.nis {background: url("../../images/ui/default/background.png");}
+.nistext {color: #E5E6EB;}
+a {color: #ffffff; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+a:hover {color: #a19100; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+
+/* Buttons */
+.nisbutton {position: relative; width: auto; height: 32px; cursor: pointer; text-align: center; color: #000000; font-family: 'trajan-pro-3'; font-size: 18px; text-shadow: 1px 1px 2px #ECC622; margin: 5px; padding: 0px 12px; line-height: 32px; user-select: none; -webkit-user-select: none; background: url('../../images/ui/default/nisbutton.png') 0px -100%/24px 400% repeat content-box;}
+.nisbutton::before {position: absolute; width: 12px; height: 100%; top: 0px; left: 00px; content: ""; background: url('../../images/ui/default/nisbutton.png') 0px 0px / 24px 400%;}
+.nisbutton::after {position: absolute; width: 12px; height: 100%; top: 0px; right: 1px; content: ""; background: url('../../images/ui/default/nisbutton.png') -12px 0px / 24px 400%;}
+.nisbutton:hover {background-position: 000px -300%;}
+.nisbutton:hover::before {background-position: 000px -200%;}
+.nisbutton:hover::after {background-position: -12px -200%;}
+.nisbutton:active, .nisbutton.fakeactive{-webkit-filter: brightness(1.2); filter: brightness(1.2);}
+
+/* Main Settings */
+body{font-family:sans-serif; font-size:14px; overflow-x:hidden; margin: 10px; width: calc(100% - 10px)}
+h2{border-top:1px solid #000; font-weight:normal;}
+h2:first-child{margin-top:5px;}
+table{margin:auto;}
+
+/* Credits */
+#copyright {font-size: 10px; color: #5a6400; text-align:center; padding-top: 3px; height:20px; width: calc(100% - 10px);}
\ No newline at end of file
--- /dev/null
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(typeof exports === 'object' && typeof module === 'object')
+ module.exports = factory((function webpackLoadOptionalExternalModule() { try { return require("sharp"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require("canvas"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require("electron/common"); } catch(e) {} }()));
+ else if(typeof define === 'function' && define.amd)
+ define(["sharp", "canvas", "electron/common"], factory);
+ else if(typeof exports === 'object')
+ exports["SlayerAssistant"] = factory((function webpackLoadOptionalExternalModule() { try { return require("sharp"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require("canvas"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require("electron/common"); } catch(e) {} }()));
+ else
+ root["SlayerAssistant"] = factory(root["sharp"], root["canvas"], root["electron/common"]);
+})(self, (__WEBPACK_EXTERNAL_MODULE_sharp__, __WEBPACK_EXTERNAL_MODULE_canvas__, __WEBPACK_EXTERNAL_MODULE_electron_common__) => {
+return /******/ (() => { // webpackBootstrap
+/******/ var __webpack_modules__ = ({
+
+/***/ "./images/data/reaper_collapsed_OSL.data.png":
+/*!***************************************************!*\
+ !*** ./images/data/reaper_collapsed_OSL.data.png ***!
+ \***************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAVXG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKKrnKwAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAElUlEQVRYw92YTWgcZRjHfzsz+5HdzczuJumuJS3VSkI/AlaFgmK1PVStIJTSQy9FELy0gqIgIhYlUFHpQQ9tQZFCKWLVQ/FQ60GFUtAG0dqvNG0sRtc07WZ3Z3Zmdmd2Z8bDdiabTWJjipD4v8z7Mc/H+/m8zz/06p5dHrchdyYA0CoGvSt60coltIoBQMOt06h7JJJJACzLwK7VEMQosWiETFcGVdMBUOQkplmlVq1imhVy2Vygc+TK5aAudybu2O77oFVMnnwsyQPrN6KW4yB0MifcCiF7iND+fXu8H88OkU5349o1VENHFMM4Th0lkUSIxCiVCswX85X1/5urvV3Pb9d/55N3t2DWltHwVkEoMrcTng32JSR/tjVNDYzJsjI10Jo1p47ZJsTXoRo6GPqcsrKszDpwv32GDyEw1Bs4ngjh9JRAKAahKHgWeLWWAVaR/LLj1BkbywMwNpanI9bcotWaEfxv2XZQjkYiXL12nWhk5gwqioKqqli2Pa2/te7bmqu93Qe77nDu/BDr+w28RnNSQkIExCwISXB1cCbw3KaPIa+IpMjJaVvk50v5EHeNPP8Fdr8BZz4qeAe/tPn1WhzPq/H23g2sWrmai1eGGTx0HkVR6O8t88L2BIJpVpFlhXS6G0VRWOw49UOVc6NZUqkcHYleTnz/F43aCF99e4munpWsXf8Q48YAZ87pCLVqlVKp0NzfqrroB/fUth1YtonjuFh2nQ0DywlHQqy7z2OyWMYydAqTt3h4IIdgmpXgAmg9U4sVXekI772coSMRYuvm+xm4Z4TXD/zC4w92sPVRhZJe4YPBZ0kIfyDlsjny4zcRxfCsl8Niw9Gjx3j6kQTvv7QJt6Fx+DOH4TGZL04rPL+9j7pVoFE8wqmzIoIfpGeLOYsR3/y0mlc+dLlw4TSm/idqxcbDYdJIoZcvMjxymdcOCYzXn0HqXdHL1dFRlgpi0TCuu4J3jqq8uCPP3p1J9uIBo1wY0fn45HKW53pYt7YfSSuXAkE/rix2CIKAnExy4FOLG4Uqoijguh49mTir700gigJauYTkb8t0uptbN8tLZgU9z+G7z3czdL7AeAEycp2+zq8ZPBYP3seSf1tqmjrtNbLYIYph3hw8zM7NFhuzMFGEgycl6o5AWALTrCD19a8hP34Tx6kviVDgIyyJXBtfxVtH6jQcF0kU0E2N/r5mf1//mulnbimEgumrJxDviAZ1x50qa+VSMxSIYnjGw3gpwvdfFMNoFQMh05UJ8qeltnLtiEYiQRKQ6cog+PncUgnid0KQT2o6Av9jCH4+93+CKIZR5CRScbIYpPYdsQT79+3xipNFapaN61hEYjGW9WTnRf60EkrzJYzaSahlPVkWav/48RMBVVGcLBJ6btc2DyCb7cHQdXSjCjCD37gToaMkmqxYKym0EJl0unvB9uV0mkQyycTELQCkVCpOuWwyPHz5H1mqVsWtDvg3rWrogbPth/vfyMw1qPnoUm8TUul0N6lUHKlR9zg7NDQjiPukTfsXQFV1bKtBWStNk2knlRYiczf2p2LddbY8sYm/ATWM+pwqaFlsAAAAAElFTkSuQmCC")
+
+/***/ }),
+
+/***/ "./images/data/reaper_collapsed_RS3.data.png":
+/*!***************************************************!*\
+ !*** ./images/data/reaper_collapsed_RS3.data.png ***!
+ \***************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAXKm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQRroAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAFsUlEQVRYw9WYXYglRxXHf11d3dX39p3vnZ3sRtZ8sZF86K4JRo2oD+JDFGEhYlDfonnOQ4jowz7qg/omq0YQCYgo+CCDUUEkGgzCIOaDXU1wY3CdZDc7M3vvnXvvVHV9tA99u2auIaJvMweaunWr6lT/65w+dc4/+cwXHqt3rl9FpCkAaSppxXvHQQnek+UKAFuZ+Ptgv229d9R1QMocAOcq6lDPzDnYAjO6236rx1nHE48scuaeBxj0uyDmeEcJuyTVBvLvr1ziX69fRgiBSFOctYTgWVhawWiNsxUyywnBI0RzAJXRAMgsI1cKPZngnCVXBUKkOFsBUHS7OLt/QJXRcZ/2sBo9eRyTWT6zJ0CnWzLc2eJ95x9hPBxAssR/lURRJ8sIgFwVhBDIlSJXBVJmDG5sIzMZN2tfztmKbq8XwU5GI5yzFJ0ygm5FTyYNiOlLdns9RJoiRPOEEAghxINyzlIZjcxyVFEQfLPH7qAPwHhwFae3IQzAX2+esAt11bTxvwHUe0gpGzcUQuCsQxVFfIzWpKmMfQDnPd5aTt12mvFoNDMmM4kqStI0wU2t4q0FQBUFznvyokOCIE2TGX0A8wuLhANrllePY7RGFQWpELz48gb33DmmdluNgUQO6RqIHoQR+GvUoTFEUu+Q3HX/R+qrm/8keE85N8/m5b8mHGL54w969YWfV/zhJUUnM3zj8fu45dTtXHzlb5y/cAnrEj5+xvLYubJxSyFSRJpGCxxmeeb5CesbS+y6OW74k/zi2Tdw+lXWf3eJ0L2VvWSF9Y0lfv/nYQMOwE1d4bDLpz79MGk9oQ41lTacvfckWZ5w9201zlbYyqDSwAfPnkRIKamMJlfFkQC3spTzw/M3cf975vnyZ+/i3hOv8tVvv8DH3t/h3IdrPvTeE/zsu5+jFFeQzrlptPRHAtzTT/+Yhx4s+ebjHyW4Id/7qefZl3LueG6ZR8+dxpot3M6PeOZPgnhjC5FitD704J767btZf/4qT3z+OW551wqD3Yr5Mmd7vMiof5F/XNnhWz9xaHUfydkHP1Ffef0yldEcW7uJ1y7+5VBHy8XjN9eJENR2wtcfHXL37b04dvHyiK98v0NeLnPq1juQxmhkJoHiSFiuTRGtTfnaUzm7ozGJENR1YHmppFN2EXmGMbpxS2cdldFH4ipor6xQjXjhl19i4+Ut3tyC5XnL6blf89CTGmebHFUqVcRoeRTAAewO+qSp4snzF/jiJy0PrMG1HfjOrxSORZzRKFU0lgvBx/zx0FtOpAjhSWXG+sYiv3lRIURCZSpWjq8RwnaM/M03J7OmIvCH/zpovasymk63SeC99yRCEKZuKwFjNEKpImbq/ghkKUZr9N64qSKm3iazPCbpMZVUBcIYjRDpkQkozlYUnTLWlvvuKlBFMa0L08ZyHFFpC9pcqWnNGN7+fZa9eSqjmVtYPDL33EEw7TUmswyjGxyV0ZS9+f1KfG8yJs2yQw9KZvmUIchmKv9OtyTNMvYm41gEyPFouM9x6D3uPPOB2k4DS9Ep0Xvjt7XZ9BDSKfnjXYW1lt7cPKPdYVzrXUUq8zhedMqZ+W2/1WmtjW2r4+D8LMtIZY7eG7N8bC3qb9cP+jcilvFo2Fzirf9WxnDtjU1CCAghprxKwbDfn3Im/Th33z08wXuKbpe33tyk6JQ4WxFCoNvrURkTSaNWX5s09He2Yx15sDLJlaIyhspsRivkSjEaDiLgnetvUXS7TEajmIAc3CtGS+fsTHrTslAHy6CG0PGRqZKZJARPZTQhhBmWq33Z0XAw4zrdXg9nK/LpgQbvp4yZiGE9eB+JpRZIZRouR4gm9WrnOuuYW1gEYHBjez/YONvklsdWV/8/n5cS5xwtseSc+5/XvJN4V9Et55lMRjO86X/qWFldwznHwtIKShWRVx3tDjh+4uaZ+cdWV/k3rAQo1Oy03j4AAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./images/data/reaper_expanded_OSL.data.png":
+/*!**************************************************!*\
+ !*** ./images/data/reaper_expanded_OSL.data.png ***!
+ \**************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAa4G5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3ePXqQAAAYVub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqIw0NAAANGG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+dZ7WgAAAAZub1BFAAAAAAAA7Gu72AAAAAlub1BFAAAAAAAAAAAAoYpy1QAAAAdub1BFAAAAAAAAAFrm3tAAAAh/SURBVHja7ZxvbBt3Gcc/vnNsJ3Z8sZM0aedMZR0J7VqgA2looMGKNHXrNGma9mIgjaIheNEiDRWpmvivakyA9gJerEUgNFQNhIAXE0JjvABENQGtEGXr2qysILUN6R8n9p3vj3323fHCvYu9JKV/k3P3fKQo9tm/ex4/9/j8u+f33Dfx5V1PBFwiP5gFwKhZlCZKGNUKRs0CoOU3aTUDsrkcAI2GhVuvo6hpMukUxeEiumECoOVz2LZD3XGw7RrjY+PRPk++dSJ6nh/M/t/tK+nDzbQlcb28LcvxeOSTRT64+R706gAogyyLXyPhHiHx7a/vCv52+AiFwgi+W0e3TFS1D89romVzKKkMlUqZK+VKx4bvW277SvqwErau9r3vtrhWqhY/+c427PoaWsF6SKSWdyRwwT1OMvxGGYYefeh8XltI5Hpj2X0slfDhPnTLBMtcdmw+ry35YcLtK+nDStiSuF7eVrPhY+nn8AIV+goLLyYykEhD0ICg3pHADom9T38mmJ4+AcDp0zPRa/2Z9hTCqVvRtobrRo/TqRQN1yWdWvwN0TQNXdcXvb7c+5fbvpI+rJQtievSthIJlb07M2ye2kSQKLbzVkmBOgZKDnwTvPMEfntsIpgnqeVzXT81/zg+k+C6mWH1mbkFbd3acX3yK/Daj8rBC792ef3tAYKgzrd2b2X97Rt4861p9u1/A03TmCpV+fyjWRTbdsjnNQqFETRNQxBWk1f/6vD6v9cyNDROf7bEy3/6L636SX7zh+MMj97Ops0fYtbawmv/NFHqjkOlUm7PTXRdoiesKtsfeox6w8TzfBpuk61b1tGXSnDXHQFz81Ualkl57iIf3jKOYtu1aBLeORcRhNVguJDiu18q0p9N8MD9d7Jl7Umeef4oH7+7nwc+qlExa3x/3yNklTMkx8fGmZm9gKr2LTnhFoSV5ODBl3jw3izfe/o+/JbBgV94TJ/O86tDGk89OkmzUaY1/yKvHlZRwuLxUrVBQVhpfv/3Dez5gc+xY4ewzbPoNZcAjzlrCLP6JtMnT7B3v8JscwfJ0kSJf506JVETYkEm3YfvT/DcQZ0vPjbD7sdz7CYATnHspMmPX1nHuvFR7to0RdKoVqKBYU1OEFYTRVHI53I8//MG58oOqqrg+wGjxQE2vCeLqioY1QrJcNpQKIxw8UJVIifEgiDw+OMvn+TIG2Vmy1DMN5kc/B37XhoA2n0iybDaYBh61yqIIKwmqtrH1/Yd4PH7G9wzBufn4YVXkjQ9hb4k2HaN5OTURmZmL+B5TSmVCbGhL6ny9ux6vvlik5bnk1QVTNtgarL9+uTUxu45r5TKhHidfRUG+tPRc89feGxUK+1Smar2AciZV4g1YX6qah9GzUIpDhej3ks58wpxJp1KRU1kxeEiStjPK4sUQi8Q9RQbJoqEQ+hVlLCfVxB650KuDy2fW+jnBaSfV4g1YX7m8xq27Sz08wLSzyvEmjA/K5UydcdZ6OftLEUIQhzpzE/brqGEmgJhKUIQ4kpnfo6PjXcvUghCr1ywGTULpTRRkhqv0FN4XpPSRAnFqFbQsm3pHennFeJMmJ9aNrfQ26CkMhQKIxIdIfYUCiMoqUx72pAfzEalMunnFeJMmJ+VSpn8YHbhBkzfrUt0hNgT5ml0wQaXxNMEIeaEeRpdsIXlB0GIO2GeRjdgdgrtfeFTOwIJkRBHDh89GvWeGzVrsW7DD3/2W4mSEEu2broNWKjzJsM6r26ZYR0tIWES4kh/JhtAR503mUpjXlKtllKZEGfC/DTrDZKpNMnOfl5dN4mHgLEgLEbTtGgxraufV/R5hbij6zq+W1/czyv6vELcabhuVOft6ueVW9+FuBPe+g4d/bxh+UEQ4k6Yp13Lw4LQS3QtD4P08wrxpjM/o35eQPp5hZ4gzFOjZi1UG0SfV4g7Tt3CMPSFasPk1MZoIiylMiHONFw3umCbnNrYPeeVUpkQZzrzU/R5hZ4784Lo8wo9euYVfV6hZxF9XuGWQPR5hZ5D9HmFnkP0eYWeRfR5hZ5F9HmFnkX0eYVb4oJN9HmFnkT0eYWeQ/R5hZ5G9HmFnkT0eYWeRvR5hZ5F9HmFnuWy+rz33j0ZACRV9aY5oCSW2Lfqt/977UY3P/BWNCihT9dr1/N9qoZFparz3Ofex54DJ1i7poiW68cPgmuO643y73K0vIV9x/H41yyjS593UZ03qao31fHlj7qy6om7bGCvkCAIcOou5y7qfHXnBO9f4/Dpj5U4d7GK02gSBMGq+ncl9MLxj22dd6UT90bSbHqUKzU+sjnLwx9o4lbLPDzVxx2jaeaqNVqeL7/713H8F9V546DP6wde9NerXx4/CDDtOs2mw7OfHcVzdPyWS70yx57tt2FbNk7dxQ+C2H65V+WMexXH/536vFE/b6EwsmL9vJ1Oxilhr8uXIMBttfjGU3cyWugnOThKZmQdmcIwY8UBdu14L82mB9eQvDfEv5ieXa/mM4X6vGE/bzLs59WyOXRdZzCbf1dOD67Xn0QiQbY/zbM/Pcsz+xt4HVMEVVXIDaQZKQySSCRuiXitRrxDfV7dMhkpaiShveRWqZTpz2TZ/uA25ufmqTdcfK9BKpNhzegY4Y2aWj6HbTvUHQfbrjE+No5RsyhNlDCqFcJFj+Jw8arHtPwma0bHxL7YX9L+oT//Bd0yo1aGxM4nHgoAxsZGsUwT03IAoiXjzvraUt1n4fbwok9JZaKx1zImdEzsi/13jlm3dpxsLsf58xfbc/ShoQGqVZvp6RPLFoU9r9nlRKeBsO6mW2bkTGdJ42rHLBc0sS/2z5w9E+1raGiAZKsZcPjIEaC7U73huqRTqUX/23MPE7fRompUusaEpYzwqvBaxoh9sX85++1bgf7Dtk/cx/8A/EcyrqMdMKAAAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./images/data/reaper_expanded_RS3.data.png":
+/*!**************************************************!*\
+ !*** ./images/data/reaper_expanded_RS3.data.png ***!
+ \**************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAe825vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz2Q1aAAABhW5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKojDQ0AAA0Ybm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD51ntaAAAABm5vUEUAAAAAAADsa7vYAAAACW5vUEUAAAAAAAAAAAChinLVAAAAB25vUEUAAAAAAAAAWube0AAAD3VJREFUeNrtXWuobddV/tZ8rLX24+xzzj335t7cpOmNaaJN0+ZVaDWlthCQVi0EFdGCSpUo4o/+0BZ/GPwjAR8IovUFPgoiKiI1UBVsNRSLcCmWliS2GtMm5nlfZ5+z99prPpc/5hpzz71z06Zau/e9zA8u+9y11nyNMdZcY4455hjFBz74cHf5wktgnAMAOBcgOGeRwjsHWVYAAKNV/Dv9P/06Z9F1HkKUAABrNTrfrTyT/gJYqZv+n9ZD/eFcwDkL7xwY5/H/1HejFRjnK/fT8VSDAdRiEcdEz6T9IXqk46Y20v6l46W+Ufn1OtO6v1Z767RepzH1Ix0zje9a5V8zO8ZHPniAe+56B6aHQ4Dt4DXhj1Ho8xD/+aUn8d9feRqMMTDOYY2B9w67+wdQbQtrNIQs4b0DY4HAWrUAACElyqpC2zSw1qCsajDGYY0GANTDIaxZElCrNrZDxAz1lPGekOVKmwAwGI4wPz4CgBUmW2MgpIR3DkKWyXUNxjnKqoJWKvbJe4+yquNz7WIOxni8RmNc7//6c1R/2v+qrnE8PVzpD9UjZAkhBbRSK/1mjEdapvQnujaz2VXpxThfKZvyS6v2muQfug533/EDmB9NgWIfXxNFha44AQYAZVX3jK1QVjWEkJheuQQhxQoTtArEGI7HkRjNbAZrDerBKBIlCkfTROICwHA8joRnjMN7D+99JKS1Blq1URi8C20cTw8jkegalWGM90zXPdEEvPewxqwIrpAlhuNxL8ShP2VV92N34bpz8N71wlbGvgshsbO7t1J22YdAn0UzD3X1ghuEyCeMsrDGREElIWOMrdCfMdYLpgq8kGUsFwTCw7vQX+p/yq9rlX/OGsynL8G2lwA/BdyF8M8fA50Ov/HaFOgWKN72zvd0Lzz31cjgqg6zS1XXUO1yMHTdOgdnDHb3DzCfzWCNivea+QxVPQLnBWz/Vrqe8FVdx2sFGDgvVuoDACkl/FoZ6gP9XdU1nOvAefGqe0JWsEatMID6lj7rXIcOHoLzV9XBpYztr4NLGcsIWcUxUP1cyjhmapfupf1Ix5XWuV4mpVtap3UOop/B1vufjvta4l9zfIxf/WmLu779TnTFidAOKwF+GmBjwM8A9zI6H17EoruM4s63v6t76fln4Z3DaGeC559+qkBGxobwL3847j721xqPf6HEUGo8+uH7ce6W2/DEl/4dj3zsSRhb4D33GDz80CioDTR1p29+RsYm8MnPNnjs/D5anMQri5P4xD+/ANt+GY99+kn44a1YFAd47Pw+Hv/cURBeUp4zMjaN7/2+HwTvGjhnYbXGvW89C1kWeMu3dbBGw2iFinu8896zYEIIaNWurMIzMjaFg/0Sf/TIGdx3+wg/8yN34603fhm/+Bufx3ffN8BD39XhO992I/7yd38YI/YchLU2rrgzMjaNj3/8z/D+B0b4tQ+/G94e4ff+wuHxL1Z402dO4CcfugNGXYS9/Cf45L8yRIs2Y3xldZqRsQn8wT++EX/72RfxCz/6GZy7+QDTY41RLXBpvofZ4RN45rnL+PU/t2ir+1Hc+8CD3XNfeRpatTh5+gz+64l/y9aGjI3hzLnbO6MNbDvFoz81w1tuG8d7Tzw9w0d/f4BydAK33PomCKVaCCkA1Hnmzdg4rLEoigIoJB754yEuX56hYAUKFNjfH2EwGoKVEkq1QW2wxkKrNpvKMrYC3juUJcfn/uYncP6LF/HiReDExOCOnb/H+z/SwprgQyGqqo7Whiy8GVshuFUFrYCf/6XfwY99j8U7TgMvXwZ+++8qWOzBqhZVVYeZl/b2MzI2DXJIKqsan3riJvzD5zXq4QhtM8f+wSl4f2npX6JUCyFkcG5x2VyWsVm0TRNNt0ZrjCd7WMznkGUNj+CVJkTQeVlV1dFTyOVdtoyNqw0+eAb2E6lqg/edVi2cMUtXhqoOMy/5hmadN2PzakMNayzq4RBlVaNdzHvXUImqrnu/YR5m3kyujG1CVdewRqNtGggpUA9GKKvqqs+y0XgCrVrs7O5lO2/GxrFo5sGB3hrMjqb9IQOLsqqg2iCnWrUYjSfLkxSLZh6dqTMyNoVwQsP1M27dH0XSmB1NwaWMJ1aCtaFtYqHxeJKpl7FxpO65Wql4TGk8nsQjRKptwswbzn05zGezTLmMjYLO9lV1Hc/KkUFhPpv1ZwyDPxmz1vanVPmrzn9lZGzC2kBqLB0Y3dnd6zfSVHJo1AZndNHrutlUlrF5lUFH1SBoBSWmVy6hHoyifAopIYQIzuhLPSJbGzI2CzpKH+Jk8GjXTeWTMR5m3lAgbwtnbI/aYI1Gu5jHmXbv5KkVGY2+DUKIZIquMvUyNr5gA4DxZBfH00OUVY3Z9LAP5rKUTyFEWLDp3iE9DaKRkbEpjHYmMVoP+Tl478F50YfNamGtDf68QkhYY7POm7EVasP8+KgPJeXQzGY4efoMVNv2sdcshJCJYw4Puxp5hy1j06jqGqOdSVQdvHdo5rO4A+x9iCy5dInsV3PZJTJj0zieHkYNoG0a7O4foG0a+CQmGmOJSyT5S+7uH2TqZWxcbSCLAuMci2Ye7+3uH8QdOKXaoPPSFly7mOO9P/TjXSZhxjbiq09+IcpqVdUQztkY61W1Lf7pr/40UyljK3HTbW+OdmDnLB3A9LBGk1E428sythUdRbgHQF5l2bch49qwRKTyygBAViGEvXNZ3c3YXpB8krwyzgVUs4g7GBkZ2wrOC3jvoZoFOBdB511Po5SRsa1IsxEJpdq4d5y3hzO2GSGGQ1isKdUuvcpE3hrOuAZAciqECDpvmi8sI2PbEdZnvc6b81FkXDs6bzhhEWbfmK3RZTtvxtaDUukKWQY7787uHoTIOm/GNaDz9ql0AYDNZ0cxxE5GxvYv2Eosmjnms6PezstC9susNmRsM9bzSLOqD+Sb+k1mZGwrFs08rM+iM3ofyDdHRs/YZpB8eueW8XmFLMPR4rxNnLHN+i7n/RH4cqk2WKMhZJm9yjK2Gs51IXav0aunhwHkQHsZ26029PK5cnqYopRka0PGtWBt0H0eNiZkGU1l2assY5uh2jbG7RWyBKPDl4tmnmfejK2feSmsvzU66LwAVmKiZmRsK2K4U9WC7R+cioH2MjK2HRRob//gFNiVSxdCsramyZsUGdttbXAupne9cunCahLBvEmRsdWz7pp8RlMZ4xyyzMGlM7YXsqzAOF+ayoDlSYrZ0TRTKGNrQfK5TCLYn6LI1oaMa8XaQFEiGRAyDmZ/3oxtB8koZcgUQogYIdI5mymUsbVo5rM+iXa9zMNmjQYATPb2cOLGWzprDISUsMZE/YI8z9Z/vXfwLgQCTp+P5o3+OfKfEFJGtzZql/6uh0M0SQpZxhiELNEu5qgHo5U2KaUnRVDRqo3n8MjRiIKp0I6M9x6MsXgNQKyL6ibQuOrhELOjaWzfe4/heAytVCxH9WnVQpYl9KIB93P85s/eiZ/7rafAqhFEWaGqa2iloFUb2y+rKtZP9CI6lFWYaebHR2CcR9UupTl9OYlf67/XE/+GozEuX3gl9MtaOknhk86aUCHjYIzFDQzqIOWvoLCoQQfxUZEOKebDoNYdfpYC42NdqcDMjqbw3i0V8sQ0EjLALNMOhFOkbOmLLGSsyzsXLSgxoiDny+eTnF6kQxGDKA9zOFHtYc3q16isasyOpnFsADAcj0OM47KCbhdomxl+5eFzuOeGFh967xugF3NYrdD2p1VIULVqwbmIviVEN2tsPGQ4vXIJo51J8qK4yNSr8et65t9yYvGvtjbQmzXamazMRFqpGGZd9ycvyqqODC+TvBZEiHR2IYcfIsZwPI6EJ4aQgxC9ofRMyuyyP7JEQkcDCgzxcRaguuIJkSQlqPcutqFV2+e3NXGmCJ+lqiemhFYt6sGoF4Ky17XkCiO1UglTFR68f4Lvv9tAH17EB75D4q6bB/DWAEWxMtsLIaHaNvqWCFlitDOBkAKqbdEu5vEZEpYwq5ZRUNf5db3z76rWhlTqqbPpW1RWFawxGE92ceLUDcknQy7zuEkeiVJWNbjk8S0N12Vfj0U9HEJIiXo4jLMKDS4QWUWhCp5EDGVVxQEJKWM5EryUwNQPGjQxn8rUw2FM0lwmtm6aDalfKSiRM9UrpIhlvQuJnUfC4NEP3QC3mMJbjfbKJXz0fTdDdC28dfDW9kIn4gxEzCRBodmevKfSr6LoM+LQ53SdX9cz/0i4ydrAz91x1y+//MKzYJyjKBhUu0DX+f7tNTC615GsgfcesiwxvXIZXdehYAXKqkJRhM9T0W/YWaNhrYHVvQ5VAM5aVINBZAx9QroudHgwCrNb0X/yVLsIyeQWDbx36LoOWikMRiMYreGcQ8EKcCFhtMZgNIL3HgUr4KyNguichSyr2F6qIoTPUgh3xYVAUTBQmgNrDBjn4ELAGg1ZVuFva9B1HoxztIsGzllwLuC7DvAOjz78Rtx3+wCFkNB+Am2G2N0b4/TJCc4/s4C1pq8z0PPUmbM4nh6iGtT9LN6i60IOMto0Ivp0XRfLCSlRFCz2h/jlnLtu+ceFgNFhzXD2DbeiuPPt7+peePYZCFlisreHV158fkX/oAUJvXVaqfj2pAsfimRCbxC9IeniAQAG4xHmR0cYT3ZDuaaJn4ygO1JGThkXTEQw+pSliwh6260xcSG1fM5EvYqu0SIhXQikC42Tp8/glRefj6rC+gKPXgCqO+rTBYPWLaxqYbRC13kURYGu6yCEBOMCKArsnTydqBkuqiXpl+Fq7RAdaHYl+tJCh/hFqsb1yL+Tp8/g6PAQ1micvaUX3ldefL7/xFTY3duH6TtaD0ZxpZj+yl6J5qKPqG41jDEY70wwOz6KZZ3V4KKM90n3Wf8/1WmMib+prkTPSynBxXL1SvWn5eNWYv9s2pazOt5f7/t6X9bLUpvpM1TPOo3SRQnRhOpM76VlqG/rNKB2Xosn6/SiPl+P/Lt88eVo5bnhxptQ3PvAg90z//HUitnkW2FSSt+4dWWeZohvpkmJZpB0Zktn1nS1nc5ar9eElM5YmzQBrv9ej/yzRuPW298cFmypCeNbYlIiover3rBy1pExlDT5m2FSCouPKlmdi2gOKqsa9XAYFxCpGShdeVN/aSxLm6eI92nF/PVMSLSg+f8yAV7P/IsThzVQqkXx7vc91F28cOF173IIIULG7T4otbX2dZd5LTirMRxN0DQzcC5es460vaqq447g7Hi68rkGEBdS3yi+Xl//r2W/Ufr9b8dxvfPv5KlT+B8FiFlLoxQJ6gAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./images/data/slayer_collapsed_OSL.data.png":
+/*!***************************************************!*\
+ !*** ./images/data/slayer_collapsed_OSL.data.png ***!
+ \***************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAXWm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALW4o8EAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAFNklEQVRYw92YaWxUVRTHf/OWWTqvM53ptNOBVpaCLAo0ERqQILhEwEACiYnBxIiJ3wgJGhPBKAlI+KhGTEAxhEQxBgyRoAgRiQGRpUqlu0AFStuhU2Z5s79Z+vxQZugaKmAy8P/y3jvvnXvOefeee+75G95Zt0bnNmzFVgDCkRiVVZWEQ0HCkRgAmb40mbSOVVEA0LQYqWQSQTRhNhlxljpRw1EA7DaFeDxBMpEgHo9Q4a7Ij3np79b8s63Yelf5UB+0ZBaDKBGJxglHVDJaCoMg033zFlbXBHbu+JgPt24j/s8pDNs3r9PPna/D4XDRl0qixqKIokw2m8ZuVRCMZoLBW4wVY9XNfTeafKRxNC2NPxil0+tHNlupnjABk6WYxpYG5tUuYPsnOzn63ddcvFhPV90xpNzfDofVvDGbzX4n0KQ2aiAj/ZDcGGosCrHoqLo2m33EwHPygT4ICY1EMsX1zl6cpR72ffEWU8ZPxVxWzrnG65w9W8ezy1Zw+pej1J35Df3aCZp6+jC8u+F1va2tFYCOjq68EYu5f4kmkrG8TEul8vcmoxEtlcJkNA5z0G63o6rqsPejfT+aPOdDNB4hqCaYNH0uX21ZiS/pos+gIFiK0JH4fPceMqIZxSLS097A4RN/8PySWiS7TRm0ROpbugzcN7p40LAVK/qO91dz02+hs9eLL55ikseBWTbx2urn+PbgT5T4G6iZOZ2sfxxZSUSKxxPYbPb+paRG/xfHHgRWL1vM+ZMX2Hu8mWgoxIGt6/CKBjZs20VbUyNvrFqEUL2UL4+dprxPoPFiK0IykSAYvNW/vlWVQoXHU05LRy+vrnyRRXOfoLvIxfotu2mq/5P5s6s519iOzaLw9DSZqGxnzoyJCPF4JL8BDMypQoOvN0A4koJwF97OaxRJEgFfd38SdHrp9oUoLy3hmyNt1Hpg9iQnUoW7gi6vD1GUR0zqQsHVbj+GTAyj1ku7P8OVlhbefGUFlzv9VI1zsvSF5eza9SmlLgWpahYNfzUg5ArkSDWnkNDc3MINX4RzV25iFGBxzWwqyxWWL5yKQ0ixcdNGjLrORx+sp0RP0VzfhFBZVcnDAKtZwl1ShNcX4dq166x9bxsRNcrPh37g/JlTvL12Ga4KDwcPH0HMenl5dTVSOBQcVlcKES5HMVdvdPPkzCm0Xu7gQksbF5ovoWNgxZIadnx2kJpF81k4y0Nx1UQeaz99Z1k6HK6CnjmzScbjstF2pQPJaMLuLEPLZFEjMQ4cOc3kp+awakElPREre/d8z6Z97Ui53TIcVgedRgoNBoMBi9lEpdtJQkuRTmeZ6ClFEAwktDTHfv2dH4+fpFgpwm63MrdmKtLj02bQ5fWRzaYLuhT0BwiyLCLLFnRdB/oPUzZFx2lX8If8VE8ejyyJ1NbOG5xzhVwKRprJgfcmo0Sx1YLZJAMQUYP9OSeK8rCD8cOInP+iKBOOxBCcpc58//QwzdxIMBmN+SbAWepEyPVzhV7Ex4p8PxmOIvAIQ8j1c48SRFHGblOQAv5AvrW3mK1s37xOD/gDJLUUfVkNo9lMeZl7TOTPQDJnrITRUAKovMzNvdrfv/9QnqoI+AMY1q55SQdwu8uIRaNEYwmAYfzG3Qgdu7WfFRtICt2LTu6kdC/2bQ4HVkWhp6cXAKmkpIhQKE6ORxlNeeDAAx3I7bRqLJp3dmhy/xed0YIay1jqbULK4XBRUlKElEnrnK+rG1bEc6TN0GuOjkhpGULh4CCdoaTSvejcj/07te4qzy15hn8B0nEpIgoaSy8AAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./images/data/slayer_collapsed_RS3.data.png":
+/*!***************************************************!*\
+ !*** ./images/data/slayer_collapsed_RS3.data.png ***!
+ \***************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAADcAAAAZCAYAAACVfbYAAAAYyG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgO3bMAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAGeklEQVRYw9WYXWwcVxXHf3PnzsfOfnhjr22SNMjOR1OC6gRIS2gJX6ooRS7qAwIET0gRL6gSj+UBoZaKB4RQhVQRRKmQqBACVPEApUiABDSQNECCE7upiI1J7Nhexx+7O7s7H3dmeJid8W4lJHhbjrS6c/fee2bOOX/dc85f+8TnvpBsb64jdB0AXZdkEkWKfomjCMO0AAgDP3/un2djFCmSJEZKEwClApI4GdjTPwIDurN5v54oUsRxTBxFdNsuge+hCQ2h6WzV15iaPsx3n3+Orz3zLJ2lPyJvvrnAyvIiQgiErqPCkDiOGNk3hu95qDBAGiZxHCFE6oDA9wCQhoFpWXidDkqFmJaNEDoqDACwHQcV7jko8L38PZmzUj1mviYNc+CdAAWnSLvV7BkWEnQ7jI5VuXd6CrtQ4drCHO898xBff+47vPqzl7ALBludEAlgWjaB72E7Tv5xjZ0tSpWR1OthgND1/AOcUgm32UAIm47rEscRdqGI121jF4q5MV6nM+AYp1Qi8P3cSSoM873SMAh8jziOMS0by7Zpt5pIw6TV2IUkQQU+J45N842vnuPowWPY4xNcuvYvLl68zIc/NsuF377K5T+/RrL8Oy7fCpBSpjAUQqBChWXb+c/3PHRd5nMAFUVEYcjbD99L23UH1qQhsewiuq6helGJegZYto2KIky7gIZA17UBfQCVkSpx35nR8Ql8z8MwTUKvw8mZ+3np6Vnq3ghrOx2EV2eyWmb99jI/fPEFSgWdsLnGy39pcXD6KNqJ0+9P1ldvEUcRxXKF1cU3NIZQTKuQXH7lm3jNAiub29Q7AdP792EbFgiNH7/8K8aCOaYO3Mcvfn+F1+/KFJYZTLIIDKN85vGP8Pof/sYPfjOPu7vLT5/5Imu6xpeePc+N69f4/BNnEUce5YVfX2Ai0fEbdxHZ4X78D6McODDBwq1NPvv4Rzl7+p3ccWo8+fT3uH7lr5yZOcKla4tUCiUeOm7gGiOcPX0cIaUk8D1Myx5q4zY2t2m2AmiusrayjCMl2/U7AKyurHGnvsvEWJUfvXKDB/fDzPQoUimFadn5tTussrSyhR63Mf1NFrcUNxcWOPfpWf6xssWhA6M8+shjnD//bcZqJeSh+5m7OrcHSyF0fM8bWuPmFt7gdr3FpZvrmAI+eGqGeyZKPPbwMfaJgKe+/BRmkvCtrzxJNQmYv3Id7V0PP5LcXl4k8D1qk29jaf7KcN6WTil54MRhlv65TJQITr7jCB//wLu5eulPuN0On/rkLBcX6rSbG9xXS6i762kq2L67kee4YU0FlbHJJA4DzsxMcePmbbp+FxJBgsbsh06x9PdFTp09wwNHTcqHpogXL6SwVKHKS6phFadUBl3y2tUlNMOiXB2nG0bsNFx+8ssLHH7PSZ543z1stIq8+P2fc+75+RSWi2/OY1o2lWp1aGFZOzidZAV46PsITUMTAmkYtFtNiGMKtkEQKGJNMH3sRBq5OI7yYndYJa07I6Q0MUwLyykSJwlCN6jWJrCKJcq1/chCEWmY2E4R6fseUhppRxANdzpQYUh5pJgbaxeKaWC6AaCh6TIt1EWE73sIy7IRuo4Qel6wDqOk7VVazHvdNtIwcrRJw8yLdCF0hK5jWTbC9z2ESNuZYa4tAz/tLVUYYBeKeT28l6cFlm332jI9jRz/J5JCMO6DaNrQmlbavfev5QYXSxUC36M8Uh3qCiVrqnPKo2dMlsakYeB7qR2B71EsVdLImZZNt9NGN4zhvy0NE2nIvHPPpOAU0Q2DbqedO0G23eaeAq/L8VMPJmHvYumnDvpHo+cEvUf+RCogDENK5Qpuq5mfjVSALs18PaMg3jrPdIZhmI+Zjv79hmGgSxOv22a0Npnrz843dndyW9puE2lZdo7fwPfZuLNKHMcIIXI+o7m72+NBdvO9e/CIiKMI23Gor61iF4qoMCCO4wHOJPsv42tMy2Z3eyvvI/s7E9OyCHyfwF/No2BaFm6zkRu8vVnHdhw6rptzLv3vym9LpfZSQJoWxAD7lHUNGSxSjEviOMpJnX6WK/tYt9kYgI5TKqHCALPn0DiKeoyZyK/1OIrwOp2ByAV+yuUIoadcTG+vChXlkSoAjZ2tvctGhfi+h6yNj/9v+UZKlFJkxJJS6r8+858kUgFOsUKn4w7wpm/VMTY+iVKKkX1jWJad86puq8HE/oOD5dr4OP8GnWaF+iWIoRwAAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./images/data/slayer_expanded_OSL.data.png":
+/*!**************************************************!*\
+ !*** ./images/data/slayer_expanded_OSL.data.png ***!
+ \**************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAafG5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAejEs8AAABhW5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKojDQ0AAA0Ybm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD51ntaAAAABm5vUEUAAAAAAADsa7vYAAAACW5vUEUAAAAAAAAAAAChinLVAAAAB25vUEUAAAAAAAAAWube0AAACUVJREFUeNrtnX2MHHUZxz87O/t2u7dzu/fe7im0tKUIpWptKoggGilSEpqYGDDGEkn8oyFBMREMakDA/9SICUUMwSjEBEM0CEJEYsAKbZVCX0/oQWnveu3dbXdn9n12Z8c/tjO3x93VXgt7s+X5JJe7m5vfPL995tnZZ57fM9/zfW/rzTaniHdGATByBVJDKYxsBiNXAKBWr1Kr2kRjMQAqlQJmuYziDxEOBUl2J9GNPABaPEaxWKJcKlEs5hjoH3CP+dZ/D7q/xzuj/3d7K+fwYdoSv56ZrXiXxvETaXL5IorPR6VSoVIxOfTOEboGV/DwQz/nJ/fdT/GdV/A9+KOt9o6du0gkeqibZfRCHr8/gGVV0aIxlGCYTGaKM+VMxzr7zbe9lXNoha2F7vtR9GulUiWdyTM6niYYibLsYx8n3BFn7/49rFu/gQd/8TDP//H3vPnmbsZ2vYDqvKMMQ3dfdDyuTQdyuTKvsbkC3jmGXshDIT/v2Hhcm/PFONtbOYdW2BK/zm+rq6ubvGEwfHSMZPcSnvj1d7ho6QrCvX3s2Pser722iy9s3MT2vz/Prlf/iX34JfadqOP7/h3ftIeHDwJw5MiYe8BIuJFClMqF6XeGabo/h4JBKqZJKBicNRlN09B1fdbf59t/vu2tnEOrbIlfZ9sqlSsUSjUuvHgdv7v3RibKPdR9MZRIBzYqjzz6GDV/mFjEz4mRPTzz0r/54jXrUbV4bMZHze4DYz7OmTEWn7Hz0Nb569d4Z8x+6J7NHE9HGJ0cZ6JocuFggnAgxDc2X8sfnv4rXek9rL3kYqz0EizVj1oslojHtcbHgZ73iIOEjxqbN17Nzpdf5/EX95PPZnnqvq2M+33ccf82hvft5dabrkJZfh2/eWE7fXWFvW8eRCmXSmQyU43cRNfFi8KiMDjYx4Ejk9xy45e5at0nONbRw+33Psq+3f9hw5rl7Ng7QjwS44pVAfIBjctXX4BSLObcJLw5FxGEVjIxeRIjZ4IxxvjoYTpUlZMTxxqJyug4xyay9HV38eRzw6wfhDUXJlEH+gcYG5/A7w/MmXALQit491gaX61AsDLJSLrGoQMHuO1rm3h7NM3QkiTXfel6tm37Jd09MdShy9jzxh4Up3g8V21QEFrF/v0HODqRY8eh4wQVuHrtGlJ9Ma6/cgUJxeSuu+8iaNv87Ie302Wb7N+9DyU1lBLPCYtONKzS39XB+ESOw4ffY8sP7ien5/nbn//Czldf4btbNtIzMMjTzzyH3xrnq5uXoxrZjHsApyYnCK2mJ9HJu0ePceklF3Hw7SO8fmCY1/e/hY2PTdes5aFfPc3aqzZw5WWDdA5dwMdGtk+nDYlEj3hQWDTCoQCDPXGGDx1BDYbQkr1UahZ6rsBTz21n2acv56bPpjiRi/L4Y3/i7idGUJ1qg2HoM1ZBBKGV+Hw+IuEQqf4kpYpJtWpxwWA3iuKjVKnywj/+xbMvvkxnrANNi7Ju7QrUlatWMzY+gWVVpVQmLHIAQyDgJxCIYNs20FjsjcdsklqMdDbN8mVLCah+1q//zMycV0plgpeuxM0/h4IqndEI4VAAgJyeaeS8fn9jg1x5BS/jxKffH8DIFVCS3Um391KuvIKXCQWDbhNZsjuJ4vTzyiKF0A64PcVGHkXcIbQritPPKwjtgt8fQIvHUJr7eTVNE88InsWJz3hco1gsTffzAtLPK3gaJz4zmSnKpdJ0P29zKUIQWk3NsqhZ1mn3aY7PYjGH4mgKOKUIQVgsVL//tH9vjs+B/oGZixSC4NXAff8Nm5ErNPp5pcYrtBOWVSU1lEIxshm0aEN6R/p5BS/jxKcWjWFkT/U2KMGw9PMKbUEi0YMSDDfShnhn1C2VST+v4GWc+Mxkpoh3RqefpKibZfGO4HmcOHVv2OCUeJogeBwnTt0bNqf8IAhex4lTI5tBdeq8Trns27fcYIuLBC+y84033N5zI1dATQ2leHtkxN3hkSefFS8JnuSTlywFpuu8qlPn1Qt5p47mEzcJXiQSjtrQVOdVgyHyp1SrpVQmeBknPvPlCmowJPq8QvugaZq7mDajn1f0eQWvo+s6dbM8u59X9HkFr1MxTbfOO6OfVx59F7yO8+g7NPXzOuUHQfA6TpzOWB4WhHZixvIwSD+v4G2a49Pt5wXR5xXaAydOjVxhutog+ryC1ymVCxiGPl1tWLlqtZsIS6lM8DIV03Rv2FauWj0z55VSmeBlmuPTzXlFn1dolysviD6v0KZXXtHnFdoW0ecVzgtEn1doO0SfV2g7RJ9XaFtEn1doW0SfV2hbRJ9XOC9u2ESfV2hLRJ9XaDtEn1doa0SfV2hLRJ9XaGtEn1doW0SfV2hbTqvPe8WnVtqwsP+LtVAU3xzH9tcb361Go1vdtlrqFGdO52rXqtfJGgUyWZ2f3nYxd247yGBfEi0WoW7bZ+3XD2p+p6P5P1B68fznCsYMfd5ZdV7V7/9QJz7/WVcWPXDndewZYts2pbLJ8Umde7YMsaavxNc/l+L4ZJZSpYpt24s6vzOhHc6/Z+u8rQ7cD5Jq1WIqk2PDpVE2XV7FzE6xaVWAZb0h0tkcNasun/vncP5n1Xm9oM9bty33q13fPHXbJl8sU62WeODWXqySTr1mUs6kuXPjUoqFIqWySd22PfvmXpQr7gLO//v1ed1+3kSip2X9vM2T9FLAntNcbBuzVuPH37qI3kQEtbOXcM8Swolu+pMdbL1hBdWqBWcRvB/I/Dx6dV3Ia3L0eZ1+XtXp59WiMXRdpzMa/0imB+c6H5/PRzQS4oHfjnL3wxWsphTB71eIdYToSXTi8/nOC38thr8dfV69kKcnqaFCY8ktk5kiEo6y8fprOZk+SbliUrcqBMNh+nr7cR7U1OIxisUS5VKJYjHHQP8ARq5AaiiFkc3gLHoku5MLHlOrV+nr7Rf7Yn9O+6+8/Cp6Ie+2Mvi23PwVG6C/v5dCPk++UAJwl4yb62tzdZ85252bPiUYdseezRhnYmJf7L9/zJLBAaKxGCdOTDZy9K6uDrLZIsPDB+ctCltWdcYkmg04dTe9kHcn01zSWOiY+Zwm9sX+0dGj7rG6ujpQa1Wbnbt2ATM71SumSSgYnPW9kXvkMSs1skZmxhinlOHcFZ7NGLEv9k9nv/Eo0Ltce83n+R+bCm28wSXdjwAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./images/data/slayer_expanded_RS3.data.png":
+/*!**************************************************!*\
+ !*** ./images/data/slayer_expanded_RS3.data.png ***!
+ \**************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+module.exports=(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js").ImageDetect).imageDataFromBase64("iVBORw0KGgoAAAANSUhEUgAAAK8AAABLCAYAAAAGR9fhAAAehm5vUEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYX5ysAAAGFbm9QRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqiMNDQAADRhub1BFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPnWe1oAAAAGbm9QRQAAAAAAAOxru9gAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAAHbm9QRQAAAAAAAABa5t7QAAAQyklEQVR42u1da4wlx1X+uh7dfR9zZ2Zndvbh127sTWxjr53YRCaOQyxZBIMTBQmIBD8QIfIPIBL/CD9AJARZAgmiSBGOAhFIEUIyivIDQkA8xGPBD4Gdtb12FK8fa++ud2ZnZ+6de/t2V1dV86P61O17vSYOhJm7q/qk0b1zu7u66pzTp0+dOnVO9LGff7i6tPEmGOcAAM4FCMZoNGGNgYwTAECpCv+9+T99GqNRVRZCxAAArRUqW02d0/wEMNU2/d9sh/rDuYAxGtYYMM79/9T3UhVgnE8db44nabVQjMd+THROsz9Ej+a46R7N/jXHS32j62fbbLb9P91vltazNKZ+NMdM47vS+WetxXi0g1IpqCJHxCKwiOPSxgXccOQIvvylL+B3Pvd5ZC//K8RL3zmFN149DcYYGOfQZQlrDRaXV1DkOXSpIGQMaw0YcwRWRQ4AEFIiThLkWQatS8RJCsY4dKkAAGm7DV1OCKiK3N+HiOnaif0xIeOpewJAq93BaGcAAFNM1mUJISWsMRAybvyuwDhHnCRQReH7ZK1FnKT+vHw8AmPc/0ZjnO3/7HnUfrP/SZpip7891R9qR8gYQgqoopjqN2Pc07JJf6JrNhxell6M86lrm/xSRX7F8s8ag1LlyEc7WFldxrvfdRRpuoBnT53E++/5AB75wh/hW3/5NaQtic2shACAOEmhihxpu+0739/aRLe3OMUs6mC728Vw0AdjKbLhENYapK0O8vEIaaszEY4smyJcu9v1wkSdJwgpa8I7AUvSFKOdAYSMsdPfvixhSACoj0RwascJBffXCCmQZ5lnPjHLWuMZQczw2soaCCHRWehhtDPwxGeMTwmptQZxkvp7NYXS9U83hJZBFXl9f+bPT9ttp40YhyoK/7CoIoeQcqpda8zUwzThV3pF8k/lY6g8w203H8Pv/dYv4aZrjiHdv4Ynnn0Njz/+FO7/8Ydw4h++haf+499QvfqPeOqMQnT8ng9X515/zTeapI4gSZqiyHPfOfpdGwNTllhcXsFoOIQuC38sGw2RpB1wHkHXwmDqASZp6n+LwMB5NNUeAEgpYWeuoT7Q9yRNYUwFzqO3HBMygS6LqVcl9a15rjEVKlgIzt/SBpfS338WXEp/jZCJHwO1z6X0Y6b70rFmP5rjarY5e02Tbs02tTEQ9UM02//muK8U/kkpsX1xHbfffhxf++xPYj1fhY26YK02Kgh8+StfheYpui2OC6dP4ut/9ySuOXoTolvv/mD15tkzsMags9DD2dMvRAgI2EV0llYrnWd48q9/H/mghTc2LmE9Uzh6aBmpTAAW4S++/jdYUSdx5PDN+Kt/fhpPXhTObCDV3XzyAwJ2CyyK8ImH7seT//Jf+NO/fx7D7W089rlfwXke4dc+/yhefO5Z/OLH7wO78SP44789gbWKo+hfBGsazwEBewFrLQ4dXsOpMxv4uY/+GO67+4dwrr2KT3/2K3ju6f/EPcdvxBPPnkav1cUH3iMxlIu47+73gAkh/OQhIGAvoEuF9Y1LGOwoYHAW5994FW0hcGn9HADg7BvncW59G2srS/jzb76I9x8Cjh/dB6G1Rpyk3q0RELDrZgMXePnsJrgZIS42cHpT46VTp/CpTzyE776xiesO78NHHngQjz76RaysdiGuux0nnzk5MRsY41Oz04CA3ULSauOZk8/h9fUdPPHSm4gZ8KN3Hse1a108eO8xLDOFz/zGZxBXFf7gNz+NpUrh+aefQ/Teex+oXn/1NFSRY/XAQbz8/NPB2xCwq1g+cG2VDQe465Yb8Morr8FUDHfcciN+4kPvwzNP/DuG4ww/+9MP4fFT6xgNLuDm1Qrrwzedq+zSxQvQpUaSpsFVFrDr2Hfo+spoDVOMcc/xo3jxpTMYF2OgYqgQ4aEP34mXv30ad953D374phgL1x2BPX3CmQ261H7lJiBg170NxkDKGDLt4MS3XwZEjIXl/RiXBlv9IR775gm866478PEfuRYXdjr46p98A5/60vPObDj9necRJyl6S0vBbAjYdXT3rVVCuNVJRABnzAXmqKJehteIqgpJzKGUho0Yjh671S1SWGt8bEBAwK4Lb28ReZbBWot2t4tsOEScthCnbVhr0On1sLO1hYXFRfS3LsEag7TdASuKHEJIF9FkgrssYPdBgssYQ55ltevWQhU5Wu0O+pubEDJGxEUdYBWjKHKwJEl9lJUJq2wBewCK4nPRZhZCCh/lV+QuxFMVOUxZgjEOxjmSJHWal2JDQ2xDwF6BQkddWKlG2m4jTlLk4xHiJIWQEkma1mGd3GneQLaAufA4WAtrjQu9LFUdSyyQtjqIk+TyAt/p9qCKHAuLS2GFLWBPQMH2uiwxzkYuaF2XGA760KWCLjXiJEGROzlVRY5Ot+c0b5ykGGcjH0wdELDbaLU7botRvbPFady03oqkMBz0waXEOBv5IDJW5Fltc3B0u71AxYBdR7vbRX9rE1o7h0EzPFcVBbQukbY66HZ7Pva8yDOneYUUsNZgNBwGSgbsOrLh0Alnb9FvIE1St7+Q/lSRY1TvtxPS7ZBmWut6lyp/y/6vgIDd8jRMbNvUm7GqcLufFxaX6oU0t+KWDYfQWrtgdFHbusFVFrAnwss59u1fg5DC7XRmk+3xQsbob20ibXW8fAopIYRwmndiRwRvQ8BeaF6O9fNnfdIR+o1SMszKJ2PcaV4AYRdFwJ6CBHS0M/C5L/LxyGvapdX9UzJK35kQoqGik0DJgD2xeRljPp4BcME6O/1txEmKYX+7TvAykU9vNjgnsZhKohEQsJvQukS72wUAdBZ6yLOsVqguzsFaC86jOm1WDq01RJKkEEJClzrYvAF7Amtt7SZzKa5GOwO/XJwNh1g9cBBFnte51zSEkI3AHO5WNcIKW8BeYPXAQQwHfR8c1lnoedPBWoNsNPQrwNa6zJKTkMh6NhdCIgP2Auvnz4IxjsXlFez0t70FkGcZFpdXXLxvIycaY42QSIqXXFxeCZQM2IMJG0er20F/a3M63SznGGcjf97i8opfgSuK3Nm8tASXj0e4/2d+oQrkDJhHvHbqpJfVJEkhjNHQpUKcuBSU//TYnwUqBcwlrrnxFu8HNkbTBkwLXSpyCgd/WcC8oqIM9wAoqizENgTMP5qxDV54ZeI2wBkTzN2A+QXJJ8kr41ygyMZ+BSMgYF7BeQRrLYpsDM4pM/pMGaWAgHlFsxqRKIrcrx2H5eGAeYbL4eAma0WRT6LKRFgaDrgCQHIqhHA2L0lzQMCVADc/E5MiggEBV4bNyxEntc1LVRVpx2ZAwDyDSukKGTs/78LiEnx+1ICAebZ5hcTC4pLTwqPhwKfYCQiY/wlbjHE2wmg4mFTATNI0mA0Bc43ZOtIsqWuwNeMmAwLmFeNs5OZnPhi9TuQbMqMHzDNIPq0xk/y8QsZua3FYJg6YZ3uX83oLfDwxG3SpIGQcosoC5hrGVC53b6mmdw8DCIn2AubbbKjlc2r3MGUpCd6GgCvB26CK3GleIWPvKgtRZQHzjCLPfd5eIWMw2nw5zkZB8wbMvealtP66VM7mBTCVEzUgYF7h050WOdjyyn6faC8gYN5BifaWV/aDbW1uuGJtWRYWKQLm29tgjC/vurW5MV1EMCxSBMy11p2RT+8qY5xDxiG5dMD8QsYJGOcTVxkw2UkxHPQDhQLmFiSfkyKC9S6K4G0IuFK8DZQlkgGu4mCI5w2Yd5CMUoVMIYTwGSKN0YFCAXOLbDT0hQaFEBBauxSnANBbWsK+Q9dXuix9FW6yLyjybPbTWgNrXCLg5vnevVGfR/ETQkof1kb3pe9pu42sUUKWMQYhY+TjEdJWZ+qeVNKTMqioIvf78CjQiJKp0IqMtdZXnZlKYsy4b5tA40rbbQwHfX9/ay3a3S5UUfjrqD1V5JBxDDXOwO0If/jLt+JXv/gCWNKBiBMkaQpVFFBF7u8fJ4lvn+hFdIgTp2lGOwMwzr1p16Q5vTmJX7OfVxP/2p0uLm2su35pTTspbKOzpa++zRjzCxjUQapfQWlRnQ1ivSHtynC6Qc0G/EwExvq2mgIzHPRhrZkY5A3XiKsAMyk74HaRskksspC+LWuM96D4jIKcT85v1PQiG4oYRHWY3Y5qC11Ov43iJPX1EwjtbtflOI4TqHyMPBvidx8+gjvXcnzy/uugxiNoVSCvd6uQoKoiB+fCx5YQ3XSp/SbD/tYmOgu9xoNiPFMvx6+rmX8TxWLf6m2gJ6uz0JvSRKoofJp1Ve+8iJPUMzxu1LUgQjS1CwX8EDGoZJEuS88QChCiJ5TOaTI7rrcskdDRgBxDrNcC1JbfIdIoCWqt8fdQRV7Xty29pnCvpaQmpoQqcqStTi0EcW1rySlGqqJoMLXAA3f18NE7Sqjti/jYzRK3XduC1SUQRVPaXgiJIs99bImQMToLPQgpUOQ58vHIn0PC4rRq7AV1ll9XO/8u621oSj11tvkUxUkCXZbo9haxb/9a45UhJ3XcJPdEiZMUXHL/lLrfZd2ORtpuQ0iJtN32WoUG54hceKFykUQMcZL4AQkp/XUkeE0CUz9o0MR8uiZtt32R5rjh6yZtSP1qggo5U7tCCn+tNa6wc0eUeOSTazDjPqxWyLc28esPXgtR5bDawGpdC53wGoiYSYJC2p6ip5pvRVFXxKHX6Sy/rmb+kXCTt4Efefdtv33h3BkwzhFFDEU+RlXZ+uktUaraRtIlrLWQcYz+1iVUVYWIRYiTBFHkXk9RvWCnSwWtS2hV21ARYLRG0mp5xtArpKpch1sdp92i+pVX5GNXTG6cwVqDqqqgigKtTgelUjDGIGIRuJAolUKr04G1FhGLYLT2gmiMhowTf7+mieBeSy7dFRcCUcRAZQ50WYJxDi5cMWcZJ+67LlFVFoxz5OMMxmhXM7eqAGvwyMM34H3HWoiEhLI9qLKNxaUuDqz28NQrY2hd1m06eu4/eBg7/W0krdRXgKwqV4OMFo2IPlVV+euElIgi5vtD/DLGXLX840KgVG7OcPi6o4huvfuD1bkzr0DIGL2lJayfPztlf9CEhJ46VRT+6WlOfCiTCT1B9IQ0Jw8A0Op2MBoM0O0tuuuyzL8ynO1IFTmlnzARwehV1pxE0NOuy9JPpCbnld6uot9oktCcCDQnGqsHDmL9/FlvKsxO8OgBoLa9PR0xKJVDFzlKVaCqLKIoQlVVEEKCcQFEEZZWDzTMDOPNkuab4XL3ITqQdiX60kSH+EWmxtXIv9UDBzHY3oYuFQ5fXwvv+vmz9SsmweLSMsq6o2mr42eKzU9ZG9Fc1BnVtUJZlugu9DDcGfhrjVbgIvbHyfaZ/Z/aLMvSfzZtJTpfSgkuJrNXar95vV9KrM9t3sto5Y/P9n22L7PX0j2b51A7szRqTkqIJtRm81jzGurbLA3oPm/Hk1l6UZ+vRv5dunjBe3nWDl2D6L33PlC98t0Xptwmu+FSaj5xs8Y8aYgfpEuJNEhTszU1a3O23dRa79SF1NRYe+kCnP28GvmnS4Wjx25xE7amC2NXXEpE9HrW62bOyjOGiib/IFxKbvKRNGbnwruD4iRF2m77CUTTDdSceVN/aSwTn6fwx2nG/L1cSDSh+f9yAV7N/POKQ5coihzRhx78qerixsY7XuUQQriK23VSaq31O77m7WC0QrvTQ5YNwbl42zaa90uS1K8IDnf6U69rAH4i9f3ie/X1/3rt90u//+04rnb+re7fj/8GO6Pn3eR9G3UAAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./extraFeatures.ts":
+/*!**************************!*\
+ !*** ./extraFeatures.ts ***!
+ \**************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var alt1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! alt1 */ "../node_modules/alt1/dist/base/index.js");
+/* harmony import */ var alt1__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(alt1__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _modules_slayer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modules/slayer */ "./modules/slayer.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+
+/* Extra Features for advanced controls in the app
+ The following functions adds some extra functionality to the app
+ - Ability to Ctrl+V to paste and image into the app
+ - Ability to drag and drop and image into the app
+ These functions can be used inside of alt1 but are not useful (mostly for other browsers)
+*/
+// Listen for pasted (ctrl-v) images, usually used in the browser version of an app
+alt1__WEBPACK_IMPORTED_MODULE_1__.PasteInput.listen(function (img) {
+ // Display the image at the bottom of the document
+ if (false) { var pixels; }
+ // Look and see if we can read a slayer task
+ _modules_slayer__WEBPACK_IMPORTED_MODULE_0__.findTask(img);
+}, function (err, errid) {
+ console.error("${errid}: ${err}");
+});
+// Handle events for when a file gets dragged or dropped onto the app
+document.addEventListener('dragover', handleDragOverFiles, false);
+document.addEventListener('drop', handleFileDropped, false);
+// Convert Blob(file) into Image Data so we can use it with alt1
+var blobToImageData = function (blob) {
+ return __awaiter(this, void 0, void 0, function () {
+ var blobUrl, img_1, _a, w, h, aspectRatio, canvas, ctx;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ blobUrl = URL.createObjectURL(blob);
+ return [4 /*yield*/, new Promise(function (resolve, reject) {
+ var img = new Image();
+ img.onload = function () { return resolve(img); };
+ img.onerror = function (err) { return reject(err); };
+ img.src = blobUrl;
+ })];
+ case 1:
+ img_1 = _b.sent();
+ URL.revokeObjectURL(blobUrl);
+ _a = [img_1.width, img_1.height], w = _a[0], h = _a[1];
+ aspectRatio = w / h;
+ canvas = document.createElement("canvas");
+ canvas.width = w;
+ canvas.height = h;
+ ctx = canvas.getContext("2d");
+ ctx.drawImage(img_1, 0, 0);
+ return [2 /*return*/, ctx.getImageData(0, 0, w, h)];
+ }
+ });
+ });
+};
+// Handle when a file is dropped onto the app and have it load assignment from the file if it can
+function handleFileDropped(evt) {
+ return __awaiter(this, void 0, void 0, function () {
+ var files, fileReader, output, i, f, imgData, img;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ evt.stopPropagation();
+ evt.preventDefault();
+ files = evt.dataTransfer.files;
+ // Only accept 1 file at a time
+ if (files.length > 1) {
+ console.error("We can only process 1 file at a time. Please only drag and drop 1 file at a time!");
+ return [2 /*return*/];
+ }
+ fileReader = new FileReader();
+ output = [];
+ i = 0, f = void 0;
+ _a.label = 1;
+ case 1:
+ if (!(f = files[i])) return [3 /*break*/, 4];
+ // Skip any files that aren't a supported image type
+ if (!f.type.match('image/png'))
+ return [3 /*break*/, 3];
+ // Convert the file into a image we can process
+ fileReader.readAsDataURL(f);
+ return [4 /*yield*/, blobToImageData(f)];
+ case 2:
+ imgData = _a.sent();
+ img = new alt1__WEBPACK_IMPORTED_MODULE_1__.ImgRefData(imgData, 0, 0);
+ // Look and see if we can read a slayer task
+ _modules_slayer__WEBPACK_IMPORTED_MODULE_0__.findTask(img);
+ _a.label = 3;
+ case 3:
+ i++;
+ return [3 /*break*/, 1];
+ case 4: return [2 /*return*/];
+ }
+ });
+ });
+}
+// Handle when a file is dragged onto the app and show user we will only make a copy of it (must exist or it won't work sadly)
+function handleDragOverFiles(evt) {
+ evt.stopPropagation();
+ evt.preventDefault();
+ evt.dataTransfer.dropEffect = 'copy';
+}
+
+
+/***/ }),
+
+/***/ "./modules/SearchAlgorithm.ts":
+/*!************************************!*\
+ !*** ./modules/SearchAlgorithm.ts ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ SearchAlgorithm: () => (/* binding */ SearchAlgorithm),
+/* harmony export */ SearchData: () => (/* binding */ SearchData)
+/* harmony export */ });
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var SearchData = /** @class */ (function () {
+ function SearchData() {
+ this.reaper = false;
+ this.task = 'Dragons';
+ this.probability = 0;
+ }
+ return SearchData;
+}());
+
+var SearchAlgorithm = /** @class */ (function () {
+ function SearchAlgorithm() {
+ }
+ // Lookup best possible assignment based on input string
+ SearchAlgorithm.prototype.lookup = function (lookup_1) {
+ return __awaiter(this, arguments, void 0, function (lookup, skipReaper) {
+ var probabilities, res, _i, res_1, a, _a, _b, b, res2, _c, res2_1, a, _d, _e, b, _f, _g, b, key, aliasKeys, i, creatureKeys, i;
+ if (skipReaper === void 0) { skipReaper = false; }
+ return __generator(this, function (_h) {
+ switch (_h.label) {
+ case 0:
+ this.data = new SearchData();
+ probabilities = new Object();
+ if (!!skipReaper) return [3 /*break*/, 2];
+ return [4 /*yield*/, fetch("./data/reapers.json").then(function (r) { return r.json(); })];
+ case 1:
+ res = _h.sent();
+ for (_i = 0, res_1 = res; _i < res_1.length; _i++) { // Search created by authors (overlord1234 & David) and redefined as needed
+ a = res_1[_i];
+ probabilities[a["index"]] = new Object();
+ probabilities[a["index"]].reaper = true;
+ probabilities[a["index"]].index = Math.round(this.similarity(a["index"], lookup) * 10000) / 100;
+ probabilities[a["index"]].creatures = new Object();
+ for (_a = 0, _b = a["creatures"]; _a < _b.length; _a++) {
+ b = _b[_a];
+ probabilities[a["index"]].creatures[b] = Math.round(this.similarity(b, lookup) * 10000) / 175;
+ }
+ }
+ _h.label = 2;
+ case 2: return [4 /*yield*/, fetch("./data/assignments.json").then(function (r) { return r.json(); })];
+ case 3:
+ res2 = _h.sent();
+ for (_c = 0, res2_1 = res2; _c < res2_1.length; _c++) { // Search created by authors (overlord1234 & David) and redefined as needed
+ a = res2_1[_c];
+ probabilities[a["index"]] = new Object();
+ probabilities[a["index"]].reaper = false;
+ probabilities[a["index"]].index = Math.round(this.similarity(a["index"], lookup) * 10000) / 125;
+ probabilities[a["index"]].alias = new Object();
+ for (_d = 0, _e = a["alias"]; _d < _e.length; _d++) {
+ b = _e[_d];
+ probabilities[a["index"]].alias[b] = Math.round(this.similarity(b, lookup) * 10000) / 150;
+ }
+ probabilities[a["index"]].creatures = new Object();
+ for (_f = 0, _g = a["creatures"]; _f < _g.length; _f++) {
+ b = _g[_f];
+ probabilities[a["index"]].creatures[b] = Math.round(this.similarity(b, lookup) * 10000) / 175;
+ }
+ }
+ // Find highest lickelyhood of the search (overlord1234 & David) and redefined as needed
+ for (key in probabilities) {
+ if (probabilities[key].index > this.data.probability) {
+ this.data.task = key;
+ this.data.reaper = probabilities[key].reaper;
+ this.data.probability = probabilities[key].index;
+ }
+ if (probabilities[key].alias) {
+ aliasKeys = Object.keys(probabilities[key].alias);
+ for (i = 0; i < aliasKeys.length; i++) {
+ if (probabilities[key].alias[aliasKeys[i]] > this.data.probability) {
+ this.data.task = key;
+ this.data.reaper = probabilities[key].reaper;
+ this.data.probability = probabilities[key].alias[aliasKeys[i]];
+ }
+ }
+ }
+ if (probabilities[key].creatures) {
+ creatureKeys = Object.keys(probabilities[key].creatures);
+ for (i = 0; i < creatureKeys.length; i++) {
+ if (probabilities[key].creatures[creatureKeys[i]] > this.data.probability) {
+ this.data.task = key;
+ this.data.reaper = probabilities[key].reaper;
+ this.data.probability = probabilities[key].creatures[creatureKeys[i]];
+ }
+ }
+ }
+ }
+ return [2 /*return*/, this.data];
+ }
+ });
+ });
+ };
+ // Check the similarity of 2 strings (Refer to authors overlord1234 & David)
+ SearchAlgorithm.prototype.similarity = function (s1, s2) {
+ var longer = s1, shorter = s2;
+ if (s1.length < s2.length) {
+ longer = s2;
+ shorter = s1;
+ }
+ var longerLength = longer.length;
+ if (longerLength === 0)
+ return 1.0;
+ return (longerLength - this.editDistance(longer, shorter)) / parseFloat('' + longerLength);
+ };
+ // Used for checked the similarity of 2 strings (Refer to authors overlord1234 & David)
+ SearchAlgorithm.prototype.editDistance = function (s1, s2) {
+ s1 = s1.toLowerCase();
+ s2 = s2.toLowerCase();
+ var costs = new Array();
+ for (var i = 0; i <= s1.length; i++) {
+ var lastValue = i;
+ for (var j = 0; j <= s2.length; j++) {
+ if (i == 0)
+ costs[j] = j;
+ else if (j > 0) {
+ var newValue = costs[j - 1];
+ if (s1.charAt(i - 1) != s2.charAt(j - 1))
+ newValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1;
+ costs[j - 1] = lastValue;
+ lastValue = newValue;
+ }
+ }
+ if (i > 0)
+ costs[s2.length] = lastValue;
+ }
+ return costs[s2.length];
+ };
+ return SearchAlgorithm;
+}());
+
+
+
+/***/ }),
+
+/***/ "./modules/SlayerDialogReader.ts":
+/*!***************************************!*\
+ !*** ./modules/SlayerDialogReader.ts ***!
+ \***************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ SlayerData: () => (/* binding */ SlayerData),
+/* harmony export */ SlayerDialogReader: () => (/* binding */ SlayerDialogReader)
+/* harmony export */ });
+/* harmony import */ var alt1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! alt1 */ "../node_modules/alt1/dist/base/index.js");
+/* harmony import */ var alt1__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(alt1__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var alt1_dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! alt1/dialog */ "../node_modules/alt1/dist/dialog/index.js");
+/* harmony import */ var alt1_dialog__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(alt1_dialog__WEBPACK_IMPORTED_MODULE_1__);
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+
+var SlayerData = /** @class */ (function () {
+ function SlayerData() {
+ this.selectYourOwn = false;
+ this.ticket = false;
+ this.reaper = false;
+ this.count = [];
+ this.task = [];
+ }
+ return SlayerData;
+}());
+
+var SlayerDialogReader = /** @class */ (function () {
+ function SlayerDialogReader() {
+ }
+ SlayerDialogReader.prototype.read = function (buffer) {
+ return __awaiter(this, void 0, void 0, function () {
+ var data, box, msg, countText, e, countText, e, i, a, msg, countText;
+ return __generator(this, function (_a) {
+ if (!buffer)
+ buffer = alt1__WEBPACK_IMPORTED_MODULE_0__.captureHoldFullRs();
+ if (!this.dialogReader)
+ this.dialogReader = new (alt1_dialog__WEBPACK_IMPORTED_MODULE_1___default())();
+ this.data = new SlayerData();
+ data = this.dialogReader.find(buffer);
+ if (!data)
+ return [2 /*return*/, null];
+ box = this.dialogReader.read(buffer);
+ if (!box)
+ return [2 /*return*/, null];
+ if (box.text && (!box.opts || box.opts.length != 2)) {
+ msg = box.text.toString();
+ // Show support for 120 slayer assignment chooser
+ if (msg.toLowerCase().includes("select your own task"))
+ this.data.selectYourOwn = true;
+ // Get reaper assignment if it's a new reaper task dialog
+ if (msg.toLowerCase().includes("require you to collect")) {
+ this.data.reaper = true;
+ countText = msg.substring(msg.indexOf("collect ") + 8, msg.indexOf(" souls"));
+ this.data.count[0] = parseInt(countText);
+ this.data.task[0] = msg.substring(msg.indexOf("battle: ") + 8, msg.indexOf(". Can"));
+ }
+ // Get single slayer assignment if it's a new task dialog
+ if (msg.toLowerCase().includes("new task is to kill")) {
+ e = msg.substring(msg.indexOf("kill ") + 5, msg.length - 1);
+ countText = e.substring(0, e.includes(",") ? e.indexOf(",") : e.indexOf(" "));
+ this.data.count[0] = parseInt(countText);
+ this.data.task[0] = e.substring((e.includes(",") ? e.indexOf(",") : e.indexOf(" ")) + 1);
+ }
+ // Get single slayer assignment from still need to kill dialog
+ if (msg.toLowerCase().includes("still need to kill")) {
+ e = msg.substring(msg.indexOf("kill ") + 5);
+ this.data.count[0] = parseInt(e.substring(0, e.indexOf(" ")));
+ this.data.task[0] = e.substring(e.indexOf(" ") + 1, e.includes(".") ? e.indexOf(".") : e.length - 1);
+ }
+ // Get single slayer assignment from still hunting dialog
+ if (msg.toLowerCase().includes("still hunting"))
+ this.data.task[0] = msg.substring(msg.indexOf("hunting ") + 8, msg.indexOf(";"));
+ }
+ // Look and see if there is a slayer assignment choice on screen via 2 options and title
+ if (box.opts && box.opts.length == 2 && (box.title && box.title.toLowerCase().includes("change your assigned slayer task"))) {
+ // Set ticket to true becuase we found 2 different assignments
+ this.data.ticket = true;
+ i = 0;
+ for (a in box.opts) {
+ msg = box.opts[a].text;
+ countText = msg.substring(0, msg.indexOf(' '));
+ this.data.count[i] = parseInt(countText);
+ this.data.task[i++] = msg.substring(msg.indexOf(' ') + 1, msg.includes('(') ? msg.indexOf('(') - 1 : msg.length);
+ }
+ }
+ return [2 /*return*/, this.data];
+ });
+ });
+ };
+ return SlayerDialogReader;
+}());
+
+
+
+/***/ }),
+
+/***/ "./modules/UICounterReader.ts":
+/*!************************************!*\
+ !*** ./modules/UICounterReader.ts ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ UICounterData: () => (/* binding */ UICounterData),
+/* harmony export */ UICounterReader: () => (/* binding */ UICounterReader)
+/* harmony export */ });
+/* harmony import */ var alt1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! alt1 */ "../node_modules/alt1/dist/base/index.js");
+/* harmony import */ var alt1__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(alt1__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var alt1_ocr__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! alt1/ocr */ "../node_modules/alt1/dist/ocr/index.js");
+/* harmony import */ var alt1_ocr__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(alt1_ocr__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings */ "./modules/settings.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+
+
+var imgs = alt1__WEBPACK_IMPORTED_MODULE_1__.webpackImages({
+ slayer_expanded_RS3: __webpack_require__(/*! ../images/data/slayer_expanded_RS3.data.png */ "./images/data/slayer_expanded_RS3.data.png"),
+ slayer_expanded_OSL: __webpack_require__(/*! ../images/data/slayer_expanded_OSL.data.png */ "./images/data/slayer_expanded_OSL.data.png"),
+ reaper_expanded_RS3: __webpack_require__(/*! ../images/data/reaper_expanded_RS3.data.png */ "./images/data/reaper_expanded_RS3.data.png"),
+ reaper_expanded_OSL: __webpack_require__(/*! ../images/data/reaper_expanded_OSL.data.png */ "./images/data/reaper_expanded_OSL.data.png"),
+ slayer_collapsed_RS3: __webpack_require__(/*! ../images/data/slayer_collapsed_RS3.data.png */ "./images/data/slayer_collapsed_RS3.data.png"),
+ slayer_collapsed_OSL: __webpack_require__(/*! ../images/data/slayer_collapsed_OSL.data.png */ "./images/data/slayer_collapsed_OSL.data.png"),
+ reaper_collapsed_RS3: __webpack_require__(/*! ../images/data/reaper_collapsed_RS3.data.png */ "./images/data/reaper_collapsed_RS3.data.png"),
+ reaper_collapsed_OSL: __webpack_require__(/*! ../images/data/reaper_collapsed_OSL.data.png */ "./images/data/reaper_collapsed_OSL.data.png"),
+});
+var UICounterData = /** @class */ (function () {
+ function UICounterData() {
+ }
+ return UICounterData;
+}());
+
+var UICounterReader = /** @class */ (function () {
+ function UICounterReader() {
+ this.countFont = null;
+ this.taskFont = null;
+ this.data = null;
+ }
+ UICounterReader.prototype.read = function (buffer) {
+ return __awaiter(this, void 0, void 0, function () {
+ var _a, _b, width, height, _i, _c, match;
+ return __generator(this, function (_d) {
+ switch (_d.label) {
+ case 0:
+ if (!buffer)
+ buffer = alt1__WEBPACK_IMPORTED_MODULE_1__.captureHoldFullRs();
+ if (!!this.countFont) return [3 /*break*/, 2];
+ _a = this;
+ return [4 /*yield*/, fetch(__webpack_require__(/*! ../fonts/aa_10px_mono.fontmeta.json */ "./fonts/aa_10px_mono.fontmeta.json")).then(function (r) { return r.json(); })];
+ case 1:
+ _a.countFont = _d.sent();
+ _d.label = 2;
+ case 2:
+ if (!!this.taskFont) return [3 /*break*/, 4];
+ _b = this;
+ return [4 /*yield*/, fetch(__webpack_require__(/*! ../fonts/aa_8px_mono.fontmeta.json */ "./fonts/aa_8px_mono.fontmeta.json")).then(function (r) { return r.json(); })];
+ case 3:
+ _b.taskFont = _d.sent();
+ _d.label = 4;
+ case 4:
+ // Reset data for next search
+ this.pos = [];
+ this.data = null;
+ // Look for all UI Elements until we find one, then the rest will get skipped
+ this.findUIElement(buffer, imgs.slayer_collapsed_OSL, { reaper: false, collapsed: true, OS: true });
+ this.findUIElement(buffer, imgs.slayer_expanded_OSL, { reaper: false, collapsed: false, OS: true });
+ this.findUIElement(buffer, imgs.slayer_collapsed_RS3, { reaper: false, collapsed: true, OS: false });
+ this.findUIElement(buffer, imgs.slayer_expanded_RS3, { reaper: false, collapsed: false, OS: false });
+ this.findUIElement(buffer, imgs.reaper_collapsed_OSL, { reaper: true, collapsed: true, OS: true });
+ this.findUIElement(buffer, imgs.reaper_expanded_OSL, { reaper: true, collapsed: false, OS: true });
+ this.findUIElement(buffer, imgs.reaper_collapsed_RS3, { reaper: true, collapsed: true, OS: false });
+ this.findUIElement(buffer, imgs.reaper_expanded_RS3, { reaper: true, collapsed: false, OS: false });
+ // If we don't find any data or we found too many matches then return
+ if (!this.data && this.pos.length == 0)
+ return [2 /*return*/, null];
+ width = this.data.collapsed ? imgs.slayer_collapsed_OSL.width : imgs.slayer_expanded_OSL.width;
+ height = this.data.collapsed ? imgs.slayer_collapsed_OSL.height : imgs.slayer_expanded_OSL.height;
+ // Loop the results and return the data we find
+ for (_i = 0, _c = this.pos; _i < _c.length; _i++) {
+ match = _c[_i];
+ // Overlay a rectangle around the matched area on screen if we're running in alt1
+ if (window.alt1 && alt1.permissionOverlay && _settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.ui.counter)
+ alt1.overLayRect(alt1__WEBPACK_IMPORTED_MODULE_1__.mixColor(255, 255, 255), match.x, match.y, width, height, _settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.ui.counterTimer, 3);
+ // Get the pixel data for the matched area
+ this.data.img = buffer.toData(match.x, match.y, width, height);
+ // Extract the count and task (if avaliable)
+ this.data.count = parseInt(alt1_ocr__WEBPACK_IMPORTED_MODULE_2__.findReadLine(this.data.img, this.countFont, this.data.OS ? [[255, 152, 31]] : [[255, 203, 5]], this.data.collapsed ? 10 : 72, 15, 30, 3).text);
+ if (!this.data.collapsed)
+ this.data.task = alt1_ocr__WEBPACK_IMPORTED_MODULE_2__.findReadLine(this.data.img, this.taskFont, this.data.OS ? [[255, 152, 31]] : [[255, 203, 5]], 9, 28, 156, 3).text;
+ }
+ return [2 /*return*/, (!this.pos || this.pos.length == 0) ? null : this.data];
+ }
+ });
+ });
+ };
+ UICounterReader.prototype.findUIElement = function (buffer, img, mode) {
+ if (!this.data && this.pos.length == 0)
+ this.pos = buffer.findSubimage(img);
+ if (!this.data && this.pos.length > 0)
+ this.data = { reaper: mode.reaper, collapsed: mode.collapsed, OS: mode.OS, img: null, count: -1, task: null };
+ };
+ return UICounterReader;
+}());
+
+
+
+/***/ }),
+
+/***/ "./modules/data/assignments.ts":
+/*!*************************************!*\
+ !*** ./modules/data/assignments.ts ***!
+ \*************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ get: () => (/* binding */ get),
+/* harmony export */ getIndexList: () => (/* binding */ getIndexList)
+/* harmony export */ });
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+// Fetch a single assignment based on the index or alias
+function get(assignment) {
+ return __awaiter(this, void 0, void 0, function () {
+ var res, _i, res_1, a, _a, _b, b;
+ return __generator(this, function (_c) {
+ switch (_c.label) {
+ case 0: return [4 /*yield*/, fetch("./data/assignments.json").then(function (r) { return r.json(); })];
+ case 1:
+ res = _c.sent();
+ for (_i = 0, res_1 = res; _i < res_1.length; _i++) {
+ a = res_1[_i];
+ if (a["index"].toLowerCase() === assignment.toLowerCase())
+ return [2 /*return*/, a];
+ for (_a = 0, _b = a["alias"]; _a < _b.length; _a++) {
+ b = _b[_a];
+ if (b.toLowerCase() === assignment.toLowerCase())
+ return [2 /*return*/, a];
+ }
+ }
+ return [2 /*return*/, null];
+ }
+ });
+ });
+}
+// Get an array of the index
+function getIndexList() {
+ return __awaiter(this, void 0, void 0, function () {
+ var dataList, res, _i, res_2, a;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ dataList = "";
+ return [4 /*yield*/, fetch("./data/assignments.json").then(function (r) { return r.json(); })];
+ case 1:
+ res = _a.sent();
+ for (_i = 0, res_2 = res; _i < res_2.length; _i++) {
+ a = res_2[_i];
+ dataList += "<option>" + a["index"] + "</option>\n\r";
+ }
+ return [2 /*return*/, dataList];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./modules/data/creatures.ts":
+/*!***********************************!*\
+ !*** ./modules/data/creatures.ts ***!
+ \***********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ get: () => (/* binding */ get)
+/* harmony export */ });
+/* harmony import */ var _extrafuncs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../extrafuncs */ "./modules/extrafuncs.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+// Fetch a single creature based on the name
+function get(creature) {
+ return __awaiter(this, void 0, void 0, function () {
+ var res, _i, res_1, a;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, fetch("./data/creatures.json").then(function (r) { return r.json(); })];
+ case 1:
+ res = _a.sent();
+ for (_i = 0, res_1 = res; _i < res_1.length; _i++) {
+ a = res_1[_i];
+ if (_extrafuncs__WEBPACK_IMPORTED_MODULE_0__.decodeHtml(a["name"].toLowerCase()) === creature.toLowerCase())
+ return [2 /*return*/, a];
+ }
+ return [2 /*return*/, null];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./modules/data/masters.ts":
+/*!*********************************!*\
+ !*** ./modules/data/masters.ts ***!
+ \*********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ get: () => (/* binding */ get)
+/* harmony export */ });
+/* harmony import */ var _extrafuncs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../extrafuncs */ "./modules/extrafuncs.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+// Fetch a single master based on the name
+function get(master) {
+ return __awaiter(this, void 0, void 0, function () {
+ var res, _i, res_1, a;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, fetch("./data/masters.json").then(function (r) { return r.json(); })];
+ case 1:
+ res = _a.sent();
+ for (_i = 0, res_1 = res; _i < res_1.length; _i++) {
+ a = res_1[_i];
+ if (_extrafuncs__WEBPACK_IMPORTED_MODULE_0__.decodeHtml(a["name"].toLowerCase()) === master.toLowerCase())
+ return [2 /*return*/, a];
+ }
+ return [2 /*return*/, null];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./modules/data/reapers.ts":
+/*!*********************************!*\
+ !*** ./modules/data/reapers.ts ***!
+ \*********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ get: () => (/* binding */ get),
+/* harmony export */ getIndexList: () => (/* binding */ getIndexList)
+/* harmony export */ });
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+// Fetch a single reaper based on the index or alias
+function get(reaper) {
+ return __awaiter(this, void 0, void 0, function () {
+ var res, _i, res_1, a;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, fetch("./data/reapers.json").then(function (r) { return r.json(); })];
+ case 1:
+ res = _a.sent();
+ for (_i = 0, res_1 = res; _i < res_1.length; _i++) {
+ a = res_1[_i];
+ if (a["index"].toLowerCase() === reaper.toLowerCase())
+ return [2 /*return*/, a];
+ }
+ return [2 /*return*/, null];
+ }
+ });
+ });
+}
+// Get an array of the index
+function getIndexList() {
+ return __awaiter(this, void 0, void 0, function () {
+ var dataList, res, _i, res_2, a;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ dataList = "";
+ return [4 /*yield*/, fetch("./data/reapers.json").then(function (r) { return r.json(); })];
+ case 1:
+ res = _a.sent();
+ for (_i = 0, res_2 = res; _i < res_2.length; _i++) {
+ a = res_2[_i];
+ dataList += "<option>" + a["index"] + "</option>\n\r";
+ }
+ return [2 /*return*/, dataList];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./modules/data/variants.ts":
+/*!**********************************!*\
+ !*** ./modules/data/variants.ts ***!
+ \**********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ get: () => (/* binding */ get)
+/* harmony export */ });
+/* harmony import */ var _extrafuncs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../extrafuncs */ "./modules/extrafuncs.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+// Fetch a single master based on the name
+function get(creature, variant) {
+ return __awaiter(this, void 0, void 0, function () {
+ var res, _i, res_1, a, _a, _b, b;
+ return __generator(this, function (_c) {
+ switch (_c.label) {
+ case 0: return [4 /*yield*/, fetch("./data/creatures.json").then(function (r) { return r.json(); })];
+ case 1:
+ res = _c.sent();
+ for (_i = 0, res_1 = res; _i < res_1.length; _i++) {
+ a = res_1[_i];
+ if (_extrafuncs__WEBPACK_IMPORTED_MODULE_0__.decodeHtml(a["name"].toLowerCase()) === creature.toLowerCase()) {
+ for (_a = 0, _b = a["variants"]; _a < _b.length; _a++) {
+ b = _b[_a];
+ if (b["name"].toLowerCase() === variant.toLowerCase())
+ return [2 /*return*/, b];
+ }
+ }
+ }
+ return [2 /*return*/, null];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./modules/dochandler.ts":
+/*!*******************************!*\
+ !*** ./modules/dochandler.ts ***!
+ \*******************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ animate: () => (/* reexport module object */ _dochandler_animate__WEBPACK_IMPORTED_MODULE_0__),
+/* harmony export */ change: () => (/* reexport module object */ _dochandler_change__WEBPACK_IMPORTED_MODULE_1__),
+/* harmony export */ getSide: () => (/* binding */ getSide),
+/* harmony export */ hide: () => (/* reexport module object */ _dochandler_hide__WEBPACK_IMPORTED_MODULE_3__),
+/* harmony export */ hover: () => (/* reexport module object */ _dochandler_hover__WEBPACK_IMPORTED_MODULE_4__),
+/* harmony export */ main: () => (/* reexport module object */ _dochandler_main__WEBPACK_IMPORTED_MODULE_2__),
+/* harmony export */ open: () => (/* reexport module object */ _dochandler_open__WEBPACK_IMPORTED_MODULE_6__),
+/* harmony export */ show: () => (/* reexport module object */ _dochandler_show__WEBPACK_IMPORTED_MODULE_5__)
+/* harmony export */ });
+/* harmony import */ var _dochandler_animate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dochandler/animate */ "./modules/dochandler/animate.ts");
+/* harmony import */ var _dochandler_change__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dochandler/change */ "./modules/dochandler/change.ts");
+/* harmony import */ var _dochandler_main__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dochandler/main */ "./modules/dochandler/main.ts");
+/* harmony import */ var _dochandler_hide__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dochandler/hide */ "./modules/dochandler/hide.ts");
+/* harmony import */ var _dochandler_hover__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dochandler/hover */ "./modules/dochandler/hover.ts");
+/* harmony import */ var _dochandler_show__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dochandler/show */ "./modules/dochandler/show.ts");
+/* harmony import */ var _dochandler_open__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./dochandler/open */ "./modules/dochandler/open.ts");
+
+
+
+
+
+
+
+
+function getSide(i) {
+ var base = _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.get.elid("base");
+ var side = _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.get.elc(i == 0 ? "left" : "right", base);
+ if (!side)
+ side = _dochandler_main__WEBPACK_IMPORTED_MODULE_2__.get.elc("single", base);
+ return side;
+}
+
+
+/***/ }),
+
+/***/ "./modules/dochandler/animate.ts":
+/*!***************************************!*\
+ !*** ./modules/dochandler/animate.ts ***!
+ \***************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ loading: () => (/* binding */ loading),
+/* harmony export */ loadingStop: () => (/* binding */ loadingStop)
+/* harmony export */ });
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dochandler */ "./modules/dochandler.ts");
+
+// Animate Loading Bar
+function loading() {
+ var loadingBar = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("loading-bar");
+ if (loadingBar)
+ loadingBar.style.visibility = "visible";
+}
+// Animate Loading Bar
+function loadingStop() {
+ var loadingBar = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("loading-bar");
+ if (loadingBar)
+ loadingBar.style.visibility = "hidden";
+}
+
+
+/***/ }),
+
+/***/ "./modules/dochandler/change.ts":
+/*!**************************************!*\
+ !*** ./modules/dochandler/change.ts ***!
+ \**************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ assignment: () => (/* binding */ assignment),
+/* harmony export */ creature: () => (/* binding */ creature),
+/* harmony export */ reaper: () => (/* binding */ reaper),
+/* harmony export */ variant: () => (/* binding */ variant)
+/* harmony export */ });
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../settings */ "./modules/settings.ts");
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _extrafuncs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../extrafuncs */ "./modules/extrafuncs.ts");
+/* harmony import */ var _data_masters__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../data/masters */ "./modules/data/masters.ts");
+/* harmony import */ var _data_reapers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../data/reapers */ "./modules/data/reapers.ts");
+/* harmony import */ var _data_assignments__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../data/assignments */ "./modules/data/assignments.ts");
+/* harmony import */ var _data_creatures__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../data/creatures */ "./modules/data/creatures.ts");
+/* harmony import */ var _data_variants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../data/variants */ "./modules/data/variants.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+
+
+
+
+
+
+
+// TODO Clean up code and make things a lot better
+// Update the Creature variant Shown
+function variant(i_1) {
+ return __awaiter(this, arguments, void 0, function (i, creature, variant) {
+ var side, data, imageElement, imageContainerElement, newSize, weaknessElem, j, susceptibleElem, j, count;
+ if (creature === void 0) { creature = null; }
+ if (variant === void 0) { variant = null; }
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loading();
+ side = _dochandler__WEBPACK_IMPORTED_MODULE_1__.getSide(i);
+ if ((_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.ui.limited || _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.limitedLoaded) && (!creature || !variant))
+ return [2 /*return*/];
+ if (!creature)
+ creature = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("creatures", side).value;
+ if (!variant)
+ variant = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("variants", side).value;
+ console.log("Change variant to: " + creature + "#" + variant);
+ return [4 /*yield*/, _data_variants__WEBPACK_IMPORTED_MODULE_7__.get(creature, variant)];
+ case 1:
+ data = _a.sent();
+ if (data) {
+ if (!_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.ui.limited && !_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.limitedLoaded) {
+ // Set the image of variant but replace the # with url safe Percent-encoding
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("image-container", side).innerHTML = data["image"].replace("#", "%23");
+ imageElement = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("image-container", side).firstElementChild;
+ imageContainerElement = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("image-container", side);
+ newSize = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.calculateAspectRatioFit(parseInt(imageElement.getAttribute("width")), parseInt(imageElement.getAttribute("height")), imageContainerElement.offsetWidth, imageContainerElement.offsetHeight);
+ imageElement.setAttribute("style", "max-width:" + newSize.width + "px; max-height:" + newSize.height + "px;");
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("level", side).innerHTML = data["level"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("slayer-level", side).innerHTML = data["slayer-level"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("lifepoints", side).innerHTML = data["lifepoints"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("defence", side).innerHTML = data["defence"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("max-melee", side).innerHTML = data["max-melee"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("max-ranged", side).innerHTML = data["max-ranged"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("max-magic", side).innerHTML = data["max-magic"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("max-necromancy", side).innerHTML = data["max-necromancy"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("max-spec", side).innerHTML = data["max-spec"];
+ weaknessElem = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("weaknessBox", side);
+ weaknessElem.innerHTML = "<p id=\"weakness-text\">Weakness</p>";
+ for (j = 0; j < data["weakness"].length; j++)
+ weaknessElem.innerHTML += data["weakness"][j];
+ susceptibleElem = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("susceptibleBox", side);
+ susceptibleElem.innerHTML = "<p id=\"susceptible-text\">Susceptible</p>";
+ for (j = 0; j < data["susceptible"].length; j++)
+ susceptibleElem.innerHTML += data["susceptible"][j];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("combat-exp", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas(data["experience"].toFixed(2));
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("lifepoints-exp", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas(data["lifepoint-exp"].toFixed(2));
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("slayer-exp", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas(data["slayer-exp"].toFixed(2));
+ }
+ count = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("kills", side).innerHTML;
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("total-slayer-exp", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas((data["slayer-exp"] * count).toFixed(2));
+ }
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [2 /*return*/];
+ }
+ });
+ });
+}
+// Update the Creature Shown
+function creature(i_1) {
+ return __awaiter(this, arguments, void 0, function (i, creature, variant) {
+ var side, data, _i, _a, a;
+ if (creature === void 0) { creature = null; }
+ if (variant === void 0) { variant = null; }
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loading();
+ side = _dochandler__WEBPACK_IMPORTED_MODULE_1__.getSide(i);
+ if ((_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.ui.limited || _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.limitedLoaded) && !creature)
+ return [2 /*return*/];
+ if (!creature)
+ creature = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("creatures", side).value;
+ console.log("Change Creature to: " + creature + (variant ? ("#" + variant) : ''));
+ return [4 /*yield*/, _data_creatures__WEBPACK_IMPORTED_MODULE_6__.get(creature)];
+ case 1:
+ data = _b.sent();
+ if (data) {
+ if (data["variants"] && !_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.ui.limited && !_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.limitedLoaded) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("variants", side).innerHTML = "";
+ for (_i = 0, _a = data["variants"]; _i < _a.length; _i++) {
+ a = _a[_i];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("variants", side).innerHTML += "<option value=\"" + a["name"] + "\"" + ((variant && _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.decodeHtml(a["name"]) === _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.decodeHtml(variant)) ? " selected" : "") + ">" + a["name"] + "</option>";
+ }
+ if (!variant)
+ variant = data["variants"][0]["name"];
+ }
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.change.variant(i, creature, variant);
+ }
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [2 /*return*/];
+ }
+ });
+ });
+}
+// Update the reaper assignment data
+function reaper(task, count) {
+ return __awaiter(this, void 0, void 0, function () {
+ return __generator(this, function (_a) {
+ return [2 /*return*/, assignment(2, task, count)];
+ });
+ });
+}
+// Update the entire Assignment data
+function assignment(i, task, count) {
+ return __awaiter(this, void 0, void 0, function () {
+ var side, nameElement, slayxp, data, _a, j, img, masterData, kills, _loop_1, j, j, j, j, j, _i, _b, a, creature_1, creature_2, variant_1;
+ return __generator(this, function (_c) {
+ switch (_c.label) {
+ case 0:
+ // Check if we are trying to load a second task when only 1 is displayed
+ if (i == 1 && !_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.doubleLoaded) {
+ console.error("Cannot load double slayer task if only 1 is diaplyed!");
+ return [2 /*return*/];
+ }
+ // Check if we are trying to load a reaper task when 2 is displayed
+ if (i == 2 && !_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.reaperLoaded) {
+ console.error("Cannot load reaper task if there are 2 is diaplyed!");
+ return [2 /*return*/];
+ }
+ // Show we are loading
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loading();
+ side = _dochandler__WEBPACK_IMPORTED_MODULE_1__.getSide(i);
+ nameElement = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("name", side);
+ if (nameElement === null)
+ return [2 /*return*/];
+ if ((task == null && nameElement.innerHTML != "???") || nameElement.innerHTML.toLowerCase() === task.toLowerCase()) {
+ console.log("Update task: [" + count + "] " + task + " " + (i == 0 ? "(Default)" : (i == 2 ? "(Reaper)" : "(1 Slayer Token)")));
+ // Update the kills and exp of the task since it's already loaded
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("kills", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas(count);
+ slayxp = parseInt(_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("slayer-exp", side).innerHTML);
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("total-slayer-exp", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas((slayxp * count).toFixed(2));
+ // TODO update the count of the task for tracking (aka for status tracking)
+ // TODO Determine when to set start time based on count going down for first time
+ // TODO Calulate kills/hr and xp/hr based on this info
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [2 /*return*/];
+ }
+ // Display the task data and log what we loaded
+ console.log("Load task: [" + count + "] " + task + " " + (i == 0 ? "(Default)" : (i == 2 ? "(Reaper)" : "(1 Slayer Token)")));
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("type", side).innerHTML = (i == 0 ? "(Default)" : (i == 2 ? "(Reaper)" : "(1 Slayer Token)"));
+ if (i == 2)
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("type", side).id = "type-reaper";
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("kills", side).innerHTML = _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.numberWithCommas(count);
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("name", side).innerHTML = task;
+ if (!(i == 2)) return [3 /*break*/, 2];
+ return [4 /*yield*/, _data_reapers__WEBPACK_IMPORTED_MODULE_4__.get(task)];
+ case 1:
+ _a = _c.sent();
+ return [3 /*break*/, 4];
+ case 2: return [4 /*yield*/, _data_assignments__WEBPACK_IMPORTED_MODULE_5__.get(task)];
+ case 3:
+ _a = _c.sent();
+ _c.label = 4;
+ case 4:
+ data = (_a);
+ if (!data) return [3 /*break*/, 10];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("name", side).innerHTML = data["index"];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("name", side).title = data["index"];
+ if (!(!_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.ui.limited && !_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.limitedLoaded)) return [3 /*break*/, 9];
+ // Setup the Masters Data
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("masters", side).innerHTML = "<div class=\"nistext masterTitle\" >Assignment Range</div>";
+ j = 0;
+ _c.label = 5;
+ case 5:
+ if (!(j < data["masters"].length)) return [3 /*break*/, 8];
+ img = "<img id=\"masterImage" + j + "\" alt=\"" + data["masters"][j] + "\" src=\"./images/masters/" + data["masters"][j] + ".png\" title=\"" + data["masters"][j] + "\"></img>";
+ return [4 /*yield*/, _data_masters__WEBPACK_IMPORTED_MODULE_3__.get(data["masters"][j])];
+ case 6:
+ masterData = _c.sent();
+ kills = masterData["task-counts"][data["index"]];
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("masters", side).innerHTML += "<div class=\"nistext masterInfo" + j + "\">" + img + " Kills: " + kills + "</div>";
+ _c.label = 7;
+ case 7:
+ j++;
+ return [3 /*break*/, 5];
+ case 8:
+ _loop_1 = function (j) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("masterInfo" + j, side).addEventListener('click', function () { _dochandler__WEBPACK_IMPORTED_MODULE_1__.open.wiki.master(i, j); });
+ };
+ // Setup the click events for masters and size for preview-task-wiki
+ for (j = 0; j < data["masters"].length; j++) {
+ _loop_1(j);
+ }
+ // Setup the Equipment Data
+ if (data["equipment"]) {
+ for (j = 0; j < 3; j++)
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("equipInfo" + (j + 1), side).innerHTML = (j == 0 ? "None" : "");
+ if (data["equipment"].length > 0)
+ for (j = 0; j < data["equipment"].length; j++)
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("equipInfo" + (j + 1), side).innerHTML = data["equipment"][j] != "" ? data["equipment"][j] : "<span style=\"color: red;\" title=\"There is no information in the database.\">Database Empty</span>";
+ // Hide & Show the See More Link...
+ if (data["equipment"].length < 3)
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("equipMore", side).style.visibility = "hidden";
+ else
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("equipMore", side).style.visibility = "visible";
+ }
+ else if (!data["equipment"]) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("equipMore", side).style.visibility = "hidden";
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("equipInfo1", side).innerHTML = "<span style=\"color: red;\" title=\"There is no information in the database.\">Database Missing</span>";
+ }
+ // Setup the Locations Data
+ if (data["locations"]) {
+ for (j = 0; j < 3; j++)
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("locationInfo" + (j + 1), side).innerHTML = (j == 0 ? "None" : "");
+ if (data["locations"].length > 0)
+ for (j = 0; j < data["locations"].length; j++)
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("locationInfo" + (j + 1), side).innerHTML = data["locations"][j] != "" ? data["locations"][j] : "<span style=\"color: red;\" title=\"There is no information in the database.\">Database Empty</span>";
+ // Hide & Show the See More Link...
+ if (data["locations"].length < 3)
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("locationMore", side).style.visibility = "hidden";
+ else
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("locationMore", side).style.visibility = "visible";
+ }
+ else if (!data["locations"]) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("locationMore", side).style.visibility = "hidden";
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("locationInfo1", side).innerHTML = "<span style=\"color: red;\" title=\"There is no information in the database.\">Database Missing</span>";
+ }
+ // Setup the Creatures Data
+ if (data["creatures"]) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("creatures", side).innerHTML = "";
+ for (_i = 0, _b = data["creatures"]; _i < _b.length; _i++) {
+ a = _b[_i];
+ if (!_extrafuncs__WEBPACK_IMPORTED_MODULE_2__.listContains(data["hidden-creatures"], a)) {
+ if (data["default-creature"] && data["default-creature"].includes("#")) {
+ creature_1 = data["default-creature"].substring(0, data["default-creature"].indexOf("#"));
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("creatures", side).innerHTML += "<option value=\"" + a + "\"" + (_extrafuncs__WEBPACK_IMPORTED_MODULE_2__.decodeHtml(a) === _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.decodeHtml(creature_1) ? " selected" : "") + ">" + a + "</option>";
+ }
+ else
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.elc("creatures", side).innerHTML += "<option value=\"" + a + "\"" + (_extrafuncs__WEBPACK_IMPORTED_MODULE_2__.decodeHtml(a) === _extrafuncs__WEBPACK_IMPORTED_MODULE_2__.decodeHtml(data["default-creature"]) ? " selected" : "") + ">" + a + "</option>";
+ }
+ }
+ }
+ _c.label = 9;
+ case 9:
+ if (data["default-creature"]) {
+ creature_2 = data["default-creature"].substring(0, data["default-creature"].indexOf("#"));
+ variant_1 = data["default-creature"].substring(data["default-creature"].indexOf("#") + 1);
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.change.creature(i, creature_2, variant_1);
+ }
+ else
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.change.creature(i);
+ _c.label = 10;
+ case 10:
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [2 /*return*/];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./modules/dochandler/hide.ts":
+/*!************************************!*\
+ !*** ./modules/dochandler/hide.ts ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ assignmentWikiPreview: () => (/* binding */ assignmentWikiPreview),
+/* harmony export */ creatureWikiPreview: () => (/* binding */ creatureWikiPreview),
+/* harmony export */ moreEquip: () => (/* binding */ moreEquip),
+/* harmony export */ moreLocations: () => (/* binding */ moreLocations)
+/* harmony export */ });
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../settings */ "./modules/settings.ts");
+
+
+// Hide the specific Creature's preview wiki page
+function assignmentWikiPreview(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-task-wiki", side).style.visibility = "hidden";
+}
+// Hide the specific Creature's preview wiki page
+function creatureWikiPreview(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-creature-wiki", side).style.visibility = "hidden";
+}
+// Hide more Equipment for task
+function moreEquip(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipHidden", side).style.visibility = "hidden";
+}
+// Hide more Locations for task
+function moreLocations(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationHidden", side).style.visibility = "hidden";
+}
+
+
+/***/ }),
+
+/***/ "./modules/dochandler/hover.ts":
+/*!*************************************!*\
+ !*** ./modules/dochandler/hover.ts ***!
+ \*************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ assignmentWiki: () => (/* binding */ assignmentWiki),
+/* harmony export */ creatureWiki: () => (/* binding */ creatureWiki),
+/* harmony export */ moreEquip: () => (/* binding */ moreEquip),
+/* harmony export */ moreLocations: () => (/* binding */ moreLocations)
+/* harmony export */ });
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../settings */ "./modules/settings.ts");
+
+
+// Hover the Assignment's wiki button
+function assignmentWiki(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var showTimer = setTimeout(function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.show.assignmentWikiPreview(i); }, 500);
+ var hideTimer = null;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("task-wiki", side).onmouseleave = function () { hideTimer = setTimeout(function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.assignmentWikiPreview(i); }, 200); clearTimeout(showTimer); };
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-task-wiki", side).onmouseenter = function () { if (hideTimer != null)
+ clearTimeout(hideTimer); };
+}
+// Hover the Creature's wiki button
+function creatureWiki(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var showTimer = setTimeout(function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.show.creatureWikiPreview(i); }, 500);
+ var hideTimer = null;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creature-wiki", side).onmouseleave = function () { hideTimer = setTimeout(function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.creatureWikiPreview(i); }, 200); clearTimeout(showTimer); };
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-creature-wiki", side).onmouseenter = function () { if (hideTimer != null)
+ clearTimeout(hideTimer); };
+}
+// Hover more Equipment for task
+function moreEquip(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var showTimer = setTimeout(function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.show.moreEquip(i); }, 500);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipMore", side).onmouseleave = function () { clearTimeout(showTimer); };
+}
+// Hover more Locations for task
+function moreLocations(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var showTimer = setTimeout(function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.show.moreLocations(i); }, 500);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationMore", side).onmouseleave = function () { clearTimeout(showTimer); };
+}
+
+
+/***/ }),
+
+/***/ "./modules/dochandler/main.ts":
+/*!************************************!*\
+ !*** ./modules/dochandler/main.ts ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ doubleLoaded: () => (/* binding */ doubleLoaded),
+/* harmony export */ get: () => (/* binding */ get),
+/* harmony export */ limitedLoaded: () => (/* binding */ limitedLoaded),
+/* harmony export */ reaperLoaded: () => (/* binding */ reaperLoaded),
+/* harmony export */ reset: () => (/* binding */ reset),
+/* harmony export */ set: () => (/* binding */ set),
+/* harmony export */ setup: () => (/* binding */ setup),
+/* harmony export */ singleLoaded: () => (/* binding */ singleLoaded),
+/* harmony export */ suggestedLoaded: () => (/* binding */ suggestedLoaded),
+/* harmony export */ toggle: () => (/* binding */ toggle)
+/* harmony export */ });
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../settings */ "./modules/settings.ts");
+/* harmony import */ var _slayer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../slayer */ "./modules/slayer.ts");
+/* harmony import */ var _data_reapers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../data/reapers */ "./modules/data/reapers.ts");
+/* harmony import */ var _data_assignments__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../data/assignments */ "./modules/data/assignments.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+
+
+
+
+// TODO Clean up code
+var singleLoaded = false, doubleLoaded = false, reaperLoaded = false, suggestedLoaded = false, limitedLoaded = true;
+var get;
+(function (get) {
+ // Get first element by class
+ function elc(name, e) {
+ if (e === void 0) { e = null; }
+ if (e && e.getElementsByClassName(name).length > 0)
+ return e.getElementsByClassName(name)[0];
+ else if (!e && document.getElementsByClassName(name).length > 0)
+ return document.getElementsByClassName(name)[0];
+ return null;
+ }
+ get.elc = elc;
+ // Get the element by id
+ function elid(id) {
+ return document.getElementById(id);
+ }
+ get.elid = elid;
+ // Get the current value in the search input
+ function searchInput() {
+ return _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").value;
+ }
+ get.searchInput = searchInput;
+})(get || (get = {}));
+var reset;
+(function (reset) {
+ // Reset from reaper tasks doc
+ function single() {
+ if (!singleLoaded)
+ return;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("base").innerHTML = "";
+ singleLoaded = false;
+ }
+ reset.single = single;
+ // Reset from reaper tasks doc
+ function double() {
+ if (!doubleLoaded)
+ return;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("base").innerHTML = "";
+ doubleLoaded = false;
+ }
+ reset.double = double;
+ // Reset from reaper tasks doc
+ function reaper() {
+ if (!reaperLoaded)
+ return;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("base").innerHTML = "";
+ reaperLoaded = false;
+ }
+ reset.reaper = reaper;
+ // Reset from suggested tasks doc
+ function suggested() {
+ if (!suggestedLoaded)
+ return;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("base").innerHTML = "";
+ suggestedLoaded = false;
+ }
+ reset.suggested = suggested;
+ // Reset the search box value to nothing
+ function searchBox() {
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").value = "";
+ toggle.searchText();
+ }
+ reset.searchBox = searchBox;
+})(reset || (reset = {}));
+var set;
+(function (set) {
+ // Set to use a double document
+ function double(task0, task1, bypass) {
+ return __awaiter(this, void 0, void 0, function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if ((task0 == null || task1 == null) && !doubleLoaded)
+ return [2 /*return*/];
+ console.log("Load Double: [" + task0.count + "] " + task0.name + " | [" + task1.count + "] " + task1.name);
+ // Reset all others
+ reset.single();
+ reset.reaper();
+ reset.suggested();
+ if (!!doubleLoaded) return [3 /*break*/, 2];
+ return [4 /*yield*/, setup.doubleAssignment()];
+ case 1:
+ _a.sent();
+ _a.label = 2;
+ case 2: return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.assignment(0, task0.name, task0.count)];
+ case 3:
+ _a.sent();
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.assignment(1, task1.name, task1.count)];
+ case 4:
+ _a.sent();
+ // Log history if not bypassed
+ if (!bypass && task0.name && task1.name)
+ _settings__WEBPACK_IMPORTED_MODULE_1__.change.addHistory({ type: 'double', tasks: [task0, task1] });
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ set.double = double;
+ // Set to use a single document
+ function single(task, bypass) {
+ return __awaiter(this, void 0, void 0, function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (task == null && !singleLoaded)
+ return [2 /*return*/];
+ console.log("Load Single: [" + task.count + "] " + task.name);
+ // Reset all others
+ reset.double();
+ reset.reaper();
+ reset.suggested();
+ if (!!singleLoaded) return [3 /*break*/, 2];
+ return [4 /*yield*/, setup.singleAssignment(0)];
+ case 1:
+ _a.sent();
+ _a.label = 2;
+ case 2: return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.assignment(0, task.name, task.count)];
+ case 3:
+ _a.sent();
+ // Log history if not bypassed
+ if (!bypass && task.name)
+ _settings__WEBPACK_IMPORTED_MODULE_1__.change.addHistory({ type: 'single', tasks: [task] });
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ set.single = single;
+ // Set to use reaper tasks doc
+ function reaper(task, bypass) {
+ return __awaiter(this, void 0, void 0, function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (task == null && !reaperLoaded)
+ return [2 /*return*/];
+ console.log("Load Reaper: [" + task.count + "] " + task.name);
+ // Reset all others
+ reset.single();
+ reset.double();
+ reset.suggested();
+ return [4 /*yield*/, setup.singleAssignment(2)];
+ case 1:
+ // Setup the page and display the data
+ return [4 /*yield*/, _a.sent()];
+ case 2:
+ // Setup the page and display the data
+ _a.sent();
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.reaper(task.name, task.count)];
+ case 3:
+ _a.sent();
+ // Log history if not bypassed
+ if (!bypass && task.name)
+ _settings__WEBPACK_IMPORTED_MODULE_1__.change.addHistory({ type: 'reaper', tasks: [task] });
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ set.reaper = reaper;
+ // Set to use suggested tasks doc
+ function suggested(bypass) {
+ return __awaiter(this, void 0, void 0, function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (suggestedLoaded)
+ return [2 /*return*/];
+ console.log("Load Suggested!");
+ // Reset all others
+ reset.single();
+ reset.double();
+ reset.reaper();
+ // Setup the page and display the data
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.setup.suggested()];
+ case 1:
+ // Setup the page and display the data
+ _a.sent();
+ // Log history if not bypassed
+ if (!bypass)
+ _settings__WEBPACK_IMPORTED_MODULE_1__.change.addHistory({ type: 'suggestion', tasks: null });
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ set.suggested = suggested;
+ // Set search button
+ function searchButtonText(s) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-button").innerHTML = s + "<span style=\"visibility: hidden;\">. . .</span>";
+ }
+ set.searchButtonText = searchButtonText;
+ // Set the search input
+ function searchInput(s) {
+ if (s == null)
+ return;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").value = s;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.toggle.searchText();
+ }
+ set.searchInput = searchInput;
+})(set || (set = {}));
+var setup;
+(function (setup) {
+ // Setup the main document
+ function documentMain() {
+ return __awaiter(this, void 0, void 0, function () {
+ var _a, str;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ _a = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("nis");
+ return [4 /*yield*/, fetch("./pages/doc/body.html").then(function (r) { return r.text(); })];
+ case 1:
+ _a.innerHTML = _b.sent();
+ str = "Empty";
+ // Setup the event listeners for everything
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("infobutton").addEventListener('click', _dochandler__WEBPACK_IMPORTED_MODULE_0__.open.aboutInfo);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("menubutton").addEventListener('click', _dochandler__WEBPACK_IMPORTED_MODULE_0__.open.settingsPage);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("donatebutton").addEventListener('click', _dochandler__WEBPACK_IMPORTED_MODULE_0__.open.donate);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("backbutton").addEventListener('click', _settings__WEBPACK_IMPORTED_MODULE_1__.change.goPreviousHistory);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("forwardbutton").addEventListener('click', _settings__WEBPACK_IMPORTED_MODULE_1__.change.goNextHistory);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-button").addEventListener('click', function () { _slayer__WEBPACK_IMPORTED_MODULE_2__.searchTasks(); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").addEventListener('input', _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.toggle.searchText);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").addEventListener('change', function () { _slayer__WEBPACK_IMPORTED_MODULE_2__.searchTasks(); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").addEventListener('keyup', function (event) {
+ switch (event.key) {
+ case "ArrowUp":
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.searchInput(_settings__WEBPACK_IMPORTED_MODULE_1__.search.getPreviousHistory());
+ break;
+ case "ArrowDown":
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.searchInput(_settings__WEBPACK_IMPORTED_MODULE_1__.search.getNextHistory());
+ break;
+ }
+ });
+ // Load the list of all assignments into the search feature (aka datalist)
+ _data_reapers__WEBPACK_IMPORTED_MODULE_3__.getIndexList().then(function (r) { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info-list").innerHTML = r; });
+ _data_assignments__WEBPACK_IMPORTED_MODULE_4__.getIndexList().then(function (r) { return _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info-list").innerHTML += r; });
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ setup.documentMain = documentMain;
+ // Setup the base for double assignment
+ function doubleAssignment() {
+ return __awaiter(this, void 0, void 0, function () {
+ var _a, _loop_1, i;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ limitedLoaded = true;
+ _a = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("base");
+ return [4 /*yield*/, fetch("./pages/doc/dual.html").then(function (r) { return r.text(); })];
+ case 1:
+ _a.innerHTML = _b.sent();
+ _loop_1 = function (i) {
+ var side, _c, _d;
+ return __generator(this, function (_e) {
+ switch (_e.label) {
+ case 0:
+ side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _c = side;
+ return [4 /*yield*/, fetch("./pages/doc/example.html").then(function (r) { return r.text(); })];
+ case 1:
+ _c.innerHTML = _e.sent();
+ // Setup the event listeners for everything
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("task-wiki", side).addEventListener('click', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.open.wiki.assignment(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("task-wiki", side).addEventListener('mouseover', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.assignmentWiki(i); });
+ if (!!_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited) return [3 /*break*/, 3];
+ _d = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("extra-info", side);
+ return [4 /*yield*/, fetch("./pages/doc/example-extra.html").then(function (r) { return r.text(); })];
+ case 2:
+ _d.innerHTML = _e.sent();
+ limitedLoaded = false;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-task-wiki", side).addEventListener('mouseleave', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.assignmentWikiPreview(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-creature-wiki", side).addEventListener('mouseleave', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.creatureWikiPreview(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipMore", side).addEventListener('mouseenter', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.moreEquip(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipHidden", side).addEventListener('mouseleave', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.moreEquip(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationMore", side).addEventListener('mouseenter', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.moreLocations(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationHidden", side).addEventListener('mouseleave', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.moreLocations(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creature-wiki", side).addEventListener('click', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.open.wiki.creature(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creature-wiki", side).addEventListener('mouseover', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.creatureWiki(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creatures", side).addEventListener('change', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.creature(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("variants", side).addEventListener('change', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.variant(i); });
+ _e.label = 3;
+ case 3: return [2 /*return*/];
+ }
+ });
+ };
+ i = 0;
+ _b.label = 2;
+ case 2:
+ if (!(i < 2)) return [3 /*break*/, 5];
+ return [5 /*yield**/, _loop_1(i)];
+ case 3:
+ _b.sent();
+ _b.label = 4;
+ case 4:
+ i++;
+ return [3 /*break*/, 2];
+ case 5:
+ // Adjust the doc for limited and full
+ adjustForSettings();
+ doubleLoaded = true;
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ setup.doubleAssignment = doubleAssignment;
+ // Setup the base for single assignment
+ function singleAssignment(i) {
+ return __awaiter(this, void 0, void 0, function () {
+ var _a, side, _b, _c;
+ return __generator(this, function (_d) {
+ switch (_d.label) {
+ case 0:
+ limitedLoaded = true;
+ _a = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("base");
+ return [4 /*yield*/, fetch("./pages/doc/single.html").then(function (r) { return r.text(); })];
+ case 1:
+ _a.innerHTML = _d.sent();
+ side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _b = side;
+ return [4 /*yield*/, fetch("./pages/doc/example.html").then(function (r) { return r.text(); })];
+ case 2:
+ _b.innerHTML = _d.sent();
+ // Setup the event listeners for everything
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("task-wiki", side).addEventListener('click', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.open.wiki.assignment(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("task-wiki", side).addEventListener('mouseover', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.assignmentWiki(i); });
+ if (!!_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited) return [3 /*break*/, 4];
+ _c = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("extra-info", side);
+ return [4 /*yield*/, fetch("./pages/doc/example-extra.html").then(function (r) { return r.text(); })];
+ case 3:
+ _c.innerHTML = _d.sent();
+ limitedLoaded = false;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-task-wiki", side).addEventListener('mouseleave', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.assignmentWikiPreview(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-creature-wiki", side).addEventListener('mouseleave', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.creatureWikiPreview(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipMore", side).addEventListener('mouseenter', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.moreEquip(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipHidden", side).addEventListener('mouseleave', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.moreEquip(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationMore", side).addEventListener('mouseenter', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.moreLocations(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationHidden", side).addEventListener('mouseleave', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hide.moreLocations(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creature-wiki", side).addEventListener('click', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.open.wiki.creature(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creature-wiki", side).addEventListener('mouseover', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.hover.creatureWiki(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creatures", side).addEventListener('change', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.creature(i); });
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("variants", side).addEventListener('change', function () { _dochandler__WEBPACK_IMPORTED_MODULE_0__.change.variant(i); });
+ _d.label = 4;
+ case 4:
+ // Adjust if status is visible
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.status)
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("status", side).style.visibility = "visible";
+ else
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("status", side).style.visibility = "hidden";
+ // Adjust the doc for limited and full
+ adjustForSettings();
+ if (i == 2)
+ reaperLoaded = true;
+ else
+ singleLoaded = true;
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ setup.singleAssignment = singleAssignment;
+ // Setup the base for suggested
+ function suggested() {
+ return __awaiter(this, void 0, void 0, function () {
+ var side, _a, suggestType, _loop_2, i;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("base");
+ _a = side;
+ return [4 /*yield*/, fetch("./pages/doc/suggested.html").then(function (r) { return r.text(); })];
+ case 1:
+ _a.innerHTML = _b.sent();
+ suggestType = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("type-suggest");
+ if (suggestType)
+ suggestType.addEventListener('click', function () { window.open("https://runescape.wiki/w/Slayer_training/High-levelled"); });
+ _loop_2 = function (i) {
+ var element = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("suggestion-" + i);
+ if (element)
+ element.addEventListener('click', function () { _slayer__WEBPACK_IMPORTED_MODULE_2__.searchTasks(element.innerHTML); });
+ };
+ for (i = 1; i <= 12; i++) {
+ _loop_2(i);
+ }
+ suggestedLoaded = true;
+ return [2 /*return*/];
+ }
+ });
+ });
+ }
+ setup.suggested = suggested;
+ // If limited the lets set the size of the base
+ function adjustForSettings() {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("base").classList.remove("base-full");
+ if (_dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("divide"))
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("divide").classList.remove("divide-full");
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("copyright").classList.remove("copyright-full");
+ }
+ else {
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("base").classList.add("base-full");
+ if (_dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("divide"))
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("divide").classList.add("divide-full");
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("copyright").classList.add("copyright-full");
+ }
+ }
+})(setup || (setup = {}));
+var toggle;
+(function (toggle) {
+ // Toggle if we are capturing screen or searching text
+ function searchText() {
+ if (_slayer__WEBPACK_IMPORTED_MODULE_2__.searchResult || (!_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.autoCapture.enabled && _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.searchInput() === ""))
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.searchButtonText("Capture");
+ else
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.searchButtonText("Search");
+ }
+ toggle.searchText = searchText;
+})(toggle || (toggle = {}));
+
+
+/***/ }),
+
+/***/ "./modules/dochandler/open.ts":
+/*!************************************!*\
+ !*** ./modules/dochandler/open.ts ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ aboutInfo: () => (/* binding */ aboutInfo),
+/* harmony export */ donate: () => (/* binding */ donate),
+/* harmony export */ settingsPage: () => (/* binding */ settingsPage),
+/* harmony export */ wiki: () => (/* binding */ wiki)
+/* harmony export */ });
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../settings */ "./modules/settings.ts");
+
+
+// Open the Donate Page (https://www.paypal.com/donate/?hosted_button_id=LRFC6766YMVTQ)
+function donate() {
+ window.open("https://www.paypal.com/donate/?hosted_button_id=LRFC6766YMVTQ");
+}
+// Open the about info page
+function aboutInfo() {
+ window.open("./pages/about.html", null, "width=680,height=550");
+}
+// Open the settings page
+function settingsPage() {
+ var settingsWindow = window.open("./pages/settings.html", "_blank", "width=420,height=550");
+ console.warn("Settings Opened!");
+ settingsWindow.window.console.warn("Settings Loaded!");
+ settingsWindow.addEventListener('keyup', function (e) {
+ if ((e.which || e.keyCode) == 116) {
+ // FIXME Disabled F5 for now, need to find out how to fix this so it just re-hooks events on refresh
+ e.preventDefault();
+ }
+ });
+ settingsWindow.addEventListener('beforeunload', function () {
+ // Load the new settings and apply them
+ _settings__WEBPACK_IMPORTED_MODULE_1__.controller.load();
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.toggle.searchText();
+ // FIXME Make it so when we unload, we can reload the settings in case user pressed F5
+ console.warn("Settings Closed!");
+ settingsWindow.window.console.warn("Settings Saved!");
+ });
+}
+var wiki;
+(function (wiki) {
+ // Open the specific Task's wiki page
+ function assignment(i) {
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var task = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("name", side).innerHTML;
+ if (task != null)
+ window.open('https://runescape.wiki/' + task + '_(Slayer_assignment)');
+ }
+ wiki.assignment = assignment;
+ // Open the specific Creature's wiki page
+ function creature(i) {
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var creature = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("creatures", side).value;
+ var variant = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("variants", side).value;
+ if (creature != null && variant != null)
+ window.open('https://runescape.wiki/' + creature + "#" + variant);
+ }
+ wiki.creature = creature;
+ // Open the specific Master wiki page
+ function master(i, j) {
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ var master = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("masterImage" + j, side).alt;
+ if (master != null)
+ window.open('https://runescape.wiki/' + master);
+ }
+ wiki.master = master;
+})(wiki || (wiki = {}));
+
+
+/***/ }),
+
+/***/ "./modules/dochandler/show.ts":
+/*!************************************!*\
+ !*** ./modules/dochandler/show.ts ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ assignmentWikiPreview: () => (/* binding */ assignmentWikiPreview),
+/* harmony export */ creatureWikiPreview: () => (/* binding */ creatureWikiPreview),
+/* harmony export */ moreEquip: () => (/* binding */ moreEquip),
+/* harmony export */ moreLocations: () => (/* binding */ moreLocations)
+/* harmony export */ });
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../settings */ "./modules/settings.ts");
+
+
+// Show the specific Creature's preview wiki page
+function assignmentWikiPreview(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-task-wiki", side).style.visibility = "visible";
+}
+// Show the specific Creature's preview wiki page
+function creatureWikiPreview(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("preview-creature-wiki", side).style.visibility = "visible";
+}
+// Show more Equipment for task
+function moreEquip(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ if (_dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipHidden", side).innerHTML != null && _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipHidden", side).innerHTML.trimEnd() != "")
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("equipHidden", side).style.visibility = "visible";
+}
+// Show more Locations for task
+function moreLocations(i) {
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__.controller.data.ui.limited)
+ return;
+ var side = _dochandler__WEBPACK_IMPORTED_MODULE_0__.getSide(i);
+ if (_dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationHidden", side).innerHTML != null && _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationHidden", side).innerHTML.trimEnd() != "")
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elc("locationHidden", side).style.visibility = "visible";
+}
+
+
+/***/ }),
+
+/***/ "./modules/extrafuncs.ts":
+/*!*******************************!*\
+ !*** ./modules/extrafuncs.ts ***!
+ \*******************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ calculateAspectRatioFit: () => (/* binding */ calculateAspectRatioFit),
+/* harmony export */ decodeHtml: () => (/* binding */ decodeHtml),
+/* harmony export */ listContains: () => (/* binding */ listContains),
+/* harmony export */ numberWithCommas: () => (/* binding */ numberWithCommas)
+/* harmony export */ });
+// Add commas into a number if its big enough
+function numberWithCommas(n) {
+ if (n == null)
+ return "<span style=\"color: red;\">Empty</span>";
+ if (n == -666)
+ return "<span style=\"color: red;\">Error</span>";
+ return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+}
+// Check if the list contains what you want to find
+function listContains(list, find) {
+ for (var l in list)
+ if (decodeHtml(list[l]).toLowerCase() === decodeHtml(find).toLowerCase())
+ return true;
+ return false;
+}
+// Get new width and height for image based on aspec ratio
+function calculateAspectRatioFit(srcWidth, srcHeight, maxWidth, maxHeight) {
+ var ratio = Math.min(maxWidth / srcWidth, maxHeight / srcHeight);
+ return { width: srcWidth * ratio, height: srcHeight * ratio };
+}
+// Decode the Html chars that have been encoded during database downloading
+function decodeHtml(html) {
+ var txt = document.createElement("textarea");
+ txt.innerHTML = html;
+ return txt.value;
+}
+
+
+/***/ }),
+
+/***/ "./modules/settings.ts":
+/*!*****************************!*\
+ !*** ./modules/settings.ts ***!
+ \*****************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ AutoCaptureData: () => (/* binding */ AutoCaptureData),
+/* harmony export */ DefaultData: () => (/* binding */ DefaultData),
+/* harmony export */ HiddenData: () => (/* binding */ HiddenData),
+/* harmony export */ SettingsData: () => (/* binding */ SettingsData),
+/* harmony export */ SettingsDataController: () => (/* binding */ SettingsDataController),
+/* harmony export */ UIData: () => (/* binding */ UIData),
+/* harmony export */ change: () => (/* binding */ change),
+/* harmony export */ controller: () => (/* binding */ controller),
+/* harmony export */ executeDevTools: () => (/* binding */ executeDevTools),
+/* harmony export */ search: () => (/* binding */ search)
+/* harmony export */ });
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _slayer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slayer */ "./modules/slayer.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+
+// Add Auto Capture Data
+var AutoCaptureData = /** @class */ (function () {
+ function AutoCaptureData() {
+ }
+ return AutoCaptureData;
+}());
+
+// All UI Data
+var UIData = /** @class */ (function () {
+ function UIData() {
+ }
+ return UIData;
+}());
+
+// All Hidden Data
+var DefaultData = /** @class */ (function () {
+ function DefaultData() {
+ }
+ return DefaultData;
+}());
+
+// All Hidden Data
+var HiddenData = /** @class */ (function () {
+ function HiddenData() {
+ }
+ return HiddenData;
+}());
+
+// All settings data
+var SettingsData = /** @class */ (function () {
+ function SettingsData() {
+ }
+ return SettingsData;
+}());
+
+// Controls all the settings data
+var SettingsDataController = /** @class */ (function () {
+ function SettingsDataController() {
+ this.configLoaded = false;
+ this.data = {
+ version: 1,
+ searchAlgorithim: "default",
+ autoCapture: {
+ enabled: true,
+ counter: true,
+ search: false,
+ loopTimer: 500,
+ counterTimer: 500,
+ dialogTimer: 5000,
+ searchTimer: 10000,
+ },
+ ui: {
+ style: "default", // TODO Select sytle for the app (Needs finished later on)
+ limited: false,
+ status: true,
+ counter: false,
+ counterTimer: 500,
+ historyRetentionCount: 10, // TODO How many search results to keep in history (0 = unlimited)
+ lookupRetentionCount: 0, // TODO How many lookup results to keep in history (0 = unlimited)
+ },
+ showHidden: {
+ creatures: false,
+ eliteCreatures: false,
+ dragonkinCreatures: false,
+ godWarsCreatures: false,
+ ghorrockCreatures: false,
+ heartGielinorCreatures: false,
+ monsterCreatures: false,
+ newVarrockCreatures: false,
+ shadowReefCreatures: false,
+ strongholdSecurityCreatures: false,
+ summonedCreatures: false,
+ templeTrekkingCreatures: false,
+ unchartedIslesCreatures: false
+ },
+ default: {
+ taskName0: "waterfiends",
+ taskName1: "black demons",
+ taskCount0: 777,
+ taskCount1: 666
+ // TODO Add more default data later on
+ },
+ };
+ }
+ // Load the users settings
+ SettingsDataController.prototype.load = function () {
+ return __awaiter(this, void 0, void 0, function () {
+ var res;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ // Load the versioning system to make sure old settings get updated (Max Version ???.256.256)
+ if (window.localStorage.getItem('version') != null)
+ this.data.version = this.decodeVersion(window.localStorage.getItem('version'));
+ // Add Versioning system to allow compatibility with future updates (Should only ever run once)
+ if (this.data.version <= 5 && !this.configLoaded) {
+ console.log("(Versioning System Missing) Setting up versioning system.");
+ // Remove the alpha/beta recent task system, we are replacing it with a new defaults loading system
+ if (window.localStorage.getItem('recent_task_0') != null)
+ window.localStorage.removeItem('recent_task_0');
+ if (window.localStorage.getItem('recent_task_count_0') != null)
+ window.localStorage.removeItem('recent_task_count_0');
+ if (window.localStorage.getItem('recent_task_1') != null)
+ window.localStorage.removeItem('recent_task_1');
+ if (window.localStorage.getItem('recent_task_count_1') != null)
+ window.localStorage.removeItem('recent_task_count_1');
+ // If this is the first setup since versions system we need to set the defaults with a save
+ this.save();
+ }
+ return [4 /*yield*/, fetch("./data/version.json").then(function (r) { return r.json(); })];
+ case 1:
+ res = _a.sent();
+ if (this.data.version < this.decodeVersion(res['version']))
+ this.data.version = this.decodeVersion(res['version']);
+ // TODO Load basic settings here
+ controller.data.autoCapture.enabled = window.localStorage.getItem("auto-capture-enabled") === "true";
+ controller.data.autoCapture.counter = window.localStorage.getItem("auto-capture-counter") === "true";
+ controller.data.autoCapture.search = window.localStorage.getItem("auto-capture-search") === "true";
+ controller.data.autoCapture.loopTimer = parseInt(window.localStorage.getItem("auto-capture-timer-loop"));
+ controller.data.autoCapture.dialogTimer = parseInt(window.localStorage.getItem("auto-capture-timer-dialog"));
+ controller.data.autoCapture.counterTimer = parseInt(window.localStorage.getItem("auto-capture-timer-counter"));
+ controller.data.autoCapture.searchTimer = parseInt(window.localStorage.getItem("auto-capture-timer-search"));
+ controller.data.ui.limited = window.localStorage.getItem("ui-limited") === "true";
+ controller.data.ui.status = window.localStorage.getItem("ui-status") === "true";
+ controller.data.ui.counter = window.localStorage.getItem("ui-counter") === "true";
+ controller.data.ui.counterTimer = parseInt(window.localStorage.getItem("ui-counter-timer"));
+ // TODO Load history here then we reset the ui and load them
+ // Reset the ui so we make sure to update the correct info on it
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.reset.single();
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.reset.double();
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.reset.reaper();
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.reset.suggested();
+ if (!(this.data.default.taskName0 != null && this.data.default.taskName1 != null)) return [3 /*break*/, 3];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.double({ name: this.data.default.taskName0, count: this.data.default.taskCount0 }, { name: this.data.default.taskName1, count: this.data.default.taskCount1 })];
+ case 2:
+ _a.sent();
+ _a.label = 3;
+ case 3:
+ if (!(this.data.default.taskName0 != null && this.data.default.taskName1 == null)) return [3 /*break*/, 5];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.single({ name: this.data.default.taskName0, count: this.data.default.taskCount0 })];
+ case 4:
+ _a.sent();
+ _a.label = 5;
+ case 5:
+ // Print out that we loaded the settings
+ console.warn("Config Loaded");
+ this.configLoaded = true;
+ return [2 /*return*/];
+ }
+ });
+ });
+ };
+ // Save the users settings
+ SettingsDataController.prototype.save = function () {
+ return __awaiter(this, void 0, void 0, function () {
+ return __generator(this, function (_a) {
+ // Save versioning system
+ if (this.data.version > 1)
+ window.localStorage.setItem('version', this.encodeVersion(this.data.version));
+ // TODO Add save settings
+ window.localStorage.setItem("auto-capture-enabled", "" + controller.data.autoCapture.enabled);
+ window.localStorage.setItem("auto-capture-counter", "" + controller.data.autoCapture.counter);
+ window.localStorage.setItem("auto-capture-search", "" + controller.data.autoCapture.search);
+ window.localStorage.setItem("auto-capture-timer-loop", "" + controller.data.autoCapture.loopTimer);
+ window.localStorage.setItem("auto-capture-timer-dialog", "" + controller.data.autoCapture.dialogTimer);
+ window.localStorage.setItem("auto-capture-timer-counter", "" + controller.data.autoCapture.counterTimer);
+ window.localStorage.setItem("auto-capture-timer-search", "" + controller.data.autoCapture.searchTimer);
+ window.localStorage.setItem("ui-limited", "" + controller.data.ui.limited);
+ window.localStorage.setItem("ui-status", "" + controller.data.ui.status);
+ window.localStorage.setItem("ui-counter", "" + controller.data.ui.counter);
+ window.localStorage.setItem("ui-counter-timer", "" + controller.data.ui.counterTimer);
+ // Print out that we saved the settings
+ console.warn("Config Saved");
+ return [2 /*return*/];
+ });
+ });
+ };
+ SettingsDataController.prototype.decodeVersion = function (version) {
+ var versionSplit = version.split("\.");
+ var versionUpper = versionSplit.length > 2 ? parseInt(versionSplit[0]) : 0;
+ var versionLower = parseInt(versionSplit.length > 2 ? versionSplit[1] : versionSplit[0]);
+ var versionPatch = parseInt(versionSplit.length > 2 ? versionSplit[2] : versionSplit[1]);
+ return ((versionUpper * 256 * 256) + (versionLower * 256) + versionPatch);
+ };
+ SettingsDataController.prototype.encodeVersion = function (version) {
+ var versionUpper = version > 256 * 256 ? version / (256 * 256) : 0;
+ var versionLower = version > 256 ? (version - (versionUpper * 256 * 256)) / 256 : 0;
+ var versionPatch = (version - (versionUpper * 256 * 256) - (versionLower * 256));
+ return versionUpper + "." + versionLower + "." + versionPatch;
+ };
+ return SettingsDataController;
+}());
+
+var controller = new SettingsDataController();
+// All functions that deal with lookup history are here
+var change;
+(function (change) {
+ change.history = [];
+ change.index = 0;
+ // Add change history for forward and back buttons
+ function addHistory(history) {
+ if (!history || !history.tasks || !change.history[change.index])
+ return;
+ // Check if is previous history and if so abort
+ if ((history.type === "single" || history.type === "reaper") && history.tasks[0].name === change.history[change.index].tasks[0].name)
+ return;
+ if (history.type === "double" && history.tasks[0].name === change.history[change.index].tasks[0].name && history.tasks[1].name === change.history[change.index].tasks[1].name)
+ return;
+ if (history.type === "suggestion" && history.type === change.history[change.index].type)
+ return;
+ // Add Change History
+ if (change.index + 1 != change.history.length)
+ change.history = change.history.slice(0, change.index + 1);
+ change.history.push(history);
+ change.index = change.history.length - 1;
+ // Save change history
+ console.warn("Save History");
+ controller.save();
+ }
+ change.addHistory = addHistory;
+ // Go to previous change history
+ function refreshCurrent() {
+ if (change.index < 0 || change.index >= change.history.length)
+ return;
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.reset.single();
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.reset.double();
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.reset.reaper();
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.reset.suggested();
+ // Get previous change history and then set the data
+ var previousChange = change.history[change.index];
+ if (previousChange.type === 'double')
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.double(previousChange.tasks[0], previousChange.tasks[1], true);
+ if (previousChange.type === 'single')
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.single(previousChange.tasks[0], true);
+ if (previousChange.type === 'reaper')
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.reaper(previousChange.tasks[0], true);
+ if (previousChange.type === 'suggestion')
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.suggested(true);
+ // Save change history
+ console.warn("Save History");
+ controller.save();
+ }
+ change.refreshCurrent = refreshCurrent;
+ // Go to previous change history
+ function goPreviousHistory() {
+ if (change.index - 1 < 0)
+ return;
+ // Get previous change history and then set the data
+ var previousChange = change.history[--change.index];
+ if (previousChange.type === 'double')
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.double(previousChange.tasks[0], previousChange.tasks[1], true);
+ if (previousChange.type === 'single')
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.single(previousChange.tasks[0], true);
+ if (previousChange.type === 'reaper')
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.reaper(previousChange.tasks[0], true);
+ if (previousChange.type === 'suggestion')
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.suggested(true);
+ // Save change history
+ console.warn("Save History");
+ controller.save();
+ }
+ change.goPreviousHistory = goPreviousHistory;
+ // Go to next change history
+ function goNextHistory() {
+ if (change.index + 1 >= change.history.length)
+ return;
+ // Get next change history and then set the data
+ var nextChange = change.history[++change.index];
+ if (nextChange.type === 'double')
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.double(nextChange.tasks[0], nextChange.tasks[1], true);
+ if (nextChange.type === 'single')
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.single(nextChange.tasks[0], true);
+ if (nextChange.type === 'reaper')
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.reaper(nextChange.tasks[0], true);
+ if (nextChange.type === 'suggestion')
+ _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.set.suggested(true);
+ // Save change history
+ console.warn("Save History");
+ controller.save();
+ }
+ change.goNextHistory = goNextHistory;
+})(change || (change = {}));
+// All functions that deal with searching are here
+var search;
+(function (search) {
+ search.temp = null;
+ search.history = [];
+ search.index = 0;
+ // Add search history and then reset for next search
+ function addHistory(value) {
+ if (!value || value == '')
+ return;
+ // TODO Adjust the search history to be in sessionStorage instead
+ // Add Search History
+ search.history.push(value);
+ search.index = search.history.length;
+ search.temp = null;
+ // Save search history
+ console.warn("Save History");
+ controller.save();
+ }
+ search.addHistory = addHistory;
+ // Get the previous search history
+ function getPreviousHistory() {
+ // Deal with the temp search value
+ tempValue();
+ // Save history and then return the correct history
+ console.warn("Save History");
+ controller.save();
+ if (search.index - 1 < 0)
+ return null;
+ if (--search.index == search.history.length)
+ return search.temp;
+ return search.history[search.index];
+ }
+ search.getPreviousHistory = getPreviousHistory;
+ // Get the next search history
+ function getNextHistory() {
+ // Deal with the temp search value
+ tempValue();
+ // Save history and then return the correct history
+ console.warn("Save History");
+ controller.save();
+ if (search.index + 1 > search.history.length + (search.temp == "" ? 0 : 1))
+ return null;
+ if (++search.index == search.history.length + (search.temp == "" ? 0 : 1))
+ return "";
+ if (search.temp != "" && search.index == search.history.length)
+ return search.temp;
+ return search.history[search.index];
+ }
+ search.getNextHistory = getNextHistory;
+ function tempValue() {
+ // Setup temp search value while it is empty
+ if (search.temp == null)
+ search.temp = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").value;
+ // Setup temp search value if the value changed
+ if (search.index == search.history.length && search.temp != _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").value)
+ search.temp = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").value;
+ // Setup temp search value if new entry is added
+ if (search.index == search.history.length + 1 && _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").value != "") {
+ search.temp = _dochandler__WEBPACK_IMPORTED_MODULE_0__.main.get.elid("search-info").value;
+ --search.index;
+ }
+ }
+})(search || (search = {}));
+// ~~~~ DevTools ~~~~
+function executeDevTools(value) {
+ return __awaiter(this, void 0, void 0, function () {
+ var counterData, slayerData, a, a, pos, box, a, e_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ if (value === "devTools") {
+ console.log(" ~~~ Dev Tools ~ Information Opened ~~~ ");
+ alt1.openBrowser("https://runeapps.org/forums/viewtopic.php?id=101");
+ return [2 /*return*/];
+ }
+ console.log(" ~~~ Dev Tools ~ Started ~~~ ");
+ _a.label = 1;
+ case 1:
+ _a.trys.push([1, 6, , 7]);
+ if (value === "size")
+ console.log("Current Size: " + document.body.clientWidth + ", " + document.body.clientHeight);
+ if (!(value === "counterReader")) return [3 /*break*/, 3];
+ return [4 /*yield*/, _slayer__WEBPACK_IMPORTED_MODULE_1__.counterReader.read()];
+ case 2:
+ counterData = _a.sent();
+ if (counterData) {
+ console.log("The Counter UI Collapsed [" + counterData.collapsed + "]");
+ console.log("The Counter UI Old School [" + counterData.OS + "]");
+ console.log("The Counter UI Reaper [" + counterData.reaper + "]");
+ console.log("The Counter UI Count [" + counterData.count + "]");
+ console.log("The Counter UI Task [" + counterData.task + "]");
+ }
+ else
+ console.log(" ~~~ Dev Tools ~ Error: Cannot read counter data! ~~~ ");
+ _a.label = 3;
+ case 3:
+ if (!(value === "slayerReader")) return [3 /*break*/, 5];
+ return [4 /*yield*/, _slayer__WEBPACK_IMPORTED_MODULE_1__.slayerReader.read()];
+ case 4:
+ slayerData = _a.sent();
+ if (slayerData) {
+ console.log("The Slayer Reader Select Your Own [" + slayerData.selectYourOwn + "]");
+ console.log("The Slayer Reader Reaper [" + slayerData.reaper + "]");
+ console.log("The Slayer Reader Ticket [" + slayerData.ticket + "]");
+ for (a in slayerData.count)
+ console.log("The Slayer Reader Count{" + a + "} [" + slayerData.count[a] + "]");
+ for (a in slayerData.count)
+ console.log("The Slayer Reader Task{" + a + "} [" + slayerData.task[a] + "]");
+ }
+ else
+ console.log(" ~~~ Dev Tools ~ Error: Cannot read slayer data! ~~~ ");
+ _a.label = 5;
+ case 5:
+ if (value === "dialogReader") {
+ console.log("Searching for Dialog...");
+ pos = _slayer__WEBPACK_IMPORTED_MODULE_1__.slayerReader.dialogReader.find();
+ if (!pos) {
+ console.log(" ~~~ Dev Tools ~ Error: Cannot find the Dialog! ~~~ ");
+ return [2 /*return*/];
+ }
+ box = _slayer__WEBPACK_IMPORTED_MODULE_1__.slayerReader.dialogReader.read();
+ if (!box) {
+ console.log(" ~~~ Dev Tools ~ Error: Cannot read the Dialog! ~~~ ");
+ return [2 /*return*/];
+ }
+ // Output all relivant data to the console
+ if (box.title)
+ console.log("The Dialog Box Title [" + box.title.toString() + "]");
+ if (box.text)
+ console.log("The Dialog Box Text [" + box.text.toString() + "]");
+ if (box.opts) {
+ console.log("The Dialog Box Options (" + box.opts.length + ") [" + box.opts.toString() + "]");
+ for (a in box.opts)
+ console.log("\t" + (Number(a) + 1) + ". " + box.opts[a].text);
+ }
+ }
+ return [3 /*break*/, 7];
+ case 6:
+ e_1 = _a.sent();
+ console.error("~~~ Dev Tools ~ Error: Issue Capturing Screen! ~~~ ");
+ return [3 /*break*/, 7];
+ case 7:
+ console.log(" ~~~ Dev Tools ~ Finished ~~~ ");
+ return [2 /*return*/];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./modules/slayer.ts":
+/*!***************************!*\
+ !*** ./modules/slayer.ts ***!
+ \***************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ canCaptureRunescape: () => (/* binding */ canCaptureRunescape),
+/* harmony export */ captureRunescape: () => (/* binding */ captureRunescape),
+/* harmony export */ counterReader: () => (/* binding */ counterReader),
+/* harmony export */ findTask: () => (/* binding */ findTask),
+/* harmony export */ loopRunning: () => (/* binding */ loopRunning),
+/* harmony export */ searchAlgo: () => (/* binding */ searchAlgo),
+/* harmony export */ searchResult: () => (/* binding */ searchResult),
+/* harmony export */ searchTasks: () => (/* binding */ searchTasks),
+/* harmony export */ slayerReader: () => (/* binding */ slayerReader),
+/* harmony export */ timer: () => (/* binding */ timer)
+/* harmony export */ });
+/* harmony import */ var alt1__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! alt1 */ "../node_modules/alt1/dist/base/index.js");
+/* harmony import */ var alt1__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(alt1__WEBPACK_IMPORTED_MODULE_5__);
+/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings */ "./modules/settings.ts");
+/* harmony import */ var _dochandler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _SearchAlgorithm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SearchAlgorithm */ "./modules/SearchAlgorithm.ts");
+/* harmony import */ var _SlayerDialogReader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SlayerDialogReader */ "./modules/SlayerDialogReader.ts");
+/* harmony import */ var _UICounterReader__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./UICounterReader */ "./modules/UICounterReader.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+
+
+
+
+
+// Get a timer, Dialog Reader, and Counter Reader
+var timer = function (ms) { return new Promise(function (res) { return setTimeout(res, ms); }); };
+var searchAlgo = new _SearchAlgorithm__WEBPACK_IMPORTED_MODULE_2__.SearchAlgorithm();
+var slayerReader = new _SlayerDialogReader__WEBPACK_IMPORTED_MODULE_3__.SlayerDialogReader();
+var counterReader = new _UICounterReader__WEBPACK_IMPORTED_MODULE_4__.UICounterReader();
+var loopRunning = false, searchResult = false;
+;
+// Check to see if we can capture the current screen
+function canCaptureRunescape() {
+ return window.alt1 && alt1.rsLinked && alt1.permissionPixel;
+}
+// Capture the current runescape screen and return it
+function captureRunescape() {
+ if (!canCaptureRunescape())
+ return null;
+ try {
+ return alt1__WEBPACK_IMPORTED_MODULE_5__.captureHoldFullRs();
+ }
+ catch (ex) {
+ if (ex.message === "capturehold failed")
+ console.warn("Capturing screen failed! Is runescape open?");
+ }
+ return null;
+}
+// Find a task on the current screen in multiple different ways
+function findTask(buffer) {
+ return __awaiter(this, void 0, void 0, function () {
+ var slayerData, counterData;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ // If autoCapture is disabled, loo is already running, or we have a search result then return
+ if (!_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.autoCapture.enabled || loopRunning || searchResult)
+ return [2 /*return*/];
+ // If there is no image, attempt to capture a new one
+ if (!buffer)
+ buffer = captureRunescape();
+ if (!buffer)
+ return [2 /*return*/];
+ // Set the loop to running and reset the loading icon
+ loopRunning = true;
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [4 /*yield*/, slayerReader.read(buffer)];
+ case 1:
+ slayerData = _a.sent();
+ if (!(slayerData && slayerData[0])) return [3 /*break*/, 11];
+ // If we found a slayer dialog then set loading
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loading();
+ if (!slayerData.selectYourOwn) return [3 /*break*/, 3];
+ // Update the data in window
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.set.suggested();
+ // End Loading animation, wait 5 secs and then return
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [4 /*yield*/, timer(_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.autoCapture.dialogTimer)];
+ case 2:
+ _a.sent();
+ loopRunning = false;
+ return [2 /*return*/];
+ case 3:
+ if (!(slayerData.reaper && !slayerData.ticket)) return [3 /*break*/, 5];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.set.reaper({ name: slayerData[0].task, count: slayerData[0].count })];
+ case 4:
+ _a.sent();
+ return [3 /*break*/, 9];
+ case 5:
+ if (!slayerData.ticket) return [3 /*break*/, 7];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.set.double({ name: slayerData[0].task, count: slayerData[0].count }, { name: slayerData[1].task, count: slayerData[1].count })];
+ case 6:
+ _a.sent();
+ return [3 /*break*/, 9];
+ case 7: return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.set.single({ name: slayerData[0].task, count: slayerData[0].count })];
+ case 8:
+ _a.sent();
+ _a.label = 9;
+ case 9:
+ // End Loading animation, wait 5 secs and then return
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [4 /*yield*/, timer(_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.autoCapture.dialogTimer)];
+ case 10:
+ _a.sent();
+ loopRunning = false;
+ return [2 /*return*/];
+ case 11:
+ if (!_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.autoCapture.counter) return [3 /*break*/, 18];
+ return [4 /*yield*/, counterReader.read(buffer)];
+ case 12:
+ counterData = _a.sent();
+ if (!counterData) return [3 /*break*/, 18];
+ // If we can see the Slayer Count UI for RS3, lets let them know we are loading
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loading();
+ if (!(counterData.reaper && (_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.reaperLoaded || counterData.task != null))) return [3 /*break*/, 14];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.set.reaper({ name: counterData.task, count: counterData.count })];
+ case 13:
+ _a.sent();
+ return [3 /*break*/, 16];
+ case 14:
+ if (!(!counterData.reaper && (_dochandler__WEBPACK_IMPORTED_MODULE_1__.main.singleLoaded || counterData.task != null))) return [3 /*break*/, 16];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.set.single({ name: counterData.task, count: counterData.count })];
+ case 15:
+ _a.sent();
+ _a.label = 16;
+ case 16:
+ // End Loading animation, wait 5 secs and then return
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ return [4 /*yield*/, timer(_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.autoCapture.counterTimer)];
+ case 17:
+ _a.sent();
+ loopRunning = false;
+ return [2 /*return*/];
+ case 18:
+ // Finish up by stoping the loading animation and wait 0.5 seconds before we start capturing again
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ loopRunning = false;
+ return [2 /*return*/];
+ }
+ });
+ });
+}
+// Search for the task by value of the search box
+function searchTasks(value) {
+ return __awaiter(this, void 0, void 0, function () {
+ var tool, lookup, tasks, _a, _b, _c, _i, a, data;
+ return __generator(this, function (_d) {
+ switch (_d.label) {
+ case 0:
+ // Get the current search value, reset it, & add search history
+ if (!value)
+ value = _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.get.searchInput();
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.reset.searchBox();
+ _settings__WEBPACK_IMPORTED_MODULE_0__.search.addHistory(value);
+ // Handle the search in different ways
+ if (value.length == 0 && (searchResult || !_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.autoCapture.enabled)) {
+ // Do a manual capture
+ searchResult = false;
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.toggle.searchText();
+ findTask();
+ return [2 /*return*/];
+ }
+ else if (value.startsWith("devTools")) {
+ tool = value;
+ if (value.includes(" "))
+ tool = value.substring(value.indexOf(" ") + 1);
+ _settings__WEBPACK_IMPORTED_MODULE_0__.executeDevTools(tool);
+ return [2 /*return*/];
+ }
+ else if (value.toLowerCase().includes("suggest")) {
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.set.suggested();
+ return [2 /*return*/];
+ }
+ // Setup the loopRunnign, lookup value, and if there is a second assignment then lets add them both
+ searchResult = true;
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.toggle.searchText();
+ lookup = [value];
+ if (value.includes("|")) {
+ lookup[0] = value.substring(0, value.indexOf("|"));
+ lookup[1] = value.substring(value.indexOf("|") + 1);
+ }
+ tasks = [];
+ _a = lookup;
+ _b = [];
+ for (_c in _a)
+ _b.push(_c);
+ _i = 0;
+ _d.label = 1;
+ case 1:
+ if (!(_i < _b.length)) return [3 /*break*/, 4];
+ _c = _b[_i];
+ if (!(_c in _a)) return [3 /*break*/, 3];
+ a = _c;
+ return [4 /*yield*/, searchAlgo.lookup(lookup[a], lookup.length > 1)];
+ case 2:
+ data = _d.sent();
+ if (!data)
+ return [2 /*return*/];
+ // Setup the data for tasks
+ console.log("Search for (Reaper/Slayer Assignment, Alias, or Creature): " + data.task);
+ tasks.push({ name: data.task, reaper: data.reaper });
+ _d.label = 3;
+ case 3:
+ _i++;
+ return [3 /*break*/, 1];
+ case 4:
+ if (!(tasks.length > 1)) return [3 /*break*/, 6];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.set.double({ name: tasks[0].name, count: 1 }, { name: tasks[1].name, count: 1 })];
+ case 5:
+ _d.sent();
+ return [3 /*break*/, 10];
+ case 6:
+ if (!(tasks.length == 1 && tasks[0].reaper)) return [3 /*break*/, 8];
+ return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.set.reaper({ name: tasks[0].name, count: 1 })];
+ case 7:
+ _d.sent();
+ return [3 /*break*/, 10];
+ case 8: return [4 /*yield*/, _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.set.single({ name: tasks[0].name, count: 1 })];
+ case 9:
+ _d.sent();
+ _d.label = 10;
+ case 10:
+ // Stop loading
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.animate.loadingStop();
+ if (!!_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.autoCapture.search) return [3 /*break*/, 12];
+ return [4 /*yield*/, timer(_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.autoCapture.searchTimer)];
+ case 11:
+ _d.sent();
+ searchResult = false;
+ _dochandler__WEBPACK_IMPORTED_MODULE_1__.main.toggle.searchText();
+ _d.label = 12;
+ case 12: return [2 /*return*/];
+ }
+ });
+ });
+}
+
+
+/***/ }),
+
+/***/ "./fonts/aa_10px_mono.fontmeta.json":
+/*!******************************************!*\
+ !*** ./fonts/aa_10px_mono.fontmeta.json ***!
+ \******************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+module.exports = __webpack_require__.p + "aa_10px_mono.fontmeta.json";
+
+/***/ }),
+
+/***/ "./fonts/aa_8px_mono.fontmeta.json":
+/*!*****************************************!*\
+ !*** ./fonts/aa_8px_mono.fontmeta.json ***!
+ \*****************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+module.exports = __webpack_require__.p + "aa_8px_mono.fontmeta.json";
+
+/***/ }),
+
+/***/ "canvas":
+/*!*************************!*\
+ !*** external "canvas" ***!
+ \*************************/
+/***/ ((module) => {
+
+"use strict";
+if(typeof __WEBPACK_EXTERNAL_MODULE_canvas__ === 'undefined') { var e = new Error("Cannot find module 'canvas'"); e.code = 'MODULE_NOT_FOUND'; throw e; }
+
+module.exports = __WEBPACK_EXTERNAL_MODULE_canvas__;
+
+/***/ }),
+
+/***/ "electron/common":
+/*!**********************************!*\
+ !*** external "electron/common" ***!
+ \**********************************/
+/***/ ((module) => {
+
+"use strict";
+if(typeof __WEBPACK_EXTERNAL_MODULE_electron_common__ === 'undefined') { var e = new Error("Cannot find module 'electron/common'"); e.code = 'MODULE_NOT_FOUND'; throw e; }
+
+module.exports = __WEBPACK_EXTERNAL_MODULE_electron_common__;
+
+/***/ }),
+
+/***/ "sharp":
+/*!************************!*\
+ !*** external "sharp" ***!
+ \************************/
+/***/ ((module) => {
+
+"use strict";
+if(typeof __WEBPACK_EXTERNAL_MODULE_sharp__ === 'undefined') { var e = new Error("Cannot find module 'sharp'"); e.code = 'MODULE_NOT_FOUND'; throw e; }
+
+module.exports = __WEBPACK_EXTERNAL_MODULE_sharp__;
+
+/***/ }),
+
+/***/ "../node_modules/alt1/dist/base/index.js":
+/*!***********************************************!*\
+ !*** ../node_modules/alt1/dist/base/index.js ***!
+ \***********************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(true)
+ module.exports = factory((function webpackLoadOptionalExternalModule() { try { return __webpack_require__(/*! sharp */ "sharp"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return __webpack_require__(/*! canvas */ "canvas"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return __webpack_require__(/*! electron/common */ "electron/common"); } catch(e) {} }()));
+ else {}
+})(globalThis, (__WEBPACK_EXTERNAL_MODULE_sharp__, __WEBPACK_EXTERNAL_MODULE_canvas__, __WEBPACK_EXTERNAL_MODULE_electron_common__) => {
+return /******/ (() => { // webpackBootstrap
+/******/ "use strict";
+/******/ var __webpack_modules__ = ({
+
+/***/ "./src/base/alt1api.ts":
+/*!*****************************!*\
+ !*** ./src/base/alt1api.ts ***!
+ \*****************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+
+
+/***/ }),
+
+/***/ "./src/base/declarations.ts":
+/*!**********************************!*\
+ !*** ./src/base/declarations.ts ***!
+ \**********************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+
+
+/***/ }),
+
+/***/ "./src/base/imagedata-extensions.ts":
+/*!******************************************!*\
+ !*** ./src/base/imagedata-extensions.ts ***!
+ \******************************************/
+/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_2062__) {
+
+
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.ImageData = void 0;
+const a1lib = __importStar(__nested_webpack_require_2062__(/*! ./index */ "./src/base/index.ts"));
+const nodeimports = __importStar(__nested_webpack_require_2062__(/*! ./nodepolyfill */ "./src/base/nodepolyfill.ts"));
+// //TODO revamp this madness a bit?
+// (function () {
+// var globalvar = (typeof self != "undefined" ? self : (typeof (global as any) != "undefined" ? (global as any) : null)) as any;
+// //use the node-canvas version when on node
+// if (typeof globalvar.ImageData == "undefined") {
+// let nodecnv = requireNodeCanvas();
+// globalvar.ImageData = nodecnv.ImageData;
+// }
+// var fill = typeof globalvar.ImageData == "undefined";
+// //should never be reach anymore
+// var constr = function (this: any) {
+// var i = 0;
+// var data = (arguments[i] instanceof Uint8ClampedArray ? arguments[i++] : null);
+// var width = arguments[i++];
+// var height = arguments[i++];
+// if (fill) {
+// if (!data) { data = new Uint8ClampedArray(width * height * 4); }
+// this.width = width;
+// this.height = height;
+// this.data = data;
+// }
+// else if (oldconstr) {
+// return (data ? new oldconstr(data, width, height) : new oldconstr(width, height));
+// } else {
+// var canvas = document.createElement('canvas');
+// canvas.width = width;
+// canvas.height = height;
+// var ctx = canvas.getContext("2d")!;
+// var imageData = ctx.createImageData(width, height);
+// if (data) { imageData.data.set(data); }
+// return imageData;
+// }
+// }
+// var oldconstr = globalvar.ImageData;
+// if (typeof document != "undefined") {
+// try {
+// new oldconstr(1, 1);
+// } catch (e) {
+// //direct constructor call not allowed in ie
+// oldconstr = null;
+// }
+// }
+// if (!fill) { constr.prototype = globalvar.ImageData.prototype; }
+// globalvar.ImageData = constr;
+// ImageData = constr as any;
+// })();
+(function () {
+ var globalvar = (typeof self != "undefined" ? self : (typeof __nested_webpack_require_2062__.g != "undefined" ? __nested_webpack_require_2062__.g : null));
+ var filltype = typeof globalvar.ImageData == "undefined" || typeof globalvar.document == "undefined";
+ var fillconstr = filltype;
+ if (!filltype) {
+ var oldconstr = globalvar.ImageData;
+ try {
+ let data = new Uint8ClampedArray(4);
+ data[0] = 1;
+ let a = new globalvar.ImageData(data, 1, 1);
+ fillconstr = a.data[0] != 1;
+ }
+ catch (e) {
+ fillconstr = true;
+ }
+ }
+ if (fillconstr) {
+ var constr = function ImageDataShim() {
+ var i = 0;
+ var data = (arguments[i] instanceof Uint8ClampedArray ? arguments[i++] : null);
+ var width = arguments[i++];
+ var height = arguments[i++];
+ if (filltype) {
+ if (!data) {
+ data = new Uint8ClampedArray(width * height * 4);
+ }
+ this.width = width;
+ this.height = height;
+ this.data = data;
+ }
+ else if (fillconstr) {
+ //WARNING This branch of code does not use the same pixel data backing store
+ //(problem with wasm, however all wasm browser have a native constructor (unless asm.js is used))
+ var canvas = document.createElement('canvas');
+ canvas.width = width;
+ canvas.height = height;
+ var ctx = canvas.getContext("2d");
+ var imageData = ctx.createImageData(width, height);
+ if (data) {
+ imageData.data.set(data);
+ }
+ return imageData;
+ }
+ // else {
+ // //oh no...
+ // //we need this monstrocity in order to call the native constructor with variable number of args
+ // //when es5 transpile is enable (that strips the spread operator)
+ // return new (Function.prototype.bind.apply(oldconstr, [null,...arguments]));
+ // }
+ };
+ if (!filltype) {
+ constr.prototype = globalvar.ImageData.prototype;
+ }
+ globalvar.ImageData = constr;
+ exports.ImageData = constr;
+ }
+ else {
+ exports.ImageData = globalvar.ImageData;
+ }
+})();
+//Recast into a drawable imagedata class on all platforms, into a normal browser ImageData on browsers or a node-canvas imagedata on nodejs
+exports.ImageData.prototype.toDrawableData = function () {
+ if (typeof document == "undefined") {
+ return nodeimports.imageDataToDrawable(this);
+ }
+ else {
+ return this;
+ }
+};
+exports.ImageData.prototype.putImageData = function (buf, cx, cy) {
+ for (var dx = 0; dx < buf.width; dx++) {
+ for (var dy = 0; dy < buf.height; dy++) {
+ var i1 = (dx + cx) * 4 + (dy + cy) * 4 * this.width;
+ var i2 = dx * 4 + dy * 4 * buf.width;
+ this.data[i1] = buf.data[i2];
+ this.data[i1 + 1] = buf.data[i2 + 1];
+ this.data[i1 + 2] = buf.data[i2 + 2];
+ this.data[i1 + 3] = buf.data[i2 + 3];
+ }
+ }
+};
+exports.ImageData.prototype.pixelOffset = function (x, y) {
+ return x * 4 + y * this.width * 4;
+};
+//creates a hash of a portion of the buffer used to check for changes
+exports.ImageData.prototype.getPixelHash = function (rect) {
+ if (!rect) {
+ rect = new a1lib.Rect(0, 0, this.width, this.height);
+ }
+ var hash = 0;
+ for (var x = rect.x; x < rect.x + rect.width; x++) {
+ for (var y = rect.y; y < rect.y + rect.height; y++) {
+ var i = x * 4 + y * 4 * this.width;
+ hash = (((hash << 5) - hash) + this.data[i]) | 0;
+ hash = (((hash << 5) - hash) + this.data[i + 1]) | 0;
+ hash = (((hash << 5) - hash) + this.data[i + 2]) | 0;
+ hash = (((hash << 5) - hash) + this.data[i + 3]) | 0;
+ }
+ }
+ return hash;
+};
+exports.ImageData.prototype.clone = function (rect) {
+ return this.toImage(rect).getContext("2d").getImageData(0, 0, rect.width, rect.height);
+};
+exports.ImageData.prototype.show = function (x = 5, y = 5, zoom = 1) {
+ if (typeof document == "undefined") {
+ console.error("need a document to show an imagedata object");
+ return;
+ }
+ var imgs = document.getElementsByClassName("debugimage");
+ while (imgs.length > exports.ImageData.prototype.show.maxImages) {
+ imgs[0].remove();
+ }
+ var el = this.toImage();
+ el.classList.add("debugimage");
+ el.style.position = "absolute";
+ el.style.zIndex = "1000";
+ el.style.left = x / zoom + "px";
+ el.style.top = y / zoom + "px";
+ el.style.background = "purple";
+ el.style.cursor = "pointer";
+ el.style.imageRendering = "pixelated";
+ el.style.outline = "1px solid #0f0";
+ el.style.width = (this.width == 1 ? 100 : this.width) * zoom + "px";
+ el.style.height = (this.height == 1 ? 100 : this.height) * zoom + "px";
+ el.onclick = function () { el.remove(); };
+ document.body.appendChild(el);
+ return el;
+};
+exports.ImageData.prototype.show.maxImages = 10;
+exports.ImageData.prototype.toImage = function (rect) {
+ if (!rect) {
+ rect = new a1lib.Rect(0, 0, this.width, this.height);
+ }
+ if (typeof document != "undefined") {
+ var el = document.createElement("canvas");
+ el.width = rect.width;
+ el.height = rect.height;
+ }
+ else {
+ el = nodeimports.createCanvas(rect.width, rect.height);
+ }
+ var ctx = el.getContext("2d");
+ ctx.putImageData(this.toDrawableData(), -rect.x, -rect.y);
+ return el;
+};
+exports.ImageData.prototype.getPixel = function (x, y) {
+ var i = x * 4 + y * 4 * this.width;
+ return [this.data[i], this.data[i + 1], this.data[i + 2], this.data[i + 3]];
+};
+exports.ImageData.prototype.getPixelValueSum = function (x, y) {
+ var i = x * 4 + y * 4 * this.width;
+ return this.data[i] + this.data[i + 1] + this.data[i + 2];
+};
+exports.ImageData.prototype.getPixelInt = function (x, y) {
+ var i = x * 4 + y * 4 * this.width;
+ return (this.data[i + 3] << 24) + (this.data[i + 0] << 16) + (this.data[i + 1] << 8) + (this.data[i + 2] << 0);
+};
+exports.ImageData.prototype.getColorDifference = function (x, y, r, g, b, a = 255) {
+ var i = x * 4 + y * 4 * this.width;
+ return Math.abs(this.data[i] - r) + Math.abs(this.data[i + 1] - g) + Math.abs(this.data[i + 2] - b) * a / 255;
+};
+exports.ImageData.prototype.setPixel = function (x, y, ...color) {
+ var r, g, b, a;
+ var [r, g, b, a] = (Array.isArray(color[0]) ? color[0] : color);
+ var i = x * 4 + y * 4 * this.width;
+ this.data[i] = r;
+ this.data[i + 1] = g;
+ this.data[i + 2] = b;
+ this.data[i + 3] = a == undefined ? 255 : a;
+};
+exports.ImageData.prototype.setPixelInt = function (x, y, color) {
+ var i = x * 4 + y * 4 * this.width;
+ this.data[i] = (color >> 24) & 0xff;
+ this.data[i + 1] = (color >> 16) & 0xff;
+ this.data[i + 2] = (color >> 8) & 0xff;
+ this.data[i + 3] = (color >> 0) & 0xff;
+};
+exports.ImageData.prototype.toFileBytes = function (format, quality) {
+ if (typeof HTMLCanvasElement != "undefined") {
+ return new Promise(d => this.toImage().toBlob(b => {
+ var r = new FileReader();
+ r.readAsArrayBuffer(b);
+ r.onload = () => d(new Uint8Array(r.result));
+ }, format, quality));
+ }
+ else {
+ return nodeimports.imageDataToFileBytes(this, format, quality);
+ }
+};
+exports.ImageData.prototype.toPngBase64 = function () {
+ if (typeof HTMLCanvasElement != "undefined") {
+ var str = this.toImage().toDataURL("image/png");
+ return str.slice(str.indexOf(",") + 1);
+ }
+ else {
+ throw new Error("synchronous image conversion not supported in nodejs, try using ImageData.prototype.toFileBytes");
+ }
+};
+exports.ImageData.prototype.pixelCompare = function (buf, x = 0, y = 0, max) {
+ return a1lib.ImageDetect.simpleCompare(this, buf, x, y, max);
+};
+exports.ImageData.prototype.copyTo = function (target, sourcex, sourcey, width, height, targetx, targety) {
+ //convince v8 that these are 31bit uints
+ const targetwidth = target.width | 0;
+ const thiswidth = this.width | 0;
+ const copywidth = width | 0;
+ const fastwidth = Math.floor(width / 4) * 4;
+ const thisdata = new Int32Array(this.data.buffer, this.data.byteOffset, this.data.byteLength / 4);
+ const targetdata = new Int32Array(target.data.buffer, target.data.byteOffset, target.data.byteLength / 4);
+ for (let cy = 0; cy < height; cy++) {
+ let cx = 0;
+ let it = (cx + targetx) + (cy + targety) * targetwidth;
+ let is = (cx + sourcex) + (cy + sourcey) * thiswidth;
+ //copy 4 pixels per iter (xmm)
+ for (; cx < fastwidth; cx += 4) {
+ targetdata[it] = thisdata[is];
+ targetdata[it + 1] = thisdata[is + 1];
+ targetdata[it + 2] = thisdata[is + 2];
+ targetdata[it + 3] = thisdata[is + 3];
+ it += 4;
+ is += 4;
+ }
+ //copy remainder per pixel
+ for (; cx < copywidth; cx++) {
+ targetdata[it] = thisdata[is];
+ it += 1;
+ is += 1;
+ }
+ }
+};
+if (typeof HTMLImageElement != "undefined") {
+ HTMLImageElement.prototype.toBuffer = function (x = 0, y = 0, w = this.width, h = this.height) {
+ var cnv = document.createElement("canvas");
+ cnv.width = w;
+ cnv.height = h;
+ var ctx = cnv.getContext("2d");
+ ctx.drawImage(this, -x, -y);
+ return ctx.getImageData(0, 0, w, h);
+ };
+ HTMLImageElement.prototype.toCanvas = function (x = 0, y = 0, w = this.width, h = this.height) {
+ var cnv = document.createElement("canvas");
+ cnv.width = w;
+ cnv.height = h;
+ var ctx = cnv.getContext("2d");
+ ctx.drawImage(this, -x, -y);
+ return cnv;
+ };
+}
+
+
+/***/ }),
+
+/***/ "./src/base/imagedetect.ts":
+/*!*********************************!*\
+ !*** ./src/base/imagedetect.ts ***!
+ \*********************************/
+/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_15248__) {
+
+
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.ImageDataSet = exports.webpackImages = exports.asyncMap = exports.coldif = exports.simpleCompareRMSE = exports.simpleCompare = exports.findSubbuffer = exports.findSubimage = exports.clearPngColorspace = exports.isPngBuffer = exports.imageDataFromFileBuffer = exports.imageDataFromBase64 = exports.imageDataFromUrl = void 0;
+const imgref_1 = __nested_webpack_require_15248__(/*! ./imgref */ "./src/base/imgref.ts");
+const wapper = __importStar(__nested_webpack_require_15248__(/*! ./wrapper */ "./src/base/wrapper.ts"));
+const nodeimports = __importStar(__nested_webpack_require_15248__(/*! ./nodepolyfill */ "./src/base/nodepolyfill.ts"));
+const _1 = __nested_webpack_require_15248__(/*! . */ "./src/base/index.ts");
+/**
+* Downloads an image and returns the ImageData
+* Make sure the png image does not have a sRGB chunk or the resulting pixels will differ for different users!!!
+* @param url http(s) or data url to the image
+*/
+async function imageDataFromUrl(url) {
+ if (typeof Image != "undefined") {
+ var img = new Image();
+ img.crossOrigin = "crossorigin";
+ return await new Promise((done, fail) => {
+ img.onload = function () { done(img.toBuffer()); };
+ img.onerror = fail;
+ img.src = url;
+ });
+ }
+ else {
+ var hdr = "data:image/png;base64,";
+ if (url.startsWith(hdr)) {
+ return imageDataFromBase64(url.slice(hdr.length));
+ }
+ throw new Error("loading remote images in nodejs has been disabled, load the raw bytes and use imageDataFromNodeBuffer instead");
+ }
+}
+exports.imageDataFromUrl = imageDataFromUrl;
+/**
+* Loads an ImageData object from a base64 encoded png image
+* Make sure the png image does not have a sRGB chunk or the resulting pixels will differ for different users!!!
+* @param data a base64 encoded png image
+*/
+async function imageDataFromBase64(data) {
+ if (typeof Image != "undefined") {
+ return imageDataFromUrl("data:image/png;base64," + data);
+ }
+ else {
+ return nodeimports.imageDataFromBase64(data);
+ }
+}
+exports.imageDataFromBase64 = imageDataFromBase64;
+/**
+ * Loads an ImageData object directly from a png encoded file buffer
+ * This method ensures that png color space headers are taken care off
+ * @param data The bytes of a png file
+ */
+async function imageDataFromFileBuffer(data) {
+ clearPngColorspace(data);
+ if (typeof Image != "undefined") {
+ let blob = new Blob([data], { type: "image/png" });
+ let url = URL.createObjectURL(blob);
+ let r = await imageDataFromUrl(url);
+ URL.revokeObjectURL(url);
+ return r;
+ }
+ else {
+ return nodeimports.imageDataFromBuffer(data);
+ }
+}
+exports.imageDataFromFileBuffer = imageDataFromFileBuffer;
+/**
+* Checks if a given byte array is a png file (by checking for ?PNG as first 4 bytes)
+* @param bytes Raw bytes of the png file
+*/
+function isPngBuffer(bytes) {
+ return bytes[0] == 137 && bytes[1] == 80 && bytes[2] == 78 && bytes[3] == 71;
+}
+exports.isPngBuffer = isPngBuffer;
+/**
+* Resets the colorspace data in the png file.
+* This makes sure the browser renders the exact colors in the file instead of filtering it in order to obtain the best real life representation of
+* what it looked like on the authors screen. (this feature is often broken and not supported)
+* For example a round trip printscreen -> open in browser results in different colors than the original
+* @param data Raw bytes of the png file
+*/
+function clearPngColorspace(data) {
+ if (!isPngBuffer(data)) {
+ throw new Error("non-png image received");
+ }
+ var i = 8;
+ while (i < data.length) {
+ var length = data[i++] * 0x1000000 + data[i++] * 0x10000 + data[i++] * 0x100 + data[i++];
+ var ancillary = !!((data[i] >> 5) & 1);
+ var chunkname = String.fromCharCode(data[i], data[i + 1], data[i + 2], data[i + 3]);
+ var chunkid = chunkname.toLowerCase();
+ if (chunkid != "trns" && ancillary) {
+ data[i + 0] = "n".charCodeAt(0);
+ data[i + 1] = "o".charCodeAt(0);
+ data[i + 2] = "P".charCodeAt(0);
+ data[i + 3] = "E".charCodeAt(0);
+ //calculate new chunk checksum
+ //http://www.libpng.org/pub/png/spec/1.2/PNG-CRCAppendix.html
+ var end = i + 4 + length;
+ var crc = 0xffffffff;
+ //should be fast enough like this
+ var bitcrc = function (bit) {
+ for (var k = 0; k < 8; k++) {
+ if (bit & 1) {
+ bit = 0xedb88320 ^ (bit >>> 1);
+ }
+ else {
+ bit = bit >>> 1;
+ }
+ }
+ return bit;
+ };
+ for (var a = i; a < end; a++) {
+ if (a >= i + 4) {
+ data[a] = 0;
+ }
+ var bit = data[a];
+ crc = bitcrc((crc ^ bit) & 0xff) ^ (crc >>> 8);
+ }
+ crc = crc ^ 0xffffffff;
+ //new chunk checksum
+ data[i + 4 + length + 0] = (crc >> 24) & 0xff;
+ data[i + 4 + length + 1] = (crc >> 16) & 0xff;
+ data[i + 4 + length + 2] = (crc >> 8) & 0xff;
+ data[i + 4 + length + 3] = (crc >> 0) & 0xff;
+ }
+ if (chunkname == "IEND") {
+ break;
+ }
+ i += 4; //type
+ i += length; //data
+ i += 4; //crc
+ }
+}
+exports.clearPngColorspace = clearPngColorspace;
+/**
+* finds the given needle ImageBuffer in the given haystack ImgRef this function uses the best optimized available
+* code depending on the type of the haystack. It will use fast c# searching if the haystack is an ImgRefBind, js searching
+* is used otherwise.
+* the checklist argument is no longer used and should ignored or null/undefined
+* The optional sx,sy,sw,sh arguments indicate a bounding rectangle in which to search the needle. The rectangle should be bigger than the needle
+* @returns An array of points where the needle is found. The array is empty if none are found
+*/
+function findSubimage(haystackImgref, needleBuffer, sx = 0, sy = 0, sw = haystackImgref.width, sh = haystackImgref.height) {
+ if (!haystackImgref) {
+ throw new TypeError();
+ }
+ if (!needleBuffer) {
+ throw new TypeError();
+ }
+ var max = 30;
+ //check if we can do this in alt1
+ if (haystackImgref instanceof imgref_1.ImgRefBind && wapper.hasAlt1 && alt1.bindFindSubImg) {
+ var needlestr = wapper.encodeImageString(needleBuffer);
+ var r = alt1.bindFindSubImg(haystackImgref.handle, needlestr, needleBuffer.width, sx, sy, sw, sh);
+ if (!r) {
+ throw new wapper.Alt1Error();
+ }
+ return JSON.parse(r);
+ }
+ return findSubbuffer(haystackImgref.read(), needleBuffer, sx, sy, sw, sh);
+}
+exports.findSubimage = findSubimage;
+/**
+* Uses js to find the given needle ImageBuffer in the given haystack ImageBuffer. It is better to use the alt1.bind- functions in
+* combination with a1nxt.findsubimg.
+* the optional sx,sy,sw,sh arguments indicate a bounding rectangle in which to search.
+* @returns An array of points where the needle is found. The array is empty if none are found
+*/
+function findSubbuffer(haystack, needle, sx = 0, sy = 0, sw = haystack.width, sh = haystack.height) {
+ var r = [];
+ var maxdif = 30;
+ var maxresults = 50;
+ var needlestride = needle.width * 4;
+ var heystackstride = haystack.width * 4;
+ //built list of non trans pixel to check
+ var checkList = [];
+ for (var y = 0; y < needle.height; y++) {
+ for (var x = 0; x < needle.width; x++) {
+ var i = x * 4 + y * needlestride;
+ if (needle.data[i + 3] == 255) {
+ checkList.push({ x: x, y: y });
+ }
+ if (checkList.length == 10) {
+ break;
+ }
+ }
+ if (checkList.length == 10) {
+ break;
+ }
+ }
+ var cw = (sx + sw) - needle.width;
+ var ch = (sy + sh) - needle.height;
+ var checklength = checkList.length;
+ for (var y = sy; y <= ch; y++) {
+ outer: for (var x = sx; x <= cw; x++) {
+ for (var a = 0; a < checklength; a++) {
+ var i1 = (x + checkList[a].x) * 4 + (y + checkList[a].y) * heystackstride;
+ var i2 = checkList[a].x * 4 + checkList[a].y * needlestride;
+ var d = 0;
+ d = d + Math.abs(haystack.data[i1 + 0] - needle.data[i2 + 0]) | 0;
+ d = d + Math.abs(haystack.data[i1 + 1] - needle.data[i2 + 1]) | 0;
+ d = d + Math.abs(haystack.data[i1 + 2] - needle.data[i2 + 2]) | 0;
+ d *= 255 / needle.data[i2 + 3];
+ if (d > maxdif) {
+ continue outer;
+ }
+ }
+ if (simpleCompare(haystack, needle, x, y, maxdif) != Infinity) {
+ r.push({ x, y });
+ if (r.length > maxresults) {
+ return r;
+ }
+ }
+ }
+ }
+ return r;
+}
+exports.findSubbuffer = findSubbuffer;
+/**
+* Compares two images and returns the average color difference per pixel between them
+* @param max The max color difference at any point in the image before short circuiting the function and returning Infinity. set to -1 to always continue.
+* @returns The average color difference per pixel or Infinity if the difference is more than max at any point in the image
+*/
+function simpleCompare(bigbuf, checkbuf, x, y, max = 30) {
+ if (x < 0 || y < 0) {
+ throw new RangeError();
+ }
+ if (x + checkbuf.width > bigbuf.width || y + checkbuf.height > bigbuf.height) {
+ throw new RangeError();
+ }
+ if (max == -1) {
+ max = 255 * 4;
+ }
+ var dif = 0;
+ for (var step = 8; step >= 1; step /= 2) {
+ for (var cx = 0; cx < checkbuf.width; cx += step) {
+ for (var cy = 0; cy < checkbuf.height; cy += step) {
+ var i1 = (x + cx) * 4 + (y + cy) * bigbuf.width * 4;
+ var i2 = cx * 4 + cy * checkbuf.width * 4;
+ var d = 0;
+ d = d + Math.abs(bigbuf.data[i1 + 0] - checkbuf.data[i2 + 0]) | 0;
+ d = d + Math.abs(bigbuf.data[i1 + 1] - checkbuf.data[i2 + 1]) | 0;
+ d = d + Math.abs(bigbuf.data[i1 + 2] - checkbuf.data[i2 + 2]) | 0;
+ d *= checkbuf.data[i2 + 3] / 255;
+ if (step == 1) {
+ dif += d;
+ }
+ if (d > max) {
+ return Infinity;
+ }
+ }
+ }
+ }
+ return dif / checkbuf.width / checkbuf.height;
+}
+exports.simpleCompare = simpleCompare;
+/**
+* Calculates the root mean square error between the two buffers at the given coordinate, this method can be used in situations with significant blur or
+* transparency, it does not bail early on non-matching images like simpleCompare does so it can be expected to be much slower when called often.
+* @returns The root mean square error beteen the images, high single pixel errors are penalized more than consisten low errors. return of 0 means perfect match.
+*/
+function simpleCompareRMSE(bigbuf, checkbuf, x, y) {
+ if (x < 0 || y < 0) {
+ throw new RangeError();
+ }
+ if (x + checkbuf.width > bigbuf.width || y + checkbuf.height > bigbuf.height) {
+ throw new RangeError();
+ }
+ var dif = 0;
+ var numpix = 0;
+ for (var cx = 0; cx < checkbuf.width; cx++) {
+ for (var cy = 0; cy < checkbuf.height; cy++) {
+ var i1 = (x + cx) * 4 + (y + cy) * bigbuf.width * 4;
+ var i2 = cx * 4 + cy * checkbuf.width * 4;
+ var d = 0;
+ d = d + Math.abs(bigbuf.data[i1 + 0] - checkbuf.data[i2 + 0]) | 0;
+ d = d + Math.abs(bigbuf.data[i1 + 1] - checkbuf.data[i2 + 1]) | 0;
+ d = d + Math.abs(bigbuf.data[i1 + 2] - checkbuf.data[i2 + 2]) | 0;
+ var weight = checkbuf.data[i2 + 3] / 255;
+ numpix += weight;
+ dif += d * d * weight;
+ }
+ }
+ return Math.sqrt(dif / numpix);
+}
+exports.simpleCompareRMSE = simpleCompareRMSE;
+/**
+* Returns the difference between two colors (scaled to the alpha of the second color)
+*/
+function coldif(r1, g1, b1, r2, g2, b2, a2) {
+ return (Math.abs(r1 - r2) + Math.abs(g1 - g2) + Math.abs(b1 - b2)) * a2 / 255; //only applies alpha for 2nd buffer!
+}
+exports.coldif = coldif;
+/**
+ * Turns map of promises into a map that contains the resolved values after loading.
+ * @param input
+ */
+function asyncMap(input) {
+ var raw = {};
+ var promises = [];
+ for (var a in input) {
+ if (input.hasOwnProperty(a)) {
+ raw[a] = null;
+ promises.push(input[a].then(function (a, i) { raw[a] = i; r[a] = i; }.bind(null, a)));
+ }
+ }
+ var r = {};
+ var promise = Promise.all(promises).then(() => { r.loaded = true; return r; });
+ Object.defineProperty(r, "loaded", { enumerable: false, value: false, writable: true });
+ Object.defineProperty(r, "promise", { enumerable: false, value: promise });
+ Object.defineProperty(r, "raw", { enumerable: false, value: raw });
+ return Object.assign(r, raw);
+}
+exports.asyncMap = asyncMap;
+/**
+* Same as asyncMap, but casts the properties to ImageData in typescript
+*/
+function webpackImages(input) {
+ return asyncMap(input);
+}
+exports.webpackImages = webpackImages;
+class ImageDataSet {
+ constructor() {
+ this.buffers = [];
+ }
+ matchBest(img, x, y, max) {
+ let best = null;
+ let bestscore = max;
+ for (let a = 0; a < this.buffers.length; a++) {
+ let score = img.pixelCompare(this.buffers[a], x, y, bestscore);
+ if (isFinite(score) && (bestscore == undefined || score < bestscore)) {
+ bestscore = score;
+ best = a;
+ }
+ }
+ if (best == null) {
+ return null;
+ }
+ return { index: best, score: bestscore };
+ }
+ static fromFilmStrip(baseimg, width) {
+ if ((baseimg.width % width) != 0) {
+ throw new Error("slice size does not fit in base img");
+ }
+ let r = new ImageDataSet();
+ for (let x = 0; x < baseimg.width; x += width) {
+ r.buffers.push(baseimg.clone(new _1.Rect(x, 0, width, baseimg.height)));
+ }
+ return r;
+ }
+ static fromFilmStripUneven(baseimg, widths) {
+ let r = new ImageDataSet();
+ let x = 0;
+ for (let w of widths) {
+ r.buffers.push(baseimg.clone(new _1.Rect(x, 0, w, baseimg.height)));
+ x += w;
+ if (x > baseimg.width) {
+ throw new Error("sampling filmstrip outside bounds");
+ }
+ }
+ if (x != baseimg.width) {
+ throw new Error("unconsumed pixels left in film strip imagedata");
+ }
+ return r;
+ }
+ static fromAtlas(baseimg, slices) {
+ let r = new ImageDataSet();
+ for (let slice of slices) {
+ r.buffers.push(baseimg.clone(slice));
+ }
+ return r;
+ }
+}
+exports.ImageDataSet = ImageDataSet;
+
+
+/***/ }),
+
+/***/ "./src/base/imgref.ts":
+/*!****************************!*\
+ !*** ./src/base/imgref.ts ***!
+ \****************************/
+/***/ ((__unused_webpack_module, exports, __nested_webpack_require_31629__) => {
+
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.ImgRefData = exports.ImgRefBind = exports.ImgRefCtx = exports.ImgRef = void 0;
+const index_1 = __nested_webpack_require_31629__(/*! ./index */ "./src/base/index.ts");
+/**
+ * Represents an image that might be in different types of memory
+ * This is mostly used to represent images still in Alt1 memory that have
+ * not been transfered to js yet. Various a1lib api's use this type and
+ * choose the most efficient approach based on the memory type
+ */
+class ImgRef {
+ constructor(x, y, w, h) {
+ this.t = "none";
+ this.x = x;
+ this.y = y;
+ this.width = w;
+ this.height = h;
+ }
+ read(x = 0, y = 0, w = this.width, h = this.height) {
+ throw new Error("This imgref (" + this.t + ") does not support toData");
+ }
+ findSubimage(needle, sx = 0, sy = 0, w = this.width, h = this.height) {
+ return index_1.ImageDetect.findSubimage(this, needle, sx, sy, w, h);
+ }
+ toData(x = this.x, y = this.y, w = this.width, h = this.height) {
+ return this.read(x - this.x, y - this.y, w, h);
+ }
+ ;
+ containsArea(rect) {
+ return this.x <= rect.x && this.y <= rect.y && this.x + this.width >= rect.x + rect.width && this.y + this.height >= rect.y + rect.height;
+ }
+}
+exports.ImgRef = ImgRef;
+/**
+ * Represents an image in js render memory (canvas/image tag)
+ */
+class ImgRefCtx extends ImgRef {
+ constructor(img, x = 0, y = 0) {
+ if (img instanceof CanvasRenderingContext2D) {
+ super(x, y, img.canvas.width, img.canvas.height);
+ this.ctx = img;
+ }
+ else {
+ super(x, y, img.width, img.height);
+ var cnv = (img instanceof HTMLCanvasElement ? img : img.toCanvas());
+ this.ctx = cnv.getContext("2d");
+ }
+ this.t = "ctx";
+ }
+ read(x = 0, y = 0, w = this.width, h = this.height) {
+ return this.ctx.getImageData(x, y, w, h);
+ }
+}
+exports.ImgRefCtx = ImgRefCtx;
+/**
+ * Represents in image in Alt1 memory, This type of image can be searched for subimages
+ * very efficiently and transfering the full image to js can be avoided this way
+ */
+class ImgRefBind extends ImgRef {
+ constructor(handle, x = 0, y = 0, w = 0, h = 0) {
+ super(x, y, w, h);
+ this.handle = handle;
+ this.t = "bind";
+ }
+ read(x = 0, y = 0, w = this.width, h = this.height) {
+ return (0, index_1.transferImageData)(this.handle, x, y, w, h);
+ }
+}
+exports.ImgRefBind = ImgRefBind;
+/**
+ * Represents an image in js memory
+ */
+class ImgRefData extends ImgRef {
+ constructor(buf, x = 0, y = 0) {
+ super(x, y, buf.width, buf.height);
+ this.buf = buf;
+ this.t = "data";
+ }
+ read(x = 0, y = 0, w = this.width, h = this.height) {
+ if (x == 0 && y == 0 && w == this.width && h == this.height) {
+ return this.buf;
+ }
+ var r = new ImageData(w, h);
+ for (var b = y; b < y + h; b++) {
+ for (var a = x; a < x + w; a++) {
+ var i1 = (a - x) * 4 + (b - y) * w * 4;
+ var i2 = a * 4 + b * 4 * this.buf.width;
+ r.data[i1] = this.buf.data[i2];
+ r.data[i1 + 1] = this.buf.data[i2 + 1];
+ r.data[i1 + 2] = this.buf.data[i2 + 2];
+ r.data[i1 + 3] = this.buf.data[i2 + 3];
+ }
+ }
+ return r;
+ }
+}
+exports.ImgRefData = ImgRefData;
+
+
+/***/ }),
+
+/***/ "./src/base/index.ts":
+/*!***************************!*\
+ !*** ./src/base/index.ts ***!
+ \***************************/
+/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_35283__) {
+
+
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.ImageDataSet = exports.findSubbuffer = exports.simpleCompare = exports.findSubimage = exports.webpackImages = exports.NodePolyfill = exports.ImageData = exports.Rect = exports.PasteInput = exports.ImageDetect = void 0;
+__nested_webpack_require_35283__(/*! ./declarations */ "./src/base/declarations.ts");
+exports.ImageDetect = __importStar(__nested_webpack_require_35283__(/*! ./imagedetect */ "./src/base/imagedetect.ts"));
+exports.PasteInput = __importStar(__nested_webpack_require_35283__(/*! ./pasteinput */ "./src/base/pasteinput.ts"));
+var rect_1 = __nested_webpack_require_35283__(/*! ./rect */ "./src/base/rect.ts");
+Object.defineProperty(exports, "Rect", ({ enumerable: true, get: function () { return __importDefault(rect_1).default; } }));
+var imagedata_extensions_1 = __nested_webpack_require_35283__(/*! ./imagedata-extensions */ "./src/base/imagedata-extensions.ts");
+Object.defineProperty(exports, "ImageData", ({ enumerable: true, get: function () { return imagedata_extensions_1.ImageData; } }));
+exports.NodePolyfill = __importStar(__nested_webpack_require_35283__(/*! ./nodepolyfill */ "./src/base/nodepolyfill.ts"));
+__exportStar(__nested_webpack_require_35283__(/*! ./imgref */ "./src/base/imgref.ts"), exports);
+__exportStar(__nested_webpack_require_35283__(/*! ./wrapper */ "./src/base/wrapper.ts"), exports);
+var imagedetect_1 = __nested_webpack_require_35283__(/*! ./imagedetect */ "./src/base/imagedetect.ts");
+Object.defineProperty(exports, "webpackImages", ({ enumerable: true, get: function () { return imagedetect_1.webpackImages; } }));
+Object.defineProperty(exports, "findSubimage", ({ enumerable: true, get: function () { return imagedetect_1.findSubimage; } }));
+Object.defineProperty(exports, "simpleCompare", ({ enumerable: true, get: function () { return imagedetect_1.simpleCompare; } }));
+Object.defineProperty(exports, "findSubbuffer", ({ enumerable: true, get: function () { return imagedetect_1.findSubbuffer; } }));
+Object.defineProperty(exports, "ImageDataSet", ({ enumerable: true, get: function () { return imagedetect_1.ImageDataSet; } }));
+
+
+/***/ }),
+
+/***/ "./src/base/nodepolyfill.ts":
+/*!**********************************!*\
+ !*** ./src/base/nodepolyfill.ts ***!
+ \**********************************/
+/***/ ((__unused_webpack_module, exports, __nested_webpack_require_38931__) => {
+
+
+//nodejs and electron polyfills for web api's
+//commented out type info as that breaks webpack with optional dependencies
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.imageDataFromBuffer = exports.imageDataFromBase64 = exports.imageDataToFileBytes = exports.createCanvas = exports.imageDataToDrawable = exports.requireElectronCommon = exports.requireNodeCanvas = exports.requireSharp = exports.polyfillRequire = void 0;
+const index_1 = __nested_webpack_require_38931__(/*! ./index */ "./src/base/index.ts");
+const imagedetect_1 = __nested_webpack_require_38931__(/*! ./imagedetect */ "./src/base/imagedetect.ts");
+var requirefunction = null;
+/**
+ * Call this function to let the libs require extra dependencies on nodejs in order
+ * to polyfill some browser api's (mostly image compression/decompression)
+ * `NodePolifill.polyfillRequire(require);` should solve most cases
+ */
+function polyfillRequire(requirefn) {
+ requirefunction = requirefn;
+}
+exports.polyfillRequire = polyfillRequire;
+function requireSharp() {
+ try {
+ if (requirefunction) {
+ return requirefunction("sharp");
+ }
+ else {
+ return __nested_webpack_require_38931__(/* webpackIgnore: true */ /*! sharp */ "sharp"); // as typeof import("sharp");
+ }
+ }
+ catch (e) { }
+ return null;
+}
+exports.requireSharp = requireSharp;
+function requireNodeCanvas() {
+ //attempt to require sharp first, after loading canvas the module sharp fails to load
+ requireSharp();
+ try {
+ if (requirefunction) {
+ return requirefunction("canvas");
+ }
+ else {
+ return __nested_webpack_require_38931__(/* webpackIgnore: true */ /*! canvas */ "canvas"); // as typeof import("sharp");
+ }
+ }
+ catch (e) { }
+ return null;
+}
+exports.requireNodeCanvas = requireNodeCanvas;
+function requireElectronCommon() {
+ try {
+ if (requirefunction) {
+ return requirefunction("electron/common");
+ }
+ else {
+ return __nested_webpack_require_38931__(/* webpackIgnore: true */ /*! electron/common */ "electron/common");
+ }
+ }
+ catch (e) { }
+ return null;
+}
+exports.requireElectronCommon = requireElectronCommon;
+function imageDataToDrawable(buf) {
+ let nodecnv = requireNodeCanvas();
+ if (!nodecnv) {
+ throw new Error("couldn't find built-in canvas or the module 'canvas'");
+ }
+ return new nodecnv.ImageData(buf.data, buf.width, buf.height);
+}
+exports.imageDataToDrawable = imageDataToDrawable;
+function createCanvas(w, h) {
+ let nodecnv = requireNodeCanvas();
+ if (!nodecnv) {
+ throw new Error("couldn't find built-in canvas or the module 'canvas'");
+ }
+ return nodecnv.createCanvas(w, h);
+}
+exports.createCanvas = createCanvas;
+function flipBGRAtoRGBA(data) {
+ for (let i = 0; i < data.length; i += 4) {
+ let tmp = data[i + 2];
+ data[i + 2] = data[i + 0];
+ data[i + 0] = tmp;
+ }
+}
+async function imageDataToFileBytes(buf, format, quality) {
+ //use the electron API if we're in electron
+ var electronCommon;
+ var sharp;
+ if (electronCommon = requireElectronCommon()) {
+ let nativeImage = electronCommon.nativeImage;
+ //need to copy the buffer in order to flip it without destroying the original
+ let bufcpy = Buffer.from(buf.data.slice(buf.data.byteOffset, buf.data.byteLength));
+ flipBGRAtoRGBA(bufcpy);
+ let nativeimg = nativeImage.createFromBitmap(bufcpy, { width: buf.width, height: buf.height });
+ return nativeimg.toPNG();
+ }
+ else if (sharp = requireSharp()) {
+ let img = sharp(Buffer.from(buf.data.buffer), { raw: { width: buf.width, height: buf.height, channels: 4 } });
+ if (format == "image/png") {
+ img.png();
+ }
+ else if (format == "image/webp") {
+ var opts = { quality: 80 };
+ if (typeof quality == "number") {
+ opts.quality = quality * 100;
+ }
+ img.webp(opts);
+ }
+ else {
+ throw new Error("unknown image format: " + format);
+ }
+ return await img.toBuffer({ resolveWithObject: false }).buffer;
+ }
+ throw new Error("coulnd't find build-in image compression methods or the module 'electron/common' or 'sharp'");
+}
+exports.imageDataToFileBytes = imageDataToFileBytes;
+function imageDataFromBase64(base64) {
+ return imageDataFromBuffer(Buffer.from(base64, "base64"));
+}
+exports.imageDataFromBase64 = imageDataFromBase64;
+async function imageDataFromBuffer(buffer) {
+ (0, imagedetect_1.clearPngColorspace)(buffer);
+ //use the electron API if we're in electron
+ var electronCommon;
+ var nodecnv;
+ if (electronCommon = requireElectronCommon()) {
+ let nativeImage = electronCommon.nativeImage;
+ let img = nativeImage.createFromBuffer(buffer);
+ let pixels = img.toBitmap();
+ let size = img.getSize();
+ let pixbuf = new Uint8ClampedArray(pixels.buffer, pixels.byteOffset, pixels.byteLength);
+ flipBGRAtoRGBA(pixbuf);
+ return new index_1.ImageData(pixbuf, size.width, size.height);
+ }
+ else if (nodecnv = requireNodeCanvas()) {
+ return new Promise((done, err) => {
+ let img = new nodecnv.Image();
+ img.onerror = err;
+ img.onload = () => {
+ var cnv = nodecnv.createCanvas(img.naturalWidth, img.naturalHeight);
+ var ctx = cnv.getContext("2d");
+ ctx.drawImage(img, 0, 0);
+ var data = ctx.getImageData(0, 0, img.naturalWidth, img.naturalHeight);
+ //use our own class
+ done(new index_1.ImageData(data.data, data.width, data.height));
+ };
+ img.src = Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength);
+ });
+ }
+ throw new Error("couldn't find built-in canvas, module 'electron/common' or the module 'canvas'");
+}
+exports.imageDataFromBuffer = imageDataFromBuffer;
+
+
+/***/ }),
+
+/***/ "./src/base/pasteinput.ts":
+/*!********************************!*\
+ !*** ./src/base/pasteinput.ts ***!
+ \********************************/
+/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_45123__) {
+
+
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.fileDialog = exports.start = exports.startDragNDrop = exports.triggerPaste = exports.unlisten = exports.listen = exports.lastref = void 0;
+const index_1 = __nested_webpack_require_45123__(/*! ./index */ "./src/base/index.ts");
+const ImageDetect = __importStar(__nested_webpack_require_45123__(/*! ./imagedetect */ "./src/base/imagedetect.ts"));
+var listeners = [];
+var started = false;
+var dndStarted = false;
+var pasting = false;
+exports.lastref = null;
+function listen(func, errorfunc, dragndrop) {
+ listeners.push({ cb: func, error: errorfunc });
+ if (!started) {
+ start();
+ }
+ if (dragndrop && !dndStarted) {
+ startDragNDrop();
+ }
+}
+exports.listen = listen;
+function unlisten(func) {
+ let i = listeners.findIndex(c => c.cb == func);
+ if (i != -1) {
+ listeners.splice(i, 1);
+ }
+}
+exports.unlisten = unlisten;
+/**
+ * currently used in multiple document situations (iframe), might be removed in the future
+ */
+function triggerPaste(img) {
+ exports.lastref = img;
+ for (var a in listeners) {
+ listeners[a].cb(exports.lastref);
+ }
+}
+exports.triggerPaste = triggerPaste;
+function pasted(img) {
+ pasting = false;
+ let cnv = img instanceof HTMLCanvasElement ? img : img.toCanvas();
+ triggerPaste(new index_1.ImgRefCtx(cnv));
+}
+function error(error, mes) {
+ var _a, _b;
+ pasting = false;
+ for (var a in listeners) {
+ (_b = (_a = listeners[a]).error) === null || _b === void 0 ? void 0 : _b.call(_a, mes, error);
+ }
+}
+function startDragNDrop() {
+ var getitem = function (items) {
+ var foundimage = "";
+ for (var a = 0; a < items.length; a++) {
+ var item = items[a];
+ var m = item.type.match(/^image\/(\w+)$/);
+ if (m) {
+ if (m[1] == "png") {
+ return item;
+ }
+ else {
+ foundimage = m[1];
+ }
+ }
+ }
+ if (foundimage) {
+ error("notpng", "The image you uploaded is not a .png image. Other image type have compression noise and can't be used for image detection.");
+ }
+ return null;
+ };
+ window.addEventListener("dragover", function (e) {
+ e.preventDefault();
+ });
+ window.addEventListener("drop", function (e) {
+ if (!e.dataTransfer) {
+ return;
+ }
+ var item = getitem(e.dataTransfer.items);
+ e.preventDefault();
+ if (!item) {
+ return;
+ }
+ fromFile(item.getAsFile());
+ });
+}
+exports.startDragNDrop = startDragNDrop;
+function start() {
+ if (started) {
+ return;
+ }
+ started = true;
+ //determine if we have a clipboard api
+ //try{a=new Event("clipboard"); a="clipboardData" in a;}
+ //catch(e){a=false;}
+ var ischrome = !!navigator.userAgent.match(/Chrome/) && !navigator.userAgent.match(/Edge/);
+ //old method breaks after chrome 41, revert to good old user agent sniffing
+ //nvm, internet explorer (edge) decided that it wants to be chrome, however fails at delivering
+ //turns out this one is interesting, edge is a hybrid between the paste api's
+ var apipasted = function (e) {
+ if (!e.clipboardData) {
+ return;
+ }
+ for (var a = 0; a < e.clipboardData.items.length; a++) { //loop all data types
+ if (e.clipboardData.items[a].type.indexOf("image") != -1) {
+ var file = e.clipboardData.items[a].getAsFile();
+ if (file) {
+ var img = new Image();
+ img.src = (window.URL || window.webkitURL).createObjectURL(file);
+ if (img.width > 0) {
+ pasted(img);
+ }
+ else {
+ img.onload = function () { pasted(img); };
+ }
+ }
+ }
+ }
+ };
+ if (ischrome) {
+ document.addEventListener("paste", apipasted);
+ }
+ else {
+ var catcher = document.createElement("div");
+ catcher.setAttribute("contenteditable", "");
+ catcher.className = "forcehidden"; //retarded ie safety/bug, cant apply styles using js//TODO i don't even know what's going on
+ catcher.onpaste = function (e) {
+ if (e.clipboardData && e.clipboardData.items) {
+ apipasted(e);
+ return;
+ }
+ setTimeout(function () {
+ var b = catcher.children[0];
+ if (!b || b.tagName != "IMG") {
+ return;
+ }
+ var img = new Image();
+ img.src = b.src;
+ var a = img.src.match(/^data:([\w\/]+);/);
+ if (img.width > 0) {
+ pasted(img);
+ }
+ else {
+ img.onload = function () { pasted(img); };
+ }
+ catcher.innerHTML = "";
+ }, 1);
+ };
+ document.body.appendChild(catcher);
+ }
+ //detect if ctrl-v is pressed and focus catcher if needed
+ document.addEventListener("keydown", function (e) {
+ if (e.target.tagName == "INPUT") {
+ return;
+ }
+ if (e.keyCode != "V".charCodeAt(0) || !e.ctrlKey) {
+ return;
+ }
+ pasting = true;
+ setTimeout(function () {
+ if (pasting) {
+ error("noimg", "You pressed Ctrl+V, but no image was pasted by your browser, make sure your clipboard contains an image, and not a link to an image.");
+ }
+ }, 1000);
+ if (catcher) {
+ catcher.focus();
+ }
+ });
+}
+exports.start = start;
+function fileDialog() {
+ var fileinput = document.createElement("input");
+ fileinput.type = "file";
+ fileinput.accept = "image/png";
+ fileinput.onchange = function () { if (fileinput.files && fileinput.files[0]) {
+ fromFile(fileinput.files[0]);
+ } };
+ fileinput.click();
+ return fileinput;
+}
+exports.fileDialog = fileDialog;
+function fromFile(file) {
+ if (!file) {
+ return;
+ }
+ var reader = new FileReader();
+ reader.onload = function () {
+ var bytearray = new Uint8Array(reader.result);
+ if (ImageDetect.isPngBuffer(bytearray)) {
+ ImageDetect.clearPngColorspace(bytearray);
+ }
+ var blob = new Blob([bytearray], { type: "image/png" });
+ var img = new Image();
+ img.onerror = () => error("invalidfile", "The file you uploaded could not be opened as an image.");
+ var bloburl = URL.createObjectURL(blob);
+ img.src = bloburl;
+ if (img.width > 0) {
+ pasted(img);
+ URL.revokeObjectURL(bloburl);
+ }
+ else {
+ img.onload = function () { pasted(img); URL.revokeObjectURL(bloburl); };
+ }
+ };
+ reader.readAsArrayBuffer(file);
+}
+
+
+/***/ }),
+
+/***/ "./src/base/rect.ts":
+/*!**************************!*\
+ !*** ./src/base/rect.ts ***!
+ \**************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+
+//util class for rectangle maths
+//TODO shit this sucks can we remove it again?
+//more of a shorthand to get {x,y,width,height} than a class
+//kinda starting to like it again
+//TODO remove rant
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+;
+/**
+ * Simple rectangle class with some util functions
+ */
+class Rect {
+ constructor(x, y, w, h) {
+ this.x = x;
+ this.y = y;
+ this.width = w;
+ this.height = h;
+ }
+ static fromArgs(...args) {
+ if (typeof args[0] == "object") {
+ return new Rect(args[0].x, args[0].y, args[0].width, args[0].height);
+ }
+ else if (typeof args[0] == "number" && args.length >= 4) {
+ return new Rect(args[0], args[1], args[2], args[3]);
+ }
+ else {
+ throw new Error("invalid rect args");
+ }
+ }
+ /**
+ * Resizes this Rect to include the full size of a given second rectangle
+ */
+ union(r2) {
+ var x = Math.min(this.x, r2.x);
+ var y = Math.min(this.y, r2.y);
+ this.width = Math.max(this.x + this.width, r2.x + r2.width) - x;
+ this.height = Math.max(this.y + this.height, r2.y + r2.height) - y;
+ this.x = x;
+ this.y = y;
+ return this;
+ }
+ /**
+ * Resizes this Rect to include a given point
+ */
+ includePoint(x, y) {
+ this.union(new Rect(x, y, 0, 0));
+ }
+ /**
+ * Grows the rectangle with the given dimensions
+ */
+ inflate(w, h) {
+ this.x -= w;
+ this.y -= h;
+ this.width += 2 * w;
+ this.height += 2 * h;
+ }
+ /**
+ * Resizes this Rect to the area that overlaps a given Rect
+ * width and height will be set to 0 if the intersection does not exist
+ */
+ intersect(r2) {
+ if (this.x < r2.x) {
+ this.width -= r2.x - this.x;
+ this.x = r2.x;
+ }
+ if (this.y < r2.y) {
+ this.height -= r2.y - this.y;
+ this.y = r2.y;
+ }
+ this.width = Math.min(this.x + this.width, r2.x + r2.width) - this.x;
+ this.height = Math.min(this.y + this.height, r2.y + r2.height) - this.y;
+ if (this.width <= 0 || this.height <= 0) {
+ this.width = 0;
+ this.height = 0;
+ }
+ }
+ /**
+ * Returns wether this Rect has at least one pixel overlap with a given Rect
+ */
+ overlaps(r2) {
+ return this.x < r2.x + r2.width && this.x + this.width > r2.x && this.y < r2.y + r2.height && this.y + this.height > r2.y;
+ }
+ /**
+ * Returns wether a given Rect fits completely inside this Rect
+ * @param r2
+ */
+ contains(r2) {
+ return this.x <= r2.x && this.x + this.width >= r2.x + r2.width && this.y <= r2.y && this.y + this.height >= r2.y + r2.height;
+ }
+ /**
+ * Returns wether a given point lies inside this Rect
+ */
+ containsPoint(x, y) {
+ return this.x <= x && this.x + this.width > x && this.y <= y && this.y + this.height > y;
+ }
+}
+exports["default"] = Rect;
+
+
+/***/ }),
+
+/***/ "./src/base/wrapper.ts":
+/*!*****************************!*\
+ !*** ./src/base/wrapper.ts ***!
+ \*****************************/
+/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_56486__) {
+
+
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.captureStream = exports.captureMultiAsync = exports.captureAsync = exports.ImageStreamReader = exports.once = exports.removeListener = exports.on = exports.addResizeElement = exports.getMousePosition = exports.hasAlt1Version = exports.resetEnvironment = exports.identifyApp = exports.unmixColor = exports.mixColor = exports.encodeImageString = exports.decodeImageString = exports.transferImageData = exports.captureHoldFullRs = exports.captureHoldScreen = exports.captureHold = exports.capture = exports.getdisplaybounds = exports.requireAlt1 = exports.openbrowser = exports.skinName = exports.hasAlt1 = exports.newestversion = exports.Alt1Error = exports.NoAlt1Error = void 0;
+const rect_1 = __importDefault(__nested_webpack_require_56486__(/*! ./rect */ "./src/base/rect.ts"));
+const imgref_1 = __nested_webpack_require_56486__(/*! ./imgref */ "./src/base/imgref.ts");
+const imagedata_extensions_1 = __nested_webpack_require_56486__(/*! ./imagedata-extensions */ "./src/base/imagedata-extensions.ts");
+__nested_webpack_require_56486__(/*! ./alt1api */ "./src/base/alt1api.ts");
+/**
+ * Thrown when a method is called that can not be used outside of Alt1
+ */
+class NoAlt1Error extends Error {
+ constructor() {
+ super();
+ this.message = "This method can not be ran outside of Alt1";
+ }
+}
+exports.NoAlt1Error = NoAlt1Error;
+;
+/**
+ * Thrown when the Alt1 API returns an invalid result
+ * Errors of a different type are throw when internal Alt1 errors occur
+ */
+class Alt1Error extends Error {
+}
+exports.Alt1Error = Alt1Error;
+/**
+ * The latest Alt1 version
+ */
+exports.newestversion = "1.5.5";
+/**
+ * Whether the Alt1 API is available
+ */
+exports.hasAlt1 = (typeof alt1 != "undefined");
+/**
+ * The name of the Alt1 interface skin. (Always "default" if running in a browser)
+ */
+exports.skinName = exports.hasAlt1 ? alt1.skinName : "default";
+/**
+ * Max number of bytes that can be sent by alt1 in one function
+ * Not completely sure why this number is different than window.alt1.maxtranfer
+ */
+var maxtransfer = 4000000;
+/**
+ * Open a link in the default browser
+ * @deprecated use window.open instead
+ */
+function openbrowser(url) {
+ if (exports.hasAlt1) {
+ alt1.openBrowser(url);
+ }
+ else {
+ window.open(url, '_blank');
+ }
+}
+exports.openbrowser = openbrowser;
+/**
+ * Throw if Alt1 API is not available
+ */
+function requireAlt1() {
+ if (!exports.hasAlt1) {
+ throw new NoAlt1Error();
+ }
+}
+exports.requireAlt1 = requireAlt1;
+/**
+ * Returns an object with a rectangle that spans all screens
+ */
+function getdisplaybounds() {
+ if (!exports.hasAlt1) {
+ return false;
+ }
+ return new rect_1.default(alt1.screenX, alt1.screenY, alt1.screenWidth, alt1.screenHeight);
+}
+exports.getdisplaybounds = getdisplaybounds;
+/**
+ * gets an imagebuffer with pixel data about the requested region
+ */
+function capture(...args) {
+ //TODO change null return on error into throw instead (x3)
+ if (!exports.hasAlt1) {
+ throw new NoAlt1Error();
+ }
+ var rect = rect_1.default.fromArgs(...args);
+ if (alt1.capture) {
+ return new imagedata_extensions_1.ImageData(alt1.capture(rect.x, rect.y, rect.width, rect.height), rect.width, rect.height);
+ }
+ var buf = new imagedata_extensions_1.ImageData(rect.width, rect.height);
+ if (rect.width * rect.height * 4 <= maxtransfer) {
+ var data = alt1.getRegion(rect.x, rect.y, rect.width, rect.height);
+ if (!data) {
+ return null;
+ }
+ decodeImageString(data, buf, 0, 0, rect.width, rect.height);
+ }
+ else {
+ //split up the request to to exceed the single transfer limit (for now)
+ var x1 = rect.x;
+ var ref = alt1.bindRegion(rect.x, rect.y, rect.width, rect.height);
+ if (ref <= 0) {
+ return null;
+ }
+ while (x1 < rect.x + rect.width) {
+ var x2 = Math.min(rect.x + rect.width, Math.floor(x1 + (maxtransfer / 4 / rect.height)));
+ var data = alt1.bindGetRegion(ref, x1, rect.y, x2 - x1, rect.height);
+ if (!data) {
+ return null;
+ }
+ decodeImageString(data, buf, x1 - rect.x, 0, x2 - x1, rect.height);
+ x1 = x2;
+ }
+ }
+ return buf;
+}
+exports.capture = capture;
+/**
+ * Makes alt1 bind an area of the rs client in memory without sending it to the js client
+ * returns an imgref object which can be used to get pixel data using the imgreftobuf function
+ * currently only one bind can exist per app and the ref in (v) will always be 1
+ */
+function captureHold(x, y, w, h) {
+ x = Math.round(x);
+ y = Math.round(y);
+ w = Math.round(w);
+ h = Math.round(h);
+ requireAlt1();
+ var r = alt1.bindRegion(x, y, w, h);
+ if (r <= 0) {
+ throw new Alt1Error("capturehold failed");
+ }
+ return new imgref_1.ImgRefBind(r, x, y, w, h);
+}
+exports.captureHold = captureHold;
+/**
+ * Same as captureHoldRegion, but captures the screen instead of the rs client. it also uses screen coordinates instead and can capture outside of the rs client
+ */
+function captureHoldScreen(x, y, w, h) {
+ x = Math.round(x);
+ y = Math.round(y);
+ w = Math.round(w);
+ h = Math.round(h);
+ requireAlt1();
+ var r = alt1.bindScreenRegion(x, y, w, h);
+ if (r <= 0) {
+ return false;
+ }
+ return new imgref_1.ImgRefBind(r, x, y, w, h);
+}
+exports.captureHoldScreen = captureHoldScreen;
+/**
+ * bind the full rs window if the rs window can be detected by alt1, otherwise return the full screen
+ */
+function captureHoldFullRs() {
+ return captureHold(0, 0, alt1.rsWidth, alt1.rsHeight);
+}
+exports.captureHoldFullRs = captureHoldFullRs;
+/**
+ * returns a subregion from a bound image
+ * used internally in imgreftobuf if imgref is a bound image
+ * @deprecated This should be handled internall by the imgrefbind.toData method
+ */
+function transferImageData(handle, x, y, w, h) {
+ x = Math.round(x);
+ y = Math.round(y);
+ w = Math.round(w);
+ h = Math.round(h);
+ requireAlt1();
+ if (alt1.bindGetRegionBuffer) {
+ return new imagedata_extensions_1.ImageData(alt1.bindGetRegionBuffer(handle, x, y, w, h), w, h);
+ }
+ var r = new imagedata_extensions_1.ImageData(w, h);
+ var x1 = x;
+ while (true) { //split up the request to to exceed the single transfer limit (for now)
+ var x2 = Math.min(x + w, Math.floor(x1 + (maxtransfer / 4 / h)));
+ var a = alt1.bindGetRegion(handle, x1, y, x2 - x1, h);
+ if (!a) {
+ throw new Alt1Error();
+ }
+ decodeImageString(a, r, x1 - x, 0, x2 - x1, h);
+ x1 = x2;
+ if (x1 == x + w) {
+ break;
+ }
+ ;
+ }
+ return r;
+}
+exports.transferImageData = transferImageData;
+/**
+ * decodes a returned string from alt1 to an imagebuffer
+ */
+function decodeImageString(imagestring, target, x, y, w, h) {
+ var bin = atob(imagestring);
+ var bytes = target.data;
+ w |= 0;
+ h |= 0;
+ var offset = 4 * x + 4 * y * target.width;
+ var target_width = target.width | 0;
+ for (var a = 0; a < w; a++) {
+ for (var b = 0; b < h; b++) {
+ var i1 = (offset + (a * 4 | 0) + (b * target_width * 4 | 0)) | 0;
+ var i2 = ((a * 4 | 0) + (b * 4 * w | 0)) | 0;
+ bytes[i1 + 0 | 0] = bin.charCodeAt(i2 + 2 | 0); //fix weird red/blue swap in c#
+ bytes[i1 + 1 | 0] = bin.charCodeAt(i2 + 1 | 0);
+ bytes[i1 + 2 | 0] = bin.charCodeAt(i2 + 0 | 0);
+ bytes[i1 + 3 | 0] = bin.charCodeAt(i2 + 3 | 0);
+ }
+ }
+ return target;
+}
+exports.decodeImageString = decodeImageString;
+/**
+ * encodes an imagebuffer to a string
+ */
+function encodeImageString(buf, sx = 0, sy = 0, sw = buf.width, sh = buf.height) {
+ var raw = "";
+ for (var y = sy; y < sy + sh; y++) {
+ for (var x = sx; x < sx + sw; x++) {
+ var i = 4 * x + 4 * buf.width * y | 0;
+ raw += String.fromCharCode(buf.data[i + 2 | 0]);
+ raw += String.fromCharCode(buf.data[i + 1 | 0]);
+ raw += String.fromCharCode(buf.data[i + 0 | 0]);
+ raw += String.fromCharCode(buf.data[i + 3 | 0]);
+ }
+ }
+ return btoa(raw);
+}
+exports.encodeImageString = encodeImageString;
+/**
+ * mixes the given color into a single int. This format is used by alt1
+ */
+function mixColor(r, g, b, a = 255) {
+ return (b << 0) + (g << 8) + (r << 16) + (a << 24);
+}
+exports.mixColor = mixColor;
+function unmixColor(col) {
+ var r = (col >> 16) & 0xff;
+ var g = (col >> 8) & 0xff;
+ var b = (col >> 0) & 0xff;
+ return [r, g, b];
+}
+exports.unmixColor = unmixColor;
+function identifyApp(url) {
+ if (exports.hasAlt1) {
+ alt1.identifyAppUrl(url);
+ }
+}
+exports.identifyApp = identifyApp;
+function resetEnvironment() {
+ exports.hasAlt1 = (typeof alt1 != "undefined");
+ exports.skinName = exports.hasAlt1 ? alt1.skinName : "default";
+}
+exports.resetEnvironment = resetEnvironment;
+function convertAlt1Version(str) {
+ var a = str.match(/^(\d+)\.(\d+)\.(\d+)$/);
+ if (!a) {
+ throw new RangeError("Invalid version string");
+ }
+ return (+a[1]) * 1000 * 1000 + (+a[2]) * 1000 + (+a[3]) * 1;
+}
+var cachedVersionInt = -1;
+/**
+ * checks if alt1 is running and at least the given version. versionstr should be a string with the version eg: 1.3.2
+ * @param versionstr
+ */
+function hasAlt1Version(versionstr) {
+ if (!exports.hasAlt1) {
+ return false;
+ }
+ if (cachedVersionInt == -1) {
+ cachedVersionInt = alt1.versionint;
+ }
+ return cachedVersionInt >= convertAlt1Version(versionstr);
+}
+exports.hasAlt1Version = hasAlt1Version;
+/**
+ * Gets the current cursor position in the game, returns null if the rs window is not active (alt1.rsActive)
+ */
+function getMousePosition() {
+ var pos = alt1.mousePosition;
+ if (pos == -1) {
+ return null;
+ }
+ return { x: pos >>> 16, y: pos & 0xFFFF };
+}
+exports.getMousePosition = getMousePosition;
+/**
+ * Registers a given HTML element as a frame border, when this element is dragged by the user the Alt1 frame will resize accordingly
+ * Use the direction arguements to make a given direction stick to the mouse. eg. Only set left to true to make the element behave as the left border
+ * Or set all to true to move the whole window. Not all combinations are permitted
+ */
+function addResizeElement(el, left, top, right, bot) {
+ if (!exports.hasAlt1 || !alt1.userResize) {
+ return;
+ }
+ el.addEventListener("mousedown", function (e) {
+ alt1.userResize(left, top, right, bot);
+ e.preventDefault();
+ });
+}
+exports.addResizeElement = addResizeElement;
+/**
+ * Add an event listener
+ */
+function on(type, listener) {
+ if (!exports.hasAlt1) {
+ return;
+ }
+ if (!alt1.events) {
+ alt1.events = {};
+ }
+ if (!alt1.events[type]) {
+ alt1.events[type] = [];
+ }
+ alt1.events[type].push(listener);
+}
+exports.on = on;
+/**
+ * Removes an event listener
+ */
+function removeListener(type, listener) {
+ var elist = exports.hasAlt1 && alt1.events && alt1.events[type];
+ if (!elist) {
+ return;
+ }
+ var i = elist.indexOf(listener);
+ if (i == -1) {
+ return;
+ }
+ elist.splice(i, 1);
+}
+exports.removeListener = removeListener;
+/**
+ * Listens for the event to fire once and then stops listening
+ * @param event
+ * @param cb
+ */
+function once(type, listener) {
+ var fn = (e) => {
+ removeListener(type, fn);
+ listener(e);
+ };
+ on(type, fn);
+}
+exports.once = once;
+;
+/**
+ * Used to read a set of images from a binary stream returned by the Alt1 API
+ */
+class ImageStreamReader {
+ constructor(reader, ...args) {
+ this.framebuffer = null;
+ this.pos = 0;
+ this.reading = false;
+ this.closed = false;
+ //paused state
+ this.pausedindex = -1;
+ this.pausedbuffer = null;
+ this.streamreader = reader;
+ if (args[0] instanceof imagedata_extensions_1.ImageData) {
+ this.setFrameBuffer(args[0]);
+ }
+ else if (typeof args[0] == "number") {
+ this.setFrameBuffer(new imagedata_extensions_1.ImageData(args[0], args[1]));
+ }
+ }
+ /**
+ *
+ */
+ setFrameBuffer(buffer) {
+ if (this.reading) {
+ throw new Error("can't change framebuffer while reading");
+ }
+ this.framebuffer = buffer;
+ }
+ /**
+ * Closes the underlying stream and ends reading
+ */
+ close() {
+ this.streamreader.cancel();
+ }
+ /**
+ * Reads a single image from the stream
+ */
+ async nextImage() {
+ if (this.reading) {
+ throw new Error("already reading from this stream");
+ }
+ if (!this.framebuffer) {
+ throw new Error("framebuffer not set");
+ }
+ this.reading = true;
+ var synctime = -Date.now();
+ var starttime = Date.now();
+ var r = false;
+ while (!r) {
+ if (this.pausedindex != -1 && this.pausedbuffer) {
+ r = this.readChunk(this.pausedindex, this.framebuffer.data, this.pausedbuffer);
+ }
+ else {
+ synctime += Date.now();
+ var res = await this.streamreader.read();
+ synctime -= Date.now();
+ if (res.done) {
+ throw new Error("Stream closed while reading");
+ }
+ var data = res.value;
+ r = this.readChunk(0, this.framebuffer.data, data);
+ }
+ }
+ synctime += Date.now();
+ //console.log("Decoded async image, " + this.framebuffer.width + "x" + this.framebuffer.height + " time: " + (Date.now() - starttime) + "ms (" + synctime + "ms main thread)");
+ this.reading = false;
+ return this.framebuffer;
+ }
+ readChunk(i, framedata, buffer) {
+ //very hot code, explicit int32 casting with |0 speeds it up by ~ x2
+ i = i | 0;
+ var framesize = framedata.length | 0;
+ var pos = this.pos;
+ var datalen = buffer.length | 0;
+ //var data32 = new Float64Array(buffer.buffer);
+ //var framedata32 = new Float64Array(framedata.buffer);
+ //fix possible buffer misalignment
+ //align to 16 for extra loop unrolling
+ while (i < datalen) {
+ //slow loop, fix alignment and other issues
+ while (i < datalen && pos < framesize && (pos % 16 != 0 || !((i + 16 | 0) <= datalen && (pos + 16 | 0) <= framesize))) {
+ var rel = pos;
+ if (pos % 4 == 0) {
+ rel = rel + 2 | 0;
+ }
+ if (pos % 4 == 2) {
+ rel = rel - 2 | 0;
+ }
+ framedata[rel | 0] = buffer[i | 0];
+ i = i + 1 | 0;
+ pos = pos + 1 | 0;
+ }
+ //fast unrolled loop for large chunks i wish js had some sort of memcpy
+ if (pos % 16 == 0) {
+ while ((i + 16 | 0) <= datalen && (pos + 16 | 0) <= framesize) {
+ framedata[pos + 0 | 0] = buffer[i + 2 | 0];
+ framedata[pos + 1 | 0] = buffer[i + 1 | 0];
+ framedata[pos + 2 | 0] = buffer[i + 0 | 0];
+ framedata[pos + 3 | 0] = buffer[i + 3 | 0];
+ framedata[pos + 4 | 0] = buffer[i + 6 | 0];
+ framedata[pos + 5 | 0] = buffer[i + 5 | 0];
+ framedata[pos + 6 | 0] = buffer[i + 4 | 0];
+ framedata[pos + 7 | 0] = buffer[i + 7 | 0];
+ framedata[pos + 8 | 0] = buffer[i + 10 | 0];
+ framedata[pos + 9 | 0] = buffer[i + 9 | 0];
+ framedata[pos + 10 | 0] = buffer[i + 8 | 0];
+ framedata[pos + 11 | 0] = buffer[i + 11 | 0];
+ framedata[pos + 12 | 0] = buffer[i + 14 | 0];
+ framedata[pos + 13 | 0] = buffer[i + 13 | 0];
+ framedata[pos + 14 | 0] = buffer[i + 12 | 0];
+ framedata[pos + 15 | 0] = buffer[i + 15 | 0];
+ //could speed it up another x2 but wouldn't be able to swap r/b swap and possible alignment issues
+ //framedata32[pos / 8 + 0 | 0] = data32[i / 8 + 0 | 0];
+ //framedata32[pos / 8 + 1 | 0] = data32[i / 8 + 1 | 0];
+ //framedata32[pos / 4 + 2 | 0] = data32[i / 4 + 2 | 0];
+ //framedata32[pos / 4 + 3 | 0] = data32[i / 4 + 3 | 0];
+ pos = pos + 16 | 0;
+ i = i + 16 | 0;
+ }
+ }
+ if (pos >= framesize) {
+ this.pausedbuffer = null;
+ this.pausedindex = -1;
+ this.pos = 0;
+ if (i != buffer.length - 1) {
+ this.pausedbuffer = buffer;
+ this.pausedindex = i;
+ }
+ return true;
+ }
+ }
+ this.pos = pos;
+ this.pausedbuffer = null;
+ this.pausedindex = -1;
+ return false;
+ }
+}
+exports.ImageStreamReader = ImageStreamReader;
+/**
+ * Asynchronously captures a section of the game screen
+ */
+async function captureAsync(...args) {
+ requireAlt1();
+ var rect = rect_1.default.fromArgs(...args);
+ if (alt1.captureAsync) {
+ let img = await alt1.captureAsync(rect.x, rect.y, rect.width, rect.height);
+ return new imagedata_extensions_1.ImageData(img, rect.width, rect.height);
+ }
+ if (!hasAlt1Version("1.4.6")) {
+ return capture(rect.x, rect.y, rect.width, rect.height);
+ }
+ var url = "https://alt1api/pixel/getregion/" + encodeURIComponent(JSON.stringify(Object.assign(Object.assign({}, rect), { format: "raw", quality: 1 })));
+ var res = await fetch(url);
+ var imgreader = new ImageStreamReader(res.body.getReader(), rect.width, rect.height);
+ return imgreader.nextImage();
+}
+exports.captureAsync = captureAsync;
+/**
+ * Asynchronously captures multple area's. This method captures the images in the same render frame if possible
+ * @param areas
+ */
+async function captureMultiAsync(areas) {
+ requireAlt1();
+ var r = {};
+ if (alt1.captureMultiAsync) {
+ let bufs = await alt1.captureMultiAsync(areas);
+ for (let a in areas) {
+ if (!bufs[a]) {
+ r[a] = null;
+ }
+ r[a] = new imagedata_extensions_1.ImageData(bufs[a], areas[a].width, areas[a].height);
+ }
+ return r;
+ }
+ var capts = [];
+ var captids = [];
+ for (var id in areas) {
+ if (areas[id]) {
+ capts.push(areas[id]);
+ captids.push(id);
+ }
+ else {
+ r[id] = null;
+ }
+ }
+ if (capts.length == 0) {
+ return r;
+ }
+ if (!hasAlt1Version("1.5.1")) {
+ var proms = [];
+ for (var a = 0; a < capts.length; a++) {
+ proms.push(captureAsync(capts[a]));
+ }
+ var results = await Promise.all(proms);
+ for (var a = 0; a < capts.length; a++) {
+ r[captids[a]] = results[a];
+ }
+ }
+ else {
+ var res = await fetch("https://alt1api/pixel/getregionmulti/" + encodeURIComponent(JSON.stringify({ areas: capts, format: "raw", quality: 1 })));
+ var imgreader = new ImageStreamReader(res.body.getReader());
+ for (var a = 0; a < capts.length; a++) {
+ var capt = capts[a];
+ imgreader.setFrameBuffer(new imagedata_extensions_1.ImageData(capt.width, capt.height));
+ r[captids[a]] = await imgreader.nextImage();
+ }
+ }
+ return r;
+}
+exports.captureMultiAsync = captureMultiAsync;
+/**
+ * Starts capturing a realtime stream of the game. Make sure you keep reading the stream and close it when you're done or Alt1 WILL crash
+ * @param framecb Called whenever a new frame is decoded
+ * @param errorcb Called whenever an error occurs, the error is rethrown if not defined
+ * @param fps Maximum fps of the stream
+ */
+function captureStream(x, y, width, height, fps, framecb, errorcb) {
+ requireAlt1();
+ if (!hasAlt1Version("1.4.6")) {
+ throw new Alt1Error("This function is not supported in this version of Alt1");
+ }
+ var url = "https://alt1api/pixel/streamregion/" + encodeURIComponent(JSON.stringify({ x, y, width, height, fps, format: "raw" }));
+ var res = fetch(url).then(async (res) => {
+ var reader = new ImageStreamReader(res.body.getReader(), width, height);
+ try {
+ while (!reader.closed && !state.closed) {
+ var img = await reader.nextImage();
+ if (!state.closed) {
+ framecb(img);
+ state.framenr++;
+ }
+ }
+ }
+ catch (e) {
+ if (!state.closed) {
+ reader.close();
+ if (errorcb) {
+ errorcb(e);
+ }
+ else {
+ throw e;
+ }
+ }
+ }
+ if (!reader.closed && state.closed) {
+ reader.close();
+ }
+ });
+ var state = {
+ x, y, width, height,
+ framenr: 0,
+ close: () => { state.closed = true; },
+ closed: false,
+ };
+ return state;
+}
+exports.captureStream = captureStream;
+
+
+/***/ }),
+
+/***/ "canvas":
+/*!*************************!*\
+ !*** external "canvas" ***!
+ \*************************/
+/***/ ((module) => {
+
+if(typeof __WEBPACK_EXTERNAL_MODULE_canvas__ === 'undefined') { var e = new Error("Cannot find module 'canvas'"); e.code = 'MODULE_NOT_FOUND'; throw e; }
+
+module.exports = __WEBPACK_EXTERNAL_MODULE_canvas__;
+
+/***/ }),
+
+/***/ "electron/common":
+/*!**********************************!*\
+ !*** external "electron/common" ***!
+ \**********************************/
+/***/ ((module) => {
+
+if(typeof __WEBPACK_EXTERNAL_MODULE_electron_common__ === 'undefined') { var e = new Error("Cannot find module 'electron/common'"); e.code = 'MODULE_NOT_FOUND'; throw e; }
+
+module.exports = __WEBPACK_EXTERNAL_MODULE_electron_common__;
+
+/***/ }),
+
+/***/ "sharp":
+/*!************************!*\
+ !*** external "sharp" ***!
+ \************************/
+/***/ ((module) => {
+
+if(typeof __WEBPACK_EXTERNAL_MODULE_sharp__ === 'undefined') { var e = new Error("Cannot find module 'sharp'"); e.code = 'MODULE_NOT_FOUND'; throw e; }
+
+module.exports = __WEBPACK_EXTERNAL_MODULE_sharp__;
+
+/***/ })
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __nested_webpack_require_79245__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_79245__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/global */
+/******/ (() => {
+/******/ __nested_webpack_require_79245__.g = (function() {
+/******/ if (typeof globalThis === 'object') return globalThis;
+/******/ try {
+/******/ return this || new Function('return this')();
+/******/ } catch (e) {
+/******/ if (typeof window === 'object') return window;
+/******/ }
+/******/ })();
+/******/ })();
+/******/
+/************************************************************************/
+/******/
+/******/ // startup
+/******/ // Load entry module and return exports
+/******/ // This entry module is referenced by other modules so it can't be inlined
+/******/ var __nested_webpack_exports__ = __nested_webpack_require_79245__("./src/base/index.ts");
+/******/
+/******/ return __nested_webpack_exports__;
+/******/ })()
+;
+});
+
+/***/ }),
+
+/***/ "../node_modules/alt1/dist/dialog/index.js":
+/*!*************************************************!*\
+ !*** ../node_modules/alt1/dist/dialog/index.js ***!
+ \*************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(true)
+ module.exports = factory(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js"), __webpack_require__(/*! alt1/ocr */ "../node_modules/alt1/dist/ocr/index.js"));
+ else {}
+})(globalThis, (__WEBPACK_EXTERNAL_MODULE_alt1_base__, __WEBPACK_EXTERNAL_MODULE_alt1_ocr__) => {
+return /******/ (() => { // webpackBootstrap
+/******/ var __webpack_modules__ = ({
+
+/***/ "./src/dialog/imgs/boxtl.data.png":
+/*!****************************************!*\
+ !*** ./src/dialog/imgs/boxtl.data.png ***!
+ \****************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_871__) => {
+
+module.exports=(__nested_webpack_require_871__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAx0lEQVQ4T5VRywrCMBBMaytYyMFHDw16CNWDBg8WoWAFpTf//4ecsGENMQ0UhmVmO5PdNEKZru0GVCLEL/cnS/MYwU3/Jo+AFiKbgevrE7bSmArksgk6DumVsrIKOmJ/G8JWGrMvjUBkbgLBhFzufBkB7uBPQKDcKJYR4C39ALhUuqj15J7/KwHIVIfztjWoZXOkmYuVtB4OQAM4GAFUh+UabmelZ0GANXdh+mW83eyoUz/ykeQm0G4g/j+wnC9NNQAl+VNR6y/yyxm6AFlANgAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/boxtl_leg.data.png":
+/*!********************************************!*\
+ !*** ./src/dialog/imgs/boxtl_leg.data.png ***!
+ \********************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_1594__) => {
+
+module.exports=(__nested_webpack_require_1594__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAE0SURBVDhPjZFNTsMwEIVtJ45D05YmLVKBJRISsOIILNiw5QosOXpIKcpPHduFl0wINAHEJ+tpPB6/Gcv8+emRHZIX1TQ6QuBLbs37QNnVxQlj/P+L31yuH+7vZrNptt2QhxSy0vXe6SAMlYrQqshzyiPmt9fny2WslMqyrQr4+vQsTV8m0eTtdRNN582IjGmtob4nrNsLiqBJcjxfxKhGXBblIk6cNVL68AKwQDUCUVuHCsJZR8egrCpkdq0SSEIbb89vhoOZ53vNSYv0JeVpHni16fYCYYztsz10hzDWQEXQulI7Aq266BD0hHYdqC+BVl30CXlDUUZv+Bp9DIrIG4pBxE7XdPAb/bTkK0IVjN/6I1QmVquE9mMGo2KLJdI06xIjBOff72CLn/rr0YOfwVZr/QEeBH9rQlJ0YgAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/boxtr.data.png":
+/*!****************************************!*\
+ !*** ./src/dialog/imgs/boxtr.data.png ***!
+ \****************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_2513__) => {
+
+module.exports=(__nested_webpack_require_2513__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA3UlEQVQ4T6WTwQrCMBBEk9oKigEVFSweLOLF6sFehOYgePP/P2jNrE1ZcJFUD68J2cwkO23NofF0vD0IY1k3VLfveXVu+jWMALVYxzowxtjw+A2YGVtM1WIKl/szjEohlb8NuAWtkMru6sMYJplbkR0vKF9XH5s0kBs0fYgxyJRAM7clV1YMGxB9R4pxAG6J04tlOdwAIm63uzVnoIkk2unRAF+kKpJEg9HEcdAwQA59iJpIEg2kEEa4QbIBNkMYM0Arg0NEC1KM14i/WBVJuPcutHy+YQMw259CiJ5egv+YzBEq3jQAAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/boxtr_leg.data.png":
+/*!********************************************!*\
+ !*** ./src/dialog/imgs/boxtr_leg.data.png ***!
+ \********************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_3264__) => {
+
+module.exports=(__nested_webpack_require_3264__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAFgSURBVDhPnZO9TsMwFIWPHZuUpo2g6hswsbMzsbEgMfAKiIUnYOWNWBh4F1CFhFKKojatmx/jY+E2RRWK+KSrm9ycHF//iceHO7tal5hM3tGLDyAkIIVAY+0maxUBjYApDYSwOOgdulqMxXwOAbjKPzk9GUPc315bLTWWZo2mNs69hzhOvIAjKC3A72Q4HOAj+9zUnp5fIG6uzm2WTdFP+si/ZkgGqRcTY4zPKpKo6sbnfjJAsZj79+l0BsmfSbEocHQ8Ql2V0Fq5LmIfNKaYz8x5nvsckEHIKJZLX1z95AC/kTRNN1rpullXNdyab9FKI3JBQvu1EwVCjVBLdgwCwSRQumm1aRsJ6/b5Ly4vzvYKInc23l4n+zv4DTtoj0pUpHzuZMD5hoUMBMNOBmx3Hyt3+DoZhJ3g+Wib8e507oBRltXOto7Ho24GvJVcNHbACGTuXnQy4MhcNGbGdhrAN5b0ly21yuFfAAAAAElFTkSuQmCC")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/chatimg.data.png":
+/*!******************************************!*\
+ !*** ./src/dialog/imgs/chatimg.data.png ***!
+ \******************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_4247__) => {
+
+module.exports=(__nested_webpack_require_4247__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAAwUlEQVQYV2OYPGlSV1dXcnJyRmqSqbUdQ3VNNRB5uTkJCwuLKqgxtLS0ACVVFGQ4eQUFpRUZgBxHWytOHl4oX0tLS1lZGaiYkZOXW1CUQVXXGChkbGwsJSUFFGI4YM+fqycmpahqoG8AVMVwxJipUptPUFIOqEtEkJdBT4JPSVYSqBgoCTSSQUVLG8QCms/DCzI/OjrK0syEgYERaDiI7+3lHRwcDNQC5bu6ukKEgLp4RKUZsjPSgEJAfrC/t7GhHgChFSifluVS6gAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/chatimg_leg.data.png":
+/*!**********************************************!*\
+ !*** ./src/dialog/imgs/chatimg_leg.data.png ***!
+ \**********************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_4970__) => {
+
+module.exports=(__nested_webpack_require_4970__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEOSURBVChTVY+7SgNBFIZnZ3aTWdCYddVcRBIVREEC2gcsFnwMO9/JxsrGzkbQB1AkleArWJjLXhRhJnNbf9ltcviL/3z/nDMzXjI+Hx0PDoadh6dJI6DGOUKIT6kPenZ6eHv/fDTo7vbbRSF5GCCjoDd3j/v9rThel0sLKoWG2DzN97rxdrwhlFHaCqGNdRAF7e1EUhlrHIQl1sAbGjb/N1aFXgqptYEoD3nx/Yu+QvURXI6+tqtFPcpru1os3my5oBX6tgaEaOtcWbKmTywJGF+rMlA8Cgm9vkry+ed0luXLxo9Q+I12JcSGvc7F+ORt8oE5a32pvEositqeI5fJ6OX1/Ws2TbNFUWR5nv4B2LeYEU2WizoAAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/chatimgactive.data.png":
+/*!************************************************!*\
+ !*** ./src/dialog/imgs/chatimgactive.data.png ***!
+ \************************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_5869__) => {
+
+module.exports=(__nested_webpack_require_5869__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAApklEQVQYV2Po6upqaWmJjo4CIk1dQ4ZiMLCzNGVgYGQRkGCorqmOjggTEeQF8hm4BRmCg4ONDfVAHAhfWVlZWFgYygciKUVVSVkFoCgnD1jLHkOGZHlWbkFRoBCIf0CdIV+GgZGTF6pLnoNBkJcLqhiIBCXloCwgAprv7eWtraGG4FtZWXq5OQG1QPnGxsaurq5AIRCfhYshKTYKqASoy83RRkVBBgAFhh2w1olrrAAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/chatimgactive_leg.data.png":
+/*!****************************************************!*\
+ !*** ./src/dialog/imgs/chatimgactive_leg.data.png ***!
+ \****************************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_6580__) => {
+
+module.exports=(__nested_webpack_require_6580__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEESURBVChTPY4xTgMxEEXtmfFmE1hpRSQECqIIVRBCEanpuABnyImo09FzASokjgAVVUQBURpCSMiKHdt8ZwVf1mj8/veM7dXlxbBfnvTad4/vmSMNwRgjRAJ6fno4uX3IssA5k5KV5BHozeQedK9s5bm0dwmVmfh1OisLAa3rEJV8DCFE7wOBFjsO1AbGBAg0jerkDNTQSL6hyRDrfIjN5f8RRPpjmCw6NEhgjakdKknWJGCnhFj8yKDSfK7IQla2/p+46LBRaTkiNlETwvoYDY2vBx/V6m2x2u5IpxH3j4+Gg4Pnl1mluvSi335TBRwuu/vO+NFZ72m6+FxvlnW99v5L9ReDbXkhpJVqYwAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/chatimghover.data.png":
+/*!***********************************************!*\
+ !*** ./src/dialog/imgs/chatimghover.data.png ***!
+ \***********************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_7463__) => {
+
+module.exports=(__nested_webpack_require_7463__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAAUAAAAOCAIAAABoykFxAAAAz0lEQVQYV2M4dfLEjp07W1pamhrrnL38GFavXr10yeKk2ChhYWEpFW2GLVu2dLQ1a2uocfIKiipoMABVRoaFcPLwcguKiiqoMVhZWRob6kmKCgGFBMSkGUztnU2t7VxdXZWVlYFCDP9DhSfbyaloaQMVSklJMfz3YF1sJSylqKqlpQW0gsFOQVhLTRnC4RGVZjAyBymDma/BUF1T7e3lzcDACJQUlFZkSE5OLsjNAmoByoP4YZGR2RlpQCGgLpD+Sb2d0dFR2dnZQC8Y6WkBAPN1NR2AAHfmAAAAAElFTkSuQmCC")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/chatimghover_leg.data.png":
+/*!***************************************************!*\
+ !*** ./src/dialog/imgs/chatimghover_leg.data.png ***!
+ \***************************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_8222__) => {
+
+module.exports=(__nested_webpack_require_8222__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAIAAACdNMrBAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAEjSURBVChTVc89SwNBEIDh2727fChqFosQLExMY4gIsbOIBLT0B9joX9RKTCOksLESSa1Y5TSa+8rdze7s7jl4lfAUw7sMy7CL8cnx4f5Bt3338FzzubbWcRyPc4/q6Kg/nT7eXA72erurz2xHNCBXnOrt/ex01G2JjSwq6nUeh5Ci67ISR30x7DVXqQVAkmegC+BUOx3xFhilNEmTQgIS3qh79JtWOksKkudQ4TXPWyxCpXWSAQGpK3wZrmmDJqn+4VSryRgkIFXF3doUvldyVtJlf8c5gFbbkh5qa822mz5FUBYRpTJaG359dRYE3/OPKEpgncu0MBJtCMztdtqT8eDl9V0xP0cXFe05BktXiBazzvlkOHuaB8vVVxj/xOkySn4BoaPZbEW+44oAAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/continueimg.data.png":
+/*!**********************************************!*\
+ !*** ./src/dialog/imgs/continueimg.data.png ***!
+ \**********************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_9141__) => {
+
+module.exports=(__nested_webpack_require_9141__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAABTklEQVRIS72PMUsDQRCFB2Jjk85KsPEPmMYmgig2gWAlKWwCIiIihIC1WIpiJZY2SpqgpLCQNDZRAjZWHqmvsVEQ1Ebl8J0D4zIXD5HdgY/lzey7fffoeVD9fFxikpfaP/jLhxLhojy+kPdRjZKokhIvBieqIC+6WcVpkfjdiz5u55P7BR6CgqDu2dbeaQdnGpoxeAcpaT0buBsD/XQ1pwwhoPde2YDX/oxbTxpir5x+sasXt8vZhm/9knL6hR5OJm0YHI2D9c1GdeWH7sG0svmF4uMJA7jbbnPW7YaR98rsC7xMHGBAttvd/pjyeIeQYcD1TtGtB42N8oSAettFBnkgR+SPEIxaytVlc5Qb4oQG7q37FSOjMiibQjwMcZIBnY0RcNiYYqFuA0GtOl0s0/laYSj4D6XdjSBLCLENdQru7W9OeUpGhsd8YGvV6Qu6U2ehlR3eegAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/continueimg_leg.data.png":
+/*!**************************************************!*\
+ !*** ./src/dialog/imgs/continueimg_leg.data.png ***!
+ \**************************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_10068__) => {
+
+module.exports=(__nested_webpack_require_10068__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAASPSURBVEhLrVZLaFxVGD7nPubeO5NMZpIQTYfaNn2RREsrbQXbuOnKR4WCiKtCV2JABF24qTvdCK5ciIWudeFCqkuLC6WKQqVmEVsMjUkTyySTec993+t37n/n5CZNShQ/Dof/db7z/efce2f4J+++PDbqsgz0sN2y9a7NYResmIKPgTVgptY26IOpwViz0cnFdur04XFrqJDw64OargZ+ODKQJPaAWr1td5zs1lq+pKpmztBzYaPWYcxvV9cN/v7sa4cr1ulzz6Oitv7As0OqBnzH6ThRr1VPfcbyxfKAqeimWRotwe1126hHGWW3Fft2jwzdyn/42U2ygatvXaAU4iAsl/KwiQTMoqK/deymbNwoY95oBiZvJwGhhAzSk7PUbr1brdZkCkoWVmzR3jOT+1p+Keita/nRRnVpYEDs1+n0YGAWHAkCvVwyXGyw3lbhbstKtBylaEbNFg4wxRc3bn19fSaf97hy5O8H9y6/9+vrLz2naoIE4Lki6skmZJmJTQZB67DCE0XxZFEKcZKdlKdAcHhIm5tfFe1V9o1hJapjrxUG4vZ8P8BsWgZmx3Z1XYMaMihFoDgMpMjFTJVBIMo0TYPxzfd3Pv/giFUq5y02NHKMOnxxZpoKABgAtiMeLKGgNAjZOGbYMGSQXMsySRKaWlmtpu3B6rS7iEpIIkC6j4JIUycDCnp++qjf/PmPj9/cPzRmjIyXZYcXzhxmqo5sTk9vcjdInj0ChNPTRxcWltXzZ6YUzpuNtud5UQZJXwEMWkBBx/U5Z4qiUFDWIEKGBLKbmkJ/ojJ87cbiC5OFKPYVtTf65LFzx/Offjk3MT7EFDWMYjlUNSUHwEDB1N8zsAQaOp2uaM80crWaeIkl3W7DdV0ehX4Y+0GIIYK+F8YctpS1RVPoszhygwjuU+Pl69/+9cYrxcDrdZvL+4+ffPrg4LWvfhcdxhGaTFYLZXJQ5L+hULAcx+XvXLnIrOFWdVlIAZKnZRvQVWrtAsMQbymBig1NdIvGkpjAj7/d/2h2Csbd+bWV9bXbS2a96Zw/dYgqBR7dGpIQ3F3YYzA2NtyoN9WTkwcCp92znfTM+tB4LA4VZ5/5lmSBWwtjRoNF6SqAsqCy/UgW/HRn8erlibxqz99tNZuL9Vb050N29sRBVeG0r6bgoe+/gaGPTUEFBi/ZnYRJSZuVu0M8nVGknjhaCYMgK4UG1KMIvJiznciRxbYURIvlUcC4gvmXuaW3Xy2xwL2/EqG3jY5+a8E4PVXhDI1FIcQmTW4eaHLnJCBLLiUlxyiQLsmcCzEggs+4aO/U5IG2GwoplMCAJiru824BVVJNfxUuD5McUdKVyCMes9W19nihttFouW4Dvf1wL4fekEWK40sV480UTSIC6fKgd4SUhBMRLt180qS48MSliO/hNDi/cmmGVv5fwNnL14nuweT2d7cfwiga4n/Z2elDIpfAiS3MKCBj8z38lyiqvpP5DyjBZy8+qxs5WGEURH76JVB0sY2q7PxbtyOwnAwiIQbp7hFy1Y4QVKrNQnEQBNRnRWrGFsGBG/wD9kSQTvgpZ/YAAAAASUVORK5CYII=")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/continueimgdown.data.png":
+/*!**************************************************!*\
+ !*** ./src/dialog/imgs/continueimgdown.data.png ***!
+ \**************************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_12171__) => {
+
+module.exports=(__nested_webpack_require_12171__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAABMklEQVRIS92VoU4DQRCG5wKGNyEo3gB1BtWEYGqaNAGBoQ3BoAiqKVXwDJUEgcAgCQIUBoPgVfg2/2WzGUpqdk40+XqZ3Z3u3Le32bXbQbMc2UaCmj2cbr1dWTSvl4mXC3s82+appsupDmqp3ueNRaN6s+nBaHzCU82Pa59WF9TSihJ9zex7EQgl7s/3cRPEcqNuUGkmRy2tohsIotSTIW/gcurS6f3c9QFf6a8hL+HSKoJatznzPsm7pWyu7FlL+RfmZzdS73BwtNseZ56nOyq9dv6VCerMQwSKZZS+Xj9Hi9wmw73SjSadcQdMOlr4qUYczP+fm3D5VWDapNfPvQelHjE7xyVUJ9173O66ZKNhLWUoNzcaAWqd3vsknFxSgRutjmrZvG34iE9D2zCQmrfNLxl9slarbU3QAAAAAElFTkSuQmCC")
+
+/***/ }),
+
+/***/ "./src/dialog/imgs/continueimgdown_leg.data.png":
+/*!******************************************************!*\
+ !*** ./src/dialog/imgs/continueimgdown_leg.data.png ***!
+ \******************************************************/
+/***/ ((module, __unused_webpack_exports, __nested_webpack_require_13074__) => {
+
+module.exports=(__nested_webpack_require_13074__(/*! alt1/base */ "alt1/base").ImageDetect.imageDataFromBase64)("iVBORw0KGgoAAAANSUhEUgAAAEoAAAANCAIAAACB72/yAAAAAW5vUEUAYtdMlAAAAARub1BFAAAAAEEgjiIAAAAJbm9QRQAAAAAAAAAAAKGKctUAAAQQSURBVEhL1VW9bxxFFN/52NvbO59sEic5GZMIEHFkAiICKaRDAlGAlJKGioqShpqejn+ABiEoqFIhkIJEk44miSCRyIcSJXawfT6f7253dueD39xbz62/Ekei4ae5pzdv3rz3fm9m59jHb780N5tFu1GWttKOgDjmlXY4DgsY9nKRQkppaAqkup3JUTXZh0IViFlP3UgalTZZhexvpezyu6ePH4u73QXMc+15ltZBxpxBscNxVnhXQtpo8JkWlljccGVlJ394QpKzZSl3WaZYmjiSV69PO/j+mymMUGCHZ+eFhOwEBIek1GQJGJUCYUlHJaRQPVCwZdTrBzsq2eiVnt7phZOYb6u8HRuEoOWAEBGlkKLyPGk2SQ+AkchU8x2oTP/xoPj2m8+gt9qdR3/f/PLr395alILzJJXkQ6CYSBcShR7VU0PCk5ZI7yRNFF9f8l1Lmg8e/yOWFmfjNM1LheWssEbrPWM0NI4Jbdh4O4+YhTTaqrzAwJR8yAg3X8KEUlHosjTWOGPt6sBeXErKfOzc+MTi2UvL7e9+vjPfjIyxlY9GHEvRkI4iI2ae+yWEhU4ZyRMKLZG+PRyHJWxEqb4qFuWZ8vSSpgQ31EQeewbKrSuT+iuQPRjrU+f8jYU0pTs1w3+8+vDCa3NWS602uy8vg+H3v9ydSyxzzBgXce8Jqhi4+BTKR5zAx7QWDkcBBcFIW8lokHt60CaHsKv0A4E0lP6ZgJsu8AFV02Mtd+Xa6jtLLYbuqhEx/OHXe2COVbhhcOEj1+MTK1ggyYIrHfSnA46jceHpzXQ6w8GuNyrEreuFMigCzQ79BgGaCjl9waad3uFWWv8ezrejK9fWPnpvCXdyfWXtzLnzyy+qn35fIYYAMUSiEKGyOxdYOc3wRWJa54wLQg2iwSMhJJMxz7LS/zHMd2cHm0NUD9dGIlgZafQpjrwirDRcTep7CrCLFGzZ70z0bq1FX31+yfLW9b/+XF/Zunl/Y6DSN07teskEF/TaoIBIVO1BAZAuppkHshBghE4y1EyeeLe2+8rTQ3HErQ7KhD349ivT84OIAeD2xScXoNy7/2R9q9/rjWE5dwJ/A1N6CRfTth6UN5QEWad0GEBKnDk+I7kIBx0Ai8HvaBf9MDSUKSy73Ys+/fDVXJnV1R644Q27sWLOzk3uEm4a27nYjKNuYyOc2oE9nZbEOPbS4Yb+gC3zD6cfkYiaPFZai1dOdmod/C+Bo5PGlYxt5FFHqs3+AO83/Q2CGwF/JYEe1Q3lmfeFh45gl/W3GJRwkuCFgTVM8YXjr51dfr0rW3v/o+sXnUB3GvJ5QZ/ijSdeaq2llPXvDRey0nYQsoQaKHXQgf3l4awqrYZBlrMPzi+00IH/P/Yf0iAr/gXJh0N13Pe/YwAAAABJRU5ErkJggg==")
+
+/***/ }),
+
+/***/ "./src/dialog/index.ts":
+/*!*****************************!*\
+ !*** ./src/dialog/index.ts ***!
+ \*****************************/
+/***/ (function(__unused_webpack_module, exports, __nested_webpack_require_14933__) {
+
+"use strict";
+
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+const a1lib = __importStar(__nested_webpack_require_14933__(/*! alt1/base */ "alt1/base"));
+const OCR = __importStar(__nested_webpack_require_14933__(/*! alt1/ocr */ "alt1/ocr"));
+const base_1 = __nested_webpack_require_14933__(/*! alt1/base */ "alt1/base");
+var imgs_rs3 = (0, base_1.webpackImages)({
+ chatimg: __nested_webpack_require_14933__(/*! ./imgs/chatimg.data.png */ "./src/dialog/imgs/chatimg.data.png"),
+ chatimghover: __nested_webpack_require_14933__(/*! ./imgs/chatimghover.data.png */ "./src/dialog/imgs/chatimghover.data.png"),
+ chatimgactive: __nested_webpack_require_14933__(/*! ./imgs/chatimgactive.data.png */ "./src/dialog/imgs/chatimgactive.data.png"),
+ continueimg: __nested_webpack_require_14933__(/*! ./imgs/continueimg.data.png */ "./src/dialog/imgs/continueimg.data.png"),
+ continueimgdown: __nested_webpack_require_14933__(/*! ./imgs/continueimgdown.data.png */ "./src/dialog/imgs/continueimgdown.data.png"),
+ boxtl: __nested_webpack_require_14933__(/*! ./imgs/boxtl.data.png */ "./src/dialog/imgs/boxtl.data.png"),
+ boxtr: __nested_webpack_require_14933__(/*! ./imgs/boxtr.data.png */ "./src/dialog/imgs/boxtr.data.png")
+});
+var imgs_leg = (0, base_1.webpackImages)({
+ chatimg: __nested_webpack_require_14933__(/*! ./imgs/chatimg_leg.data.png */ "./src/dialog/imgs/chatimg_leg.data.png"),
+ chatimghover: __nested_webpack_require_14933__(/*! ./imgs/chatimghover_leg.data.png */ "./src/dialog/imgs/chatimghover_leg.data.png"),
+ chatimgactive: __nested_webpack_require_14933__(/*! ./imgs/chatimgactive_leg.data.png */ "./src/dialog/imgs/chatimgactive_leg.data.png"),
+ continueimg: __nested_webpack_require_14933__(/*! ./imgs/continueimg_leg.data.png */ "./src/dialog/imgs/continueimg_leg.data.png"),
+ continueimgdown: __nested_webpack_require_14933__(/*! ./imgs/continueimgdown_leg.data.png */ "./src/dialog/imgs/continueimgdown_leg.data.png"),
+ boxtl: __nested_webpack_require_14933__(/*! ./imgs/boxtl_leg.data.png */ "./src/dialog/imgs/boxtl_leg.data.png"),
+ boxtr: __nested_webpack_require_14933__(/*! ./imgs/boxtr_leg.data.png */ "./src/dialog/imgs/boxtr_leg.data.png")
+});
+var fontmono = __nested_webpack_require_14933__(/*! ../fonts/aa_8px_mono.fontmeta.json */ "./src/fonts/aa_8px_mono.fontmeta.json");
+var fontheavy = __nested_webpack_require_14933__(/*! ../fonts/aa_8px_mono_allcaps.fontmeta.json */ "./src/fonts/aa_8px_mono_allcaps.fontmeta.json");
+class DialogReader {
+ constructor() {
+ this.pos = null;
+ }
+ find(imgref) {
+ if (!imgref) {
+ imgref = a1lib.captureHoldFullRs();
+ }
+ if (!imgref) {
+ return null;
+ }
+ var boxes = [];
+ for (let imgs of [imgs_rs3, imgs_leg]) {
+ var pos = imgref.findSubimage(imgs.boxtl);
+ for (var a in pos) {
+ var p = pos[a];
+ if (imgref.findSubimage(imgs.boxtr, p.x + 492, p.y, 16, 16).length != 0) {
+ boxes.push(Object.assign(Object.assign({}, p), { legacy: imgs == imgs_leg }));
+ }
+ }
+ }
+ if (boxes.length == 0) {
+ return false;
+ }
+ var box = boxes[0];
+ if (boxes.length > 1) {
+ console.log("More than one dialog box found");
+ }
+ this.pos = { x: box.x + 1, y: box.y + 1, width: 506, height: 130, legacy: box.legacy };
+ return this.pos;
+ }
+ ensureimg(imgref) {
+ if (!this.pos) {
+ return null;
+ }
+ if (imgref && a1lib.Rect.fromArgs(imgref).contains(this.pos)) {
+ return imgref;
+ }
+ return a1lib.captureHold(this.pos.x, this.pos.y, this.pos.width, this.pos.height);
+ }
+ read(imgref) {
+ imgref = this.ensureimg(imgref);
+ if (!imgref) {
+ return false;
+ }
+ let title = this.readTitle(imgref);
+ var r = {
+ text: null,
+ opts: null,
+ title
+ };
+ if (this.checkDialog(imgref)) {
+ r.text = this.readDialog(imgref, true);
+ return r;
+ }
+ else {
+ var opts = this.findOptions(imgref);
+ if (opts.length != 0) {
+ r.opts = this.readOptions(imgref, opts);
+ return r;
+ }
+ else {
+ return null;
+ }
+ }
+ }
+ readTitle(imgref) {
+ if (!this.pos) {
+ throw new Error("position not found yet");
+ }
+ var buf = imgref.toData(this.pos.x, this.pos.y, this.pos.width, 32);
+ //somehow y coord can change, 19 for "choose and option:" 18 for npc names
+ var pos = OCR.findChar(buf, fontheavy, [255, 203, 5], Math.round(this.pos.width / 2) - 10, 16, 20, 4);
+ if (!pos) {
+ return "";
+ }
+ var read = OCR.readSmallCapsBackwards(buf, fontheavy, [[255, 203, 5]], Math.round(this.pos.width / 2) - 10, pos.y, 150, 1);
+ return read.text.toLowerCase(); //normalize case since we don't actually know the original
+ }
+ checkDialog(imgref) {
+ if (!this.pos) {
+ throw new Error("position not found yet");
+ }
+ var locs = [];
+ let imgs = (this.pos.legacy ? imgs_leg : imgs_rs3);
+ locs = locs.concat(imgref.findSubimage(imgs.continueimg, this.pos.x - imgref.x, this.pos.y - imgref.y, this.pos.width, this.pos.height));
+ locs = locs.concat(imgref.findSubimage(imgs.continueimgdown, this.pos.x - imgref.x, this.pos.y - imgref.y, this.pos.width, this.pos.height));
+ return locs.length != 0;
+ }
+ readDialog(imgref, checked) {
+ if (!this.pos) {
+ throw new Error("position not found yet");
+ }
+ imgref = this.ensureimg(imgref);
+ if (!imgref) {
+ return null;
+ }
+ if (!checked) {
+ checked = this.checkDialog(imgref);
+ }
+ if (!checked) {
+ return null;
+ }
+ var lines = [];
+ var buf = imgref.toData(this.pos.x, this.pos.y + 33, this.pos.width, 80);
+ for (var y = 0; y < buf.height; y++) {
+ var hastext = false;
+ for (var x = 200; x < 300; x++) {
+ var i = x * 4 + y * 4 * buf.width;
+ if (buf.data[i] + buf.data[i + 1] + buf.data[i + 2] < 50) {
+ hastext = true;
+ break;
+ }
+ }
+ if (hastext) {
+ var chr = null;
+ chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 192, y + 5, 12, 3);
+ chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 246, y + 5, 12, 3);
+ chr = chr || OCR.findChar(buf, fontmono, [0, 0, 0], 310, y + 5, 12, 3);
+ if (chr) {
+ var read = OCR.readLine(buf, fontmono, [0, 0, 0], chr.x, chr.y, true, true);
+ if (read.text.length >= 3) {
+ lines.push(read.text);
+ }
+ y = chr.y + 5;
+ }
+ }
+ }
+ return lines;
+ }
+ findOptions(imgref) {
+ var locs = [];
+ if (!this.pos) {
+ throw new Error("position not found yet");
+ }
+ let imgs = (this.pos.legacy ? imgs_leg : imgs_rs3);
+ var a = imgref.findSubimage(imgs.chatimg);
+ for (var b in a) {
+ locs.push({ x: a[b].x, y: a[b].y, hover: false, active: false });
+ }
+ var a = imgref.findSubimage(imgs.chatimghover);
+ for (var b in a) {
+ locs.push({ x: a[b].x, y: a[b].y, hover: true, active: false });
+ }
+ var a = imgref.findSubimage(imgs.chatimgactive);
+ for (var b in a) {
+ locs.push({ x: a[b].x, y: a[b].y, hover: false, active: true });
+ }
+ return locs;
+ }
+ readOptions(imgref, locs) {
+ imgref = this.ensureimg(imgref);
+ if (!imgref) {
+ return null;
+ }
+ if (!this.pos) {
+ throw new Error("interface not found");
+ }
+ var buf = imgref.toData();
+ if (!locs) {
+ locs = this.findOptions(imgref);
+ }
+ var bgcol = [150, 135, 105];
+ var fontcol = this.pos.legacy ? [255, 255, 255] : [174, 208, 224];
+ var r = [];
+ for (var a = 0; a < locs.length; a++) {
+ var dx = locs[a].x + 30;
+ var dy = locs[a].y + 6;
+ var checkline = imgref.toData(dx, dy, Math.min(500, imgref.width - a), 1);
+ var row = null;
+ for (var x = 0; x < checkline.width; x++) {
+ var i = x * 4;
+ if (row) {
+ if (coldiff(checkline.data[i], checkline.data[i + 1], checkline.data[i + 2], bgcol[0], bgcol[1], bgcol[2]) < 75) {
+ row.width = x + 20;
+ break;
+ }
+ }
+ else if (coldiff(checkline.data[i], checkline.data[i + 1], checkline.data[i + 2], fontcol[0], fontcol[1], fontcol[2]) < 100) {
+ var text = "";
+ var chr = OCR.findChar(buf, fontmono, fontcol, dx + x + 2 - imgref.x, dy + 3 - imgref.y, 30, 1);
+ if (chr) {
+ var read = OCR.readLine(buf, fontmono, fontcol, chr.x, chr.y, true, true);
+ var text = read.text;
+ }
+ row = { text: text, x: dx + x, y: dy, width: 200, buttonx: dx - 31, hover: !!locs[a].hover, active: locs[a].active };
+ }
+ }
+ if (row) {
+ r.push(row);
+ }
+ }
+ r.sort((a, b) => a.y - b.y);
+ return r;
+ }
+}
+exports["default"] = DialogReader;
+//TODO get rid of this or make it standard
+function coldiff(r1, g1, b1, r2, g2, b2) {
+ return Math.abs(r1 - r2) + Math.abs(g1 - g2) + Math.abs(b1 - b2);
+}
+
+
+/***/ }),
+
+/***/ "alt1/base":
+/*!**************************************************************************************************!*\
+ !*** external {"root":"A1lib","commonjs2":"alt1/base","commonjs":"alt1/base","amd":"alt1/base"} ***!
+ \**************************************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = __WEBPACK_EXTERNAL_MODULE_alt1_base__;
+
+/***/ }),
+
+/***/ "alt1/ocr":
+/*!*********************************************************************************************!*\
+ !*** external {"root":"OCR","commonjs2":"alt1/ocr","commonjs":"alt1/ocr","amd":"alt1/ocr"} ***!
+ \*********************************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = __WEBPACK_EXTERNAL_MODULE_alt1_ocr__;
+
+/***/ }),
+
+/***/ "./src/fonts/aa_8px_mono.fontmeta.json":
+/*!*********************************************!*\
+ !*** ./src/fonts/aa_8px_mono.fontmeta.json ***!
+ \*********************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = JSON.parse('{"chars":[{"width":7,"bonus":75,"chr":"a","pixels":[0,7,187,1,3,221,1,6,170,1,8,255,2,3,255,2,5,187,2,8,255,3,3,255,3,5,255,3,8,221,4,4,238,4,5,255,4,6,204,4,7,255,4,8,238],"secondary":false},{"width":7,"bonus":105,"chr":"b","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,204,1,4,170,1,7,170,1,8,187,2,3,255,2,8,255,3,3,255,3,8,255,4,3,170,4,4,170,4,7,170,5,5,187,5,6,187],"secondary":false},{"width":7,"bonus":50,"chr":"c","pixels":[0,5,170,0,6,187,1,4,187,1,7,187,2,3,255,2,8,255,3,3,255,3,8,255,4,3,221,4,8,221],"secondary":false},{"width":7,"bonus":105,"chr":"d","pixels":[0,5,187,0,6,187,1,4,170,1,7,170,1,8,170,2,3,255,2,8,255,3,3,255,3,8,255,4,3,204,4,4,170,4,7,170,4,8,187,5,1,204,5,2,221,5,3,221,5,4,221,5,5,221,5,6,221,5,7,221,5,8,204],"secondary":false},{"width":7,"bonus":75,"chr":"e","pixels":[0,5,187,0,6,170,1,4,187,1,5,255,1,7,204,2,3,255,2,5,255,2,8,255,3,3,255,3,5,255,3,8,255,4,3,187,4,5,255,4,8,221,5,5,204],"secondary":false},{"width":4,"bonus":50,"chr":"f","pixels":[0,3,204,1,2,221,1,3,255,1,4,221,1,5,221,1,6,221,1,7,221,1,8,204,2,1,255,2,3,255],"secondary":false},{"width":7,"bonus":115,"chr":"g","pixels":[0,5,187,0,6,187,1,3,170,1,4,153,1,7,170,1,11,153,2,3,255,2,8,255,2,11,238,3,3,255,3,8,255,3,11,221,4,3,221,4,7,153,4,8,221,4,10,204,5,3,204,5,4,221,5,5,221,5,6,221,5,7,221,5,8,221,5,9,170],"secondary":false},{"width":7,"bonus":90,"chr":"h","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,170,1,4,204,2,3,255,3,3,255,4,3,170,4,4,221,4,5,221,4,6,221,4,7,221,4,8,204],"secondary":false},{"width":3,"bonus":35,"chr":"i","pixels":[0,1,238,0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204],"secondary":false},{"width":4,"bonus":50,"chr":"j","pixels":[0,11,153,1,11,170,2,1,204,2,3,204,2,4,221,2,5,221,2,6,221,2,7,221,2,8,221,2,9,221],"secondary":false},{"width":6,"bonus":70,"chr":"k","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,5,255,2,4,153,2,5,255,2,6,221,3,3,204,3,7,221],"secondary":false},{"width":3,"bonus":40,"chr":"l","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,1,8,255],"secondary":false},{"width":10,"bonus":115,"chr":"m","pixels":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,221,2,3,238,3,3,255,4,3,153,4,4,255,4,5,221,4,6,221,4,7,221,4,8,204,5,4,187,6,3,255,7,3,238,8,4,170,8,5,221,8,6,221,8,7,221,8,8,204],"secondary":false},{"width":7,"bonus":75,"chr":"n","pixels":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,221,2,3,238,3,3,255,4,3,238,5,4,170,5,5,221,5,6,221,5,7,221,5,8,204],"secondary":false},{"width":8,"bonus":70,"chr":"o","pixels":[0,5,187,0,6,170,1,4,204,1,7,221,2,3,238,2,8,238,3,3,255,3,8,255,4,3,238,4,8,255,5,4,204,5,7,221,6,5,170,6,6,170],"secondary":false},{"width":6,"bonus":90,"chr":"p","pixels":[0,3,238,0,4,255,0,5,187,0,6,204,0,7,255,0,8,221,0,9,221,0,10,221,1,3,255,1,8,238,2,3,255,2,8,255,3,3,238,3,8,238,4,4,238,4,5,255,4,6,255,4,7,238],"secondary":false},{"width":7,"bonus":90,"chr":"q","pixels":[0,5,187,0,6,187,1,3,170,1,4,153,1,7,153,1,8,170,2,3,255,2,8,255,3,3,238,3,8,238,4,3,255,4,4,255,4,5,187,4,6,187,4,7,255,4,8,238,4,9,221,4,10,221],"secondary":false},{"width":4,"bonus":45,"chr":"r","pixels":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,3,187,1,4,204,2,3,255],"secondary":false},{"width":6,"bonus":50,"chr":"s","pixels":[0,4,187,1,3,255,1,5,238,1,8,255,2,3,255,2,8,255,3,3,255,3,6,238,3,8,255,4,7,187],"secondary":false},{"width":5,"bonus":45,"chr":"t","pixels":[1,2,221,1,3,255,1,4,221,1,5,221,1,6,221,1,7,170,2,3,255,2,8,238,3,8,153],"secondary":false},{"width":6,"bonus":70,"chr":"u","pixels":[0,3,204,0,4,221,0,5,221,0,6,221,0,7,170,1,8,238,2,8,255,3,8,204,4,3,204,4,4,221,4,5,221,4,6,204,4,7,255,4,8,221],"secondary":false},{"width":6,"bonus":50,"chr":"v","pixels":[0,3,238,1,5,238,1,6,204,2,7,255,2,8,255,3,5,153,3,6,255,3,7,153,4,3,238,4,4,204],"secondary":false},{"width":10,"bonus":95,"chr":"w","pixels":[1,3,153,1,4,238,1,5,187,2,6,153,2,7,238,2,8,187,3,6,204,3,7,238,3,8,153,4,3,170,4,4,255,5,4,221,5,5,221,6,7,255,6,8,221,7,6,238,7,7,204,8,3,238,8,4,204],"secondary":false},{"width":6,"bonus":55,"chr":"x","pixels":[0,8,170,1,3,170,1,4,204,1,7,221,2,5,255,2,6,238,3,4,255,3,6,187,3,7,187,4,3,221,4,8,255],"secondary":false},{"width":6,"bonus":65,"chr":"y","pixels":[0,3,255,0,4,153,0,11,221,1,5,204,1,6,221,1,11,187,2,7,187,2,8,255,2,9,238,3,6,238,3,7,187,4,3,204,4,4,221],"secondary":false},{"width":6,"bonus":70,"chr":"z","pixels":[0,3,153,0,8,204,1,3,255,1,7,221,1,8,255,2,3,255,2,6,255,2,8,255,3,3,255,3,4,170,3,5,170,3,8,255,4,3,255,4,8,255],"secondary":false},{"width":8,"bonus":85,"chr":"A","pixels":[0,8,153,1,6,221,1,7,238,2,3,170,2,4,255,2,5,187,2,6,255,3,1,255,3,2,255,3,6,255,4,2,255,4,3,238,4,6,255,5,5,255,5,6,255,6,7,187,6,8,255],"secondary":false},{"width":7,"bonus":125,"chr":"B","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,4,255,1,8,255,2,1,255,2,4,255,2,8,255,3,1,255,3,4,255,3,8,255,4,1,221,4,4,255,4,5,170,4,8,204,5,2,170,5,3,170,5,6,187,5,7,153],"secondary":false},{"width":9,"bonus":80,"chr":"C","pixels":[0,4,187,0,5,187,1,2,221,1,3,153,1,6,153,1,7,204,2,1,170,2,8,170,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,255,6,1,170,6,8,170],"secondary":false},{"width":8,"bonus":100,"chr":"D","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,8,255,2,1,255,2,8,255,3,1,255,3,8,255,4,1,204,4,8,204,5,2,221,5,7,221,6,4,187,6,5,187],"secondary":false},{"width":6,"bonus":95,"chr":"E","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,1,8,255,2,1,255,2,5,255,2,8,255,3,1,255,3,5,255,3,8,255,4,1,153,4,8,221],"secondary":false},{"width":6,"bonus":70,"chr":"F","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255],"secondary":false},{"width":9,"bonus":105,"chr":"G","pixels":[0,4,170,0,5,187,1,2,204,1,3,153,1,7,221,2,1,170,2,8,187,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,238,6,1,170,6,5,255,6,7,153,6,8,170,7,5,153,7,6,221,7,7,221,7,8,204],"secondary":false},{"width":8,"bonus":105,"chr":"H","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,5,255,2,5,255,3,5,255,4,5,255,5,5,255,6,1,204,6,2,221,6,3,221,6,4,221,6,5,221,6,6,221,6,7,221,6,8,204],"secondary":false},{"width":4,"bonus":60,"chr":"I","pixels":[0,1,192,0,8,191,1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,2,1,192,2,8,191],"secondary":false},{"width":6,"bonus":70,"chr":"J","pixels":[0,6,153,0,7,153,1,8,204,2,1,221,2,8,255,3,1,255,3,8,204,4,1,204,4,2,221,4,3,221,4,4,221,4,5,221,4,6,221,4,7,153],"secondary":false},{"width":7,"bonus":85,"chr":"K","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,4,255,2,4,255,3,3,221,3,5,170,3,6,204,4,1,204,4,2,153,4,7,238,4,8,153],"secondary":false},{"width":6,"bonus":60,"chr":"L","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,8,255,2,8,255,3,8,255,4,8,255],"secondary":false},{"width":9,"bonus":130,"chr":"M","pixels":[0,1,245,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,1,2,170,1,3,225,2,4,207,2,5,190,3,6,232,4,6,232,5,4,207,5,5,190,6,2,170,6,3,224,7,1,245,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255],"secondary":false},{"width":8,"bonus":110,"chr":"N","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,2,255,2,3,221,3,4,187,3,5,187,4,6,221,5,7,255,6,1,204,6,2,221,6,3,221,6,4,221,6,5,221,6,6,221,6,7,221,6,8,204],"secondary":false},{"width":10,"bonus":110,"chr":"O","pixels":[0,4,187,0,5,170,1,2,204,1,3,153,1,6,170,1,7,204,2,1,153,2,8,153,3,1,255,3,8,255,4,1,255,4,8,255,5,1,255,5,8,255,6,1,153,6,8,153,7,2,204,7,3,153,7,6,170,7,7,204,8,4,187,8,5,170],"secondary":false},{"width":7,"bonus":85,"chr":"P","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255,4,1,187,4,5,187,5,3,221],"secondary":false},{"width":9,"bonus":100,"chr":"Q","pixels":[0,4,187,0,5,187,1,2,221,1,6,153,1,7,221,2,1,187,2,8,170,3,1,255,3,8,255,4,1,255,4,8,255,5,1,238,5,8,238,6,2,204,6,7,255,7,3,255,7,4,204,7,5,221,7,6,255,7,8,204],"secondary":false},{"width":7,"bonus":100,"chr":"R","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,1,255,1,5,255,2,1,255,2,5,255,3,1,255,3,5,255,3,6,187,4,2,238,4,3,204,4,4,255,4,7,238,4,8,170],"secondary":false},{"width":6,"bonus":70,"chr":"S","pixels":[0,2,153,0,3,170,1,1,204,1,4,221,1,8,238,2,1,255,2,4,170,2,8,255,3,1,255,3,5,255,3,8,255,4,1,170,4,6,221,4,7,238],"secondary":false},{"width":8,"bonus":65,"chr":"T","pixels":[0,1,255,1,1,255,2,1,255,3,1,255,3,2,221,3,3,221,3,4,221,3,5,221,3,6,221,3,7,221,3,8,204,4,1,255,5,1,255],"secondary":false},{"width":8,"bonus":85,"chr":"U","pixels":[0,1,204,0,2,221,0,3,221,0,4,221,0,5,221,0,6,187,1,7,170,2,8,255,3,8,255,4,8,221,5,1,204,5,2,221,5,3,221,5,4,221,5,5,221,5,6,255,5,7,238],"secondary":false},{"width":7,"bonus":70,"chr":"V","pixels":[0,1,255,0,2,187,1,3,153,1,4,255,1,5,153,2,6,187,2,7,238,3,7,255,3,8,204,4,4,204,4,5,238,5,1,170,5,2,255,5,3,153],"secondary":false},{"width":10,"bonus":125,"chr":"W","pixels":[0,1,255,0,2,221,1,4,187,1,5,255,1,6,204,2,7,255,2,8,255,3,3,153,3,4,238,3,5,221,4,1,255,4,2,255,4,3,153,5,3,170,5,4,238,5,5,204,6,7,255,6,8,255,7,4,153,7,5,238,7,6,238,7,7,153,8,1,238,8,2,238,8,3,153],"secondary":false},{"width":7,"bonus":75,"chr":"X","pixels":[0,8,170,1,1,187,1,2,204,1,7,238,2,3,221,2,4,153,2,5,255,2,6,153,3,4,255,3,5,238,4,2,238,4,6,204,4,7,170,5,1,204,5,8,255],"secondary":false},{"width":7,"bonus":55,"chr":"Y","pixels":[0,1,170,1,2,238,2,3,153,2,4,255,3,4,221,3,5,204,3,6,221,3,7,221,3,8,204,4,3,255,5,1,238],"secondary":false},{"width":7,"bonus":75,"chr":"Z","pixels":[0,8,187,1,1,255,1,7,221,1,8,255,2,1,255,2,5,204,2,8,255,3,1,255,3,4,204,3,8,255,4,1,255,4,2,221,4,8,255,5,1,187,5,8,153],"secondary":false},{"width":7,"bonus":90,"chr":"0","pixels":[0,2,153,0,3,221,0,4,255,0,5,255,0,6,238,0,7,170,1,1,187,1,8,204,2,1,187,2,8,187,3,1,221,3,8,204,4,2,170,4,3,255,4,4,187,4,5,187,4,6,238,4,7,170],"secondary":false},{"width":7,"bonus":50,"chr":"1","pixels":[1,8,187,2,1,204,2,2,204,2,3,187,2,4,187,2,5,187,2,6,187,2,7,187,2,8,238,3,8,204],"secondary":false},{"width":7,"bonus":55,"chr":"2","pixels":[1,8,255,2,1,187,2,6,153,2,8,187,3,1,204,3,5,153,3,8,187,4,1,187,4,2,153,4,4,204,4,8,187],"secondary":false},{"width":7,"bonus":50,"chr":"3","pixels":[0,8,204,1,1,187,1,8,187,2,1,187,2,4,187,2,8,204,3,2,221,3,3,204,3,5,204,3,7,170],"secondary":false},{"width":7,"bonus":80,"chr":"4","pixels":[0,6,238,1,4,187,1,6,187,2,3,170,2,6,187,3,1,187,3,2,153,3,6,204,4,1,187,4,2,187,4,3,187,4,4,187,4,5,187,4,6,238,4,7,187,4,8,187],"secondary":false},{"width":7,"bonus":70,"chr":"5","pixels":[1,1,238,1,2,187,1,3,187,1,4,187,1,8,204,2,1,187,2,4,187,2,8,187,3,1,187,3,4,204,3,8,204,4,5,238,4,6,187,4,7,221],"secondary":false},{"width":7,"bonus":80,"chr":"6","pixels":[0,3,170,0,4,255,0,5,255,0,6,238,0,7,153,1,2,187,1,8,187,2,1,204,2,4,187,2,8,187,3,1,187,3,4,204,3,8,187,4,5,221,4,6,255,4,7,187],"secondary":false},{"width":7,"bonus":55,"chr":"7","pixels":[0,1,187,1,1,187,1,8,204,2,1,187,2,6,238,2,7,153,3,1,187,3,3,153,3,4,221,4,1,255,4,2,187],"secondary":false},{"width":7,"bonus":95,"chr":"8","pixels":[1,2,238,1,3,221,1,6,204,1,7,221,2,1,204,2,4,204,2,5,170,2,8,221,3,1,187,3,4,170,3,8,187,4,1,221,4,4,170,4,5,204,4,8,187,5,2,170,5,3,153,5,6,238,5,7,238],"secondary":false},{"width":7,"bonus":85,"chr":"9","pixels":[1,2,221,1,3,187,1,4,238,1,8,153,2,1,204,2,5,221,2,8,187,3,1,187,3,5,187,3,8,204,4,1,187,4,7,170,5,2,153,5,3,238,5,4,255,5,5,255,5,6,187],"secondary":false},{"width":8,"bonus":75,"chr":"%","pixels":[0,3,255,0,8,255,1,2,255,1,4,255,1,7,255,2,3,255,2,6,255,3,5,255,4,4,255,4,7,255,5,3,255,5,6,255,5,8,255,6,2,255,6,7,255],"secondary":false},{"width":4,"bonus":40,"chr":"/","pixels":[0,7,153,0,8,238,0,9,221,1,4,187,1,5,238,1,6,170,2,1,221,2,2,221],"secondary":false},{"width":7,"bonus":60,"chr":"+","pixels":[0,5,221,1,5,255,2,5,255,3,2,153,3,3,221,3,4,221,3,5,255,3,6,221,3,7,221,3,8,204,4,5,255,5,5,255],"secondary":false},{"width":5,"bonus":40,"chr":"?","pixels":[0,1,170,1,1,255,1,6,221,1,8,255,2,1,255,2,5,170,3,2,255,3,3,221],"secondary":false},{"width":2,"bonus":35,"chr":"!","pixels":[0,1,170,0,2,187,0,3,187,0,4,187,0,5,187,0,6,170,0,8,255],"secondary":false},{"width":8,"bonus":130,"chr":"@","pixels":[0,4,255,0,5,255,0,6,221,0,7,255,0,8,187,1,3,221,1,9,238,2,2,221,2,5,255,2,6,238,2,7,255,2,10,153,3,2,255,3,4,255,3,8,204,3,10,187,4,2,238,4,4,255,4,8,255,5,3,238,5,4,255,5,5,221,5,6,221,5,7,221,5,8,238,6,8,221],"secondary":false},{"width":8,"bonus":120,"chr":"#","pixels":[0,6,255,1,3,255,1,6,255,1,7,170,1,8,238,2,1,170,2,2,238,2,3,255,2,4,221,2,5,170,2,6,255,3,3,255,3,6,255,4,3,255,4,4,153,4,5,204,4,6,255,4,7,238,4,8,187,5,1,255,5,2,187,5,3,255,5,6,255,6,3,255],"secondary":false},{"width":6,"bonus":70,"chr":"$","pixels":[0,2,153,0,3,170,1,1,204,1,4,221,1,8,238,2,0,204,2,1,238,2,8,238,2,9,204,3,1,238,3,5,238,3,8,255,4,6,170,4,7,170],"secondary":false},{"width":6,"bonus":40,"chr":"^","pixels":[0,4,153,0,5,238,1,2,204,1,3,221,2,1,221,2,2,221,3,3,187,3,4,221],"secondary":false},{"width":6,"bonus":20,"chr":"~","pixels":[1,5,255,2,5,221,3,6,221,4,5,204],"secondary":false},{"width":7,"bonus":95,"chr":"&","pixels":[0,6,187,1,2,238,1,3,255,1,4,187,1,5,187,1,8,187,2,1,255,2,4,255,2,8,255,3,1,255,3,4,255,3,8,255,4,4,255,4,8,187,5,3,204,5,4,255,5,5,221,5,6,187,6,4,153],"secondary":false},{"width":6,"bonus":45,"chr":"*","pixels":[0,2,170,1,2,170,1,3,204,1,4,255,2,1,204,2,2,238,2,3,255,3,2,170,3,4,153],"secondary":false},{"width":4,"bonus":55,"chr":"(","pixels":[0,3,173,0,4,239,0,5,253,0,6,230,0,7,171,1,1,194,1,2,204,1,8,204,1,9,191,2,0,210,2,10,216],"secondary":false},{"width":4,"bonus":55,"chr":")","pixels":[1,0,211,1,10,216,2,1,194,2,2,203,2,8,203,2,9,191,3,3,174,3,4,240,3,5,253,3,6,229,3,7,171],"secondary":false},{"width":7,"bonus":30,"chr":"_","pixels":[0,9,153,1,9,255,2,9,255,3,9,255,4,9,255,5,9,255],"secondary":false},{"width":4,"bonus":15,"chr":"-","pixels":[0,5,255,1,5,255,2,5,255],"secondary":true},{"width":8,"bonus":50,"chr":"=","pixels":[0,4,255,0,6,255,1,4,255,1,6,255,2,4,255,2,6,255,3,4,255,3,6,255,4,4,255,4,6,255],"secondary":false},{"width":3,"bonus":55,"chr":"[","pixels":[0,0,204,0,1,221,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,204,1,0,238,1,8,238],"secondary":false},{"width":3,"bonus":55,"chr":"]","pixels":[0,0,238,0,8,238,1,0,204,1,1,221,1,2,221,1,3,221,1,4,221,1,5,221,1,6,221,1,7,221,1,8,204],"secondary":false},{"width":5,"bonus":50,"chr":"{","pixels":[0,5,153,1,2,170,1,3,221,1,4,221,1,5,204,1,6,255,1,7,221,1,8,170,2,1,238,2,9,238],"secondary":false},{"width":5,"bonus":50,"chr":"}","pixels":[1,1,238,1,9,238,2,2,170,2,3,221,2,4,221,2,5,204,2,6,255,2,7,221,2,8,170,3,5,153],"secondary":false},{"width":3,"bonus":10,"chr":":","pixels":[1,3,255,1,7,255],"secondary":true},{"width":3,"bonus":20,"chr":";","pixels":[0,9,201,1,3,255,1,7,241,1,8,255],"secondary":true},{"width":3,"bonus":20,"chr":"\\"","pixels":[0,1,255,0,2,255,2,1,255,2,2,255],"secondary":true},{"width":2,"bonus":10,"chr":"\'","pixels":[0,1,255,0,2,177],"secondary":true},{"width":7,"bonus":40,"chr":"<","pixels":[0,5,204,1,5,255,2,4,238,2,6,238,3,4,170,3,6,170,4,3,221,4,7,221],"secondary":false},{"width":7,"bonus":45,"chr":">","pixels":[0,3,204,0,7,204,1,7,187,2,4,238,2,6,255,3,4,170,3,5,153,3,6,204,4,5,255],"secondary":false},{"width":5,"bonus":35,"chr":"\\\\","pixels":[1,1,153,1,2,255,1,3,204,2,5,255,2,6,204,3,8,255,3,9,204],"secondary":false},{"width":2,"bonus":5,"chr":".","pixels":[0,8,255],"secondary":true},{"width":3,"bonus":15,"chr":",","pixels":[0,9,205,1,7,205,1,8,255],"secondary":true},{"width":3,"bonus":50,"chr":"|","pixels":[0,1,221,0,2,221,0,3,221,0,4,221,0,5,221,0,6,221,0,7,221,0,8,221,0,9,221,0,10,204],"secondary":false}],"width":10,"spacewidth":3,"shadow":false,"height":12,"basey":8}');
+
+/***/ }),
+
+/***/ "./src/fonts/aa_8px_mono_allcaps.fontmeta.json":
+/*!*****************************************************!*\
+ !*** ./src/fonts/aa_8px_mono_allcaps.fontmeta.json ***!
+ \*****************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = JSON.parse('{"chars":[{"width":3,"bonus":35,"chr":"!","pixels":[0,2,170,1,1,221,1,2,255,1,3,221,1,4,187,1,5,170,1,9,204],"secondary":false},{"width":6,"bonus":20,"chr":"\\"","pixels":[1,2,221,1,3,255,3,2,221,3,3,255],"secondary":true},{"width":8,"bonus":125,"chr":"#","pixels":[0,7,187,1,4,255,1,7,255,1,10,170,2,3,170,2,4,255,2,5,255,2,6,221,2,7,255,2,8,170,3,4,255,3,7,255,4,4,255,4,5,153,4,7,255,4,8,238,4,9,255,4,10,204,5,2,238,5,3,204,5,4,255,5,5,153,5,7,255,6,4,255,6,7,153],"secondary":false},{"width":7,"bonus":115,"chr":"$","pixels":[0,8,187,1,2,255,1,3,255,1,4,221,1,9,238,2,1,187,2,4,255,2,5,204,2,8,170,2,9,255,2,10,221,3,0,187,3,1,238,3,2,187,3,3,170,3,4,153,3,5,255,3,6,221,3,9,221,4,1,221,4,6,255,4,7,255,4,8,255],"secondary":false},{"width":12,"bonus":135,"chr":"%","pixels":[1,2,255,1,3,255,1,4,221,2,5,153,3,1,153,3,9,187,4,1,170,4,2,255,4,3,255,4,4,221,4,7,238,4,8,204,5,4,153,5,5,238,5,6,153,6,1,153,6,2,187,6,3,204,6,6,221,6,7,255,6,8,255,7,1,153,7,9,187,8,9,187,9,6,221,9,7,255,9,8,255],"secondary":false},{"width":11,"bonus":190,"chr":"&","pixels":[0,6,187,0,7,255,0,8,170,1,2,204,1,3,255,1,4,153,1,5,238,1,6,170,1,7,187,1,8,255,1,9,153,2,1,170,2,2,153,2,3,153,2,4,255,2,5,187,2,9,238,3,1,221,3,5,238,3,6,170,3,9,255,4,1,238,4,6,238,4,7,153,4,9,204,5,1,187,5,2,187,5,7,255,5,8,204,6,7,170,6,8,255,7,5,238,7,6,255,7,7,170,7,8,170,7,9,221,8,9,238,9,9,153],"secondary":false},{"width":4,"bonus":10,"chr":"\'","pixels":[1,2,204,1,3,255],"secondary":true},{"width":4,"bonus":50,"chr":"(","pixels":[0,3,170,0,4,238,0,5,255,0,6,221,0,7,153,1,1,153,1,2,221,1,3,153,1,7,170,1,8,238],"secondary":false},{"width":4,"bonus":40,"chr":")","pixels":[1,1,170,1,2,221,1,7,170,1,8,238,2,3,187,2,4,238,2,5,255,2,6,204],"secondary":false},{"width":5,"bonus":25,"chr":"*","pixels":[1,1,170,1,2,221,1,3,153,2,2,255,2,3,204],"secondary":false},{"width":8,"bonus":45,"chr":"+","pixels":[1,6,255,2,6,255,3,4,255,3,5,255,3,6,255,3,7,255,3,8,255,4,6,255,5,6,255],"secondary":false},{"width":3,"bonus":10,"chr":",","pixels":[1,8,187,1,9,221],"secondary":true},{"width":5,"bonus":20,"chr":"-","pixels":[0,7,204,1,7,255,2,7,238,3,7,187],"secondary":true},{"width":3,"bonus":5,"chr":".","pixels":[0,9,204],"secondary":true},{"width":7,"bonus":40,"chr":"/","pixels":[0,9,221,1,7,187,1,8,187,2,6,221,3,4,221,4,2,170,4,3,187,5,1,187],"secondary":false},{"width":8,"bonus":105,"chr":"0","pixels":[0,6,153,1,3,221,1,4,255,1,5,255,1,6,255,1,7,255,1,8,238,2,2,187,2,8,153,2,9,204,3,2,187,3,9,204,4,2,221,4,9,187,5,3,238,5,4,255,5,5,255,5,6,255,5,7,255,5,8,221,6,5,153],"secondary":false},{"width":6,"bonus":85,"chr":"1","pixels":[1,3,170,1,9,153,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,3,2,153,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221],"secondary":false},{"width":8,"bonus":100,"chr":"2","pixels":[1,2,187,1,3,153,1,9,255,2,2,187,2,8,221,2,9,255,3,2,221,3,7,221,3,9,255,4,2,187,4,3,238,4,4,187,4,5,238,4,6,238,4,9,255,5,3,221,5,4,255,5,5,170,5,8,153,5,9,238],"secondary":false},{"width":7,"bonus":100,"chr":"3","pixels":[0,2,170,0,8,170,0,9,204,1,2,221,1,9,238,2,2,238,2,5,221,2,9,221,3,2,221,3,3,187,3,4,204,3,5,255,3,6,153,3,9,187,4,3,238,4,4,153,4,6,255,4,7,255,4,8,255,5,7,153],"secondary":false},{"width":8,"bonus":85,"chr":"4","pixels":[0,7,153,1,6,187,1,7,255,2,5,187,2,7,255,3,4,187,3,7,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,7,255,5,9,204,6,7,221],"secondary":false},{"width":7,"bonus":95,"chr":"5","pixels":[0,8,153,0,9,221,1,2,255,1,3,187,1,4,238,1,9,221,2,2,255,2,4,187,2,5,170,2,9,204,3,2,255,3,5,255,3,9,170,4,2,255,4,5,204,4,6,255,4,7,255,4,8,238,5,7,153],"secondary":false},{"width":8,"bonus":105,"chr":"6","pixels":[0,7,153,1,4,153,1,5,255,1,6,255,1,7,255,1,8,255,2,4,204,2,9,221,3,3,170,3,5,153,3,9,204,4,2,153,4,5,187,4,9,204,5,6,238,5,7,170,5,8,187,5,9,153,6,6,187,6,7,255,6,8,170],"secondary":false},{"width":7,"bonus":75,"chr":"7","pixels":[0,2,204,0,3,187,1,2,255,1,9,187,2,2,255,2,7,238,2,8,255,2,9,170,3,2,255,3,5,221,3,6,204,4,2,255,4,3,204,4,4,170,5,2,204],"secondary":false},{"width":8,"bonus":120,"chr":"8","pixels":[1,3,221,1,4,204,1,6,187,1,7,255,1,8,255,2,2,187,2,4,204,2,5,221,2,6,153,2,9,221,3,2,153,3,5,255,3,9,187,4,2,187,4,5,238,4,6,204,4,9,204,5,2,170,5,3,255,5,4,238,5,6,238,5,7,255,5,8,255,6,7,153],"secondary":false},{"width":8,"bonus":95,"chr":"9","pixels":[0,4,153,1,3,255,1,4,255,1,5,255,2,2,187,2,6,153,3,2,204,3,6,153,3,9,153,4,2,221,4,7,153,4,8,204,5,3,255,5,4,255,5,5,255,5,6,255,5,7,187,6,4,153,6,5,153],"secondary":false},{"width":3,"bonus":10,"chr":":","pixels":[0,3,204,0,7,204],"secondary":true},{"width":3,"bonus":20,"chr":";","pixels":[0,2,204,0,6,153,0,7,187,0,8,153],"secondary":true},{"width":7,"bonus":55,"chr":"<","pixels":[0,6,187,0,7,153,1,6,221,1,7,238,2,5,153,3,5,238,3,8,238,4,5,153,4,8,187,5,4,187,5,9,153],"secondary":false},{"width":7,"bonus":60,"chr":"=","pixels":[0,5,255,0,8,255,1,5,255,1,8,255,2,5,255,2,8,255,3,5,255,3,8,255,4,5,255,4,8,255,5,5,221,5,8,221],"secondary":false},{"width":7,"bonus":50,"chr":">","pixels":[0,4,204,0,9,170,1,5,170,1,8,187,2,5,238,2,8,221,3,7,153,4,6,238,4,7,238,5,6,153],"secondary":false},{"width":6,"bonus":65,"chr":"?","pixels":[0,2,153,0,3,187,1,2,221,1,7,221,2,2,238,2,6,238,2,10,204,3,2,204,3,3,221,3,4,204,3,5,255,4,3,238,4,4,221],"secondary":false},{"width":11,"bonus":180,"chr":"@","pixels":[0,4,187,0,5,255,0,6,255,0,7,238,1,3,170,1,8,204,2,5,187,2,6,238,2,7,187,2,9,204,3,4,204,3,5,153,3,6,153,3,7,204,3,9,204,4,3,153,4,6,153,4,9,187,5,0,153,5,3,221,5,4,170,5,5,238,5,6,255,5,7,187,5,9,170,6,3,221,6,4,153,6,7,238,7,1,153,7,7,170,8,1,170,8,2,153,8,6,170,9,3,187,9,4,221,9,5,170],"secondary":false},{"width":9,"bonus":110,"chr":"A","pixels":[1,9,238,2,6,153,2,7,255,2,8,170,2,9,170,3,4,187,3,5,238,3,7,221,4,2,187,4,3,255,4,4,238,4,7,221,5,4,221,5,5,255,5,6,238,5,7,238,6,6,187,6,7,255,6,8,255,6,9,187,7,8,170,7,9,255],"secondary":false},{"width":7,"bonus":150,"chr":"B","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,255,3,2,221,3,5,221,3,9,204,4,2,187,4,3,255,4,4,255,4,5,170,4,6,255,4,7,170,4,8,187,4,9,187,5,6,153,5,7,255,5,8,204],"secondary":false},{"width":8,"bonus":120,"chr":"C","pixels":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,3,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,221,5,2,221,5,9,221,6,2,187,6,3,187,6,8,153,6,9,170],"secondary":false},{"width":10,"bonus":165,"chr":"D","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,9,221,4,2,238,4,9,221,5,2,221,5,9,204,6,2,153,6,3,238,6,8,187,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,8,5,187,8,6,170],"secondary":false},{"width":7,"bonus":110,"chr":"E","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,170,2,9,239,3,2,214,3,5,221,3,9,212,4,2,212,4,5,226,4,9,238],"secondary":false},{"width":7,"bonus":100,"chr":"F","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,2,221,3,5,221,4,2,238,4,5,238],"secondary":false},{"width":9,"bonus":135,"chr":"G","pixels":[0,4,170,0,5,238,0,6,255,0,7,187,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,238,5,2,238,5,9,221,6,2,204,6,6,255,6,7,255,6,8,255,6,9,204,7,6,204,7,7,153,7,8,153],"secondary":false},{"width":10,"bonus":175,"chr":"H","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,5,221,4,5,221,5,5,221,6,2,204,6,3,153,6,4,153,6,5,238,6,6,153,6,7,153,6,8,153,6,9,221,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,255],"secondary":false},{"width":5,"bonus":80,"chr":"I","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,153,2,9,221],"secondary":false},{"width":6,"bonus":90,"chr":"J","pixels":[2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,255,2,11,187,3,2,204,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,153],"secondary":false},{"width":10,"bonus":140,"chr":"K","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,187,2,7,153,2,8,153,2,9,204,3,5,238,3,6,238,4,6,170,4,7,255,5,2,238,5,3,153,5,7,170,5,8,255,6,2,204,6,8,170,6,9,238,7,9,204],"secondary":false},{"width":7,"bonus":95,"chr":"L","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,9,221,4,9,221,5,9,204],"secondary":false},{"width":12,"bonus":150,"chr":"M","pixels":[1,6,170,1,7,221,1,8,255,1,9,255,2,2,170,2,3,255,2,4,255,2,5,221,3,4,204,3,5,255,3,6,238,4,6,204,4,7,255,4,8,221,5,7,187,5,8,255,6,6,221,7,4,238,7,5,204,8,2,187,8,3,255,8,4,255,8,5,255,8,6,255,8,7,238,8,8,204,8,9,187,9,7,170,9,8,204,9,9,255],"secondary":false},{"width":10,"bonus":130,"chr":"N","pixels":[1,2,204,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,3,221,2,4,238,3,4,221,3,5,238,4,5,238,4,6,238,5,6,238,5,7,238,6,7,238,6,8,238,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,204],"secondary":false},{"width":10,"bonus":155,"chr":"O","pixels":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,170,2,8,204,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,238,6,8,170,7,3,238,7,4,255,7,5,255,7,6,255,7,7,255,7,8,187,8,4,153,8,5,221,8,6,204],"secondary":false},{"width":8,"bonus":130,"chr":"P","pixels":[1,1,255,1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,1,238,2,2,153,2,3,153,2,4,153,2,5,170,2,6,153,2,7,153,2,8,153,2,9,221,3,1,204,4,1,238,4,5,187,5,1,153,5,2,255,5,3,255,5,4,255,6,3,153],"secondary":false},{"width":10,"bonus":180,"chr":"Q","pixels":[0,4,153,0,5,238,0,6,238,0,7,170,1,3,221,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,8,221,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,221,6,8,153,6,9,238,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,7,9,187,7,10,153,8,4,153,8,5,204,8,6,204,8,10,255,9,10,204],"secondary":false},{"width":7,"bonus":140,"chr":"R","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,238,2,7,153,2,8,153,2,9,221,3,2,238,3,6,238,4,2,204,4,3,204,4,4,153,4,5,204,4,6,204,4,7,255,5,3,221,5,4,221,5,8,255,6,9,238],"secondary":false},{"width":6,"bonus":115,"chr":"S","pixels":[0,3,221,0,4,238,0,8,187,0,9,187,1,2,187,1,4,204,1,5,255,1,9,238,2,2,187,2,5,255,2,6,187,2,9,221,3,2,204,3,5,153,3,6,255,3,7,170,3,8,153,3,9,170,4,2,204,4,3,153,4,6,170,4,7,255,4,8,187],"secondary":false},{"width":9,"bonus":105,"chr":"T","pixels":[1,2,238,2,2,221,3,2,238,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221,4,2,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,2,221,6,2,221,7,2,255],"secondary":false},{"width":10,"bonus":120,"chr":"U","pixels":[1,2,204,1,3,153,1,4,153,1,5,153,1,6,153,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,3,9,221,4,9,238,5,9,221,6,9,170,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,204,8,2,153],"secondary":false},{"width":10,"bonus":90,"chr":"V","pixels":[1,2,255,1,3,153,2,2,238,2,3,255,2,4,255,2,5,187,3,5,238,3,6,255,3,7,221,4,7,221,4,8,255,4,9,187,5,6,187,5,7,204,6,4,221,6,5,187,7,2,255,7,3,170],"secondary":false},{"width":13,"bonus":165,"chr":"W","pixels":[1,2,255,1,3,221,2,2,204,2,3,221,2,4,255,2,5,255,2,6,221,3,6,187,3,7,255,3,8,255,3,9,187,4,6,153,4,7,221,5,4,221,5,5,187,6,2,187,6,3,255,6,4,255,6,5,153,7,4,170,7,5,255,7,6,255,7,7,187,8,7,255,8,8,255,8,9,187,9,5,153,9,6,221,9,7,170,10,2,221,10,3,238,10,4,187,11,2,187],"secondary":false},{"width":9,"bonus":115,"chr":"X","pixels":[1,2,221,1,9,238,2,2,255,2,3,255,2,7,153,2,8,221,2,9,153,3,3,153,3,4,255,3,5,221,3,6,204,4,5,255,4,6,255,4,7,170,5,3,187,5,4,170,5,7,255,5,8,255,5,9,153,6,2,255,6,8,204,6,9,255,7,9,170],"secondary":false},{"width":8,"bonus":95,"chr":"Y","pixels":[0,2,187,1,2,255,1,3,221,2,3,221,2,4,255,2,5,153,3,5,238,3,6,255,3,7,255,3,8,255,3,9,255,4,5,204,4,6,170,4,7,153,4,8,153,4,9,204,5,3,187,5,4,187,6,2,238],"secondary":false},{"width":8,"bonus":105,"chr":"Z","pixels":[0,9,204,1,2,238,1,7,153,1,8,255,1,9,255,2,2,221,2,6,221,2,7,255,2,9,221,3,2,221,3,4,153,3,5,255,3,6,221,3,9,221,4,2,238,4,3,221,4,4,255,4,9,221,5,2,255,5,3,204,5,9,255],"secondary":false},{"width":4,"bonus":65,"chr":"[","pixels":[0,0,255,0,1,255,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,0,9,255,0,10,187,1,0,187,1,10,170],"secondary":false},{"width":8,"bonus":40,"chr":"\\\\","pixels":[1,1,170,1,2,187,2,3,221,3,5,221,4,6,187,4,7,187,5,8,221,6,9,153],"secondary":false},{"width":5,"bonus":65,"chr":"]","pixels":[1,0,153,1,10,153,2,0,255,2,1,255,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,187],"secondary":false},{"width":7,"bonus":40,"chr":"^","pixels":[0,5,204,1,3,238,1,4,170,2,1,238,3,1,221,3,2,204,4,3,187,4,4,238],"secondary":false},{"width":7,"bonus":30,"chr":"_","pixels":[0,10,221,1,10,221,2,10,221,3,10,221,4,10,221,5,10,221],"secondary":false},{"width":9,"bonus":110,"chr":"a","pixels":[1,9,238,2,6,153,2,7,255,2,8,170,2,9,170,3,4,187,3,5,238,3,7,221,4,2,187,4,3,255,4,4,238,4,7,221,5,4,221,5,5,255,5,6,238,5,7,238,6,6,187,6,7,255,6,8,255,6,9,187,7,8,170,7,9,255],"secondary":false},{"width":7,"bonus":150,"chr":"b","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,255,3,2,221,3,5,221,3,9,204,4,2,187,4,3,255,4,4,255,4,5,170,4,6,255,4,7,170,4,8,187,4,9,187,5,6,153,5,7,255,5,8,204],"secondary":false},{"width":8,"bonus":120,"chr":"c","pixels":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,3,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,221,5,2,221,5,9,221,6,2,187,6,3,187,6,8,153,6,9,170],"secondary":false},{"width":10,"bonus":165,"chr":"d","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,9,221,4,2,238,4,9,221,5,2,221,5,9,204,6,2,153,6,3,238,6,8,187,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,8,5,187,8,6,170],"secondary":false},{"width":7,"bonus":110,"chr":"e","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,170,2,9,255,3,2,221,3,5,221,3,9,221,4,2,238,4,5,238,4,9,238],"secondary":false},{"width":7,"bonus":100,"chr":"f","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,2,221,3,5,221,4,2,238,4,5,238],"secondary":false},{"width":10,"bonus":135,"chr":"g","pixels":[0,4,170,0,5,238,0,6,255,0,7,187,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,153,2,8,221,2,9,153,3,2,221,3,9,221,4,2,221,4,9,238,5,2,238,5,9,221,6,2,204,6,6,255,6,7,255,6,8,255,6,9,204,7,6,204,7,7,153,7,8,153],"secondary":false},{"width":10,"bonus":175,"chr":"h","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,153,2,7,153,2,8,153,2,9,221,3,5,221,4,5,221,5,5,221,6,2,204,6,3,153,6,4,153,6,5,238,6,6,153,6,7,153,6,8,153,6,9,221,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,255],"secondary":false},{"width":5,"bonus":80,"chr":"i","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,153,2,9,221],"secondary":false},{"width":5,"bonus":90,"chr":"j","pixels":[2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,2,9,255,2,10,255,2,11,187,3,2,204,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,153],"secondary":false},{"width":9,"bonus":140,"chr":"k","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,238,2,6,187,2,7,153,2,8,153,2,9,204,3,5,238,3,6,238,4,6,170,4,7,255,5,2,238,5,3,153,5,7,170,5,8,255,6,2,204,6,8,170,6,9,238,7,9,204],"secondary":false},{"width":7,"bonus":95,"chr":"l","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,204,2,3,153,2,4,153,2,5,153,2,6,153,2,7,153,2,8,170,2,9,255,3,9,221,4,9,221,5,9,204],"secondary":false},{"width":12,"bonus":150,"chr":"m","pixels":[1,6,170,1,7,221,1,8,255,1,9,255,2,2,170,2,3,255,2,4,255,2,5,221,3,4,204,3,5,255,3,6,238,4,6,204,4,7,255,4,8,221,5,7,187,5,8,255,6,6,221,7,4,238,7,5,204,8,2,187,8,3,255,8,4,255,8,5,255,8,6,255,8,7,238,8,8,204,8,9,187,9,7,170,9,8,204,9,9,255],"secondary":false},{"width":10,"bonus":130,"chr":"n","pixels":[1,2,204,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,3,221,2,4,238,3,4,221,3,5,238,4,5,238,4,6,238,5,6,238,5,7,238,6,7,238,6,8,238,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,255,7,9,204],"secondary":false},{"width":10,"bonus":155,"chr":"o","pixels":[0,4,170,0,5,238,0,6,238,0,7,170,1,3,238,1,4,238,1,5,187,1,6,204,1,7,255,1,8,238,2,2,170,2,8,204,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,238,6,8,170,7,3,238,7,4,255,7,5,255,7,6,255,7,7,255,7,8,187,8,4,153,8,5,221,8,6,204],"secondary":false},{"width":7,"bonus":115,"chr":"p","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,170,2,7,153,2,8,153,2,9,221,3,2,221,4,2,221,4,3,204,4,4,153,4,5,221,5,3,221,5,4,221],"secondary":false},{"width":10,"bonus":180,"chr":"q","pixels":[0,4,153,0,5,238,0,6,238,0,7,170,1,3,221,1,4,255,1,5,221,1,6,238,1,7,255,1,8,238,2,2,153,2,8,221,2,9,170,3,2,221,3,9,238,4,2,221,4,9,221,5,2,238,5,9,204,6,2,153,6,3,221,6,8,153,6,9,238,7,3,221,7,4,255,7,5,255,7,6,255,7,7,255,7,8,170,7,9,187,7,10,153,8,4,153,8,5,204,8,6,204,8,10,255,9,10,204],"secondary":false},{"width":9,"bonus":145,"chr":"r","pixels":[1,2,255,1,3,255,1,4,255,1,5,255,1,6,255,1,7,255,1,8,255,1,9,255,2,2,238,2,3,153,2,4,153,2,5,153,2,6,238,2,7,153,2,8,153,2,9,221,3,2,238,3,6,238,4,2,204,4,3,204,4,4,153,4,5,204,4,6,204,4,7,255,5,3,221,5,4,221,5,8,255,6,9,238,7,9,153],"secondary":false},{"width":6,"bonus":115,"chr":"s","pixels":[0,3,221,0,4,238,0,8,187,0,9,187,1,2,187,1,4,204,1,5,255,1,9,238,2,2,187,2,5,255,2,6,187,2,9,221,3,2,204,3,5,153,3,6,255,3,7,170,3,8,153,3,9,170,4,2,204,4,3,153,4,6,170,4,7,255,4,8,187],"secondary":false},{"width":9,"bonus":105,"chr":"t","pixels":[1,2,238,2,2,221,3,2,238,3,3,153,3,4,153,3,5,153,3,6,153,3,7,153,3,8,153,3,9,221,4,2,255,4,3,255,4,4,255,4,5,255,4,6,255,4,7,255,4,8,255,4,9,255,5,2,221,6,2,221,7,2,255],"secondary":false},{"width":10,"bonus":120,"chr":"u","pixels":[1,2,204,1,3,153,1,4,153,1,5,153,1,6,153,2,2,255,2,3,255,2,4,255,2,5,255,2,6,255,2,7,255,2,8,255,3,9,221,4,9,238,5,9,221,6,9,170,7,2,255,7,3,255,7,4,255,7,5,255,7,6,255,7,7,255,7,8,204,8,2,153],"secondary":false},{"width":10,"bonus":90,"chr":"v","pixels":[1,2,255,1,3,153,2,2,238,2,3,255,2,4,255,2,5,187,3,5,238,3,6,255,3,7,221,4,7,221,4,8,255,4,9,187,5,6,187,5,7,204,6,4,221,6,5,187,7,2,255,7,3,170],"secondary":false},{"width":13,"bonus":165,"chr":"w","pixels":[1,2,255,1,3,221,2,2,204,2,3,221,2,4,255,2,5,255,2,6,221,3,6,187,3,7,255,3,8,255,3,9,187,4,6,153,4,7,221,5,4,221,5,5,187,6,2,187,6,3,255,6,4,255,6,5,153,7,4,170,7,5,255,7,6,255,7,7,187,8,7,255,8,8,255,8,9,187,9,5,153,9,6,221,9,7,170,10,2,221,10,3,238,10,4,187,11,2,187],"secondary":false},{"width":9,"bonus":115,"chr":"x","pixels":[1,2,221,1,9,238,2,2,255,2,3,255,2,7,153,2,8,221,2,9,153,3,3,153,3,4,255,3,5,221,3,6,204,4,5,255,4,6,255,4,7,170,5,3,187,5,4,170,5,7,255,5,8,255,5,9,153,6,2,255,6,8,204,6,9,255,7,9,170],"secondary":false},{"width":8,"bonus":95,"chr":"y","pixels":[0,2,187,1,2,255,1,3,221,2,3,221,2,4,255,2,5,153,3,5,238,3,6,255,3,7,255,3,8,255,3,9,255,4,5,204,4,6,170,4,7,153,4,8,153,4,9,204,5,3,187,5,4,187,6,2,238],"secondary":false},{"width":8,"bonus":105,"chr":"z","pixels":[0,9,204,1,2,238,1,7,153,1,8,255,1,9,255,2,2,221,2,6,221,2,7,255,2,9,221,3,2,221,3,4,153,3,5,255,3,6,221,3,9,221,4,2,238,4,3,221,4,4,255,4,9,221,5,2,255,5,3,204,5,9,255],"secondary":false},{"width":4,"bonus":45,"chr":"{","pixels":[1,1,255,1,2,255,1,3,255,1,5,187,1,6,255,1,7,255,1,8,255,1,9,221,2,0,153],"secondary":false},{"width":2,"bonus":60,"chr":"|","pixels":[0,0,255,0,1,255,0,2,255,0,3,255,0,4,255,0,5,255,0,6,255,0,7,255,0,8,255,0,9,255,0,10,255,0,11,255],"secondary":true},{"width":4,"bonus":45,"chr":"}","pixels":[0,0,153,1,1,255,1,2,255,1,3,255,1,5,187,1,6,255,1,7,255,1,8,255,1,9,221],"secondary":false},{"width":7,"bonus":30,"chr":"~","pixels":[0,5,221,1,4,255,2,4,187,3,5,187,4,5,255,5,4,204],"secondary":false}],"width":13,"spacewidth":3,"shadow":false,"height":12,"basey":9}');
+
+/***/ })
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __nested_webpack_require_63941__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_63941__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/
+/******/ // startup
+/******/ // Load entry module and return exports
+/******/ // This entry module is referenced by other modules so it can't be inlined
+/******/ var __nested_webpack_exports__ = __nested_webpack_require_63941__("./src/dialog/index.ts");
+/******/
+/******/ return __nested_webpack_exports__;
+/******/ })()
+;
+});
+
+/***/ }),
+
+/***/ "../node_modules/alt1/dist/ocr/index.js":
+/*!**********************************************!*\
+ !*** ../node_modules/alt1/dist/ocr/index.js ***!
+ \**********************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(true)
+ module.exports = factory(__webpack_require__(/*! alt1/base */ "../node_modules/alt1/dist/base/index.js"));
+ else {}
+})(globalThis, (__WEBPACK_EXTERNAL_MODULE_alt1_base__) => {
+return /******/ (() => { // webpackBootstrap
+/******/ "use strict";
+/******/ var __webpack_modules__ = ({
+
+/***/ "./src/ocr/index.ts":
+/*!**************************!*\
+ !*** ./src/ocr/index.ts ***!
+ \**************************/
+/***/ ((__unused_webpack_module, exports, __nested_webpack_require_728__) => {
+
+
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.generatefont = exports.readChar = exports.readSmallCapsBackwards = exports.readLine = exports.getChatColor = exports.GetChatColorMono = exports.findReadLine = exports.findChar = exports.decompose3col = exports.decomposeblack = exports.decompose2col = exports.canblend = exports.unblendTrans = exports.unblendKnownBg = exports.unblendBlackBackground = exports.debugFont = exports.debugout = exports.debug = void 0;
+const base_1 = __nested_webpack_require_728__(/*! alt1/base */ "alt1/base");
+exports.debug = {
+ printcharscores: false,
+ trackread: false
+};
+exports.debugout = {};
+/**
+ * draws the font definition to a buffer and displays it in the dom for debugging purposes
+ * @param font
+ */
+function debugFont(font) {
+ var spacing = font.width + 2;
+ var buf = new base_1.ImageData(spacing * font.chars.length, font.height + 1);
+ for (var a = 0; a < buf.data.length; a += 4) {
+ buf.data[a] = buf.data[a + 1] = buf.data[a + 2] = 0;
+ buf.data[a + 3] = 255;
+ }
+ for (var a = 0; a < font.chars.length; a++) {
+ var bx = a * spacing;
+ var chr = font.chars[a];
+ for (var b = 0; b < chr.pixels.length; b += (font.shadow ? 4 : 3)) {
+ buf.setPixel(bx + chr.pixels[b], chr.pixels[b + 1], [chr.pixels[b + 2], chr.pixels[b + 2], chr.pixels[b + 2], 255]);
+ if (font.shadow) {
+ buf.setPixel(bx + chr.pixels[b], chr.pixels[b + 1], [chr.pixels[b + 3], 0, 0, 255]);
+ }
+ }
+ }
+ buf.show();
+}
+exports.debugFont = debugFont;
+function unblendBlackBackground(img, r, g, b) {
+ var rimg = new base_1.ImageData(img.width, img.height);
+ for (var i = 0; i < img.data.length; i += 4) {
+ var col = decomposeblack(img.data[i], img.data[i + 1], img.data[i + 2], r, g, b);
+ rimg.data[i + 0] = col[0] * 255;
+ rimg.data[i + 1] = rimg.data[i + 0];
+ rimg.data[i + 2] = rimg.data[i + 0];
+ rimg.data[i + 3] = 255;
+ }
+ return rimg;
+}
+exports.unblendBlackBackground = unblendBlackBackground;
+/**
+ * unblends a imagebuffer into match strength with given color
+ * the bgimg argument should contain a second image with pixel occluded by the font visible.
+ * @param img
+ * @param shadow detect black as second color
+ * @param bgimg optional second image to
+ */
+function unblendKnownBg(img, bgimg, shadow, r, g, b) {
+ if (bgimg && (img.width != bgimg.width || img.height != bgimg.height)) {
+ throw "bgimg size doesn't match";
+ }
+ var rimg = new base_1.ImageData(img.width, img.height);
+ var totalerror = 0;
+ for (var i = 0; i < img.data.length; i += 4) {
+ var col = decompose2col(img.data[i], img.data[i + 1], img.data[i + 2], r, g, b, bgimg.data[i + 0], bgimg.data[i + 1], bgimg.data[i + 2]);
+ if (shadow) {
+ if (col[2] > 0.01) {
+ console.log("high error component: " + (col[2] * 100).toFixed(1) + "%");
+ }
+ totalerror += col[2];
+ var m = 1 - col[1] - Math.abs(col[2]); //main color+black=100%-bg-error
+ rimg.data[i + 0] = m * 255;
+ rimg.data[i + 1] = col[0] / m * 255;
+ rimg.data[i + 2] = rimg.data[i + 0];
+ }
+ else {
+ rimg.data[i + 0] = col[0] * 255;
+ rimg.data[i + 1] = rimg.data[i + 0];
+ rimg.data[i + 2] = rimg.data[i + 0];
+ }
+ rimg.data[i + 3] = 255;
+ }
+ return rimg;
+}
+exports.unblendKnownBg = unblendKnownBg;
+/**
+ * Unblends a font image that is already conpletely isolated to the raw image used ingame. This is the easiest mode for pixel fonts where alpha is 0 or 255, or for extracted font files.
+ * @param img
+ * @param r
+ * @param g
+ * @param b
+ * @param shadow whether the font has a black shadow
+ */
+function unblendTrans(img, shadow, r, g, b) {
+ var rimg = new base_1.ImageData(img.width, img.height);
+ var pxlum = r + g + b;
+ for (var i = 0; i < img.data.length; i += 4) {
+ if (shadow) {
+ var lum = img.data[i + 0] + img.data[i + 1] + img.data[i + 2];
+ rimg.data[i + 0] = img.data[i + 3];
+ rimg.data[i + 1] = lum / pxlum * 255;
+ rimg.data[i + 2] = rimg.data[i + 0];
+ }
+ else {
+ rimg.data[i + 0] = img.data[i + 3];
+ rimg.data[i + 1] = rimg.data[i + 0];
+ rimg.data[i + 2] = rimg.data[i + 0];
+ }
+ rimg.data[i + 3] = 255;
+ }
+ return rimg;
+}
+exports.unblendTrans = unblendTrans;
+/**
+ * Determised wether color [rgb]m can be a result of a blend with color [rgb]1 that is p (0-1) of the mix
+ * It returns the number that the second color has to lie outside of the possible color ranges
+ * @param rm resulting color
+ * @param r1 first color of the mix (the other color is unknown)
+ * @param p the portion of the [rgb]1 in the mix (0-1)
+ */
+function canblend(rm, gm, bm, r1, g1, b1, p) {
+ var m = Math.min(50, p / (1 - p));
+ var r = rm + (rm - r1) * m;
+ var g = gm + (gm - g1) * m;
+ var b = bm + (bm - b1) * m;
+ return Math.max(0, -r, -g, -b, r - 255, g - 255, b - 255);
+}
+exports.canblend = canblend;
+/**
+ * decomposes a color in 2 given component colors and returns the amount of each color present
+ * also return a third (noise) component which is the the amount leftover orthagonal from the 2 given colors
+ */
+function decompose2col(rp, gp, bp, r1, g1, b1, r2, g2, b2) {
+ //get the normal of the error (cross-product of both colors)
+ var r3 = g1 * b2 - g2 * b1;
+ var g3 = b1 * r2 - b2 * r1;
+ var b3 = r1 * g2 - r2 * g1;
+ //normalize to length 255
+ var norm = 255 / Math.sqrt(r3 * r3 + g3 * g3 + b3 * b3);
+ r3 *= norm;
+ g3 *= norm;
+ b3 *= norm;
+ return decompose3col(rp, gp, bp, r1, g1, b1, r2, g2, b2, r3, g3, b3);
+}
+exports.decompose2col = decompose2col;
+/**
+ * decomposes a pixel in a given color component and black and returns what proportion of the second color it contains
+ * this is not as formal as decompose 2/3 and only give a "good enough" number
+ */
+function decomposeblack(rp, gp, bp, r1, g1, b1) {
+ var dr = Math.abs(rp - r1);
+ var dg = Math.abs(gp - g1);
+ var db = Math.abs(bp - b1);
+ var maxdif = Math.max(dr, dg, db);
+ return [1 - maxdif / 255];
+}
+exports.decomposeblack = decomposeblack;
+/**
+ * decomposes a color in 3 given component colors and returns the amount of each color present
+ */
+function decompose3col(rp, gp, bp, r1, g1, b1, r2, g2, b2, r3, g3, b3) {
+ //P=x*C1+y*C2+z*C3
+ //assemble as matrix
+ //M*w=p
+ //get inverse of M
+ //dirty written out version of cramer's rule
+ var A = g2 * b3 - b2 * g3;
+ var B = g3 * b1 - b3 * g1;
+ var C = g1 * b2 - b1 * g2;
+ var D = b2 * r3 - r2 * b3;
+ var E = b3 * r1 - r3 * b1;
+ var F = b1 * r2 - r1 * b2;
+ var G = r2 * g3 - g2 * r3;
+ var H = r3 * g1 - g3 * r1;
+ var I = r1 * g2 - g1 * r2;
+ var det = r1 * A + g1 * D + b1 * G;
+ //M^-1*p=w
+ var x = (A * rp + D * gp + G * bp) / det;
+ var y = (B * rp + E * gp + H * bp) / det;
+ var z = (C * rp + F * gp + I * bp) / det;
+ return [x, y, z];
+}
+exports.decompose3col = decompose3col;
+/**
+ * brute force to the exact position of the text
+ */
+function findChar(buffer, font, col, x, y, w, h) {
+ if (x < 0) {
+ return null;
+ }
+ if (y - font.basey < 0) {
+ return null;
+ }
+ if (x + w + font.width > buffer.width) {
+ return null;
+ }
+ if (y + h - font.basey + font.height > buffer.height) {
+ return null;
+ }
+ var best = 1000; //TODO finetune score constants
+ var bestchar = null;
+ for (var cx = x; cx < x + w; cx++) {
+ for (var cy = y; cy < y + h; cy++) {
+ var chr = readChar(buffer, font, col, cx, cy, false, false);
+ if (chr != null && chr.sizescore < best) {
+ best = chr.sizescore;
+ bestchar = chr;
+ }
+ }
+ }
+ return bestchar;
+}
+exports.findChar = findChar;
+/**
+ * reads text with unknown exact coord or color. The given coord should be inside the text
+ * color selection not implemented yet
+ */
+function findReadLine(buffer, font, cols, x, y, w = -1, h = -1) {
+ if (w == -1) {
+ w = font.width + font.spacewidth;
+ x -= Math.ceil(w / 2);
+ }
+ if (h == -1) {
+ h = 7;
+ y -= 1;
+ }
+ var chr = null;
+ if (cols.length > 1) {
+ //TODO use getChatColor() instead for non-mono?
+ var sorted = GetChatColorMono(buffer, new base_1.Rect(x, y - font.basey, w, h), cols);
+ //loop until we have a match (max 2 cols)
+ for (var a = 0; a < 2 && a < sorted.length && chr == null; a++) {
+ chr = findChar(buffer, font, sorted[a].col, x, y, w, h);
+ }
+ }
+ else {
+ chr = findChar(buffer, font, cols[0], x, y, w, h);
+ }
+ if (chr == null) {
+ return { debugArea: { x, y, w, h }, text: "", fragments: [] };
+ }
+ return readLine(buffer, font, cols, chr.x, chr.y, true, true);
+}
+exports.findReadLine = findReadLine;
+function GetChatColorMono(buf, rect, colors) {
+ var colormap = colors.map(c => ({ col: c, score: 0 }));
+ if (rect.x < 0 || rect.y < 0 || rect.x + rect.width > buf.width || rect.y + rect.height > buf.height) {
+ return colormap;
+ }
+ var data = buf.data;
+ var maxd = 50;
+ for (var colobj of colormap) {
+ var score = 0;
+ var col = colobj.col;
+ for (var y = rect.y; y < rect.y + rect.height; y++) {
+ for (var x = rect.x; x < rect.x + rect.width; x++) {
+ var i = x * 4 + y * 4 * buf.width;
+ var d = Math.abs(data[i] - col[0]) + Math.abs(data[i + 1] - col[1]) + Math.abs(data[i + 2] - col[2]);
+ if (d < maxd) {
+ score += maxd - d;
+ }
+ }
+ }
+ colobj.score = score;
+ }
+ return colormap.sort((a, b) => b.score - a.score);
+}
+exports.GetChatColorMono = GetChatColorMono;
+function unblend(r, g, b, R, G, B) {
+ var m = Math.sqrt(r * r + g * g + b * b);
+ var n = Math.sqrt(R * R + G * G + B * B);
+ var x = (r * R + g * G + b * B) / n;
+ var y = Math.sqrt(Math.max(0, m * m - x * x));
+ var r1 = Math.max(0, (63.75 - y) * 4);
+ var r2 = x / n * 255;
+ if (r2 > 255) //brighter than refcol
+ {
+ r1 = Math.max(0, r1 - r2 + 255);
+ r2 = 255;
+ }
+ return [r1, r2];
+}
+function getChatColor(buf, rect, colors) {
+ var bestscore = -1.0;
+ var best = null;
+ var b2 = 0.0;
+ var data = buf.data;
+ for (let col of colors) {
+ var score = 0.0;
+ for (var y = rect.y; y < rect.y + rect.height; y++) {
+ for (var x = rect.x; x < rect.x + rect.width; x++) {
+ if (x < 0 || x + 1 >= buf.width) {
+ continue;
+ }
+ if (y < 0 || y + 1 >= buf.width) {
+ continue;
+ }
+ let i1 = buf.pixelOffset(x, y);
+ let i2 = buf.pixelOffset(x + 1, y + 1);
+ var pixel1 = unblend(data[i1 + 0], data[i1 + 1], data[i1 + 2], col[0], col[1], col[2]);
+ var pixel2 = unblend(data[i2 + 0], data[i2 + 1], data[i2 + 2], col[0], col[1], col[2]);
+ //TODO this is from c# can simplify a bit
+ var s = (pixel1[0] / 255 * pixel1[1] / 255) * (pixel2[0] / 255 * (255.0 - pixel2[1]) / 255);
+ score += s;
+ }
+ }
+ if (score > bestscore) {
+ b2 = bestscore;
+ bestscore = score;
+ best = col;
+ }
+ else if (score > b2) {
+ b2 = score;
+ }
+ }
+ //Console.WriteLine("color: " + bestcol + " - " + (bestscore - b2));
+ //bestscore /= rect.width * rect.height;
+ return best;
+}
+exports.getChatColor = getChatColor;
+/**
+ * reads a line of text with exactly known position and color. y should be the y coord of the text base line, x should be the first pixel of a new character
+ */
+function readLine(buffer, font, colors, x, y, forward, backward = false) {
+ if (typeof colors[0] != "number" && colors.length == 1) {
+ colors = colors[0];
+ }
+ var multicol = typeof colors[0] != "number";
+ var allcolors = multicol ? colors : [colors];
+ var detectcolor = function (sx, sy, backward) {
+ var w = Math.floor(font.width * 1.5);
+ if (backward) {
+ sx -= w;
+ }
+ sy -= font.basey;
+ return getChatColor(buffer, { x: sx, y: sy, width: w, height: font.height }, allcolors);
+ };
+ var fragments = [];
+ var x1 = x;
+ var x2 = x;
+ var maxspaces = (typeof font.maxspaces == "number" ? font.maxspaces : 1);
+ let fragtext = "";
+ let fraghadprimary = false;
+ var lastcol = null;
+ let addfrag = (forward) => {
+ if (!fragtext) {
+ return;
+ }
+ let frag = {
+ text: fragtext,
+ color: lastcol,
+ index: 0,
+ xstart: x + (forward ? fragstartdx : fragenddx),
+ xend: x + (forward ? fragenddx : fragstartdx)
+ };
+ if (forward) {
+ fragments.push(frag);
+ }
+ else {
+ fragments.unshift(frag);
+ }
+ fragtext = "";
+ fragstartdx = dx;
+ fraghadprimary = false;
+ };
+ for (var dirforward of [true, false]) {
+ //init vars
+ if (dirforward && !forward) {
+ continue;
+ }
+ if (!dirforward && !backward) {
+ continue;
+ }
+ var dx = 0;
+ var fragstartdx = dx;
+ var fragenddx = dx;
+ var triedspaces = 0;
+ var triedrecol = false;
+ var col = multicol ? null : colors;
+ while (true) {
+ col = col || detectcolor(x + dx, y, !dirforward);
+ var chr = (col ? readChar(buffer, font, col, x + dx, y, !dirforward, true) : null);
+ if (col == null || chr == null) {
+ if (triedspaces < maxspaces) {
+ dx += (dirforward ? 1 : -1) * font.spacewidth;
+ triedspaces++;
+ continue;
+ }
+ if (multicol && !triedrecol && fraghadprimary) {
+ dx -= (dirforward ? 1 : -1) * triedspaces * font.spacewidth;
+ triedspaces = 0;
+ col = null;
+ triedrecol = true;
+ continue;
+ }
+ if (dirforward) {
+ x2 = x + dx - font.spacewidth;
+ }
+ else {
+ x1 = x + dx + font.spacewidth;
+ }
+ break;
+ }
+ else {
+ if (lastcol && (col[0] != lastcol[0] || col[1] != lastcol[1] || col[2] != lastcol[2])) {
+ addfrag(dirforward);
+ }
+ var spaces = "";
+ for (var a = 0; a < triedspaces; a++) {
+ spaces += " ";
+ }
+ if (dirforward) {
+ fragtext += spaces + chr.chr;
+ }
+ else {
+ fragtext = chr.chr + spaces + fragtext;
+ }
+ if (!chr.basechar.secondary) {
+ fraghadprimary = true;
+ }
+ triedspaces = 0;
+ triedrecol = false;
+ dx += (dirforward ? 1 : -1) * chr.basechar.width;
+ fragenddx = dx;
+ lastcol = col;
+ }
+ }
+ if (lastcol && fraghadprimary) {
+ addfrag(dirforward);
+ }
+ }
+ fragments.forEach((f, i) => f.index = i);
+ return {
+ debugArea: { x: x1, y: y - 9, w: x2 - x1, h: 10 },
+ text: fragments.map(f => f.text).join(""),
+ fragments
+ };
+}
+exports.readLine = readLine;
+/**
+ * Reads a line of text that uses a smallcaps font, these fonts can have duplicate chars that only have a different amount of
+ * empty space after the char before the next char starts.
+ * The coordinates should be near the end of the string, or a rectangle with high 1 containing all points where the string can end.
+ */
+function readSmallCapsBackwards(buffer, font, cols, x, y, w = -1, h = -1) {
+ if (w == -1) {
+ w = font.width + font.spacewidth;
+ x -= Math.ceil(w / 2);
+ }
+ if (h == -1) {
+ h = 7;
+ y -= 1;
+ }
+ var matchedchar = null;
+ var sorted = (cols.length == 1 ? [{ col: cols[0], score: 1 }] : GetChatColorMono(buffer, new base_1.Rect(x, y - font.basey, w, h), cols));
+ //loop until we have a match (max 2 cols)
+ for (var a = 0; a < 2 && a < sorted.length && matchedchar == null; a++) {
+ for (var cx = x + w - 1; cx >= x; cx--) {
+ var best = 1000; //TODO finetune score constants
+ var bestchar = null;
+ for (var cy = y; cy < y + h; cy++) {
+ var chr = readChar(buffer, font, sorted[a].col, cx, cy, true, false);
+ if (chr != null && chr.sizescore < best) {
+ best = chr.sizescore;
+ bestchar = chr;
+ }
+ }
+ if (bestchar) {
+ matchedchar = bestchar;
+ break;
+ }
+ }
+ }
+ if (matchedchar == null) {
+ return { text: "", debugArea: { x, y, w, h } };
+ }
+ return readLine(buffer, font, cols, matchedchar.x, matchedchar.y, false, true);
+}
+exports.readSmallCapsBackwards = readSmallCapsBackwards;
+/**
+ * Reads a single character at the exact given location
+ * @param x exact x location of the start of the character domain (includes part of the spacing between characters)
+ * @param y exact y location of the baseline pixel of the character
+ * @param backwards read in backwards direction, the x location should be the first pixel after the character domain in that case
+ */
+function readChar(buffer, font, col, x, y, backwards, allowSecondary) {
+ y -= font.basey;
+ var shiftx = 0;
+ var shifty = font.basey;
+ var shadow = font.shadow;
+ var debugobj = null;
+ var debugimg = null;
+ if (exports.debug.trackread) {
+ var name = x + ";" + y + " " + JSON.stringify(col);
+ if (!exports.debugout[name]) {
+ exports.debugout[name] = [];
+ }
+ debugobj = exports.debugout[name];
+ }
+ //===== make sure the full domain is inside the bitmap/buffer ======
+ if (y < 0 || y + font.height >= buffer.height) {
+ return null;
+ }
+ if (!backwards) {
+ if (x < 0 || x + font.width > buffer.width) {
+ return null;
+ }
+ }
+ else {
+ if (x - font.width < 0 || x > buffer.width) {
+ return null;
+ }
+ }
+ //====== start reading the char ======
+ var scores = [];
+ for (var chr = 0; chr < font.chars.length; chr++) {
+ var chrobj = font.chars[chr];
+ if (chrobj.secondary && !allowSecondary) {
+ continue;
+ }
+ scores[chr] = { score: 0, sizescore: 0, chr: chrobj };
+ var chrx = (backwards ? x - chrobj.width : x);
+ if (exports.debug.trackread) {
+ debugimg = new base_1.ImageData(font.width, font.height);
+ }
+ for (var a = 0; a < chrobj.pixels.length;) {
+ var i = (chrx + chrobj.pixels[a]) * 4 + (y + chrobj.pixels[a + 1]) * buffer.width * 4;
+ var penalty = 0;
+ if (!shadow) {
+ penalty = canblend(buffer.data[i], buffer.data[i + 1], buffer.data[i + 2], col[0], col[1], col[2], chrobj.pixels[a + 2] / 255);
+ a += 3;
+ }
+ else {
+ var lum = chrobj.pixels[a + 3] / 255;
+ penalty = canblend(buffer.data[i], buffer.data[i + 1], buffer.data[i + 2], col[0] * lum, col[1] * lum, col[2] * lum, chrobj.pixels[a + 2] / 255);
+ a += 4;
+ }
+ scores[chr].score += Math.max(0, penalty);
+ //TODO add compiler flag to this to remove it for performance
+ if (debugimg) {
+ debugimg.setPixel(chrobj.pixels[a], chrobj.pixels[a + 1], [penalty, penalty, penalty, 255]);
+ }
+ }
+ scores[chr].sizescore = scores[chr].score - chrobj.bonus;
+ if (debugobj) {
+ debugobj.push({ chr: chrobj.chr, score: scores[chr].sizescore, rawscore: scores[chr].score, img: debugimg });
+ }
+ }
+ scores.sort((a, b) => a.sizescore - b.sizescore);
+ if (exports.debug.printcharscores) {
+ scores.slice(0, 5).forEach(q => console.log(q.chr.chr, q.score.toFixed(3), q.sizescore.toFixed(3)));
+ }
+ var winchr = scores[0];
+ if (!winchr || winchr.score > 400) {
+ return null;
+ }
+ return { chr: winchr.chr.chr, basechar: winchr.chr, x: x + shiftx, y: y + shifty, score: winchr.score, sizescore: winchr.sizescore };
+}
+exports.readChar = readChar;
+/**
+ * Generates a font json description to use in reader functions
+ * @param unblended A source image with all characters lined up. The image should be unblended into components using the unblend functions
+ * The lowest pixel line of this image is used to mark the location and size of the charecters if the red component is 255 it means there is a character on that pixel column
+ * @param chars A string containing all the characters of the image in the same order
+ * @param seconds A string with characters that are considered unlikely and should only be detected if no other character is possible.
+ * For example the period (.) character matches positive inside many other characters and should be marked as secondary
+ * @param bonusses An object that contains bonus scores for certain difficult characters to make the more likely to be red.
+ * @param basey The y position of the baseline pixel of the font
+ * @param spacewidth the number of pixels a space takes
+ * @param treshold minimal color match proportion (0-1) before a pixel is used for the font
+ * @param shadow whether this font also uses the black shadow some fonts have. The "unblended" image should be unblended correspondingly
+ * @returns a javascript object describing the font which is used as input for the different read functions
+ */
+function generatefont(unblended, chars, seconds, bonusses, basey, spacewidth, treshold, shadow) {
+ //settings vars
+ treshold *= 255;
+ //initial vars
+ var miny = unblended.height - 1;
+ var maxy = 0;
+ var font = { chars: [], width: 0, spacewidth: spacewidth, shadow: shadow, height: 0, basey: 0 };
+ var ds = false;
+ var chardata = [];
+ //index all chars
+ for (var dx = 0; dx < unblended.width; dx++) {
+ var i = 4 * dx + 4 * unblended.width * (unblended.height - 1);
+ if (unblended.data[i] == 255 && unblended.data[i + 3] == 255) {
+ if (ds === false) {
+ ds = dx;
+ }
+ }
+ else {
+ if (ds !== false) {
+ //char found, start detection
+ var de = dx;
+ var char = chars[chardata.length];
+ var chr = {
+ ds: ds,
+ de: de,
+ width: de - ds,
+ chr: char,
+ bonus: (bonusses && bonusses[char]) || 0,
+ secondary: seconds.indexOf(chars[chardata.length]) != -1,
+ pixels: []
+ };
+ chardata.push(chr);
+ font.width = Math.max(font.width, chr.width);
+ for (x = 0; x < de - ds; x++) {
+ for (y = 0; y < unblended.height - 1; y++) {
+ var i = (x + ds) * 4 + y * unblended.width * 4;
+ if (unblended.data[i] >= treshold) {
+ miny = Math.min(miny, y);
+ maxy = Math.max(maxy, y);
+ }
+ }
+ }
+ ds = false;
+ }
+ }
+ }
+ font.height = maxy + 1 - miny;
+ font.basey = basey - miny;
+ //detect all pixels
+ for (var a in chardata) {
+ var chr = chardata[a];
+ for (var x = 0; x < chr.width; x++) {
+ for (var y = 0; y < maxy + 1 - miny; y++) {
+ var i = (x + chr.ds) * 4 + (y + miny) * unblended.width * 4;
+ if (unblended.data[i] >= treshold) {
+ chr.pixels.push(x, y);
+ chr.pixels.push(unblended.data[i]);
+ if (shadow) {
+ chr.pixels.push(unblended.data[i + 1]);
+ }
+ chr.bonus += 5;
+ }
+ }
+ }
+ //prevent js from doing the thing with unnecessary output precision
+ chr.bonus = +chr.bonus.toFixed(3);
+ font.chars.push({ width: chr.width, bonus: chr.bonus, chr: chr.chr, pixels: chr.pixels, secondary: chr.secondary });
+ }
+ return font;
+}
+exports.generatefont = generatefont;
+
+
+/***/ }),
+
+/***/ "alt1/base":
+/*!**************************************************************************************************!*\
+ !*** external {"root":"A1lib","commonjs2":"alt1/base","commonjs":"alt1/base","amd":"alt1/base"} ***!
+ \**************************************************************************************************/
+/***/ ((module) => {
+
+module.exports = __WEBPACK_EXTERNAL_MODULE_alt1_base__;
+
+/***/ })
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __nested_webpack_require_26177__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId](module, module.exports, __nested_webpack_require_26177__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/
+/******/ // startup
+/******/ // Load entry module and return exports
+/******/ // This entry module is referenced by other modules so it can't be inlined
+/******/ var __nested_webpack_exports__ = __nested_webpack_require_26177__("./src/ocr/index.ts");
+/******/
+/******/ return __nested_webpack_exports__;
+/******/ })()
+;
+});
+
+/***/ })
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/compat get default export */
+/******/ (() => {
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = (module) => {
+/******/ var getter = module && module.__esModule ?
+/******/ () => (module['default']) :
+/******/ () => (module);
+/******/ __webpack_require__.d(getter, { a: getter });
+/******/ return getter;
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/define property getters */
+/******/ (() => {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = (exports, definition) => {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/global */
+/******/ (() => {
+/******/ __webpack_require__.g = (function() {
+/******/ if (typeof globalThis === 'object') return globalThis;
+/******/ try {
+/******/ return this || new Function('return this')();
+/******/ } catch (e) {
+/******/ if (typeof window === 'object') return window;
+/******/ }
+/******/ })();
+/******/ })();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ (() => {
+/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
+/******/ })();
+/******/
+/******/ /* webpack/runtime/make namespace object */
+/******/ (() => {
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = (exports) => {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/publicPath */
+/******/ (() => {
+/******/ var scriptUrl;
+/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + "";
+/******/ var document = __webpack_require__.g.document;
+/******/ if (!scriptUrl && document) {
+/******/ if (document.currentScript)
+/******/ scriptUrl = document.currentScript.src;
+/******/ if (!scriptUrl) {
+/******/ var scripts = document.getElementsByTagName("script");
+/******/ if(scripts.length) {
+/******/ var i = scripts.length - 1;
+/******/ while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;
+/******/ }
+/******/ }
+/******/ }
+/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration
+/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic.
+/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser");
+/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/");
+/******/ __webpack_require__.p = scriptUrl;
+/******/ })();
+/******/
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be in strict mode.
+(() => {
+"use strict";
+/*!******************!*\
+ !*** ./index.ts ***!
+ \******************/
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _modules_settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modules/settings */ "./modules/settings.ts");
+/* harmony import */ var _modules_slayer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/slayer */ "./modules/slayer.ts");
+/* harmony import */ var _modules_dochandler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/dochandler */ "./modules/dochandler.ts");
+/* harmony import */ var _extraFeatures__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./extraFeatures */ "./extraFeatures.ts");
+var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+
+
+
+
+/* COPYRIGHT NOTICE - DO NOT REMOVE
+ 2021 @ Unlishema Dragonsworn
+ I have programmed this enitre app myself; however, I must give credit where credit is due.
+
+ The credits have been moved into their own file @ https://unlishema.github.io/slayerassistant/credits.html
+*/
+/*
+ Features coming in the near future (Also my current TODO List)
+
+ ~ Before Release for Sure ~
+ Update the about page. (Done but needs adjustment in next release)
+ Update the changelog page. (Will need updated again on next release)
+ Update the credits page. (May need more later on)
+
+ ~ Coming Next Release ~
+ Adjust histories to use sessionStorage
+ Add in a status tracking area to keep track of xp/hr, kills/hr, and more (Needs finished)
+ Add settings into the app finally (Needs rest added)
+
+ ~ Near future Release ~
+ Add support for Ushubti
+ Adjust the caching of the json database files to make sure they get updated timely (use .htaccess and mode_expires.c)
+
+ ~ Settings for the app ~
+ Settings:
+ - Ability to toggle auto find task via dialog (Done)
+ - Ability to toggle auto find current task via Slayer Count RS3UI (Done)
+ - Ability to toggle extra info to make box smaller without scrollbar (Done)
+ - Ability to toggle all hidden creatures
+ -- Ability to toggle sub-classes of hidden creatures like (elite), (dragonkin lab) and such
+ - Ability to select default loading
+ -- Default Task(s) on open and adjust doc based on it (Done)
+ -- Load previous task(s) and adjust doc based on it
+ - Ability to select defaults for everything (Later On)
+ -- Select default creature per task
+ -- Select default variant per creature
+ - Ability to customize the Look N Feel of the Slayer Assistant UI (Way Later On)
+ - Ability to select how long to save search history (Way Later On)
+ - Ability to select the type of search algo for the app (Maybe Later On)
+
+*/
+// Check if we are running in alt1 and if so then tell alt1 about the config
+if (window.alt1)
+ alt1.identifyAppUrl("./appconfig.json");
+// Initialize the javascript for the entire app
+document.addEventListener("DOMContentLoaded", function (event) { return __awaiter(void 0, void 0, void 0, function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ // Setup the main document and load assignment index
+ return [4 /*yield*/, _modules_dochandler__WEBPACK_IMPORTED_MODULE_2__.main.setup.documentMain()];
+ case 1:
+ // Setup the main document and load assignment index
+ _a.sent();
+ // Run the Config Setup Process
+ _modules_settings__WEBPACK_IMPORTED_MODULE_0__.controller.load();
+ // Run the first capture loop and then setup the infinite sec loop
+ setInterval(function () { _modules_slayer__WEBPACK_IMPORTED_MODULE_1__.findTask(); }, _modules_settings__WEBPACK_IMPORTED_MODULE_0__.controller.data.autoCapture.loopTimer);
+ return [2 /*return*/];
+ }
+ });
+}); });
+// When we close the app, lets make sure we save the settings
+document.addEventListener("beforeunload", function (event) { return __awaiter(void 0, void 0, void 0, function () {
+ return __generator(this, function (_a) {
+ _modules_settings__WEBPACK_IMPORTED_MODULE_0__.controller.save();
+ return [2 /*return*/];
+ });
+}); });
+
+})();
+
+/******/ return __webpack_exports__;
+/******/ })()
+;
+});
\ No newline at end of file
--- /dev/null
+{
+ "scripts": {
+ "prebuild": "node scripts/increment-version.js",
+ "build": "webpack",
+ "watch": "webpack --watch",
+ "preclean": "node scripts/install-rimraf.js",
+ "clean": "rimraf dist",
+ "tree": "node scripts/list-directories.js"
+ },
+ "dependencies": {
+ "acorn": "^8.12.1",
+ "alt1": "^0.0.1",
+ "copy-webpack-plugin": "^12.0.2",
+ "css-loader": "^7.1.2",
+ "sass-loader": "^16.0.0",
+ "source-map": "^0.7.4",
+ "style-loader": "^4.0.0",
+ "webpack-bundle-analyzer": "^4.10.2"
+ },
+ "devDependencies": {
+ "@types/node": "^12.12.54",
+ "sharp": "^0.31.3",
+ "source-map-explorer": "^2.5.3",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.6.3",
+ "webpack": "^5.95.0",
+ "webpack-cli": "^4.10.0"
+ }
+}
--- /dev/null
+const fs = require('fs');
+const path = require('path');
+
+const versionFilePath = path.resolve(__dirname, '..', 'src/data/version.json');
+
+// Read the version file
+const versionData = JSON.parse(fs.readFileSync(versionFilePath, 'utf8'));
+let [major, minor, patch] = versionData.version.split('.').map(Number);
+
+// Increment the patch version (or change to minor/major if needed)
+patch++;
+if (patch >= 256) { minor++; patch = 0; }
+if (minor >= 256) { major++; minor = 0; }
+
+// Update the version data
+versionData.version = `${major}.${minor}.${patch}`;
+
+// Write the updated version back to the file
+fs.writeFileSync(versionFilePath, JSON.stringify(versionData, null, 2));
+
+console.log(`Updated version to ${versionData.version}`);
--- /dev/null
+const { exec } = require('child_process');
+const fs = require('fs');
+const path = require('path');
+
+const packageJsonPath = path.resolve(__dirname, '..', 'node_modules', 'rimraf', 'package.json');
+
+console.log('Checking package.json path:', packageJsonPath);
+
+if (!fs.existsSync(packageJsonPath)) {
+ console.log('rimraf is not installed. Installing...');
+ exec('npm install --save-dev rimraf', (error, stdout, stderr) => {
+ if (error) {
+ console.error(`Error installing rimraf: ${error.message}`);
+ return;
+ }
+ if (stderr) {
+ console.error(`Error: ${stderr}`);
+ return;
+ }
+ console.log(stdout);
+ });
+}
--- /dev/null
+const fs = require('fs');
+const path = require('path');
+
+function listDirectories(dir, indent = '') {
+ const files = fs.readdirSync(dir);
+ const total = files.length;
+
+ files.forEach((file, index) => {
+ if (file !== 'node_modules' && file !== '.git') {
+ const fullPath = path.join(dir, file);
+ const stats = fs.statSync(fullPath);
+ const isDirectory = stats.isDirectory();
+
+ // Determine the prefix to use based on whether it's the last item
+ let prefix = '';
+ if (index === total - 1) {
+ prefix = isDirectory ? '└── ' : '└── ';
+ } else {
+ prefix = isDirectory ? '├── ' : '├── ';
+ }
+
+ // Print current directory/file with appropriate indentation
+ console.log(indent + prefix + file);
+
+ if (isDirectory) {
+ const nextIndent = indent + (index === total - 1 ? ' ' : '│ ');
+ listDirectories(fullPath, nextIndent); // Recursively list directories
+ }
+ }
+ });
+}
+listDirectories(path.join(__dirname, '..'));
\ No newline at end of file
--- /dev/null
+{
+ "folders": [
+ {
+ "path": "."
+ }
+ ],
+ "settings": {}
+}
\ No newline at end of file
--- /dev/null
+{
+ "appName": "Slayer Assistant",
+ "description": "Slayer Assistant is your go-to tool for efficient Slayer tasks in RuneScape. Designed for the Alt1 Toolkit, it provides instant access to task information, helping you make informed decisions quickly. Whether you're a new player or an experienced Slayer, this app streamlines the task selection process, making your gameplay smoother and more enjoyable.",
+ "appUrl": "https://slayer.unlishema.org/",
+ "configUrl": "https://slayer.unlishema.org/appconfig.json",
+ "iconUrl": "https://slayer.unlishema.org/images/icon.png",
+ "defaultWidth": 360,
+ "defaultHeight": 395,
+ "minWidth": 360,
+ "minHeight": 142,
+ "maxWidth": 400,
+ "maxHeight": 550,
+ "requestHandlers": [],
+ "activators": [
+ "regex:^Get task .*"
+ ],
+ "permissions": "pixel,gamestate,overlay"
+}
--- /dev/null
+# Enable mod_rewrite
+RewriteEngine On
+
+# Apply rules inside the /data/ folder
+RewriteBase /data/
+
+# Rewrite any URL ending with .json to load the corresponding .php file
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteCond %{REQUEST_FILENAME} !-d
+RewriteRule ^(.*)\.json$ $1.php [L]
--- /dev/null
+<?php
+// Database credentials
+$host = 'localhost';
+$db = 'slayer.unlishema.org';
+$user = 'slayer.db';
+$pass = 'r2YWbde6V9hr';
+
+// Function to return error as JSON and exit
+function respondWithError($message) {
+ header('Content-Type: application/json');
+ echo json_encode(['error' => $message]);
+ exit;
+}
+
+// Create connection
+$mysqli = new mysqli($host, $user, $pass, $db);
+if ($mysqli->connect_error) {
+ respondWithError("Connection failed: " . $mysqli->connect_error);
+}
+
+// Check for the 'q' query parameter
+$q = $_GET['q'] ?? 'all'; // Default to 'all'
+
+// Prepare SQL query
+$query = $q === 'all' ? "SELECT * FROM assignments" : "SELECT * FROM assignments WHERE `index` = ?";
+$stmt = $mysqli->prepare($query);
+if ($stmt === false) {
+ respondWithError("Prepare failed: " . $mysqli->error);
+}
+if ($q !== 'all') {
+ $stmt->bind_param("s", $q);
+}
+$stmt->execute();
+$result = $stmt->get_result();
+$data = [];
+
+// Helper function to process multiline string into array
+function parseLines($string) {
+ return array_filter(array_map('trim', explode("\r\n", $string)));
+}
+
+// Fetch data
+while ($row = $result->fetch_assoc()) {
+ $data[] = [
+ 'id' => $row['id'],
+ 'index' => $row['index'],
+ 'default-creature' => $row['default_creature'],
+ 'hidden-creatures' => parseLines($row['hidden_creatures'] ?? ''),
+ 'alias' => parseLines($row['aliases'] ?? ''),
+ 'masters' => parseLines($row['masters'] ?? ''),
+ 'creatures' => parseLines($row['creatures'] ?? ''),
+ 'equipment' => parseLines($row['equipment'] ?? ''),
+ 'locations' => parseLines($row['locations'] ?? '')
+ ];
+}
+
+// Free the result set
+$result->free();
+
+// Set the header and output JSON
+header('Content-Type: application/json');
+echo json_encode($data, JSON_PRETTY_PRINT);
+
+// Close the statement and connection
+$stmt->close();
+$mysqli->close();
+?>
--- /dev/null
+<?php
+// Database credentials
+$host = 'localhost';
+$db = 'slayer.unlishema.org';
+$user = 'slayer.db';
+$pass = 'r2YWbde6V9hr';
+
+// Function to return error as JSON and exit
+function respondWithError($message) {
+ header('Content-Type: application/json');
+ echo json_encode(['error' => $message]);
+ exit;
+}
+
+// Create connection
+$mysqli = new mysqli($host, $user, $pass, $db);
+if ($mysqli->connect_error) {
+ respondWithError("Connection failed: " . $mysqli->connect_error);
+}
+
+// Check for the 'q' query parameter
+$q = $_GET['q'] ?? 'all'; // Null coalescing operator for default value
+
+// Prepare SQL query for creatures and variants
+$query = $q === 'all'
+ ? "SELECT c.*, v.id AS variant_id, v.name AS variant_name, v.image, v.experience,
+ v.slayer_exp, v.lifepoint_exp, v.level, v.slayer_level,
+ v.defence, v.lifepoints, v.max_melee, v.max_ranged,
+ v.max_magic, v.max_necromancy, v.max_spec, v.susceptible, v.weaknesses
+ FROM creatures c
+ LEFT JOIN variants v ON c.id = v.creature_id"
+ : "SELECT c.*, v.id AS variant_id, v.name AS variant_name, v.image, v.experience,
+ v.slayer_exp, v.lifepoint_exp, v.level, v.slayer_level,
+ v.defence, v.lifepoints, v.max_melee, v.max_ranged,
+ v.max_magic, v.max_necromancy, v.max_spec, v.susceptible, v.weaknesses
+ FROM creatures c
+ LEFT JOIN variants v ON c.id = v.creature_id WHERE c.name = ?";
+
+$stmt = $mysqli->prepare($query);
+if ($stmt === false) {
+ respondWithError("Prepare failed: " . $mysqli->error);
+}
+
+if ($q !== 'all') {
+ $stmt->bind_param("s", $q);
+}
+
+$stmt->execute();
+$result = $stmt->get_result();
+$data = [];
+
+// Fetch data
+while ($row = $result->fetch_assoc()) {
+ $creatureId = $row['id'];
+ // Check if this creature already exists in the data array
+ if (!isset($data[$creatureId])) {
+ $data[$creatureId] = [
+ 'id' => $row['id'],
+ 'name' => $row['name'],
+ 'variants' => []
+ ];
+ }
+
+ // Check if the row contains variant data
+ if (isset($row['variant_id'])) { // Ensure variant_id exists
+ $variant = [
+ 'id' => $row['variant_id'],
+ 'name' => $row['variant_name'],
+ 'image' => $row['image'],
+ 'experience' => $row['experience'],
+ 'slayer-exp' => $row['slayer_exp'],
+ 'lifepoint-exp' => $row['lifepoint_exp'],
+ 'level' => $row['level'],
+ 'slayer-level' => $row['slayer_level'],
+ 'defence' => $row['defence'],
+ 'lifepoints' => $row['lifepoints'],
+ 'max-melee' => $row['max_melee'],
+ 'max-ranged' => $row['max_ranged'],
+ 'max-magic' => $row['max_magic'],
+ 'max-necromancy' => $row['max_necromancy'],
+ 'max-spec' => $row['max_spec'],
+ 'susceptible' => explode("\r\n", $row['susceptible'] ?: ''),
+ 'weakness' => explode("\r\n", $row['weaknesses'] ?: '')
+ ];
+ $data[$creatureId]['variants'][] = $variant;
+ }
+}
+
+// Output JSON
+header('Content-Type: application/json');
+echo json_encode(array_values($data), JSON_PRETTY_PRINT);
+
+// Free the result set and close the connection
+$result->free();
+$stmt->close();
+$mysqli->close();
+?>
--- /dev/null
+<?php
+// Database credentials
+$host = 'localhost';
+$db = 'slayer.unlishema.org';
+$user = 'slayer.db';
+$pass = 'r2YWbde6V9hr';
+
+// Function to return error as JSON and exit
+function respondWithError($message) {
+ header('Content-Type: application/json');
+ echo json_encode(['error' => $message]);
+ exit;
+}
+
+// Create connection
+$mysqli = new mysqli($host, $user, $pass, $db);
+if ($mysqli->connect_error) {
+ respondWithError("Connection failed: " . $mysqli->connect_error);
+}
+
+// Check for the 'q' query parameter and sanitize input
+$q = isset($_GET['q']) ? trim($_GET['q']) : 'all'; // Default to 'all'
+
+// Prepare SQL query with a safeguard against SQL injection
+$query = $q === 'all' ? "SELECT * FROM masters" : "SELECT * FROM masters WHERE `name` = ?";
+$stmt = $mysqli->prepare($query);
+if ($stmt === false) {
+ respondWithError("Prepare failed: " . $mysqli->error);
+}
+if ($q !== 'all') {
+ $stmt->bind_param("s", $q);
+}
+$stmt->execute();
+$result = $stmt->get_result();
+$data = [];
+
+// Fetch data
+while ($row = $result->fetch_assoc()) {
+ $taskCounts = [];
+
+ // Handle empty counts gracefully
+ $countLines = !empty($row['counts']) ? explode("\r\n", $row['counts']) : [];
+
+ foreach ($countLines as $line) {
+ if (strpos($line, ':') !== false) {
+ [$key, $count] = array_map('trim', explode(':', $line, 2)); // Limit to 2 parts
+ $taskCounts[$key] = $count;
+ }
+ }
+
+ $data[] = [
+ 'id' => $row['id'],
+ 'name' => $row['name'],
+ 'url' => $row['url'],
+ 'task-counts' => $taskCounts
+ ];
+}
+
+// Output JSON
+header('Content-Type: application/json');
+echo json_encode($data, JSON_PRETTY_PRINT);
+
+// Close the connection
+$stmt->close();
+$mysqli->close();
+?>
--- /dev/null
+[
+ {
+ "default-creature": "Aberrant spectre#Slayer Tower",
+ "weakness": [],
+ "creatures": ["Aberrant spectre"],
+ "hidden-creatures": [],
+ "index": "Aberrant spectres",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Nose_peg\" title=\"Nose peg\" target=\"_blank\">Nose peg<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_helmet\" title=\"Slayer helmet\" target=\"_blank\">Slayer helmet<\/a>"
+ ],
+ "masters": [
+ "The Raptor",
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Pollnivneach_Slayer_Dungeon\" title=\"Pollnivneach Slayer Dungeon\" target=\"_blank\">Pollnivneach Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Abyssal demon#Default",
+ "weakness": [],
+ "creatures": [
+ "Abyssal beast",
+ "Abyssal demon",
+ "Abyssal demon (elite)",
+ "Abyssal lord",
+ "Abyssal savage"
+ ],
+ "hidden-creatures": ["Abyssal demon (elite)"],
+ "index": "Abyssal Demons",
+ "alias": ["Abyssal demons"],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>",
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Abyssal_Area\" title=\"Abyssal Area\" target=\"_blank\">Abyssal Area<\/a>",
+ "<a href=\"https://runescape.wiki/w/Graveyard_of_Shadows\" title=\"Graveyard of Shadows\" target=\"_blank\">Graveyard of Shadows<\/a>",
+ "<a href=\"https://runescape.wiki/w/Forinthry_Dungeon\" title=\"Forinthry Dungeon\" target=\"_blank\">Forinthry Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Abyssal beast#Default",
+ "weakness": [],
+ "creatures": ["Abyssal beast"],
+ "hidden-creatures": [],
+ "index": "Abyssal beasts",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mandrith"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Senntisten_Asylum\" title=\"Senntisten Asylum\" target=\"_blank\">Senntisten Asylum<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Abyssal lord#Default",
+ "weakness": [],
+ "creatures": ["Abyssal lord"],
+ "hidden-creatures": [],
+ "index": "Abyssal lords",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mandrith"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Senntisten_Asylum\" title=\"Senntisten Asylum\" target=\"_blank\">Senntisten Asylum<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Abyssal savage#Asylum",
+ "weakness": [],
+ "creatures": ["Abyssal savage"],
+ "hidden-creatures": [],
+ "index": "Abyssal savages",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mandrith"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Senntisten_Asylum\" title=\"Senntisten Asylum\" target=\"_blank\">Senntisten Asylum<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Acheron mammoth#Default",
+ "weakness": [],
+ "creatures": ["Acheron mammoth"],
+ "hidden-creatures": [],
+ "index": "Acheron mammoths",
+ "alias": ["Acheron mammoth"],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Mammoth_iceberg\" title=\"Mammoth iceberg\" target=\"_blank\">Mammoth iceberg<\/a>",
+ "<a href=\"https://runescape.wiki/w/Frozen_Waste_Plateau\" title=\"Frozen Waste Plateau\" target=\"_blank\">Frozen Waste Plateau<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Adamant dragon#Default",
+ "weakness": [],
+ "creatures": ["Adamant dragon"],
+ "hidden-creatures": [],
+ "index": "Adamant dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Adamant_dragon_dungeon\" title=\"Adamant dragon dungeon\" target=\"_blank\">Adamant dragon dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonkin_Lair\" title=\"Dragonkin Lair\" target=\"_blank\">Dragonkin Lair<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Airut#Melee",
+ "weakness": [],
+ "creatures": ["Airut"],
+ "hidden-creatures": [],
+ "index": "Airut",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Piscatoris_Fishing_Colony\" title=\"Piscatoris Fishing Colony\" target=\"_blank\">Piscatoris Fishing Colony<\/a>",
+ "<a href=\"https://runescape.wiki/w/Mazcab\" title=\"Mazcab\" target=\"_blank\">Mazcab<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Ankou#Default",
+ "weakness": [],
+ "creatures": [
+ "Ankou",
+ "Ankou (Kili's Knowledge IV)",
+ "Ankou (elite)"
+ ],
+ "hidden-creatures": ["Ankou (elite)"],
+ "index": "Ankou",
+ "alias": ["Ankous"],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Mazchna"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness_Crater\" title=\"Wilderness Crater\" target=\"_blank\">Wilderness Crater<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Aquanite#Default",
+ "weakness": [],
+ "creatures": [
+ "Aquanite",
+ "Aquanite (elite)"
+ ],
+ "hidden-creatures": ["Aquanite (elite)"],
+ "index": "Aquanites",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Slayer_master\" class=\"mw-redirect\" title=\"Slayer master\" target=\"_blank\">Slayer master<\/a>"],
+ "masters": [
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Armoured phantom#1",
+ "weakness": [],
+ "creatures": ["Armoured phantom"],
+ "hidden-creatures": [],
+ "index": "Armoured phantoms",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Crypt_(Wilderness)\" title=\"Crypt (Wilderness)\" target=\"_blank\">Crypt<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fort_Forinthry\" title=\"Fort Forinthry\" target=\"_blank\">Fort Forinthry<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Capsarius#1",
+ "weakness": [],
+ "creatures": [
+ "Capsarius",
+ "Gladius",
+ "Legio Primus",
+ "Legio Quartus",
+ "Legio Quintus",
+ "Legio Secundus",
+ "Legio Sextus",
+ "Legio Tertius",
+ "Rorarius",
+ "Scutarius"
+ ],
+ "hidden-creatures": [],
+ "index": "Ascension members",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Monastery_of_Ascension\" title=\"Monastery of Ascension\" target=\"_blank\">Monastery of Ascension<\/a>"]
+ },
+ {
+ "default-creature": "Kree'arra#Normal",
+ "weakness": [],
+ "creatures": [
+ "Aviansie",
+ "Flight Kilisa",
+ "Flockleader Geerin",
+ "Kree'arra",
+ "Spiritual mage",
+ "Spiritual ranger",
+ "Spiritual warrior",
+ "Wingman Skree"
+ ],
+ "hidden-creatures": [
+ "Spiritual mage",
+ "Spiritual ranger",
+ "Spiritual warrior"
+ ],
+ "index": "Aviansies",
+ "alias": ["Aviansie"],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>",
+ "<sup id=\"cite_ref-4\" class=\"reference\" target=\"_blank\" href=\"https://runescape.wiki\"><a href=\"#cite_note-4\">[n 3]<\/a><\/sup>"
+ ]
+ },
+ {
+ "default-creature": "Banshee#Default",
+ "weakness": [],
+ "creatures": [
+ "Banshee",
+ "Mighty banshee"
+ ],
+ "hidden-creatures": ["Mighty banshee"],
+ "index": "Banshees",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Earmuffs\" title=\"Earmuffs\" target=\"_blank\">Earmuffs<\/a>",
+ "<a href=\"https://runescape.wiki/w/Masked_earmuffs\" title=\"Masked earmuffs\" target=\"_blank\">Masked earmuffs<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_helmet\" title=\"Slayer helmet\" target=\"_blank\">Slayer helmet<\/a>"
+ ],
+ "masters": [
+ "Mazchna",
+ "Chaeldar",
+ "Sumona"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>"]
+ },
+ {
+ "default-creature": "Basilisk#Large",
+ "weakness": [],
+ "creatures": ["Basilisk"],
+ "hidden-creatures": [],
+ "index": "Basilisks",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Mirror_shield\" title=\"Mirror shield\" target=\"_blank\">Mirror shield<\/a>"],
+ "masters": [
+ "Mazchna",
+ "Chaeldar",
+ "Sumona"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Pollnivneach_Slayer_Dungeon\" title=\"Pollnivneach Slayer Dungeon\" target=\"_blank\">Pollnivneach Slayer Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Bat#Default",
+ "weakness": [],
+ "creatures": [
+ "Albino bat",
+ "Bat",
+ "Giant bat",
+ "Warped bat"
+ ],
+ "hidden-creatures": [],
+ "index": "Bats",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Jacquelyn",
+ "Vannaka"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Silvarea\" title=\"Silvarea\" target=\"_blank\">Silvarea<\/a>",
+ "<a href=\"https://runescape.wiki/w/Morytania\" title=\"Morytania\" target=\"_blank\">Morytania<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Black bear#Default",
+ "weakness": [],
+ "creatures": [
+ "Angry bear",
+ "Bear cub",
+ "Black bear",
+ "Grizzly bear",
+ "Grizzly bear cub"
+ ],
+ "hidden-creatures": [
+ "Angry bear",
+ "Bear cub",
+ "Grizzly bear",
+ "Grizzly bear cub"
+ ],
+ "index": "Bears",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": []
+ },
+ {
+ "default-creature": "Chicken#White",
+ "weakness": [],
+ "creatures": [
+ "Bird",
+ "Chicken",
+ "Chompy bird",
+ "Duck",
+ "Duckling",
+ "Jubbly bird",
+ "Mounted terrorbird gnome",
+ "Oomlie bird",
+ "Pekin",
+ "Penguin (monster)",
+ "Pernicious parrot",
+ "Rooster",
+ "Seagull",
+ "Tenacious toucan",
+ "Terrorbird",
+ "Undead chicken",
+ "Undead pekin"
+ ],
+ "hidden-creatures": [
+ "Bird",
+ "Chompy bird",
+ "Duckling",
+ "Jubbly bird",
+ "Mounted terrorbird gnome",
+ "Oomlie bird",
+ "Pekin",
+ "Penguin (monster)",
+ "Pernicious parrot",
+ "Rooster",
+ "Seagull",
+ "Tenacious toucan",
+ "Undead chicken",
+ "Undead pekin"
+ ],
+ "index": "Birds",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Turael",
+ "Jacquelyn"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Ape_Atoll\" title=\"Ape Atoll\" target=\"_blank\">Ape Atoll<\/a>",
+ "<a href=\"https://runescape.wiki/w/Crash_Island\" title=\"Crash Island\" target=\"_blank\">Crash Island<\/a>",
+ "<a href=\"https://runescape.wiki/w/Life_altar\" title=\"Life altar\" target=\"_blank\">Life altar<\/a>",
+ "<a href=\"https://runescape.wiki/w/Nature_altar\" title=\"Nature altar\" target=\"_blank\">Nature altar<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Black demon#1",
+ "weakness": [],
+ "creatures": [
+ "Balfrug Kreeyath",
+ "Black demon"
+ ],
+ "hidden-creatures": ["Balfrug Kreeyath"],
+ "index": "Black demons",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Taverley_Dungeon\" title=\"Taverley Dungeon\" target=\"_blank\">Taverley Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Edgeville_Dungeon\" title=\"Edgeville Dungeon\" target=\"_blank\">Edgeville Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Queen Black Dragon#Normal",
+ "weakness": [],
+ "creatures": [
+ "Alanogard the Black",
+ "Baby black dragon",
+ "Black dragon",
+ "Black dragon (Dragonkin Laboratory)",
+ "King Black Dragon",
+ "Queen Black Dragon",
+ "Verak Lith",
+ "Verak Little"
+ ],
+ "hidden-creatures": [
+ "Alanogard the Black",
+ "Verak Lith",
+ "Verak Little"
+ ],
+ "index": "Black dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "The Raptor",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Taverley_Dungeon\" title=\"Taverley Dungeon\" target=\"_blank\">Taverley Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lava_Maze\" title=\"Lava Maze\" target=\"_blank\">Lava Maze<\/a>",
+ "<a href=\"https://runescape.wiki/w/Evil_Chicken%27s_Lair\" title=\"Evil Chicken's Lair\" target=\"_blank\">Evil Chicken's Lair<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Bloodveld#Default",
+ "weakness": [],
+ "creatures": [
+ "Bloodveld",
+ "Bloodveld (God Wars Dungeon)",
+ "Bloodveld (Heart of Gielinor)",
+ "Mutated bloodveld"
+ ],
+ "hidden-creatures": [],
+ "index": "Bloodveld",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Meiyerditch_Dungeon\" class=\"mw-redirect\" title=\"Meiyerditch Dungeon\" target=\"_blank\">Meiyerditch Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Blue dragon#1",
+ "weakness": [],
+ "creatures": [
+ "Baby blue dragon",
+ "Blue dragon",
+ "Vorkath"
+ ],
+ "hidden-creatures": [],
+ "index": "Blue dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Kuradal",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Taverley_Dungeon\" title=\"Taverley Dungeon\" target=\"_blank\">Taverley Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ogre_Enclave\" title=\"Ogre Enclave\" target=\"_blank\">Ogre Enclave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Heroes%27_Guild\" title=\"Heroes' Guild\" target=\"_blank\">Heroes' Guild<\/a>",
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Bound skeleton#1",
+ "weakness": [],
+ "creatures": ["Bound skeleton"],
+ "hidden-creatures": [],
+ "index": "Bound skeletons",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Fort_Forinthry\" title=\"Fort Forinthry\" target=\"_blank\">Fort Forinthry<\/a>"]
+ },
+ {
+ "default-creature": "Brine rat#Default",
+ "weakness": [],
+ "creatures": ["Brine rat"],
+ "hidden-creatures": [],
+ "index": "Brine rats",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Brine_Rat_Cavern\" title=\"Brine Rat Cavern\" target=\"_blank\">Brine Rat Cavern<\/a>"]
+ },
+ {
+ "default-creature": "Bronze dragon#Default",
+ "weakness": [],
+ "creatures": ["Bronze dragon"],
+ "hidden-creatures": [],
+ "index": "Bronze dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Camel Warrior#Default",
+ "weakness": [],
+ "creatures": ["Camel Warrior"],
+ "hidden-creatures": [],
+ "index": "Camel warriors",
+ "alias": ["Camel Warrior"],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Camel_Warriors_island\" title=\"Camel Warriors island\" target=\"_blank\">Camel Warriors island<\/a>"]
+ },
+ {
+ "default-creature": "Catablepon#Default",
+ "weakness": [],
+ "creatures": ["Catablepon"],
+ "hidden-creatures": [],
+ "index": "Catablepon",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>"]
+ },
+ {
+ "default-creature": "Cave bug#Level 11",
+ "weakness": [],
+ "creatures": ["Cave bug"],
+ "hidden-creatures": [],
+ "index": "Cave bugs",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Turael",
+ "Jacquelyn"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Burthorpe_Slayer_Cave\" title=\"Burthorpe Slayer Cave\" target=\"_blank\">Burthorpe Slayer Cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dorgesh-Kaan_South_Dungeon\" title=\"Dorgesh-Kaan South Dungeon\" target=\"_blank\">Dorgesh-Kaan South Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Swamp_Caves\" title=\"Lumbridge Swamp Caves\" target=\"_blank\">Lumbridge Swamp Caves<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Cave crawler#Level 24",
+ "weakness": [],
+ "creatures": ["Cave crawler"],
+ "hidden-creatures": [],
+ "index": "Cave crawlers",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar",
+ "Sumona"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Swamp_Caves\" title=\"Lumbridge Swamp Caves\" target=\"_blank\">Lumbridge Swamp Caves<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dorgesh-Kaan_South_Dungeon\" title=\"Dorgesh-Kaan South Dungeon\" target=\"_blank\">Dorgesh-Kaan South Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Pollnivneach_Slayer_Dungeon\" title=\"Pollnivneach Slayer Dungeon\" target=\"_blank\">Pollnivneach Slayer Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Unspeakable horror#Default",
+ "weakness": [],
+ "creatures": [
+ "Cave horror",
+ "Cave horror (elite)",
+ "Unspeakable horror",
+ "Unspeakable horror (elite)"
+ ],
+ "hidden-creatures": [
+ "Cave horror (elite)",
+ "Unspeakable horror (elite)"
+ ],
+ "index": "Cave horrors",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Witchwood_icon\" title=\"Witchwood icon\" target=\"_blank\">Witchwood icon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Light_source\" class=\"mw-redirect\" title=\"Light source\" target=\"_blank\">Light source<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Sumona"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Mos_Le%27Harmless_Caves\" title=\"Mos Le'Harmless Caves\" target=\"_blank\">Mos Le'Harmless Caves<\/a>"]
+ },
+ {
+ "default-creature": "Cave slime#Default",
+ "weakness": [],
+ "creatures": [
+ "Cave slime",
+ "Giant slime",
+ "Laboratory slime"
+ ],
+ "hidden-creatures": [
+ "Giant slime",
+ "Laboratory slime"
+ ],
+ "index": "Cave slimes",
+ "alias": ["Cave slime"],
+ "equipment": [],
+ "masters": [
+ "Jacquelyn",
+ "Vannaka"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Swamp_Caves\" title=\"Lumbridge Swamp Caves\" target=\"_blank\">Lumbridge Swamp Caves<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dorgesh-Kaan_South_Dungeon\" title=\"Dorgesh-Kaan South Dungeon\" target=\"_blank\">Dorgesh-Kaan South Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Celestial dragon#Default",
+ "weakness": [],
+ "creatures": [
+ "Astellarn",
+ "Celestial dragon",
+ "Celestial dragon (Dragonkin Laboratory)",
+ "Elegorn the Celestial"
+ ],
+ "hidden-creatures": [
+ "Astellarn",
+ "Celestial dragon (Dragonkin Laboratory)"
+ ],
+ "index": "Celestial dragons",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Super_antifire\" title=\"Super antifire\" target=\"_blank\">Super antifire<\/a>"],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Dragontooth_Island_resource_dungeon\" title=\"Dragontooth Island resource dungeon\" target=\"_blank\">Dragontooth Island resource dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Chaos Giant#Default",
+ "weakness": [],
+ "creatures": ["Chaos Giant"],
+ "hidden-creatures": [],
+ "index": "Chaos giants",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Barendir\" title=\"Barendir\" target=\"_blank\">Barendir<\/a>"]
+ },
+ {
+ "default-creature": "Cockatrice#Default",
+ "weakness": [],
+ "creatures": ["Cockatrice"],
+ "hidden-creatures": [],
+ "index": "Cockatrice",
+ "alias": ["Cockatrices"],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Mirror_shield\" title=\"Mirror shield\" target=\"_blank\">Mirror shield<\/a>"],
+ "masters": ["Mazchna"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Cockroach drone#Default",
+ "weakness": [],
+ "creatures": [
+ "Cockroach drone",
+ "Cockroach soldier",
+ "Cockroach worker",
+ "Warped cockroach"
+ ],
+ "hidden-creatures": [],
+ "index": "Cockroaches",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Catacombs\" title=\"Lumbridge Catacombs\" target=\"_blank\">Lumbridge Catacombs<\/a>",
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Player_Safety\" title=\"Stronghold of Player Safety\" target=\"_blank\">Stronghold of Player Safety<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Corrupted scorpion#Default",
+ "weakness": [],
+ "creatures": [
+ "Corrupted dust devil",
+ "Corrupted kalphite guardian",
+ "Corrupted kalphite marauder",
+ "Corrupted lizard",
+ "Corrupted scarab",
+ "Corrupted scorpion",
+ "Corrupted worker"
+ ],
+ "hidden-creatures": [],
+ "index": "Corrupted creatures",
+ "alias": [
+ "Corrupted dust devils",
+ "Corrupted kalphites",
+ "Corrupted lizards",
+ "Corrupted scarabs",
+ "Corrupted scorpions",
+ "Corrupted worker"
+ ],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Feather_of_Ma%27at\" title=\"Feather of Ma'at\" target=\"_blank\">Feather of Ma'at<\/a>"],
+ "masters": [
+ "Sumona",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Sophanem_Slayer_Dungeon\" title=\"Sophanem Slayer Dungeon\" target=\"_blank\">Sophanem Slayer Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Cow#Standard (1)",
+ "weakness": [],
+ "creatures": [
+ "Cow",
+ "Cow calf",
+ "Super Cow",
+ "Undead cow"
+ ],
+ "hidden-creatures": [
+ "Cow calf",
+ "Super Cow",
+ "Undead cow"
+ ],
+ "index": "Cows",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Turael",
+ "Jacquelyn"
+ ],
+ "locations": []
+ },
+ {
+ "default-creature": "Crawling hand#10a",
+ "weakness": [],
+ "creatures": [
+ "Crawling hand",
+ "Skeletal hand",
+ "Zombie hand"
+ ],
+ "hidden-creatures": [
+ "Skeletal hand",
+ "Zombie hand"
+ ],
+ "index": "Crawling hands",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Turael",
+ "Chaeldar"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Burthorpe_Slayer_Cave\" title=\"Burthorpe Slayer Cave\" target=\"_blank\">Burthorpe Slayer Cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Edimmu#Default",
+ "weakness": [],
+ "creatures": [
+ "Edimmu",
+ "Edimmu (elite)",
+ "Frost dragon",
+ "Kal'gerion demon",
+ "Seeker",
+ "Soulgazer"
+ ],
+ "hidden-creatures": ["Edimmu (elite)"],
+ "index": "Creatures of Daemonheim",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Laniakea"],
+ "locations": []
+ },
+ {
+ "default-creature": "Bulbous crawler#Default",
+ "weakness": [],
+ "creatures": [
+ "Bulbous crawler",
+ "Moss golem",
+ "Vinecrawler"
+ ],
+ "hidden-creatures": [],
+ "index": "Creatures of the Lost Grove",
+ "alias": ["Lost Grove creatures"],
+ "equipment": [],
+ "masters": [
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/The_Lost_Grove\" title=\"The Lost Grove\" target=\"_blank\">The Lost Grove<\/a>"]
+ },
+ {
+ "default-creature": "Automaton Generator#Post-quest",
+ "weakness": [],
+ "creatures": [
+ "Automaton Generator",
+ "Automaton Guardian",
+ "Automaton Tracer"
+ ],
+ "hidden-creatures": [],
+ "index": "Cres's creations",
+ "alias": ["Automatons"],
+ "equipment": [],
+ "masters": [
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Guthix%27s_Cave\" class=\"mw-redirect\" title=\"Guthix's Cave\" target=\"_blank\">Guthix's Cave<\/a>"]
+ },
+ {
+ "default-creature": "Crocodile#40",
+ "weakness": [],
+ "creatures": [
+ "Crocodile",
+ "Crocodile akh",
+ "Ol' Sawtooth",
+ "Sea crocodile"
+ ],
+ "hidden-creatures": [
+ "Ol' Sawtooth",
+ "Sea crocodile"
+ ],
+ "index": "Crocodiles",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Sumona"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/River_Elid\" title=\"River Elid\" target=\"_blank\">Elid<\/a>",
+ "<a href=\"https://runescape.wiki/w/Kharidian_Desert\" title=\"Kharidian Desert\" target=\"_blank\">Kharidian Desert<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Crystal Shapeshifter#Magic",
+ "weakness": [],
+ "creatures": ["Crystal Shapeshifter"],
+ "hidden-creatures": [],
+ "index": "Crystal shapeshifters",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Tarddiad\" title=\"Tarddiad\" target=\"_blank\">Tarddiad<\/a>"]
+ },
+ {
+ "default-creature": "Cyclops#57 (Crush)",
+ "weakness": [],
+ "creatures": [
+ "Cyclops",
+ "Cyclossus"
+ ],
+ "hidden-creatures": ["Cyclossus"],
+ "index": "Cyclopes",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<span class=\"floornumber\" target=\"_blank\" href=\"https://runescape.wiki\"><span class=\"floornumber-gb\">2<sup class=\"floornumber-ordinal-suffix\">nd<\/sup> floor<sup class=\"floornumber-help noexcerpt\">[<span class=\"fact-text floor-convention\" title=\"British convention; floor 3 in the US\">UK<\/span>]<\/sup><\/span><span class=\"floornumber-us noexcerpt\">3<sup class=\"floornumber-ordinal-suffix\">rd<\/sup> floor<sup class=\"floornumber-help noexcerpt\">[<span class=\"fact-text floor-convention\" title=\"US convention; floor 2 in the UK\">US<\/span>]<\/sup><\/span><\/span>",
+ "<a href=\"https://runescape.wiki/w/Warriors%27_Guild\" title=\"Warriors' Guild\" target=\"_blank\">Warriors' Guild<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ardougne_Zoo\" title=\"Ardougne Zoo\" target=\"_blank\">Ardougne Zoo<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Dagannoth Rex#Default",
+ "weakness": [],
+ "creatures": [
+ "Dagannoth (Lighthouse)",
+ "Dagannoth (Waterbirth Island)",
+ "Dagannoth (Waterbirth Island, ranged)",
+ "Dagannoth Prime",
+ "Dagannoth Rex",
+ "Dagannoth Supreme",
+ "Dagannoth fledgeling",
+ "Dagannoth guardian",
+ "Dagannoth spawn"
+ ],
+ "hidden-creatures": [
+ "Dagannoth (Lighthouse)",
+ "Dagannoth (Waterbirth Island)",
+ "Dagannoth (Waterbirth Island, ranged)",
+ "Dagannoth fledgeling",
+ "Dagannoth guardian",
+ "Dagannoth spawn"
+ ],
+ "index": "Dagannoth",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lighthouse\" title=\"Lighthouse\" target=\"_blank\">Lighthouse<\/a>",
+ "<a href=\"https://runescape.wiki/w/Waterbirth_Island\" title=\"Waterbirth Island\" target=\"_blank\">Waterbirth Island<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Dark beast#19,000 life points",
+ "weakness": [],
+ "creatures": [
+ "Dark beast",
+ "Dark beast (elite)",
+ "Revenant dark beast"
+ ],
+ "hidden-creatures": [
+ "Dark beast (elite)",
+ "Revenant dark beast"
+ ],
+ "index": "Dark beasts",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Temple_of_Light\" title=\"Temple of Light\" target=\"_blank\">Temple of Light<\/a>"
+ ]
+ },
+ {
+ "default-creature": "K'ril Tsutsaroth#Normal",
+ "weakness": [],
+ "creatures": [
+ "Abyssal beast",
+ "Abyssal demon",
+ "Abyssal lord",
+ "Abyssal savage",
+ "Balfrug Kreeyath",
+ "Black demon",
+ "Cerberus Juvenile",
+ "Gargoyle",
+ "Greater demon",
+ "Greater demon ash lord",
+ "Greater demon berserker",
+ "Greater demon brute",
+ "Greater demon pyromancer",
+ "Greater demon sage",
+ "Greater demon savage",
+ "Imp",
+ "Imp scavenger",
+ "K'ril Tsutsaroth",
+ "Kal'gerion demon",
+ "Kal'gerion demon (The Shadow Reef)",
+ "Lesser demon",
+ "Revenant demon",
+ "Ripper Demon",
+ "Tormented demon",
+ "Tstanon Karlak",
+ "Yor'Ger the Deceiver",
+ "Zakl'n Gritch"
+ ],
+ "hidden-creatures": [
+ "Gargoyle",
+ "Imp",
+ "Kal'gerion demon",
+ "Kal'gerion demon (The Shadow Reef)",
+ "Tstanon Karlak",
+ "Yor'Ger the Deceiver",
+ "Zakl'n Gritch"
+ ],
+ "index": "Demons",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Laniakea"
+ ],
+ "locations": []
+ },
+ {
+ "default-creature": "Corrupted lizard#Default",
+ "weakness": [],
+ "creatures": [
+ "Corrupted lizard",
+ "Desert Lizard",
+ "Lizard",
+ "Small Lizard"
+ ],
+ "hidden-creatures": [],
+ "index": "Desert lizards",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Ice_cooler\" title=\"Ice cooler\" target=\"_blank\">Ice cooler<\/a>"],
+ "masters": [
+ "Mazchna",
+ "Sumona"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Kharidian_Desert\" title=\"Kharidian Desert\" target=\"_blank\">Kharidian Desert<\/a>"]
+ },
+ {
+ "default-creature": "Desert strykewyrm#Default",
+ "weakness": [],
+ "creatures": ["Desert strykewyrm"],
+ "hidden-creatures": [],
+ "index": "Desert strykewyrms",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Al_Kharid\" title=\"Al Kharid\" target=\"_blank\">Al Kharid<\/a>"]
+ },
+ {
+ "default-creature": "Ripper dinosaur#Normal",
+ "weakness": [],
+ "creatures": [
+ "Baby Dinosaur Skeleton",
+ "Brutish dinosaur",
+ "Feral Dinosaur",
+ "Orikalka",
+ "Osseous",
+ "Pthentraken",
+ "Rathis",
+ "Ripper dinosaur",
+ "Venomous dinosaur"
+ ],
+ "hidden-creatures": [],
+ "index": "Dinosaurs",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Laniakea"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Anachronia\" title=\"Anachronia\" target=\"_blank\">Anachronia<\/a>"]
+ },
+ {
+ "default-creature": "Jackal#Default",
+ "weakness": [],
+ "creatures": [
+ "Guard dog",
+ "Jackal",
+ "Shadow Hound",
+ "Wild dog"
+ ],
+ "hidden-creatures": [
+ "Guard dog",
+ "Shadow Hound",
+ "Wild dog"
+ ],
+ "index": "Dogs",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Ardougne\" title=\"Ardougne\" target=\"_blank\">Ardougne<\/a>",
+ "<a href=\"https://runescape.wiki/w/McGrubor%27s_Wood\" title=\"McGrubor's Wood\" target=\"_blank\">McGrubor's Wood<\/a>",
+ "<a href=\"https://runescape.wiki/w/Black_Arm_Gang\" title=\"Black Arm Gang\" target=\"_blank\">Black Arm Gang<\/a>",
+ "<a href=\"https://runescape.wiki/w/Brimhaven\" title=\"Brimhaven\" target=\"_blank\">Brimhaven<\/a>",
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Queen Black Dragon#Normal",
+ "weakness": [],
+ "creatures": [
+ "Adamant dragon",
+ "Alanogard the Black",
+ "Astellarn",
+ "Baby blue dragon",
+ "Baby red dragon",
+ "Black dragon",
+ "Black dragon (Dragonkin Laboratory)",
+ "Black stone dragon",
+ "Blue dragon",
+ "Bronze dragon",
+ "Brutal green dragon",
+ "Celestial dragon",
+ "Celestial dragon (Dragonkin Laboratory)",
+ "Dragonstone dragon",
+ "Dragonstone dragon (Dragonkin Laboratory)",
+ "Elegorn the Celestial",
+ "Frost dragon",
+ "Green dragon",
+ "Hydrix dragon",
+ "Hydrix dragon (Dragonkin Laboratory)",
+ "Iron dragon",
+ "King Black Dragon",
+ "Mithril dragon",
+ "Nodon artificer",
+ "Nodon engineer",
+ "Nodon guard",
+ "Nodon hunter",
+ "Onyx dragon",
+ "Onyx dragon (Dragonkin Laboratory)",
+ "Queen Black Dragon",
+ "Red dragon",
+ "Red dragon (Dragonkin Laboratory)",
+ "Rune dragon",
+ "Sangri the Red",
+ "Siege engine",
+ "Steel dragon",
+ "Verak Lith",
+ "Verak Little",
+ "Vorkath"
+ ],
+ "hidden-creatures": [],
+ "index": "Dragons",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Laniakea"
+ ],
+ "locations": []
+ },
+ {
+ "default-creature": "Corrupted dust devil#Default",
+ "weakness": [],
+ "creatures": [
+ "Corrupted dust devil",
+ "Dust devil",
+ "Dust devil (elite)"
+ ],
+ "hidden-creatures": ["Dust devil (elite)"],
+ "index": "Dust devils",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Face_mask\" title=\"Face mask\" target=\"_blank\">Face mask<\/a>",
+ "<a href=\"https://runescape.wiki/w/Masked_earmuffs\" title=\"Masked earmuffs\" target=\"_blank\">Masked earmuffs<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_helmet\" title=\"Slayer helmet\" target=\"_blank\">Slayer helmet<\/a>",
+ "<a href=\"https://runescape.wiki/w/Gas_mask\" title=\"Gas mask\" target=\"_blank\">Gas mask<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Smoke_Dungeon\" title=\"Smoke Dungeon\" target=\"_blank\">Smoke Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Earth warrior#Default",
+ "weakness": [],
+ "creatures": [
+ "Earth warrior",
+ "Earth warrior (elite)"
+ ],
+ "hidden-creatures": ["Earth warrior (elite)"],
+ "index": "Earth warriors",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Edgeville_Dungeon\" title=\"Edgeville Dungeon\" target=\"_blank\">Edgeville Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Edimmu#Default",
+ "weakness": [],
+ "creatures": [
+ "Edimmu",
+ "Edimmu (elite)"
+ ],
+ "hidden-creatures": ["Edimmu (elite)"],
+ "index": "Edimmu",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Dungeoneering\" title=\"Dungeoneering\" target=\"_blank\">Dungeoneering<\/a>"],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Edimmu_resource_dungeon\" title=\"Edimmu resource dungeon\" target=\"_blank\">Edimmu resource dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Elf warrior#Melee",
+ "weakness": [],
+ "creatures": [
+ "Cadarn magus",
+ "Cadarn ranger",
+ "Elf warrior",
+ "Iorwerth guard",
+ "Iorwerth scout",
+ "Knight of Ardougne (West Ardougne)",
+ "Mourner (Mourner Tunnels)",
+ "Seren archer",
+ "Seren mage",
+ "Seren warrior"
+ ],
+ "hidden-creatures": [
+ "Knight of Ardougne (West Ardougne)",
+ "Mourner (Mourner Tunnels)",
+ "Seren archer",
+ "Seren mage",
+ "Seren warrior"
+ ],
+ "index": "Elves",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Lletya\" title=\"Lletya\" target=\"_blank\">Lletya<\/a>",
+ "<a href=\"https://runescape.wiki/w/Elf_Camp\" title=\"Elf Camp\" target=\"_blank\">Elf Camp<\/a>",
+ "<a href=\"https://runescape.wiki/w/Prifddinas\" title=\"Prifddinas\" target=\"_blank\">Prifddinas<\/a>",
+ "<a href=\"https://runescape.wiki/w/Heart_of_Gielinor\" title=\"Heart of Gielinor\" target=\"_blank\">Heart of Gielinor<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Fetid zombie#1",
+ "weakness": [],
+ "creatures": ["Fetid zombie"],
+ "hidden-creatures": [],
+ "index": "Fetid zombies",
+ "alias": [],
+ "equipment": [],
+ "masters": ["The Raptor"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Crypt_(Wilderness)\" title=\"Crypt (Wilderness)\" target=\"_blank\">crypt<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fort_Forinthry\" title=\"Fort Forinthry\" target=\"_blank\">Fort Forinthry<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Fever spider#Default",
+ "weakness": [],
+ "creatures": ["Fever spider"],
+ "hidden-creatures": [],
+ "index": "Fever spiders",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Slayer_gloves\" title=\"Slayer gloves\" target=\"_blank\">Slayer gloves<\/a>"],
+ "masters": ["Chaeldar"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Braindeath_Island\" title=\"Braindeath Island\" target=\"_blank\">Braindeath Island<\/a>"]
+ },
+ {
+ "default-creature": "Fire giant#Default",
+ "weakness": [],
+ "creatures": ["Fire giant"],
+ "hidden-creatures": [],
+ "index": "Fire giants",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Smoke_Dungeon\" title=\"Smoke Dungeon\" target=\"_blank\">Smoke Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Resource_dungeon\" class=\"mw-redirect\" title=\"Resource dungeon\" target=\"_blank\">Resource dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Waterfall_Dungeon\" title=\"Waterfall Dungeon\" target=\"_blank\">Waterfall Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Flesh Crawler#Default",
+ "weakness": [],
+ "creatures": ["Flesh Crawler"],
+ "hidden-creatures": [],
+ "index": "Fleshcrawlers",
+ "alias": ["Flesh Crawlers"],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>"]
+ },
+ {
+ "default-creature": "Plague frog#Default",
+ "weakness": [],
+ "creatures": [
+ "Big frog",
+ "Frog",
+ "Frogeel",
+ "Giant frog",
+ "Plague frog",
+ "Swamp frog"
+ ],
+ "hidden-creatures": [
+ "Big frog",
+ "Frogeel",
+ "Giant frog"
+ ],
+ "index": "Frogs",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Jacquelyn",
+ "Vannaka"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Swamp_Caves\" title=\"Lumbridge Swamp Caves\" target=\"_blank\">Lumbridge Swamp Caves<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Swamp\" title=\"Lumbridge Swamp\" target=\"_blank\">Lumbridge Swamp<\/a>",
+ "<a href=\"https://runescape.wiki/w/Sophanem\" title=\"Sophanem\" target=\"_blank\">Sophanem<\/a>",
+ "<a href=\"https://runescape.wiki/w/Jade_vine_maze\" title=\"Jade vine maze\" target=\"_blank\">Jade vine maze<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Fungal mage#Normal",
+ "weakness": [],
+ "creatures": ["Fungal mage"],
+ "hidden-creatures": [],
+ "index": "Fungal magi",
+ "alias": ["Fungal mages"],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Neem_oil\" title=\"Neem oil\" target=\"_blank\">Neem oil<\/a>"],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Duradel"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Polypore_Dungeon\" title=\"Polypore Dungeon\" target=\"_blank\">Polypore Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Ganodermic beast#Normal",
+ "weakness": [],
+ "creatures": [
+ "Ganodermic beast",
+ "Ganodermic runt"
+ ],
+ "hidden-creatures": [],
+ "index": "Ganodermic creatures",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Neem_oil\" title=\"Neem oil\" target=\"_blank\">Neem oil<\/a>"],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Polypore_Dungeon\" title=\"Polypore Dungeon\" target=\"_blank\">Polypore Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Gargoyle#Regular",
+ "weakness": [],
+ "creatures": ["Gargoyle"],
+ "hidden-creatures": [],
+ "index": "Gargoyles",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Rock_hammer\" title=\"Rock hammer\" target=\"_blank\">Rock hammer<\/a>"],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ruins_(east)\" title=\"Ruins (east)\" target=\"_blank\">Ruins (east)<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Gelatinous abomination#Default",
+ "weakness": [],
+ "creatures": ["Gelatinous abomination"],
+ "hidden-creatures": [],
+ "index": "Gelatinous abominations",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Spiked_gloves\" class=\"mw-redirect\" title=\"Spiked gloves\" target=\"_blank\">Spiked gloves<\/a>"],
+ "masters": ["Turael"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Burthorpe_Slayer_Cave\" title=\"Burthorpe Slayer Cave\" target=\"_blank\">Burthorpe Slayer Cave<\/a>"]
+ },
+ {
+ "default-creature": "Hydrix dragon#Default",
+ "weakness": [],
+ "creatures": [
+ "Black stone dragon",
+ "Dragonstone dragon",
+ "Dragonstone dragon (Dragonkin Laboratory)",
+ "Hydrix dragon",
+ "Hydrix dragon (Dragonkin Laboratory)",
+ "Onyx dragon",
+ "Onyx dragon (Dragonkin Laboratory)"
+ ],
+ "hidden-creatures": [],
+ "index": "Gemstone dragons",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Super_anti-fire_potion\" class=\"mw-redirect\" title=\"Super anti-fire potion\" target=\"_blank\">Super anti-fire potion<\/a>"],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Gemstone_cavern\" title=\"Gemstone cavern\" target=\"_blank\">Gemstone cavern<\/a>"]
+ },
+ {
+ "default-creature": "Ghost#1",
+ "weakness": [],
+ "creatures": [
+ "Aberrant spectre",
+ "Ahrim the Blighted",
+ "Akrisae the Doomed",
+ "Ankou",
+ "Banshee",
+ "Dharok the Wretched",
+ "Edimmu",
+ "Edimmu (elite)",
+ "Ghast",
+ "Ghost",
+ "Ghost (Abandoned Mine)",
+ "Ghost (Ourania Runecrafting Altar)",
+ "Ghost (Shattered Worlds)",
+ "Ghost (Spirit of Summer)",
+ "Ghost (Stronghold of Security)",
+ "Ghost healer",
+ "Ghostly troll bruiser",
+ "Ghostly troll thrower",
+ "Ghostly warrior",
+ "Guthan the Infested",
+ "Karil the Tainted",
+ "Linza the Disgraced",
+ "Masuta the Descended",
+ "Mighty banshee",
+ "Revenant cyclops",
+ "Revenant dark beast",
+ "Revenant demon",
+ "Revenant dragon",
+ "Revenant goblin",
+ "Revenant hellhound",
+ "Revenant hobgoblin",
+ "Revenant icefiend",
+ "Revenant imp",
+ "Revenant knight",
+ "Revenant ork",
+ "Revenant pyrefiend",
+ "Revenant vampyre",
+ "Revenant werewolf",
+ "Risen ghost",
+ "Shade",
+ "Shadow warrior",
+ "Spiritual mage",
+ "Spiritual ranger",
+ "Spiritual warrior",
+ "Torag the Corrupted",
+ "Tormented soul (Uncharted Isles)",
+ "Tormented wraith",
+ "Tortured soul (Port Phasmatys)",
+ "Verac the Defiled",
+ "Wight",
+ "Wight (Missing, Presumed Death)",
+ "Wight ranger",
+ "Wight ranger (Sliske's Endgame)"
+ ],
+ "hidden-creatures": [
+ "Edimmu (elite)",
+ "Ghost (Abandoned Mine)",
+ "Ghost (Ourania Runecrafting Altar)",
+ "Ghost (Shattered Worlds)",
+ "Ghost (Spirit of Summer)",
+ "Ghost (Stronghold of Security)",
+ "Revenant cyclops",
+ "Revenant demon",
+ "Revenant goblin",
+ "Revenant hobgoblin",
+ "Revenant icefiend",
+ "Revenant imp",
+ "Revenant ork",
+ "Revenant pyrefiend",
+ "Revenant vampyre",
+ "Revenant werewolf",
+ "Tormented soul (Uncharted Isles)",
+ "Tormented wraith",
+ "Tortured soul (Port Phasmatys)",
+ "Wight",
+ "Wight (Missing, Presumed Death)",
+ "Wight ranger",
+ "Wight ranger (Sliske's Endgame)"
+ ],
+ "index": "Ghosts",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Jacquelyn",
+ "Vannaka",
+ "The Raptor"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Varrock_Sewers\" title=\"Varrock Sewers\" target=\"_blank\">Varrock Sewers<\/a>",
+ "<a href=\"https://runescape.wiki/w/Draynor_Manor\" title=\"Draynor Manor\" target=\"_blank\">Draynor Manor<\/a>",
+ "<a href=\"https://runescape.wiki/w/Melzar%27s_Maze\" title=\"Melzar's Maze\" target=\"_blank\">Melzar's Maze<\/a>",
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Taverley_Dungeon\" title=\"Taverley Dungeon\" target=\"_blank\">Taverley Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Tarn%27s_Lair\" class=\"mw-redirect\" title=\"Tarn's Lair\" target=\"_blank\">Tarn's Lair<\/a>",
+ "<a href=\"https://runescape.wiki/w/Death_Altar\" class=\"mw-redirect\" title=\"Death Altar\" target=\"_blank\">Death Altar<\/a>",
+ "<a href=\"https://runescape.wiki/w/Haunted_Mine\" title=\"Haunted Mine\" target=\"_blank\">Haunted Mine<\/a>",
+ "<a href=\"https://runescape.wiki/w/Clan_Wars\" title=\"Clan Wars\" target=\"_blank\">Clan Wars<\/a>",
+ "<a href=\"https://runescape.wiki/w/Forgotten_Cemetery\" class=\"mw-redirect\" title=\"Forgotten Cemetery\" target=\"_blank\">Forgotten Cemetery<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Ravenous ghoul#Default",
+ "weakness": [],
+ "creatures": [
+ "Ghoul",
+ "Ghoul (Paterdomus)",
+ "Ravenous ghoul",
+ "Ravenous ghoul (Mazchna)"
+ ],
+ "hidden-creatures": [
+ "Ghoul (Paterdomus)",
+ "Ravenous ghoul (Mazchna)"
+ ],
+ "index": "Ghouls",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Canifis\" title=\"Canifis\" target=\"_blank\">Canifis<\/a>"]
+ },
+ {
+ "default-creature": "Arch-Glacor#Normal mode",
+ "weakness": [],
+ "creatures": [
+ "Arch-Glacor",
+ "Bolstered Glacyte",
+ "Enduring glacyte",
+ "Glacor",
+ "Glacyte",
+ "Glacyte (Arch-Glacor)",
+ "Sapping glacyte",
+ "Unstable glacyte"
+ ],
+ "hidden-creatures": [],
+ "index": "Glacors",
+ "alias": ["Glacor"],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Slayer_master\" class=\"mw-redirect\" title=\"Slayer master\" target=\"_blank\">Slayer master<\/a>"],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Glacor_Cave\" title=\"Glacor Cave\" target=\"_blank\">Glacor Cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Glacor_Front\" title=\"Glacor Front\" target=\"_blank\">Glacor front<\/a>",
+ "<a href=\"https://runescape.wiki/w/Frozen_Waste_Plateau\" title=\"Frozen Waste Plateau\" target=\"_blank\">Frozen Waste Plateau<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Goblin#Level 11",
+ "weakness": [],
+ "creatures": [
+ "Angry goblin",
+ "Brokeface",
+ "Cave goblin (monster)",
+ "Cave goblin guard",
+ "Cave goblin miner",
+ "Goblin",
+ "Goblin (Goblin Village)",
+ "Goblin (God Wars Dungeon)",
+ "Goblin (Stronghold of Security)",
+ "Guard (cave goblin)",
+ "Lumpnose",
+ "Sergeant Grimspike",
+ "Sergeant Steelwill",
+ "Sergeant Strongstack",
+ "Skoblin",
+ "Stinkears"
+ ],
+ "hidden-creatures": [
+ "Angry goblin",
+ "Brokeface",
+ "Cave goblin (monster)",
+ "Cave goblin guard",
+ "Cave goblin miner",
+ "Guard (cave goblin)",
+ "Lumpnose",
+ "Sergeant Grimspike",
+ "Sergeant Steelwill",
+ "Sergeant Strongstack",
+ "Skoblin"
+ ],
+ "index": "Goblins",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Jacquelyn"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Lumbridge_catacombs\" class=\"mw-redirect\" title=\"Lumbridge catacombs\" target=\"_blank\">Lumbridge catacombs<\/a>",
+ "<a href=\"https://runescape.wiki/w/Goblin_Village\" title=\"Goblin Village\" target=\"_blank\">Goblin Village<\/a>",
+ "<a href=\"https://runescape.wiki/w/Port_Sarim\" title=\"Port Sarim\" target=\"_blank\">Port Sarim<\/a>",
+ "<a href=\"https://runescape.wiki/w/Varrock_Dig_Site\" title=\"Varrock Dig Site\" target=\"_blank\">Varrock Dig Site<\/a>",
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Underground_Pass_(dungeon)\" title=\"Underground Pass (dungeon)\" target=\"_blank\">Underground Pass<\/a>",
+ "<a href=\"https://runescape.wiki/w/Goblin_Cave\" title=\"Goblin Cave\" target=\"_blank\">Goblin Cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Coal_truck_mining_site\" class=\"mw-redirect\" title=\"Coal truck mining site\" target=\"_blank\">Coal truck mining site<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Observatory\" title=\"Observatory\" target=\"_blank\">Observatory<\/a>",
+ "<a href=\"https://runescape.wiki/w/Gunnarsgrunn\" class=\"mw-redirect\" title=\"Gunnarsgrunn\" target=\"_blank\">Gunnarsgrunn<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Gorak#God Wars Dungeon",
+ "weakness": [],
+ "creatures": ["Gorak"],
+ "hidden-creatures": [],
+ "index": "Goraks",
+ "alias": ["Gorak"],
+ "equipment": [],
+ "masters": ["Duradel"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fairy_ring\" class=\"mw-redirect\" title=\"Fairy ring\" target=\"_blank\">Fairy ring<\/a>",
+ "<span class=\"fairycode\" style=\"word-break:keep-all\" target=\"_blank\" href=\"https://runescape.wiki\"><b>D<\/b><b>I<\/b><b>R<\/b><\/span>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Greater demon ash lord#Wilderness",
+ "weakness": [],
+ "creatures": [
+ "Greater demon ash lord",
+ "Greater demon berserker"
+ ],
+ "hidden-creatures": [],
+ "index": "Greater demon berserkers and ash lords",
+ "alias": [
+ "Greater demon ash lords",
+ "Greater demon berserkers"
+ ],
+ "equipment": [],
+ "masters": ["Mandrith"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/The_Zamorakian_Undercity\" title=\"The Zamorakian Undercity\" target=\"_blank\">The Zamorakian Undercity<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "K'ril Tsutsaroth#Normal",
+ "weakness": [],
+ "creatures": [
+ "Butcher demon",
+ "Champion of Infernus",
+ "Chaos Demon",
+ "Chaos Demon Savage",
+ "Denizen of Infernus",
+ "Greater demon",
+ "Greater demon (elite)",
+ "Greater demon ash lord",
+ "Greater demon berserker",
+ "Greater demon brute",
+ "Greater demon pyromancer",
+ "Greater demon sage",
+ "Greater demon savage",
+ "K'ril Tsutsaroth",
+ "Kor'Vath the Blightbringer",
+ "La'Kalor the Unbroken",
+ "Shara'Kor the Widowmaker",
+ "Tstanon Karlak"
+ ],
+ "hidden-creatures": [
+ "Butcher demon",
+ "Champion of Infernus",
+ "Greater demon (elite)"
+ ],
+ "index": "Greater demons",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Entrana_Dungeon\" title=\"Entrana Dungeon\" target=\"_blank\">Entrana Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ogre_Enclave\" title=\"Ogre Enclave\" target=\"_blank\">Ogre Enclave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Demonic_ruins\" class=\"mw-redirect\" title=\"Demonic ruins\" target=\"_blank\">Demonic ruins<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness_Crater\" title=\"Wilderness Crater\" target=\"_blank\">Wilderness Crater<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lava_Maze_Dungeon\" title=\"Lava Maze Dungeon\" target=\"_blank\">Lava Maze Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Green dragon#1",
+ "weakness": [],
+ "creatures": [
+ "Brutal green dragon",
+ "Green dragon"
+ ],
+ "hidden-creatures": [],
+ "index": "Green dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "The Raptor",
+ "Mazchna",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Chaos_tunnels\" class=\"mw-redirect\" title=\"Chaos tunnels\" target=\"_blank\">Chaos tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Clan_Wars\" title=\"Clan Wars\" target=\"_blank\">Clan Wars<\/a>",
+ "<a href=\"https://runescape.wiki/w/Goblin_Village\" title=\"Goblin Village\" target=\"_blank\">Goblin Village<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Grifolapine#Normal",
+ "weakness": [],
+ "creatures": ["Grifolapine"],
+ "hidden-creatures": [],
+ "index": "Grifolapines",
+ "alias": [],
+ "equipment": [
+ "<span class=\"pic-link inventory-image\" target=\"_blank\" href=\"https://runescape.wiki\"><span class=\"mw-default-size\" typeof=\"mw:File\"><a href=\"/w/Neem_oil\" title=\"Neem oil\"><img alt=\"Neem oil.png: RS3 Inventory image of Neem oil\" src=\"/images/Neem_oil.png?f5dec\" decoding=\"async\" loading=\"lazy\" width=\"27\" height=\"29\" class=\"mw-file-element\" data-file-width=\"27\" data-file-height=\"29\"><\/a><\/span><\/span>",
+ "<a href=\"https://runescape.wiki/w/Neem_oil\" title=\"Neem oil\" target=\"_blank\">Neem oil<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Polypore_Dungeon\" title=\"Polypore Dungeon\" target=\"_blank\">Polypore Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Grifolaroo#Normal",
+ "weakness": [],
+ "creatures": ["Grifolaroo"],
+ "hidden-creatures": [],
+ "index": "Grifolaroos",
+ "alias": [],
+ "equipment": [
+ "<span class=\"pic-link inventory-image\" target=\"_blank\" href=\"https://runescape.wiki\"><span class=\"mw-default-size\" typeof=\"mw:File\"><a href=\"/w/Neem_oil\" title=\"Neem oil\"><img alt=\"Neem oil.png: RS3 Inventory image of Neem oil\" src=\"/images/Neem_oil.png?f5dec\" decoding=\"async\" loading=\"lazy\" width=\"27\" height=\"29\" class=\"mw-file-element\" data-file-width=\"27\" data-file-height=\"29\"><\/a><\/span><\/span>",
+ "<a href=\"https://runescape.wiki/w/Neem_oil\" title=\"Neem oil\" target=\"_blank\">Neem oil<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Polypore_Dungeon\" title=\"Polypore Dungeon\" target=\"_blank\">Polypore Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Mature grotworm#Default",
+ "weakness": [],
+ "creatures": [
+ "Giant worm",
+ "Grotworm",
+ "Mature grotworm",
+ "Young grotworm"
+ ],
+ "hidden-creatures": ["Giant worm"],
+ "index": "Grotworms",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Vannaka",
+ "The Raptor",
+ "Mazchna",
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Grotworm_Lair\" title=\"Grotworm Lair\" target=\"_blank\">Grotworm Lair<\/a>"]
+ },
+ {
+ "default-creature": "Harpie Bug Swarm#Default",
+ "weakness": [],
+ "creatures": [
+ "Harpie Bug Swarm",
+ "Harpie Bug Swarm (elite)"
+ ],
+ "hidden-creatures": ["Harpie Bug Swarm (elite)"],
+ "index": "Harpie bug swarms",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Bug_lantern\" class=\"mw-redirect\" title=\"Bug lantern\" target=\"_blank\">Bug lantern<\/a>"],
+ "masters": ["Chaeldar"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Karamja\" title=\"Karamja\" target=\"_blank\">Karamja<\/a>"]
+ },
+ {
+ "default-creature": "Hellhound#Normal",
+ "weakness": [],
+ "creatures": [
+ "Cerberus Juvenile",
+ "Hellhound",
+ "Hellhound (Heart of Gielinor)",
+ "Hellhound (The Zamorakian Undercity)",
+ "Hellhound (summoned)",
+ "Hellhound Alpha",
+ "Hellhound Hunter",
+ "Hellhound Hunter (summoned)",
+ "Revenant hellhound"
+ ],
+ "hidden-creatures": ["Hellhound (Heart of Gielinor)"],
+ "index": "Hellhounds",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Taverley_Dungeon\" title=\"Taverley Dungeon\" target=\"_blank\">Taverley Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Deserted_Keep\" title=\"Deserted Keep\" target=\"_blank\">Deserted Keep<\/a>",
+ "<a href=\"https://runescape.wiki/w/Witchaven_Shrine_Dungeon\" class=\"mw-redirect\" title=\"Witchaven Shrine Dungeon\" target=\"_blank\">Witchaven Shrine Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness_Crater\" title=\"Wilderness Crater\" target=\"_blank\">Wilderness Crater<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Hill Giant#Default",
+ "weakness": [],
+ "creatures": ["Hill Giant"],
+ "hidden-creatures": [],
+ "index": "Hill giants",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Deep_Wilderness_Dungeon\" title=\"Deep Wilderness Dungeon\" target=\"_blank\">Deep Wilderness Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Edgeville_Dungeon\" title=\"Edgeville Dungeon\" target=\"_blank\">Edgeville Dungeon<\/a>",
+ "<sup target=\"_blank\" href=\"https://runescape.wiki\">(<a href=\"/w/Edgeville_Dungeon_hill_giant_resource_dungeon\" title=\"Edgeville Dungeon hill giant resource dungeon\">resource dungeon<\/a>)<\/sup>",
+ "<a href=\"https://runescape.wiki/w/Gnome_Stronghold\" class=\"mw-redirect\" title=\"Gnome Stronghold\" target=\"_blank\">Gnome Stronghold<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lava_Maze\" title=\"Lava Maze\" target=\"_blank\">Lava Maze<\/a>",
+ "<a href=\"https://runescape.wiki/w/Observatory\" title=\"Observatory\" target=\"_blank\">Observatory<\/a>",
+ "<a href=\"https://runescape.wiki/w/Taverley_Dungeon\" title=\"Taverley Dungeon\" target=\"_blank\">Taverley Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Tree_Gnome_Village_(location)\" title=\"Tree Gnome Village (location)\" target=\"_blank\">Tree Gnome Village<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Hobgoblin#Level 15",
+ "weakness": [],
+ "creatures": [
+ "Hobgoblin",
+ "Hobgoblin (elite)"
+ ],
+ "hidden-creatures": ["Hobgoblin (elite)"],
+ "index": "Hobgoblins",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Asgarnian_Ice_Dungeon\" title=\"Asgarnian Ice Dungeon\" target=\"_blank\">Asgarnian Ice Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Crandor\" title=\"Crandor\" target=\"_blank\">Crandor<\/a>",
+ "<a href=\"https://runescape.wiki/w/Hobgoblin_Peninsula\" title=\"Hobgoblin Peninsula\" target=\"_blank\">Hobgoblin Peninsula<\/a>",
+ "<a href=\"https://runescape.wiki/w/Edgeville_Dungeon\" title=\"Edgeville Dungeon\" target=\"_blank\">Edgeville Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Rellekka\" title=\"Rellekka\" target=\"_blank\">Rellekka<\/a>",
+ "<a href=\"https://runescape.wiki/w/Waterbirth_Island\" title=\"Waterbirth Island\" target=\"_blank\">Waterbirth Island<\/a>",
+ "<a href=\"https://runescape.wiki/w/Hobgoblin_Mine\" class=\"mw-redirect\" title=\"Hobgoblin Mine\" target=\"_blank\">Hobgoblin Mine<\/a>",
+ "<a href=\"https://runescape.wiki/w/Witchaven_Dungeon\" title=\"Witchaven Dungeon\" target=\"_blank\">Witchaven Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Hydrix dragon#Default",
+ "weakness": [],
+ "creatures": ["Hydrix dragon"],
+ "hidden-creatures": [],
+ "index": "Hydrix dragons",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Super_anti-fire_potion\" class=\"mw-redirect\" title=\"Super anti-fire potion\" target=\"_blank\">Super anti-fire potion<\/a>"],
+ "masters": ["Mandrith"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Wilderness_(level_47)_Lava_Maze_mine\" title=\"Wilderness (level 47) Lava Maze mine\" target=\"_blank\">Wilderness (level 47) Lava Maze mine<\/a>",
+ "<a href=\"https://runescape.wiki/w/Deep_Wilderness_Dungeon\" title=\"Deep Wilderness Dungeon\" target=\"_blank\">Deep Wilderness Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Ice giant#Level 47 (1)",
+ "weakness": [],
+ "creatures": ["Ice giant"],
+ "hidden-creatures": [],
+ "index": "Ice giants",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Vannaka",
+ "Mazchna"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Asgarnian_Ice_Caves\" class=\"mw-redirect\" title=\"Asgarnian Ice Caves\" target=\"_blank\">Asgarnian Ice Caves<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Frozen_Waste_Plateau\" title=\"Frozen Waste Plateau\" target=\"_blank\">Frozen Waste Plateau<\/a>",
+ "<a href=\"https://runescape.wiki/w/White_Wolf_Mountain\" title=\"White Wolf Mountain\" target=\"_blank\">White Wolf Mountain<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Ice strykewyrm#Default",
+ "weakness": [],
+ "creatures": ["Ice strykewyrm"],
+ "hidden-creatures": [],
+ "index": "Ice strykewyrms",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Fire_cape\" title=\"Fire cape\" target=\"_blank\">Fire cape<\/a>"],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Ice_strykewyrm_cave\" title=\"Ice strykewyrm cave\" target=\"_blank\">Ice strykewyrm cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Frozen_Waste_Plateau\" title=\"Frozen Waste Plateau\" target=\"_blank\">Frozen Waste Plateau<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Ice warrior#Normal",
+ "weakness": [],
+ "creatures": [
+ "Ice warrior",
+ "Icelord"
+ ],
+ "hidden-creatures": ["Icelord"],
+ "index": "Ice warriors",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Vannaka",
+ "Mazchna"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/White_Wolf_Mountain\" title=\"White Wolf Mountain\" target=\"_blank\">White Wolf Mountain<\/a>",
+ "<a href=\"https://runescape.wiki/w/Frozen_Waste_Plateau\" title=\"Frozen Waste Plateau\" target=\"_blank\">Frozen Waste Plateau<\/a>",
+ "<a href=\"https://runescape.wiki/w/Asgarnian_Ice_Caves\" class=\"mw-redirect\" title=\"Asgarnian Ice Caves\" target=\"_blank\">Asgarnian Ice Caves<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Icefiend#God Wars Dungeon",
+ "weakness": [],
+ "creatures": [
+ "Icefiend",
+ "Icefiend (Ghorrock)",
+ "Revenant icefiend"
+ ],
+ "hidden-creatures": ["Icefiend (Ghorrock)"],
+ "index": "Icefiends",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Ice_mountain\" class=\"mw-redirect\" title=\"Ice mountain\" target=\"_blank\">Ice mountain<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghorrock\" title=\"Ghorrock\" target=\"_blank\">Ghorrock<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Infernal Mage#Default",
+ "weakness": [],
+ "creatures": [
+ "Infernal Mage",
+ "Infernal Mage (elite)"
+ ],
+ "hidden-creatures": ["Infernal Mage (elite)"],
+ "index": "Infernal mages",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Iron dragon#Default",
+ "weakness": [],
+ "creatures": ["Iron dragon"],
+ "hidden-creatures": [],
+ "index": "Iron dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghorrock\" title=\"Ghorrock\" target=\"_blank\">Ghorrock<\/a>",
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Jelly#Default",
+ "weakness": [],
+ "creatures": ["Jelly"],
+ "hidden-creatures": [],
+ "index": "Jellies",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Soul_Wars\" title=\"Soul Wars\" target=\"_blank\">Soul Wars<\/a>",
+ "<a href=\"https://runescape.wiki/w/Mahjarrat_Ritual_Site_Cavern\" class=\"mw-redirect\" title=\"Mahjarrat Ritual Site Cavern\" target=\"_blank\">Mahjarrat Ritual Site Cavern<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Jungle horror#Default",
+ "weakness": [],
+ "creatures": [
+ "Jungle horror",
+ "Quetzathog",
+ "Sea horror"
+ ],
+ "hidden-creatures": [
+ "Quetzathog",
+ "Sea horror"
+ ],
+ "index": "Jungle horrors",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Mos_Le%27Harmless\" title=\"Mos Le'Harmless\" target=\"_blank\">Mos Le'Harmless<\/a>"]
+ },
+ {
+ "default-creature": "Jungle strykewyrm#Default",
+ "weakness": [],
+ "creatures": ["Jungle strykewyrm"],
+ "hidden-creatures": [],
+ "index": "Jungle strykewyrms",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/South_Feldip_Hills\" title=\"South Feldip Hills\" target=\"_blank\">South Feldip Hills<\/a>"]
+ },
+ {
+ "default-creature": "Kal'gerion demon#Bloodchiller",
+ "weakness": [],
+ "creatures": [
+ "Kal'gerion demon",
+ "Kal'gerion demon (The Shadow Reef)",
+ "Yor'Ger the Deceiver"
+ ],
+ "hidden-creatures": [],
+ "index": "Kal'gerion demons",
+ "alias": ["Kal'gerion demon"],
+ "equipment": [],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Kal%27gerion_resource_dungeon\" title=\"Kal'gerion resource dungeon\" target=\"_blank\">Kal'gerion resource dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Demonic_Ruins\" title=\"Demonic Ruins\" target=\"_blank\">Demonic Ruins<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Corrupted kalphite guardian#Default",
+ "weakness": [],
+ "creatures": [
+ "Corrupted kalphite guardian",
+ "Corrupted kalphite marauder",
+ "Exiled Kalphite Queen",
+ "Exiled kalphite guardian",
+ "Exiled kalphite marauder",
+ "Exiled kalphite paragon",
+ "Exiled kalphite soldier",
+ "Exiled kalphite worker",
+ "Kalphite Guardian",
+ "Kalphite King",
+ "Kalphite Queen",
+ "Kalphite Soldier",
+ "Kalphite Worker"
+ ],
+ "hidden-creatures": [
+ "Exiled kalphite guardian",
+ "Exiled kalphite marauder",
+ "Exiled kalphite paragon"
+ ],
+ "index": "Kalphite",
+ "alias": ["Kalphites"],
+ "equipment": [],
+ "masters": [
+ "Vannaka",
+ "The Raptor",
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Kalphite_Lair\" class=\"mw-redirect\" title=\"Kalphite Lair\" target=\"_blank\">Kalphite Lair<\/a>",
+ "<a href=\"https://runescape.wiki/w/Exiled_Kalphite_Hive\" title=\"Exiled Kalphite Hive\" target=\"_blank\">Exiled Kalphite Hive<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Killerwatt#Default",
+ "weakness": [],
+ "creatures": ["Killerwatt"],
+ "hidden-creatures": [],
+ "index": "Killerwatts",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Insulated_boots\" title=\"Insulated boots\" target=\"_blank\">Insulated boots<\/a>"],
+ "masters": ["Mazchna"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Killerwatt_plane\" title=\"Killerwatt plane\" target=\"_blank\">Killerwatt plane<\/a>"]
+ },
+ {
+ "default-creature": "Kurask#Examine #1",
+ "weakness": [],
+ "creatures": ["Kurask"],
+ "hidden-creatures": [],
+ "index": "Kurask",
+ "alias": ["Kurasks"],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Leaf-bladed_sword\" title=\"Leaf-bladed sword\" target=\"_blank\">Leaf-bladed sword<\/a>",
+ "<a href=\"https://runescape.wiki/w/Leaf-bladed_spear\" title=\"Leaf-bladed spear\" target=\"_blank\">Leaf-bladed spear<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_Dart\" title=\"Slayer Dart\" target=\"_blank\">Slayer Dart<\/a>",
+ "<a href=\"https://runescape.wiki/w/Broad_arrows\" class=\"mw-redirect\" title=\"Broad arrows\" target=\"_blank\">Broad arrows<\/a>",
+ "<a href=\"https://runescape.wiki/w/Broad-tipped_bolts\" title=\"Broad-tipped bolts\" target=\"_blank\">Broad-tipped bolts<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Sumona"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Pollnivneach_Slayer_Dungeon\" title=\"Pollnivneach Slayer Dungeon\" target=\"_blank\">Pollnivneach Slayer Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Lava strykewyrm#Default",
+ "weakness": [],
+ "creatures": [
+ "Engorged lava strykewyrm",
+ "Lava strykewyrm",
+ "Lava strykewyrm (Dragonkin Laboratory)",
+ "WildyWyrm (2015, historical)"
+ ],
+ "hidden-creatures": [
+ "Engorged lava strykewyrm",
+ "Lava strykewyrm (Dragonkin Laboratory)"
+ ],
+ "index": "Lava strykewyrms",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"]
+ },
+ {
+ "default-creature": "Lesser demon#1",
+ "weakness": [],
+ "creatures": [
+ "Lesser demon",
+ "Lesser demon (Wizards' Tower)",
+ "Zakl'n Gritch"
+ ],
+ "hidden-creatures": [],
+ "index": "Lesser demons",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Mazchna",
+ "Chaeldar",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Wizards%27_Tower\" title=\"Wizards' Tower\" target=\"_blank\">Wizards' Tower<\/a>",
+ "<a href=\"https://runescape.wiki/w/Resource_dungeon\" class=\"mw-redirect\" title=\"Resource dungeon\" target=\"_blank\">Resource dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Karamja_Dungeon\" class=\"mw-redirect\" title=\"Karamja Dungeon\" target=\"_blank\">Karamja Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Crandor\" title=\"Crandor\" target=\"_blank\">Crandor<\/a>",
+ "<a href=\"https://runescape.wiki/w/Melzar%27s_Maze\" title=\"Melzar's Maze\" target=\"_blank\">Melzar's Maze<\/a>",
+ "<a href=\"https://runescape.wiki/w/Demonic_Ruins\" title=\"Demonic Ruins\" target=\"_blank\">Demonic Ruins<\/a>",
+ "<a href=\"https://runescape.wiki/w/Clan_Wars\" title=\"Clan Wars\" target=\"_blank\">Clan Wars<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lava_Maze\" title=\"Lava Maze\" target=\"_blank\">Lava Maze<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness_Crater\" title=\"Wilderness Crater\" target=\"_blank\">Wilderness Crater<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Living rock patriarch#Default",
+ "weakness": [],
+ "creatures": [
+ "Living rock patriarch",
+ "Living rock protector",
+ "Living rock striker"
+ ],
+ "hidden-creatures": [],
+ "index": "Living rock creatures",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Kuradal"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Living_rock_caverns\" class=\"mw-redirect\" title=\"Living rock caverns\" target=\"_blank\">Living rock caverns<\/a>"]
+ },
+ {
+ "default-creature": "Wyvern#Default",
+ "weakness": [],
+ "creatures": [
+ "Wyvern",
+ "Wyvern (elite)"
+ ],
+ "hidden-creatures": ["Wyvern (elite)"],
+ "index": "Living wyverns",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Wyrmfire_potion\" title=\"Wyrmfire potion\" target=\"_blank\">Wyrmfire potion<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Elemental_Workshop_equipment\" title=\"Elemental Workshop equipment\" target=\"_blank\">Elemental Workshop shield<\/a>"
+ ],
+ "masters": [
+ "The Raptor",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Asgarnian_Ice_Dungeon\" title=\"Asgarnian Ice Dungeon\" target=\"_blank\">Asgarnian Ice Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Frozen_Waste_Plateau\" title=\"Frozen Waste Plateau\" target=\"_blank\">Frozen Waste Plateau<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Minotaur#Level 12",
+ "weakness": [],
+ "creatures": ["Minotaur"],
+ "hidden-creatures": [],
+ "index": "Minotaurs",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Vannaka"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>"]
+ },
+ {
+ "default-creature": "Mithril dragon#Default",
+ "weakness": [],
+ "creatures": ["Mithril dragon"],
+ "hidden-creatures": [],
+ "index": "Mithril dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Ancient_Cavern\" title=\"Ancient Cavern\" target=\"_blank\">Ancient Cavern<\/a>"]
+ },
+ {
+ "default-creature": "Mogre#Default",
+ "weakness": [],
+ "creatures": ["Mogre"],
+ "hidden-creatures": [],
+ "index": "Mogres",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Super_fishing_explosive\" title=\"Super fishing explosive\" target=\"_blank\">Super<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fishing_explosive\" title=\"Fishing explosive\" target=\"_blank\">Fishing explosives<\/a>"
+ ],
+ "masters": ["Vannaka"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Mudskipper_Point\" title=\"Mudskipper Point\" target=\"_blank\">Mudskipper Point<\/a>"]
+ },
+ {
+ "default-creature": "Molanisk#Default",
+ "weakness": [],
+ "creatures": ["Molanisk"],
+ "hidden-creatures": [],
+ "index": "Molanisks",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Slayer_bell\" title=\"Slayer bell\" target=\"_blank\">Slayer bell<\/a>"],
+ "masters": ["Mazchna"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Dorgesh-Kaan_South_Dungeon\" title=\"Dorgesh-Kaan South Dungeon\" target=\"_blank\">Dorgesh-Kaan South Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Moss giant#Common (1)",
+ "weakness": [],
+ "creatures": ["Moss giant"],
+ "hidden-creatures": [],
+ "index": "Moss giants",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Vannaka",
+ "Mazchna"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Crandor_Isle\" class=\"mw-redirect\" title=\"Crandor Isle\" target=\"_blank\">Crandor Isle<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fishing_Guild\" title=\"Fishing Guild\" target=\"_blank\">Fishing Guild<\/a>",
+ "<a href=\"https://runescape.wiki/w/Moss_Giant_Island\" title=\"Moss Giant Island\" target=\"_blank\">Moss Giant Island<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>",
+ "<a href=\"https://runescape.wiki/w/Varrock_Sewers\" title=\"Varrock Sewers\" target=\"_blank\">Varrock Sewers<\/a>",
+ "<a href=\"https://runescape.wiki/w/Pirates%27_Cove\" title=\"Pirates' Cove\" target=\"_blank\">Pirates' Cove<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Glarial%27s_Tomb\" title=\"Glarial's Tomb\" target=\"_blank\">Glarial's Tomb<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Bladed muspah#Default",
+ "weakness": [],
+ "creatures": [
+ "Bladed muspah",
+ "Force muspah",
+ "Throwing muspah"
+ ],
+ "hidden-creatures": [],
+ "index": "Muspah",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Freneskae\" title=\"Freneskae\" target=\"_blank\">Freneskae<\/a>"]
+ },
+ {
+ "default-creature": "Mutated jadinko baby#Default",
+ "weakness": [],
+ "creatures": [
+ "Mutated jadinko baby",
+ "Mutated jadinko guard",
+ "Mutated jadinko male"
+ ],
+ "hidden-creatures": [],
+ "index": "Mutated jadinkos",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Jadinko_Lair\" title=\"Jadinko Lair\" target=\"_blank\">Jadinko Lair<\/a>"]
+ },
+ {
+ "default-creature": "Mutated zygomite#Level 58",
+ "weakness": [],
+ "creatures": ["Mutated zygomite"],
+ "hidden-creatures": [],
+ "index": "Mutated zygomites",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Fungicide_spray\" title=\"Fungicide spray\" target=\"_blank\">Fungicide spray<\/a>"],
+ "masters": ["Chaeldar"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Zanaris\" title=\"Zanaris\" target=\"_blank\">Zanaris<\/a>"]
+ },
+ {
+ "default-creature": "Nechryael#Default",
+ "weakness": [],
+ "creatures": [
+ "Nechryael",
+ "Nechryael (Heart of Gielinor)",
+ "Nechryael (elite)"
+ ],
+ "hidden-creatures": [
+ "Nechryael (Heart of Gielinor)",
+ "Nechryael (elite)"
+ ],
+ "index": "Nechryael",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Slayer_Tower\" title=\"Slayer Tower\" target=\"_blank\">Slayer Tower<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Nightmare#Default",
+ "weakness": [],
+ "creatures": ["Nightmare"],
+ "hidden-creatures": [],
+ "index": "Nightmare creatures",
+ "alias": ["Nightmare"],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Slayer_master\" class=\"mw-redirect\" title=\"Slayer master\" target=\"_blank\">Slayer master<\/a>"],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Freneskae#The_Ritual_Site\" title=\"Freneskae\" target=\"_blank\">Freneskae (Ritual Site)<\/a>"]
+ },
+ {
+ "default-creature": "Blood nihil#normal",
+ "weakness": [],
+ "creatures": [
+ "Blood nihil",
+ "Ice nihil",
+ "Shadow nihil",
+ "Smoke nihil"
+ ],
+ "hidden-creatures": [],
+ "index": "Nihil",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Freneskae#The_Pit\" title=\"Freneskae\" target=\"_blank\">Freneskae (the Pit)<\/a>"]
+ },
+ {
+ "default-creature": "Nodon guard#Default",
+ "weakness": [],
+ "creatures": [
+ "Kerapac, the bound",
+ "Nodon artificer",
+ "Nodon enforcer",
+ "Nodon engineer",
+ "Nodon guard",
+ "Nodon hunter",
+ "Siege engine"
+ ],
+ "hidden-creatures": [],
+ "index": "Nodon dragonkin",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Nodon_Front\" title=\"Nodon Front\" target=\"_blank\">Nodon Front<\/a>"]
+ },
+ {
+ "default-creature": "Enclave guard#Default",
+ "weakness": [],
+ "creatures": [
+ "Enclave guard",
+ "Mogre",
+ "Ogre",
+ "Ogre chieftain",
+ "Ogress",
+ "Ogress champion",
+ "Ogress warrior",
+ "Skogre",
+ "Zogre"
+ ],
+ "hidden-creatures": ["Skogre"],
+ "index": "Ogres",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Yanille\" title=\"Yanille\" target=\"_blank\">Yanille<\/a>",
+ "<a href=\"https://runescape.wiki/w/Castle_Wars\" title=\"Castle Wars\" target=\"_blank\">Castle Wars<\/a>",
+ "<a href=\"https://runescape.wiki/w/Gu%27Tanoth\" title=\"Gu'Tanoth\" target=\"_blank\">Gu'Tanoth<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Druid_Tower\" title=\"Chaos Druid Tower\" target=\"_blank\">Chaos Druid Tower<\/a>",
+ "<a href=\"https://runescape.wiki/w/Clock_Tower_Dungeon\" title=\"Clock Tower Dungeon\" target=\"_blank\">Clock Tower Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Witchaven_Dungeon\" title=\"Witchaven Dungeon\" target=\"_blank\">Witchaven Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Underground_Pass_(dungeon)\" title=\"Underground Pass (dungeon)\" target=\"_blank\">Underground Pass (dungeon)<\/a>",
+ "<a href=\"https://runescape.wiki/w/Combat_Training_Camp\" title=\"Combat Training Camp\" target=\"_blank\">Combat Training Camp<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Onyx dragon#Default",
+ "weakness": [],
+ "creatures": ["Onyx dragon"],
+ "hidden-creatures": [],
+ "index": "Onyx dragons",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Super_anti-fire_potion\" class=\"mw-redirect\" title=\"Super anti-fire potion\" target=\"_blank\">Super anti-fire potion<\/a>"],
+ "masters": ["Mandrith"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Gemstone_cavern\" title=\"Gemstone cavern\" target=\"_blank\">Gemstone cavern<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>",
+ "<a href=\"https://runescape.wiki/w/Deep_Wilderness_Dungeon\" title=\"Deep Wilderness Dungeon\" target=\"_blank\">Deep Wilderness Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Otherworldly being#Default",
+ "weakness": [],
+ "creatures": ["Otherworldly being"],
+ "hidden-creatures": [],
+ "index": "Otherworldly beings",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Zanaris\" title=\"Zanaris\" target=\"_blank\">Zanaris<\/a>"]
+ },
+ {
+ "default-creature": "Pyrefiend#Level 38",
+ "weakness": [],
+ "creatures": [
+ "Pyrefiend",
+ "Pyrefiend (The Zamorakian Undercity)",
+ "Pyrefiend (summoned)",
+ "Revenant pyrefiend",
+ "Seething Pyrefiend",
+ "Smoulders",
+ "Smoulders, the Revenger"
+ ],
+ "hidden-creatures": [],
+ "index": "Pyrefiends",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Smoke_Dungeon\" title=\"Smoke Dungeon\" target=\"_blank\">Smoke Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Warped rat#Default",
+ "weakness": [],
+ "creatures": [
+ "Angry giant rat",
+ "Brine rat",
+ "Crypt rat",
+ "Dungeon rat",
+ "Giant crypt rat",
+ "Giant rat",
+ "Rat",
+ "Warped rat"
+ ],
+ "hidden-creatures": [],
+ "index": "Rats",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Jacquelyn"],
+ "locations": []
+ },
+ {
+ "default-creature": "Red dragon#1",
+ "weakness": [],
+ "creatures": [
+ "Baby red dragon",
+ "Red dragon",
+ "Red dragon (Dragonkin Laboratory)",
+ "Sangri the Red"
+ ],
+ "hidden-creatures": [
+ "Red dragon (Dragonkin Laboratory)",
+ "Sangri the Red"
+ ],
+ "index": "Red dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "Sumona",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Red_Dragon_Isle\" title=\"Red Dragon Isle\" target=\"_blank\">Red Dragon Isle<\/a>",
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Revenant cyclops#Default",
+ "weakness": [],
+ "creatures": [
+ "Revenant cyclops",
+ "Revenant dark beast",
+ "Revenant demon",
+ "Revenant dragon",
+ "Revenant goblin",
+ "Revenant hellhound",
+ "Revenant hobgoblin",
+ "Revenant icefiend",
+ "Revenant imp",
+ "Revenant knight",
+ "Revenant ork",
+ "Revenant pyrefiend",
+ "Revenant vampyre",
+ "Revenant werewolf"
+ ],
+ "hidden-creatures": [],
+ "index": "Revenants",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mandrith"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Forinthry_Dungeon\" title=\"Forinthry Dungeon\" target=\"_blank\">Forinthry Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Ripper Demon#Default",
+ "weakness": [],
+ "creatures": [
+ "Ripper Demon",
+ "Slasher Demon"
+ ],
+ "hidden-creatures": ["Slasher Demon"],
+ "index": "Ripper demons",
+ "alias": ["Ripper Demon"],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Kuradal",
+ "Morvran",
+ "Laniakea",
+ "Mandrith"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Ripper_Demon_cave\" title=\"Ripper Demon cave\" target=\"_blank\">Ripper Demon cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Risen ghost#Default",
+ "weakness": [],
+ "creatures": ["Risen ghost"],
+ "hidden-creatures": [],
+ "index": "Risen ghosts",
+ "alias": ["Risen ghost"],
+ "equipment": [],
+ "masters": ["The Raptor"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Crypt_(Wilderness)\" title=\"Crypt (Wilderness)\" target=\"_blank\">Crypt (Wilderness)<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fort_Forinthry\" title=\"Fort Forinthry\" target=\"_blank\">Fort Forinthry<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Rock slug#Default",
+ "weakness": [],
+ "creatures": ["Rock slug"],
+ "hidden-creatures": [],
+ "index": "Rockslugs",
+ "alias": ["Rock slugs"],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Bag_of_salt\" title=\"Bag of salt\" target=\"_blank\">Bag of salt<\/a>"],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Swamp_Caves\" title=\"Lumbridge Swamp Caves\" target=\"_blank\">Lumbridge Swamp Caves<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dorgesh-Kaan_South_Dungeon\" title=\"Dorgesh-Kaan South Dungeon\" target=\"_blank\">Dorgesh-Kaan South Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Rune dragon#Armoured",
+ "weakness": [],
+ "creatures": [
+ "Elite rune dragon",
+ "Rune dragon"
+ ],
+ "hidden-creatures": ["Elite rune dragon"],
+ "index": "Rune dragons",
+ "alias": ["Rune dragon"],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Super_antifire\" title=\"Super antifire\" target=\"_blank\">Super antifire<\/a>"],
+ "masters": [
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Mount_Firewake\" title=\"Mount Firewake\" target=\"_blank\">Mount Firewake<\/a>"]
+ },
+ {
+ "default-creature": "Scarab akh#Default",
+ "weakness": [],
+ "creatures": [
+ "Corrupted scarab",
+ "Locust lancer",
+ "Locust ranger",
+ "Locust rider",
+ "Scabaras lancer",
+ "Scabaras mage",
+ "Scabaras ranger",
+ "Scarab akh",
+ "Scarab mage",
+ "Small scarab"
+ ],
+ "hidden-creatures": [],
+ "index": "Scabarites",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Sumona",
+ "Duradel"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Sophanem\" title=\"Sophanem\" target=\"_blank\">Sophanem<\/a>",
+ "<a href=\"https://runescape.wiki/w/Agility_pyramid\" class=\"mw-redirect\" title=\"Agility pyramid\" target=\"_blank\">Agility pyramid<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dealing_with_Scabaras\" title=\"Dealing with Scabaras\" target=\"_blank\">Dealing with Scabaras<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Corrupted scorpion#Default",
+ "weakness": [],
+ "creatures": [
+ "Corrupted scorpion",
+ "Grave scorpion",
+ "King Scorpion",
+ "Pit Scorpion",
+ "Poison Scorpion",
+ "Scorpion",
+ "Scorpion (Ape Atoll)"
+ ],
+ "hidden-creatures": [
+ "Grave scorpion",
+ "King Scorpion",
+ "Pit Scorpion",
+ "Poison Scorpion",
+ "Scorpion (Ape Atoll)"
+ ],
+ "index": "Scorpions",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Vannaka",
+ "Sumona"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Al_Kharid_mining_site\" class=\"mw-redirect\" title=\"Al Kharid mining site\" target=\"_blank\">Al Kharid mining site<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dwarven_mines\" title=\"Dwarven mines\" target=\"_blank\">Dwarven mines<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ardougne_Zoo\" title=\"Ardougne Zoo\" target=\"_blank\">Ardougne Zoo<\/a>",
+ "<a href=\"https://runescape.wiki/w/Scorpion_Pit\" title=\"Scorpion Pit\" target=\"_blank\">Scorpion Pit<\/a>",
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Varrock_Sewers\" title=\"Varrock Sewers\" target=\"_blank\">Varrock Sewers<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>",
+ "<a href=\"https://runescape.wiki/w/Karamja_Volcano\" title=\"Karamja Volcano\" target=\"_blank\">Karamja Volcano<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Sea Snake Hatchling#Default",
+ "weakness": [],
+ "creatures": [
+ "Sea Snake Hatchling",
+ "Sea Snake Young"
+ ],
+ "hidden-creatures": [],
+ "index": "Sea snakes",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Miscellania_%26_Etceteria_Dungeon\" class=\"mw-redirect\" title=\"Miscellania & Etceteria Dungeon\" target=\"_blank\">Miscellania & Etceteria Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Shade#Default",
+ "weakness": [],
+ "creatures": ["Shade"],
+ "hidden-creatures": [],
+ "index": "Shades",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Mort%27ton\" title=\"Mort'ton\" target=\"_blank\">Mort'ton<\/a>",
+ "<a href=\"https://runescape.wiki/w/Shade_Catacombs\" title=\"Shade Catacombs\" target=\"_blank\">Shade Catacombs<\/a>",
+ "<a href=\"https://runescape.wiki/w/Temple_Trekking\" title=\"Temple Trekking\" target=\"_blank\">Temple Trekking<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Manifest shadow#Default",
+ "weakness": [],
+ "creatures": [
+ "Blissful shadow",
+ "Manifest shadow",
+ "Shadow (Temple of Light)",
+ "Truthful shadow"
+ ],
+ "hidden-creatures": [],
+ "index": "Shadow creatures",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Temple_of_Light\" title=\"Temple of Light\" target=\"_blank\">Temple of Light<\/a>",
+ "<a href=\"https://runescape.wiki/w/Prifddinas\" title=\"Prifddinas\" target=\"_blank\">Prifddinas<\/a>",
+ "<a href=\"https://runescape.wiki/w/Amlodd_Clan\" title=\"Amlodd Clan\" target=\"_blank\">Amlodd Clan<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Shadow warrior#Default",
+ "weakness": [],
+ "creatures": ["Shadow warrior"],
+ "hidden-creatures": [],
+ "index": "Shadow warriors",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Mazchna",
+ "Chaeldar"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Legends%27_Guild\" title=\"Legends' Guild\" target=\"_blank\">Legends' Guild<\/a>"]
+ },
+ {
+ "default-creature": "Skeletal Wyvern#1",
+ "weakness": [],
+ "creatures": ["Skeletal Wyvern"],
+ "hidden-creatures": [],
+ "index": "Skeletal wyverns",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Wyrmfire_potion\" title=\"Wyrmfire potion\" target=\"_blank\">Wyrmfire potion<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Elemental_Workshop_equipment\" title=\"Elemental Workshop equipment\" target=\"_blank\">Elemental Workshop shield<\/a>"
+ ],
+ "masters": [
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Asgarnian_Ice_Dungeon\" title=\"Asgarnian Ice Dungeon\" target=\"_blank\">Asgarnian Ice Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Skeleton (Lumbridge Catacombs)#Default",
+ "weakness": [],
+ "creatures": [
+ "Ankou",
+ "Ankou (elite)",
+ "Baby Dinosaur Skeleton",
+ "Bossy McBossFace's First mate",
+ "Bound skeleton",
+ "Giant skeleton (Shadow Dungeon)",
+ "Giant skeleton (Tarn's Lair)",
+ "Huge skeleton",
+ "Osseous",
+ "Skeletal Wyvern",
+ "Skeletal hand",
+ "Skeletal miner",
+ "Skeletal shielder",
+ "Skeleton",
+ "Skeleton (Ape Atoll)",
+ "Skeleton (Barrows)",
+ "Skeleton (Dark Warriors' Fortress)",
+ "Skeleton (Heart of Gielinor)",
+ "Skeleton (Lumbridge Catacombs)",
+ "Skeleton (Tarn's Lair)",
+ "Skeleton (Temple Trekking)",
+ "Skeleton (Ullek)",
+ "Skeleton (Uncharted Isles)",
+ "Skeleton Archer",
+ "Skeleton Mage",
+ "Skeleton archer (Ancient Awakening)",
+ "Skeleton brute",
+ "Skeleton fremennik",
+ "Skeleton heavy",
+ "Skeleton hero",
+ "Skeleton knight",
+ "Skeleton ranger (Ancient Awakening)",
+ "Skeleton thug",
+ "Skeleton warlord",
+ "Skeleton warrior (Ancient Awakening)",
+ "Skeleton warrior (Rasial)",
+ "Skoblin",
+ "Skogre",
+ "Summoned skeleton",
+ "Summoned skeleton archer",
+ "Training dummy",
+ "Undead one",
+ "Warped skeleton"
+ ],
+ "hidden-creatures": [
+ "Skeletal miner",
+ "Skeleton (Tarn's Lair)",
+ "Skeleton (Temple Trekking)",
+ "Skeleton fremennik",
+ "Undead one"
+ ],
+ "index": "Skeletons",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Jacquelyn",
+ "Vannaka",
+ "The Raptor"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Catacombs\" title=\"Lumbridge Catacombs\" target=\"_blank\">Lumbridge Catacombs<\/a>",
+ "<a href=\"https://runescape.wiki/w/Edgeville_Dungeon\" title=\"Edgeville Dungeon\" target=\"_blank\">Edgeville Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Digsite_Dungeon\" class=\"mw-redirect\" title=\"Digsite Dungeon\" target=\"_blank\">Digsite Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Draynor_Sewers\" title=\"Draynor Sewers\" target=\"_blank\">Draynor Sewers<\/a>",
+ "<a href=\"https://runescape.wiki/w/Karamja_Volcano\" title=\"Karamja Volcano\" target=\"_blank\">Karamja Volcano<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ogre_Enclave\" title=\"Ogre Enclave\" target=\"_blank\">Ogre Enclave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Steel_Mine\" class=\"mw-redirect\" title=\"Steel Mine\" target=\"_blank\">Steel Mine<\/a>",
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Taverley_Dungeon\" title=\"Taverley Dungeon\" target=\"_blank\">Taverley Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Temple_of_Ikov_(dungeon)\" title=\"Temple of Ikov (dungeon)\" target=\"_blank\">Temple of Ikov<\/a>",
+ "<a href=\"https://runescape.wiki/w/Varrock_Sewers\" title=\"Varrock Sewers\" target=\"_blank\">Varrock Sewers<\/a>",
+ "<a href=\"https://runescape.wiki/w/Waterfall_Dungeon\" title=\"Waterfall Dungeon\" target=\"_blank\">Waterfall Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Barrows\" title=\"Barrows\" target=\"_blank\">Barrows<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ruins_of_Ullek\" class=\"mw-redirect\" title=\"Ruins of Ullek\" target=\"_blank\">Ruins of Ullek<\/a>",
+ "<a href=\"https://runescape.wiki/w/Melzar%27s_Maze\" title=\"Melzar's Maze\" target=\"_blank\">Melzar's Maze<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness_Crater\" title=\"Wilderness Crater\" target=\"_blank\">Wilderness Crater<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ape_Atoll_Dungeon\" title=\"Ape Atoll Dungeon\" target=\"_blank\">Ape Atoll Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Senntisten_Temple\" title=\"Senntisten Temple\" target=\"_blank\">Senntisten Temple<\/a>",
+ "<a href=\"https://runescape.wiki/w/Underground_Pass_(dungeon)\" title=\"Underground Pass (dungeon)\" target=\"_blank\">Underground Pass (dungeon)<\/a>",
+ "<a href=\"https://runescape.wiki/w/Crypt_(Wilderness)\" title=\"Crypt (Wilderness)\" target=\"_blank\">crypt<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fort_Forinthry\" title=\"Fort Forinthry\" target=\"_blank\">Fort Forinthry<\/a>"
+ ]
+ },
+ {
+ "default-creature": "The Magister#Default",
+ "weakness": [],
+ "creatures": [
+ "Crocodile akh",
+ "Feline akh",
+ "Gorilla akh",
+ "Imperial mage akh",
+ "Imperial ranger akh",
+ "Imperial warrior akh",
+ "Oreb, the Magister",
+ "Salawa akh",
+ "Scarab akh",
+ "The Magister"
+ ],
+ "hidden-creatures": ["Oreb, the Magister"],
+ "index": "Soul devourers",
+ "alias": [
+ "Crocodile akh",
+ "Feline akh",
+ "Gorilla akh",
+ "Imperial guard akh",
+ "Salawa akh",
+ "Scarab akh",
+ "Soul devourer"
+ ],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Feather_of_Ma%27at\" title=\"Feather of Ma'at\" target=\"_blank\">Feather of Ma'at<\/a>"],
+ "masters": [
+ "Sumona",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Sophanem_Slayer_Dungeon\" title=\"Sophanem Slayer Dungeon\" target=\"_blank\">Sophanem Slayer Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Soulgazer#Default",
+ "weakness": [],
+ "creatures": [
+ "Soulgazer",
+ "Soulgazer (elite)"
+ ],
+ "hidden-creatures": ["Soulgazer (elite)"],
+ "index": "Soulgazers",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mandrith"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Stalker_Dungeon\" class=\"mw-redirect\" title=\"Stalker Dungeon\" target=\"_blank\">Stalker Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Deadly red spider#Default",
+ "weakness": [],
+ "creatures": [
+ "Corpse spider",
+ "Crypt spider",
+ "Deadly red spider",
+ "Fever spider",
+ "Giant crypt spider",
+ "Giant spider",
+ "Ice spider",
+ "Jungle spider",
+ "Lava spider",
+ "Poison spider",
+ "Shadow spider",
+ "Spider",
+ "Spyndra"
+ ],
+ "hidden-creatures": [],
+ "index": "Spiders",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Jacquelyn",
+ "Vannaka"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Melzar%27s_Maze\" title=\"Melzar's Maze\" target=\"_blank\">Melzar's Maze<\/a>",
+ "<a href=\"https://runescape.wiki/w/Sorceress\" title=\"Sorceress\" target=\"_blank\">Sorceress<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lumbridge_Castle\" title=\"Lumbridge Castle\" target=\"_blank\">Lumbridge Castle<\/a>",
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ape_Atoll\" title=\"Ape Atoll\" target=\"_blank\">Ape Atoll<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ogre_Enclave\" title=\"Ogre Enclave\" target=\"_blank\">Ogre Enclave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>",
+ "<a href=\"https://runescape.wiki/w/Karamja\" title=\"Karamja\" target=\"_blank\">Karamja<\/a>",
+ "<a href=\"https://runescape.wiki/w/Underground_Pass_(dungeon)\" title=\"Underground Pass (dungeon)\" target=\"_blank\">Underground Pass<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Spiritual mage#Armadyl",
+ "weakness": [],
+ "creatures": ["Spiritual mage"],
+ "hidden-creatures": [],
+ "index": "Spiritual mages",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Sumona",
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Spiritual warrior#Armadyl",
+ "weakness": [],
+ "creatures": ["Spiritual warrior"],
+ "hidden-creatures": [],
+ "index": "Spiritual warriors",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Sumona"],
+ "locations": ["<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Veil-ripper Ozharakha#Default",
+ "weakness": [],
+ "creatures": [
+ "Seeker",
+ "Soulgazer",
+ "Soulgazer (elite)",
+ "Veil-ripper Ozharakha"
+ ],
+ "hidden-creatures": ["Soulgazer (elite)"],
+ "index": "Stalker creatures",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Stalker_dungeon\" title=\"Stalker dungeon\" target=\"_blank\">Stalker dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Steel dragon#Default",
+ "weakness": [],
+ "creatures": ["Steel dragon"],
+ "hidden-creatures": [],
+ "index": "Steel dragons",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Anti-dragon_shield\" title=\"Anti-dragon shield\" target=\"_blank\">Anti-dragon shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragonfire_shield\" title=\"Dragonfire shield\" target=\"_blank\">Dragonfire shield<\/a>",
+ "<a href=\"https://runescape.wiki/w/Antifire_potion\" class=\"mw-redirect\" title=\"Antifire potion\" target=\"_blank\">Antifire potion<\/a>"
+ ],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Kuradal%27s_Dungeon\" title=\"Kuradal's Dungeon\" target=\"_blank\">Kuradal's Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Brimhaven_Dungeon\" title=\"Brimhaven Dungeon\" target=\"_blank\">Brimhaven Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghorrock\" title=\"Ghorrock\" target=\"_blank\">Ghorrock<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Desert strykewyrm#Default",
+ "weakness": [],
+ "creatures": [
+ "Desert strykewyrm",
+ "Ice strykewyrm",
+ "Jungle strykewyrm",
+ "Lava strykewyrm",
+ "Lava strykewyrm (Dragonkin Laboratory)",
+ "WildyWyrm (2015, historical)"
+ ],
+ "hidden-creatures": ["WildyWyrm (2015, historical)"],
+ "index": "Strykewyrms",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Laniakea"],
+ "locations": []
+ },
+ {
+ "default-creature": "Suqah#Level 73 (Dual wielding swords)",
+ "weakness": [],
+ "creatures": ["Suqah"],
+ "hidden-creatures": [],
+ "index": "Suqahs",
+ "alias": ["Suqah"],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Seal_of_passage\" title=\"Seal of passage\" target=\"_blank\">Seal of passage<\/a>",
+ "<a href=\"https://runescape.wiki/w/Moon_Clan\" title=\"Moon Clan\" target=\"_blank\">Moon Clan<\/a>"
+ ],
+ "masters": [
+ "Duradel",
+ "Kuradal"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Lunar_Isle\" title=\"Lunar Isle\" target=\"_blank\">Lunar Isle<\/a>"]
+ },
+ {
+ "default-creature": "Terror dog#Level 61",
+ "weakness": [],
+ "creatures": ["Terror dog"],
+ "hidden-creatures": [],
+ "index": "Terror dogs",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Sumona",
+ "Kuradal"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Tarn%27s_Lair\" class=\"mw-redirect\" title=\"Tarn's Lair\" target=\"_blank\">Tarn's Lair<\/a>"]
+ },
+ {
+ "default-creature": "Tormented demon#Standard",
+ "weakness": [],
+ "creatures": ["Tormented demon"],
+ "hidden-creatures": [],
+ "index": "Tormented demons",
+ "alias": ["Tormented demon"],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Slayer_master\" class=\"mw-redirect\" title=\"Slayer master\" target=\"_blank\">Slayer master<\/a>"],
+ "masters": [
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Ancient_Guthix_Temple\" class=\"mw-redirect\" title=\"Ancient Guthix Temple\" target=\"_blank\">Ancient Guthix Temple<\/a>"]
+ },
+ {
+ "default-creature": "Ice troll runt#Default",
+ "weakness": [],
+ "creatures": [
+ "Ghostly troll bruiser",
+ "Ghostly troll thrower",
+ "Ice troll",
+ "Ice troll female",
+ "Ice troll grunt",
+ "Ice troll male",
+ "Ice troll runt",
+ "Kraka",
+ "Mountain troll",
+ "Mountain troll (well)",
+ "Pee Hat",
+ "River troll",
+ "Rock (monster)",
+ "Stick",
+ "Stove",
+ "Thrower Troll",
+ "Troll brute",
+ "Troll brute (Davendale)",
+ "Troll chucker",
+ "Troll chucker (Davendale)",
+ "Troll general",
+ "Troll lout",
+ "Troll shaman",
+ "Troll shaman (Davendale)",
+ "Troll spectator",
+ "Undead troll"
+ ],
+ "hidden-creatures": [
+ "Mountain troll (well)",
+ "Stove",
+ "Troll brute (Davendale)"
+ ],
+ "index": "Trolls",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Turael",
+ "Chaeldar",
+ "Sumona"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Mountain_troll\" title=\"Mountain troll\" target=\"_blank\">Mountain trolls<\/a>",
+ "<a href=\"https://runescape.wiki/w/Trollheim\" title=\"Trollheim\" target=\"_blank\">Trollheim<\/a>",
+ "<a href=\"https://runescape.wiki/w/Keldagrim\" title=\"Keldagrim\" target=\"_blank\">Keldagrim<\/a>",
+ "<a href=\"https://runescape.wiki/w/Death_Plateau\" title=\"Death Plateau\" target=\"_blank\">Death Plateau<\/a>",
+ "<a href=\"https://runescape.wiki/w/Burthorpe_Troll_Cave\" title=\"Burthorpe Troll Cave\" target=\"_blank\">Burthorpe Troll Cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Troll_cave\" title=\"Troll cave\" target=\"_blank\">Troll cave<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ice_troll\" title=\"Ice troll\" target=\"_blank\">Ice trolls<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fremennik_Isles\" title=\"Fremennik Isles\" target=\"_blank\">Fremennik Isles<\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_troll\" title=\"Undead troll\" target=\"_blank\">Undead trolls<\/a>",
+ "<a href=\"https://runescape.wiki/w/Lucien%27s_camp\" title=\"Lucien's camp\" target=\"_blank\">Lucien's camp<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Turoth#60 - Large",
+ "weakness": [],
+ "creatures": ["Turoth"],
+ "hidden-creatures": [],
+ "index": "Turoth",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Leaf-bladed_sword\" title=\"Leaf-bladed sword\" target=\"_blank\">Leaf-bladed sword<\/a>",
+ "<a href=\"https://runescape.wiki/w/Leaf-bladed_spear\" title=\"Leaf-bladed spear\" target=\"_blank\">Leaf-bladed spear<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_Dart\" title=\"Slayer Dart\" target=\"_blank\">Slayer Dart<\/a>",
+ "<a href=\"https://runescape.wiki/w/Broad_arrows\" class=\"mw-redirect\" title=\"Broad arrows\" target=\"_blank\">Broad arrows<\/a>",
+ "<a href=\"https://runescape.wiki/w/Broad-tipped_bolts\" title=\"Broad-tipped bolts\" target=\"_blank\">Broad-tipped bolts<\/a>"
+ ],
+ "masters": [
+ "Mazchna",
+ "Chaeldar",
+ "Sumona"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Fremennik_Slayer_Dungeon\" title=\"Fremennik Slayer Dungeon\" target=\"_blank\">Fremennik Slayer Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Pollnivneach_Slayer_Dungeon\" title=\"Pollnivneach Slayer Dungeon\" target=\"_blank\">Pollnivneach Slayer Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "TzHaar-Hur#Level 86",
+ "weakness": [],
+ "creatures": [
+ "TzHaar-Hur",
+ "TzHaar-Ket",
+ "TzHaar-Mej",
+ "TzHaar-Xil"
+ ],
+ "hidden-creatures": [],
+ "index": "TzHaar",
+ "alias": ["Volcanic creatures"],
+ "equipment": [],
+ "masters": [
+ "Kuradal",
+ "Morvran"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/TzHaar_city\" class=\"mw-redirect\" title=\"TzHaar city\" target=\"_blank\">TzHaar city<\/a>"]
+ },
+ {
+ "default-creature": "Ghost#1",
+ "weakness": [],
+ "creatures": [
+ "Aberrant spectre",
+ "Ahrim the Blighted",
+ "Akrisae the Doomed",
+ "Animated spade",
+ "Ankou",
+ "Ankou (elite)",
+ "Armoured phantom",
+ "Armoured zombie",
+ "Banshee",
+ "Bloated monstrosity",
+ "Bound skeleton",
+ "Corpse archer",
+ "Corpse carrier",
+ "Corpse mage",
+ "Corpse spider",
+ "Crawling corpse torso",
+ "Crawling hand",
+ "Dharok the Wretched",
+ "Dragith Nurn",
+ "Edimmu",
+ "Edimmu (elite)",
+ "Fetid zombie",
+ "General malpractitioner",
+ "Ghast",
+ "Ghost",
+ "Ghost (Abandoned Mine)",
+ "Ghost (Ourania Runecrafting Altar)",
+ "Ghost (Shattered Worlds)",
+ "Ghost (Spirit of Summer)",
+ "Ghost (Stronghold of Security)",
+ "Ghostly troll bruiser",
+ "Ghostly troll thrower",
+ "Graveside Phantom",
+ "Guthan the Infested",
+ "Karil the Tainted",
+ "Linza the Disgraced",
+ "Magic axe",
+ "Masuta the Descended",
+ "Mighty banshee",
+ "Monkey Zombie",
+ "Mummy (Jaldraocht Pyramid)",
+ "Mummy (Ullek)",
+ "Osseous",
+ "Phantom sorcerer",
+ "Phantom wizard",
+ "Possessed pickaxe",
+ "Possessed pickaxe (Lava Flow Mine)",
+ "Putrid zombie (Rasial)",
+ "Revenant cyclops",
+ "Revenant dark beast",
+ "Revenant demon",
+ "Revenant dragon",
+ "Revenant goblin",
+ "Revenant hellhound",
+ "Revenant hobgoblin",
+ "Revenant icefiend",
+ "Revenant imp",
+ "Revenant knight",
+ "Revenant ork",
+ "Revenant pyrefiend",
+ "Revenant vampyre",
+ "Revenant werewolf",
+ "Risen ghost",
+ "Shade",
+ "Shadow warrior",
+ "Skeletal Wyvern",
+ "Skeletal hand",
+ "Skeletal miner",
+ "Skeleton",
+ "Skeleton (Lumbridge Catacombs)",
+ "Skeleton (Tarn's Lair)",
+ "Skeleton Mage",
+ "Skeleton archer (Ancient Awakening)",
+ "Skeleton knight",
+ "Skeleton ranger (Ancient Awakening)",
+ "Skeleton warrior (Ancient Awakening)",
+ "Skeleton warrior (Rasial)",
+ "Skoblin",
+ "Skogre",
+ "Small scarab",
+ "Soulless armoured zombie",
+ "Soulless unarmoured zombie",
+ "Spiritual mage",
+ "Spiritual ranger",
+ "Spiritual warrior",
+ "Taraket the Necromancer",
+ "Torag the Corrupted",
+ "Tormented wraith",
+ "Training dummy",
+ "Undead chicken",
+ "Undead cow",
+ "Undead giant (Battle of Forinthry)",
+ "Undead one",
+ "Undead pekin",
+ "Undead troll",
+ "Unstable zombie",
+ "Verac the Defiled",
+ "Vorkath",
+ "Wight",
+ "Wight ranger",
+ "Wight ranger (Sliske's Endgame)",
+ "Zogre",
+ "Zombie",
+ "Zombie (New Varrock)",
+ "Zombie cow (New Varrock)",
+ "Zombie hand",
+ "Zombie knight",
+ "Zombie pirate",
+ "Zombie swab",
+ "Zombie warrior"
+ ],
+ "hidden-creatures": [
+ "Wight",
+ "Wight ranger",
+ "Wight ranger (Sliske's Endgame)"
+ ],
+ "index": "Undead",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "The Raptor",
+ "Laniakea"
+ ],
+ "locations": []
+ },
+ {
+ "default-creature": "Vampyre#Default",
+ "weakness": [],
+ "creatures": [
+ "Angry vampyre",
+ "Feral vampyre",
+ "Revenant vampyre",
+ "Vampyre",
+ "Vampyre Juvenile",
+ "Vampyre Juvinate"
+ ],
+ "hidden-creatures": ["Feral vampyre"],
+ "index": "Vampyres",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Haunted_Woods\" title=\"Haunted Woods\" target=\"_blank\">Haunted Woods<\/a>",
+ "<a href=\"https://runescape.wiki/w/Abandoned_Mine\" title=\"Abandoned Mine\" target=\"_blank\">Abandoned Mine<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Liverworts#Default",
+ "weakness": [],
+ "creatures": [
+ "Devil's snare",
+ "Lampenflora",
+ "Liverworts",
+ "Luminous snaggler"
+ ],
+ "hidden-creatures": [],
+ "index": "Vile blooms",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Laniakea"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Anachronia\" title=\"Anachronia\" target=\"_blank\">Anachronia<\/a>"]
+ },
+ {
+ "default-creature": "Vyrewatch#Level 70",
+ "weakness": [],
+ "creatures": [
+ "Vyrelady",
+ "Vyrelord",
+ "Vyrewatch"
+ ],
+ "hidden-creatures": [],
+ "index": "Vyrewatch",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Ivandis_flail\" title=\"Ivandis flail\" target=\"_blank\">Ivandis flail<\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood_polearm\" title=\"Blisterwood polearm\" target=\"_blank\">Blisterwood polearm<\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood_staff\" title=\"Blisterwood staff\" target=\"_blank\">Blisterwood staff<\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood_stake\" title=\"Blisterwood stake\" target=\"_blank\">Blisterwood stake<\/a>"
+ ],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Duradel",
+ "Kuradal",
+ "Morvran",
+ "Laniakea"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Darkmeyer\" title=\"Darkmeyer\" target=\"_blank\">Darkmeyer<\/a>",
+ "<a href=\"https://runescape.wiki/w/Burgh_de_Rott_Woods\" title=\"Burgh de Rott Woods\" target=\"_blank\">Burgh de Rott Woods<\/a>",
+ "<a href=\"https://runescape.wiki/w/Meiyerditch\" title=\"Meiyerditch\" target=\"_blank\">Meiyerditch<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Wall beast#Default",
+ "weakness": [],
+ "creatures": ["Wall beast"],
+ "hidden-creatures": [],
+ "index": "Wall beasts",
+ "alias": [],
+ "equipment": [
+ "<a href=\"https://runescape.wiki/w/Spiny_helmet\" title=\"Spiny helmet\" target=\"_blank\">Spiny helmet<\/a>",
+ "<a href=\"https://runescape.wiki/w/Spiked_helmet\" title=\"Spiked helmet\" target=\"_blank\">Spiked helmet<\/a>",
+ "<a href=\"https://runescape.wiki/w/Slayer_helmet\" title=\"Slayer helmet\" target=\"_blank\">Slayer helmet<\/a>"
+ ],
+ "masters": ["Vannaka"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Lumbridge_Swamp_Caves\" title=\"Lumbridge Swamp Caves\" target=\"_blank\">Lumbridge Swamp Caves<\/a>"]
+ },
+ {
+ "default-creature": "Warped terrorbird#1",
+ "weakness": [],
+ "creatures": ["Warped terrorbird"],
+ "hidden-creatures": [],
+ "index": "Warped terrorbirds",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Crystal_chime\" title=\"Crystal chime\" target=\"_blank\">Crystal chime<\/a>"],
+ "masters": ["Duradel"],
+ "locations": ["<a href=\"https://runescape.wiki/w/Poison_Waste_Slayer_Dungeon\" title=\"Poison Waste Slayer Dungeon\" target=\"_blank\">Poison Waste Slayer Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Warped tortoise#Vulnerable",
+ "weakness": [],
+ "creatures": ["Warped tortoise"],
+ "hidden-creatures": [],
+ "index": "Warped tortoises",
+ "alias": [],
+ "equipment": ["<a href=\"https://runescape.wiki/w/Crystal_chime\" title=\"Crystal chime\" target=\"_blank\">Crystal chime<\/a>"],
+ "masters": [
+ "Chaeldar",
+ "Sumona",
+ "Kuradal"
+ ],
+ "locations": ["<a href=\"https://runescape.wiki/w/Poison_Waste_Slayer_Dungeon\" title=\"Poison Waste Slayer Dungeon\" target=\"_blank\">Poison Waste Slayer Dungeon<\/a>"]
+ },
+ {
+ "default-creature": "Waterfiend#Default",
+ "weakness": [],
+ "creatures": [
+ "Maelstrom, Raging Waterfiend",
+ "Torrential Waterfiend",
+ "Torrential Waterfiend (summoned)",
+ "Waterfiend",
+ "Waterfiend (Ghorrock)",
+ "Waterfiend (Temple of Aminishi)",
+ "Waterfiend (The Zamorakian Undercity)",
+ "Waterfiend (elite)",
+ "Waterfiend (summoned)"
+ ],
+ "hidden-creatures": [
+ "Waterfiend (Ghorrock)",
+ "Waterfiend (Temple of Aminishi)",
+ "Waterfiend (elite)"
+ ],
+ "index": "Waterfiends",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Duradel",
+ "Kuradal",
+ "Morvran"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Ancient_Cavern\" title=\"Ancient Cavern\" target=\"_blank\">Ancient Cavern<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghorrock\" title=\"Ghorrock\" target=\"_blank\">Ghorrock<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Werewolf#Alexis",
+ "weakness": [],
+ "creatures": ["Werewolf"],
+ "hidden-creatures": [],
+ "index": "Werewolves",
+ "alias": [],
+ "equipment": [],
+ "masters": ["Mazchna"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Canifis\" title=\"Canifis\" target=\"_blank\">Canifis<\/a>",
+ "<a href=\"https://runescape.wiki/w/God_Wars_Dungeon\" title=\"God Wars Dungeon\" target=\"_blank\">God Wars Dungeon<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Adolescent White wolf#Default",
+ "weakness": [],
+ "creatures": [
+ "Adolescent White wolf",
+ "Big Wolf",
+ "Desert wolf",
+ "Dire Wolf",
+ "Fenris wolf",
+ "Fenris wolf (Sköll)",
+ "Ice wolf",
+ "Jungle Wolf",
+ "White wolf",
+ "Wolf"
+ ],
+ "hidden-creatures": [
+ "Fenris wolf",
+ "Fenris wolf (Sköll)"
+ ],
+ "index": "Wolves",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Turael",
+ "Vannaka"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/White_Wolf_Mountain\" title=\"White Wolf Mountain\" target=\"_blank\">White Wolf Mountain<\/a>",
+ "<a href=\"https://runescape.wiki/w/Feldip_Hills\" title=\"Feldip Hills\" target=\"_blank\">Feldip Hills<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Armoured phantom#1",
+ "weakness": [],
+ "creatures": [
+ "Armoured phantom",
+ "Bound skeleton",
+ "Fetid zombie",
+ "Risen ghost"
+ ],
+ "hidden-creatures": [],
+ "index": "Zemouregal's undead",
+ "alias": [],
+ "equipment": [],
+ "masters": ["The Raptor"],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Crypt_(Wilderness)\" title=\"Crypt (Wilderness)\" target=\"_blank\">Crypt<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wilderness\" title=\"Wilderness\" target=\"_blank\">Wilderness<\/a>",
+ "<a href=\"https://runescape.wiki/w/Fort_Forinthry\" title=\"Fort Forinthry\" target=\"_blank\">Fort Forinthry<\/a>"
+ ]
+ },
+ {
+ "default-creature": "Zombie#Level 29",
+ "weakness": [],
+ "creatures": [
+ "Armoured zombie",
+ "Armoured zombie (The Shadow Reef)",
+ "Armoured zombie (Uncharted Isles)",
+ "Bloated monstrosity",
+ "Bossy McBossFace",
+ "Corpse archer",
+ "Corpse carrier",
+ "Corpse mage",
+ "Corpse spider",
+ "Crawling corpse torso",
+ "Crawling hand",
+ "Dragith Nurn",
+ "Dried zombie",
+ "Edimmu",
+ "Edimmu (elite)",
+ "Empowering zombie",
+ "Fetid zombie",
+ "General malpractitioner",
+ "Monkey Zombie",
+ "Mummy (Jaldraocht Pyramid)",
+ "Mummy (Ullek)",
+ "Putrid zombie (Rasial)",
+ "Small scarab",
+ "Soulless armoured zombie",
+ "Soulless unarmoured zombie",
+ "Summoned Zombie",
+ "Summoned Zombie (The Shadow Reef)",
+ "Summoned armoured zombie",
+ "Ulthven Keith",
+ "Undead Witch",
+ "Undead chicken",
+ "Undead cow",
+ "Undead giant (Battle of Forinthry)",
+ "Undead one",
+ "Undead pekin",
+ "Undead troll",
+ "Unstable zombie",
+ "Zogre",
+ "Zombie",
+ "Zombie (Lair of Tarn Razorlor)",
+ "Zombie (New Varrock)",
+ "Zombie (Stronghold of Security)",
+ "Zombie (Temple Trekking)",
+ "Zombie (The Shadow Reef)",
+ "Zombie (Uncharted Isles)",
+ "Zombie (Wilderness)",
+ "Zombie (Zogre Flesh Eaters)",
+ "Zombie cow (New Varrock)",
+ "Zombie hand",
+ "Zombie knight",
+ "Zombie pirate",
+ "Zombie swab",
+ "Zombie warrior"
+ ],
+ "hidden-creatures": [
+ "Zombie (Zogre Flesh Eaters)",
+ "Zombie cow (New Varrock)"
+ ],
+ "index": "Zombies",
+ "alias": [],
+ "equipment": [],
+ "masters": [
+ "Jacquelyn",
+ "Vannaka",
+ "The Raptor"
+ ],
+ "locations": [
+ "<a href=\"https://runescape.wiki/w/Gnome_Village_Dungeon\" title=\"Gnome Village Dungeon\" target=\"_blank\">Gnome Village Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Entrana_Dungeon\" title=\"Entrana Dungeon\" target=\"_blank\">Entrana Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Edgeville_Dungeon\" title=\"Edgeville Dungeon\" target=\"_blank\">Edgeville Dungeon<\/a>",
+ "<a href=\"https://runescape.wiki/w/Chaos_Tunnels\" title=\"Chaos Tunnels\" target=\"_blank\">Chaos Tunnels<\/a>",
+ "<a href=\"https://runescape.wiki/w/Graveyard_of_Shadows\" title=\"Graveyard of Shadows\" target=\"_blank\">Graveyard of Shadows<\/a>",
+ "<a href=\"https://runescape.wiki/w/Stronghold_of_Security\" title=\"Stronghold of Security\" target=\"_blank\">Stronghold of Security<\/a>",
+ "<a href=\"https://runescape.wiki/w/Varrock_Sewers\" title=\"Varrock Sewers\" target=\"_blank\">Varrock Sewers<\/a>",
+ "<a href=\"https://runescape.wiki/w/Wizards%27_Guild\" title=\"Wizards' Guild\" target=\"_blank\">Wizards' Guild<\/a>",
+ "<a href=\"https://runescape.wiki/w/Draynor_Sewers\" title=\"Draynor Sewers\" target=\"_blank\">Draynor Sewers<\/a>",
+ "<a href=\"https://runescape.wiki/w/Tarn%27s_Lair\" class=\"mw-redirect\" title=\"Tarn's Lair\" target=\"_blank\">lair of Tarn Razorlor<\/a>"
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "name": "Aberrant spectre",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Aberrant spectre#Pollnivneach Slayer Dungeon.png\" decoding=\"async\" loading=\"lazy\" width=\"157\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "60",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Pollnivneach Slayer Dungeon",
+ "slayer-exp": 123.19999694824219,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "224",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Aberrant spectre#Slayer Tower.png\" decoding=\"async\" loading=\"lazy\" width=\"157\" height=\"300\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "60",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Slayer Tower",
+ "slayer-exp": 109.4000015258789,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "208",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Abyssal beast",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Abyssal beast#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"168\" id=\"image-?\">",
+ "level": "119",
+ "defence": "85",
+ "slayer-level": "105",
+ "experience": 1950,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Abyssal_bane_equipment\" title=\"Abyssal bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Abyssal_head.png\" decoding=\"async\" loading=\"lazy\" width=\"22\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 643.5,
+ "max-melee": "1415",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "1415",
+ "name": "Default",
+ "slayer-exp": 1448.4000244140625,
+ "lifepoints": "39000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Abyssal demon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Abyssal demon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"257\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "85",
+ "experience": 425,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Abyssal_bane_equipment\" title=\"Abyssal bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Abyssal_head.png\" decoding=\"async\" loading=\"lazy\" width=\"22\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 140.1999969482422,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 278,
+ "lifepoints": "8500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Abyssal demon (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Abyssal demon (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"254\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "70",
+ "slayer-level": "85",
+ "experience": 1700,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Abyssal_bane_equipment\" title=\"Abyssal bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Abyssal_head.png\" decoding=\"async\" loading=\"lazy\" width=\"22\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 561,
+ "max-melee": "2016",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1069,
+ "lifepoints": "34000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Abyssal lord",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Abyssal lord#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"226\" id=\"image-?\">",
+ "level": "133",
+ "defence": "95",
+ "slayer-level": "115",
+ "experience": 3700,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Abyssal_bane_equipment\" title=\"Abyssal bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Abyssal_head.png\" decoding=\"async\" loading=\"lazy\" width=\"22\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1221,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "816",
+ "name": "Default",
+ "slayer-exp": 8235,
+ "lifepoints": "74000",
+ "max-ranged": "0",
+ "max-magic": "1163",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Abyssal savage",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Abyssal savage#Asylum.png\" decoding=\"async\" loading=\"lazy\" width=\"176\" height=\"300\" id=\"image-?\">",
+ "level": "111",
+ "defence": "75",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Abyssal_bane_equipment\" title=\"Abyssal bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Abyssal_head.png\" decoding=\"async\" loading=\"lazy\" width=\"22\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Asylum",
+ "slayer-exp": 423.20001220703125,
+ "lifepoints": "15000",
+ "max-ranged": "0",
+ "max-magic": "816",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Abyssal savage#Wilderness.png\" decoding=\"async\" loading=\"lazy\" width=\"176\" height=\"300\" id=\"image-?\">",
+ "level": "111",
+ "defence": "75",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Abyssal_bane_equipment\" title=\"Abyssal bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Abyssal_head.png\" decoding=\"async\" loading=\"lazy\" width=\"22\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Wilderness",
+ "slayer-exp": 423.20001220703125,
+ "lifepoints": "15000",
+ "max-ranged": "0",
+ "max-magic": "816",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Acheron mammoth",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Acheron mammoth#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "135",
+ "defence": "95",
+ "slayer-level": "96",
+ "experience": 2531.199951171875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 835.2000122070312,
+ "max-melee": "1819",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "8000",
+ "name": "Default",
+ "slayer-exp": 3628.800048828125,
+ "lifepoints": "50625",
+ "max-ranged": "4412",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Adamant dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Adamant dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"179\" id=\"image-?\">",
+ "level": "116",
+ "defence": "87",
+ "slayer-level": "1",
+ "experience": 1640.5999755859375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 541.2999877929688,
+ "max-melee": "1120",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1300",
+ "name": "Default",
+ "slayer-exp": 655.5999755859375,
+ "lifepoints": "32812",
+ "max-ranged": "1120",
+ "max-magic": "1120",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Airut",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Airut#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"282\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "90",
+ "slayer-level": "92",
+ "experience": 843.7000122070312,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 278.3999938964844,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1600",
+ "name": "Melee",
+ "slayer-exp": 800.2000122070312,
+ "lifepoints": "16875",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Airut#Ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"238\" id=\"image-?\">",
+ "level": "122",
+ "defence": "90",
+ "slayer-level": "92",
+ "experience": 843.7000122070312,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 278.3999938964844,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1600",
+ "name": "Ranged",
+ "slayer-exp": 800.2000122070312,
+ "lifepoints": "16875",
+ "max-ranged": "816",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ankou",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ankou#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"105\" height=\"300\" id=\"image-?\">",
+ "level": "54",
+ "defence": "38",
+ "slayer-level": "1",
+ "experience": 307.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 101.4000015258789,
+ "max-melee": "800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 98,
+ "lifepoints": "6150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ankou (Kili's Knowledge IV)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ankou (Kili's Knowledge IV)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"105\" height=\"300\" id=\"image-?\">",
+ "level": "72",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "624",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 313.6000061035156,
+ "lifepoints": "31000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ankou (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ankou (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"105\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 1177.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 388.5,
+ "max-melee": "1100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 314,
+ "lifepoints": "23550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Aquanite",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Aquanite#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"243\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "78",
+ "experience": 350,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 115.5,
+ "max-melee": "652",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "652",
+ "name": "Default",
+ "slayer-exp": 212.60000610351562,
+ "lifepoints": "7000",
+ "max-ranged": "652",
+ "max-magic": "652",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Aquanite (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Aquanite (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"243\" height=\"300\" id=\"image-?\">",
+ "level": "104",
+ "defence": "68",
+ "slayer-level": "78",
+ "experience": 1400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 462,
+ "max-melee": "1958",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1958",
+ "name": "Default",
+ "slayer-exp": 968,
+ "lifepoints": "28000",
+ "max-ranged": "1958",
+ "max-magic": "1958",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Armoured phantom",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Armoured phantom#1.png\" decoding=\"async\" loading=\"lazy\" width=\"204\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "87",
+ "slayer-level": "113",
+ "experience": 2625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 866.2000122070312,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "7000",
+ "name": "1",
+ "slayer-exp": 2500,
+ "lifepoints": "52500",
+ "max-ranged": "1745",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured phantom#2.png\" decoding=\"async\" loading=\"lazy\" width=\"131\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "87",
+ "slayer-level": "113",
+ "experience": 2625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 866.2000122070312,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "7000",
+ "name": "2",
+ "slayer-exp": 2500,
+ "lifepoints": "52500",
+ "max-ranged": "1745",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured phantom#3.png\" decoding=\"async\" loading=\"lazy\" width=\"180\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "87",
+ "slayer-level": "113",
+ "experience": 2625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 866.2000122070312,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "7000",
+ "name": "3",
+ "slayer-exp": 2500,
+ "lifepoints": "52500",
+ "max-ranged": "1745",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Capsarius",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Capsarius#1.png\" decoding=\"async\" loading=\"lazy\" width=\"107\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "81",
+ "experience": 187.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 61.79999923706055,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 146.60000610351562,
+ "lifepoints": "3750",
+ "max-ranged": "0",
+ "max-magic": "168",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Capsarius#2.png\" decoding=\"async\" loading=\"lazy\" width=\"108\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "81",
+ "experience": 187.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 61.79999923706055,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 146.60000610351562,
+ "lifepoints": "3750",
+ "max-ranged": "0",
+ "max-magic": "168",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Gladius",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Gladius#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "81",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 220.1999969482422,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "624",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Legio Primus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Legio Primus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"155\" height=\"300\" id=\"image-?\">",
+ "level": "304",
+ "defence": "85",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3300",
+ "name": "Default",
+ "slayer-exp": 1938.800048828125,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1102",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Legio Quartus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Legio Quartus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"166\" height=\"300\" id=\"image-?\">",
+ "level": "304",
+ "defence": "85",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1829.199951171875,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1102",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Legio Quintus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Legio Quintus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "304",
+ "defence": "85",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1829.199951171875,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1102",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Legio Secundus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Legio Secundus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"161\" height=\"300\" id=\"image-?\">",
+ "level": "304",
+ "defence": "85",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1829.199951171875,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1102",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Legio Sextus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Legio Sextus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"187\" height=\"300\" id=\"image-?\">",
+ "level": "304",
+ "defence": "85",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1829.199951171875,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1102",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Legio Tertius",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Legio Tertius#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"197\" height=\"300\" id=\"image-?\">",
+ "level": "304",
+ "defence": "85",
+ "slayer-level": "95",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1829.199951171875,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1102",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Rorarius",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Rorarius#1.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "81",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "576",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Rorarius#2.png\" decoding=\"async\" loading=\"lazy\" width=\"229\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "81",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "576",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Scutarius",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Scutarius#1.png\" decoding=\"async\" loading=\"lazy\" width=\"222\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "80",
+ "slayer-level": "81",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 390.20001220703125,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Scutarius#2.png\" decoding=\"async\" loading=\"lazy\" width=\"198\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "80",
+ "slayer-level": "81",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 390.20001220703125,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Aviansie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Aviansie#Melee, level 89 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"208\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 491.79998779296875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 162.1999969482422,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee, level 89 (1)",
+ "slayer-exp": 170.39999389648438,
+ "lifepoints": "6400",
+ "max-ranged": "256",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Aviansie#Melee, level 89 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"208\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 491.79998779296875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 162.1999969482422,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee, level 89 (2)",
+ "slayer-exp": 187.8000030517578,
+ "lifepoints": "6400",
+ "max-ranged": "256",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Aviansie#Melee, level 92.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"208\" id=\"image-?\">",
+ "level": "92",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 542.2000122070312,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 178.89999389648438,
+ "max-melee": "264",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee, level 92",
+ "slayer-exp": 207.39999389648438,
+ "lifepoints": "6600",
+ "max-ranged": "264",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Aviansie#Ranged, level 89.png\" decoding=\"async\" loading=\"lazy\" width=\"292\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 491.79998779296875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 162.1999969482422,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged, level 89",
+ "slayer-exp": 170.39999389648438,
+ "lifepoints": "6400",
+ "max-ranged": "256",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Aviansie#Ranged, level 92.png\" decoding=\"async\" loading=\"lazy\" width=\"292\" height=\"300\" id=\"image-?\">",
+ "level": "92",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 542.2000122070312,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 178.89999389648438,
+ "max-melee": "264",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged, level 92",
+ "slayer-exp": 187.8000030517578,
+ "lifepoints": "6600",
+ "max-ranged": "264",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Aviansie#Ranged, level 95.png\" decoding=\"async\" loading=\"lazy\" width=\"292\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 340,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 112.19999694824219,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged, level 95",
+ "slayer-exp": 207.39999389648438,
+ "lifepoints": "6800",
+ "max-ranged": "272",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Flight Kilisa",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Flight Kilisa#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"236\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "250",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 363.79998779296875,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Flockleader Geerin",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Flockleader Geerin#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"201\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 363.79998779296875,
+ "lifepoints": "10000",
+ "max-ranged": "250",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kree'arra",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kree'arra#Hard Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"196\" height=\"300\" id=\"image-?\">",
+ "level": "580",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 2500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 825,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Hard Mode",
+ "slayer-exp": 3912,
+ "lifepoints": "100000",
+ "max-ranged": "3000",
+ "max-magic": "700",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kree'arra#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"196\" height=\"300\" id=\"image-?\">",
+ "level": "580",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 1875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 618.7000122070312,
+ "max-melee": "1676",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 2934.199951171875,
+ "lifepoints": "75000",
+ "max-ranged": "1080",
+ "max-magic": "1080",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kree'arra#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"196\" height=\"300\" id=\"image-?\">",
+ "level": "210",
+ "defence": "75",
+ "slayer-level": "N/A",
+ "experience": 2500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 825,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2000",
+ "name": "The World Wakes",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "3000",
+ "max-magic": "700",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Spiritual mage",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Spiritual mage#Zamorak.png\" decoding=\"async\" loading=\"lazy\" width=\"166\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "83",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Zamorak",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "280",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual mage#Armadyl.png\" decoding=\"async\" loading=\"lazy\" width=\"260\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "?",
+ "slayer-level": "83",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Armadyl",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "280",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual mage#Saradomin.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "?",
+ "slayer-level": "83",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Saradomin",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "350",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual mage#Bandos.png\" decoding=\"async\" loading=\"lazy\" width=\"278\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "?",
+ "slayer-level": "83",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Bandos",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "350",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual mage#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "83",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "The World Wakes",
+ "slayer-exp": 229,
+ "lifepoints": "1120",
+ "max-ranged": "0",
+ "max-magic": "280",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Spiritual ranger",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Spiritual ranger#Zamorak.png\" decoding=\"async\" loading=\"lazy\" width=\"142\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "63",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Zamorak",
+ "slayer-exp": 122,
+ "lifepoints": "7000",
+ "max-ranged": "280",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual ranger#Armadyl.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"251\" id=\"image-?\">",
+ "level": "98",
+ "defence": "35",
+ "slayer-level": "63",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Armadyl",
+ "slayer-exp": 122,
+ "lifepoints": "7000",
+ "max-ranged": "280",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual ranger#Saradomin.png\" decoding=\"async\" loading=\"lazy\" width=\"160\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "35",
+ "slayer-level": "63",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Saradomin",
+ "slayer-exp": 122,
+ "lifepoints": "7000",
+ "max-ranged": "280",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual ranger#Bandos.png\" decoding=\"async\" loading=\"lazy\" width=\"261\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "35",
+ "slayer-level": "63",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Bandos",
+ "slayer-exp": 122,
+ "lifepoints": "7000",
+ "max-ranged": "280",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual ranger#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"160\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "63",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "The World Wakes",
+ "slayer-exp": 122,
+ "lifepoints": "1120",
+ "max-ranged": "280",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Spiritual warrior",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Spiritual warrior#Zamorak.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "68",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Zamorak",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual warrior#Armadyl.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"238\" id=\"image-?\">",
+ "level": "98",
+ "defence": "35",
+ "slayer-level": "68",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Armadyl",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual warrior#Saradomin.png\" decoding=\"async\" loading=\"lazy\" width=\"235\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "35",
+ "slayer-level": "68",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Saradomin",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual warrior#Bandos.png\" decoding=\"async\" loading=\"lazy\" width=\"295\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "35",
+ "slayer-level": "68",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Bandos",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spiritual warrior#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"235\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "68",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "The World Wakes",
+ "slayer-exp": 229,
+ "lifepoints": "1120",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Wingman Skree",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wingman Skree#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 363.79998779296875,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "900",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Banshee",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Banshee#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"226\" height=\"300\" id=\"image-?\">",
+ "level": "24",
+ "defence": "14",
+ "slayer-level": "15",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "360",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "990",
+ "name": "Default",
+ "slayer-exp": 46,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "440",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mighty banshee",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mighty banshee#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"198\" height=\"300\" id=\"image-?\">",
+ "level": "61",
+ "defence": "38",
+ "slayer-level": "15",
+ "experience": 307.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 101.4000015258789,
+ "max-melee": "860",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 89.4000015258789,
+ "lifepoints": "6150",
+ "max-ranged": "0",
+ "max-magic": "1020",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Basilisk",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Basilisk#Large.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"202\" id=\"image-?\">",
+ "level": "49",
+ "defence": "30",
+ "slayer-level": "40",
+ "experience": 240,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Basiliskbane_ammunition\" title=\"Basiliskbane ammunition\" target=\"_blank\"><img src=\"./images/susceptible/Basilisk_head.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"16\"><\/a>"
+ ],
+ "lifepoint-exp": 79.19999694824219,
+ "max-melee": "840",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Large",
+ "slayer-exp": 79.5999984741211,
+ "lifepoints": "4800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Basilisk#Small.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"187\" id=\"image-?\">",
+ "level": "49",
+ "defence": "30",
+ "slayer-level": "40",
+ "experience": 240,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Basiliskbane_ammunition\" title=\"Basiliskbane ammunition\" target=\"_blank\"><img src=\"./images/susceptible/Basilisk_head.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"16\"><\/a>"
+ ],
+ "lifepoint-exp": 79.19999694824219,
+ "max-melee": "840",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Small",
+ "slayer-exp": 79.5999984741211,
+ "lifepoints": "4800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Albino bat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Albino bat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"124\" id=\"image-?\">",
+ "level": "43",
+ "defence": "31",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "620",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 18,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Bat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"101\" id=\"image-?\">",
+ "level": "14",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 8.199999809265137,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "40",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant bat",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Giant bat#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"148\" id=\"image-?\">",
+ "level": "14",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal",
+ "slayer-exp": 18.799999237060547,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant bat#Brine Cavern.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"101\" id=\"image-?\">",
+ "level": "23",
+ "defence": "17",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "340",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Brine Cavern",
+ "slayer-exp": 10.199999809265137,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Warped bat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Warped bat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"92\" id=\"image-?\">",
+ "level": "16",
+ "defence": "12",
+ "slayer-level": "1",
+ "experience": 112.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 37.099998474121094,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "2250",
+ "max-ranged": "0",
+ "max-magic": "240",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Angry bear",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Angry bear#A Soul's Bane.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"248\" id=\"image-?\">",
+ "level": "40",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "175",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "A Soul's Bane",
+ "slayer-exp": 0,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Angry bear#Post-quest.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"248\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Post-quest",
+ "slayer-exp": 14,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Bear cub",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bear cub#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"216\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 7.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Black bear",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Black bear#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"241\" id=\"image-?\">",
+ "level": "23",
+ "defence": "17",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "340",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 10.199999809265137,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Grizzly bear",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Grizzly bear#Standard.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"244\" id=\"image-?\">",
+ "level": "32",
+ "defence": "23",
+ "slayer-level": "1",
+ "experience": 187.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 61.79999923706055,
+ "max-melee": "460",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Standard",
+ "slayer-exp": 13,
+ "lifepoints": "3750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Grizzly bear#Tirannwn.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"244\" id=\"image-?\">",
+ "level": "32",
+ "defence": "23",
+ "slayer-level": "1",
+ "experience": 187.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 61.79999923706055,
+ "max-melee": "460",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Tirannwn",
+ "slayer-exp": 16.600000381469727,
+ "lifepoints": "3750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Grizzly bear cub",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Grizzly bear cub#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"216\" id=\"image-?\">",
+ "level": "17",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Bird",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Bird#Black.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"124\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 35,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 11.5,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Black",
+ "slayer-exp": 6.800000190734863,
+ "lifepoints": "700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bird#Green.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"225\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 35,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 11.5,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Green",
+ "slayer-exp": 6.800000190734863,
+ "lifepoints": "700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Chicken",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Chicken#Brown.png\" decoding=\"async\" loading=\"lazy\" width=\"223\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "15",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Brown",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Chicken#White.png\" decoding=\"async\" loading=\"lazy\" width=\"260\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "15",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "White",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Chompy bird",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Chompy bird#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"300\" id=\"image-?\">",
+ "level": "2",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 15,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.900000095367432,
+ "max-melee": "6",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 19.399999618530273,
+ "lifepoints": "300",
+ "max-ranged": "8",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Duck",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Duck#Male.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"259\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Male",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Duck#Female.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"211\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Female",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Duck#Land.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"282\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Land",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Duckling",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Duckling#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"270\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Jubbly bird",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Jubbly bird#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"230\" height=\"300\" id=\"image-?\">",
+ "level": "11",
+ "defence": "8",
+ "slayer-level": "1",
+ "experience": 20,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "24",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 7.599999904632568,
+ "lifepoints": "400",
+ "max-ranged": "32",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mounted terrorbird gnome",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Mounted terrorbird gnome#Level 46.png\" decoding=\"async\" loading=\"lazy\" width=\"249\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 265,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 87.4000015258789,
+ "max-melee": "660",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 46",
+ "slayer-exp": 19.600000381469727,
+ "lifepoints": "5300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mounted terrorbird gnome#Level 53.png\" decoding=\"async\" loading=\"lazy\" width=\"249\" height=\"300\" id=\"image-?\">",
+ "level": "53",
+ "defence": "38",
+ "slayer-level": "1",
+ "experience": 307.5,
+ "susceptible": [],
+ "lifepoint-exp": 101.4000015258789,
+ "max-melee": "950",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 53",
+ "slayer-exp": 24.799999237060547,
+ "lifepoints": "6150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Oomlie bird",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Oomlie bird#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"233\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 570,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 188.10000610351562,
+ "max-melee": "1280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 85.19999694824219,
+ "lifepoints": "11400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Pekin",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Pekin#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "15",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Penguin (monster)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Penguin (monster)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"147\" height=\"300\" id=\"image-?\">",
+ "level": "8",
+ "defence": "6",
+ "slayer-level": "1",
+ "experience": 77.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 25.5,
+ "max-melee": "120",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 7,
+ "lifepoints": "1550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Pernicious parrot",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Pernicious parrot#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"130\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 185,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 61,
+ "max-melee": "900",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 34.20000076293945,
+ "lifepoints": "3700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Rooster",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Rooster#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "15",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Seagull",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Seagull#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"289\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Tenacious toucan",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Tenacious toucan#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"122\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 262.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 86.5999984741211,
+ "max-melee": "1200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 70,
+ "lifepoints": "5250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Terrorbird",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Terrorbird#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"265\" height=\"300\" id=\"image-?\">",
+ "level": "42",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 240,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 79.19999694824219,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 17.200000762939453,
+ "lifepoints": "4800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Undead chicken",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Undead chicken#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"231\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 35,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 11.5,
+ "max-melee": "75",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Undead pekin",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Undead pekin#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"230\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 35,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 11.5,
+ "max-melee": "75",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Balfrug Kreeyath",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Balfrug Kreeyath#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"227\" height=\"300\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 272.79998779296875,
+ "lifepoints": "7500",
+ "max-ranged": "0",
+ "max-magic": "750",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Black demon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Black demon#1.png\" decoding=\"async\" loading=\"lazy\" width=\"210\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 450,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 148.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 294.3999938964844,
+ "lifepoints": "9000",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black demon#2.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 850,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 280.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 294.3999938964844,
+ "lifepoints": "17000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black demon#3.png\" decoding=\"async\" loading=\"lazy\" width=\"218\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 850,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 280.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 294.3999938964844,
+ "lifepoints": "17000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black demon#4.png\" decoding=\"async\" loading=\"lazy\" width=\"227\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 850,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 280.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": 294.3999938964844,
+ "lifepoints": "17000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black demon#5.png\" decoding=\"async\" loading=\"lazy\" width=\"189\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 850,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 280.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "5",
+ "slayer-exp": 294.3999938964844,
+ "lifepoints": "17000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black demon#Wilderness.png\" decoding=\"async\" loading=\"lazy\" width=\"210\" height=\"300\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 850,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 280.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Wilderness",
+ "slayer-exp": 564.4000244140625,
+ "lifepoints": "17000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Alanogard the Black",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Alanogard the Black#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"259\" id=\"image-?\">",
+ "level": "117",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 9000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2970,
+ "max-melee": "1353",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "5000",
+ "name": "Default",
+ "slayer-exp": 9794,
+ "lifepoints": "180000",
+ "max-ranged": "1353",
+ "max-magic": "1353",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Baby black dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Baby black dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"221\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "150",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 43.20000076293945,
+ "lifepoints": "2500",
+ "max-ranged": "200",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Black dragon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Black dragon#1.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"229\" id=\"image-?\">",
+ "level": "100",
+ "defence": "72",
+ "slayer-level": "1",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "475",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "1",
+ "slayer-exp": 245,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "475",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black dragon#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "100",
+ "defence": "72",
+ "slayer-level": "1",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "475",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "2",
+ "slayer-exp": 245,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "475",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black dragon#3.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "100",
+ "defence": "72",
+ "slayer-level": "1",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "475",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "3",
+ "slayer-exp": 245,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "475",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black dragon#4.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "100",
+ "defence": "72",
+ "slayer-level": "1",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "475",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "4",
+ "slayer-exp": 245,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "475",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Black dragon#5.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "100",
+ "defence": "72",
+ "slayer-level": "1",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "475",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "5",
+ "slayer-exp": 245,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "475",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Black dragon (Dragonkin Laboratory)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Black dragon (Dragonkin Laboratory)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"259\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 1950,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 643.5,
+ "max-melee": "1152",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 1550,
+ "lifepoints": "39000",
+ "max-ranged": "1152",
+ "max-magic": "1152",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "King Black Dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/King Black Dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"282\" height=\"300\" id=\"image-?\">",
+ "level": "276",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 2250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"
+ ],
+ "lifepoint-exp": 742.5,
+ "max-melee": "864",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4960",
+ "name": "Default",
+ "slayer-exp": 1050.5999755859375,
+ "lifepoints": "45000",
+ "max-ranged": "864",
+ "max-magic": "864",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Queen Black Dragon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Queen Black Dragon#Carapace.png\" decoding=\"async\" loading=\"lazy\" width=\"259\" height=\"300\" id=\"image-?\">",
+ "level": "900",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 900,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"
+ ],
+ "lifepoint-exp": 297,
+ "max-melee": "2480",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Magic\" title=\"Magic\" target=\"_blank\"><img src=\"./images/weakness/Magic_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "6500",
+ "name": "Carapace",
+ "slayer-exp": 1693.199951171875,
+ "lifepoints": "36000",
+ "max-ranged": "2480",
+ "max-magic": "2480",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Queen Black Dragon#Crystal.png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "900",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 900,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 297,
+ "max-melee": "2480",
+ "weakness": [
+ "<a href=\"https://runescape.wiki/w/Melee\" title=\"Melee\" target=\"_blank\"><img src=\"./images/weakness/Melee_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "max-spec": "6500",
+ "name": "Crystal",
+ "slayer-exp": 1693.199951171875,
+ "lifepoints": "36000",
+ "max-ranged": "2480",
+ "max-magic": "2480",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Queen Black Dragon#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "900",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 900,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 297,
+ "max-melee": "2480",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "6500",
+ "name": "Normal",
+ "slayer-exp": 1693.199951171875,
+ "lifepoints": "36000",
+ "max-ranged": "2480",
+ "max-magic": "2480",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Verak Lith",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Verak Lith#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"252\" height=\"300\" id=\"image-?\">",
+ "level": "1450",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 15000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 4950,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "9000",
+ "name": "Default",
+ "slayer-exp": 27438,
+ "lifepoints": "600000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Verak Little",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Verak Little#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"285\" id=\"image-?\">",
+ "level": "107",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 9000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 2970,
+ "max-melee": "1966",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4000",
+ "name": "Default",
+ "slayer-exp": 0,
+ "lifepoints": "180000",
+ "max-ranged": "1966",
+ "max-magic": "1966",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Bloodveld",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bloodveld#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"266\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "49",
+ "slayer-level": "50",
+ "experience": 512.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 169.10000610351562,
+ "max-melee": "680",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 84.4000015258789,
+ "lifepoints": "10250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Bloodveld (God Wars Dungeon)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bloodveld (God Wars Dungeon)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"266\" height=\"300\" id=\"image-?\">",
+ "level": "92",
+ "defence": "66",
+ "slayer-level": "50",
+ "experience": 330,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 108.9000015258789,
+ "max-melee": "264",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "6600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Bloodveld (Heart of Gielinor)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bloodveld (Heart of Gielinor)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "50",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "768",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mutated bloodveld",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Mutated bloodveld#A.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"280\" id=\"image-?\">",
+ "level": "81",
+ "defence": "65",
+ "slayer-level": "50",
+ "experience": 727.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 240,
+ "max-melee": "1000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "A",
+ "slayer-exp": 205.8000030517578,
+ "lifepoints": "14550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mutated bloodveld#B.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"287\" id=\"image-?\">",
+ "level": "81",
+ "defence": "65",
+ "slayer-level": "50",
+ "experience": 727.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 240,
+ "max-melee": "1000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "B",
+ "slayer-exp": 205.8000030517578,
+ "lifepoints": "14550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Baby blue dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Baby blue dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"248\" height=\"300\" id=\"image-?\">",
+ "level": "44",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 80,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 26.399999618530273,
+ "max-melee": "128",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 18.799999237060547,
+ "lifepoints": "1600",
+ "max-ranged": "0",
+ "max-magic": "128",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Blue dragon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Blue dragon#1.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"234\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "1",
+ "slayer-exp": 93.80000305175781,
+ "lifepoints": "5000",
+ "max-ranged": "N/A",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Blue dragon#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"247\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "2",
+ "slayer-exp": 93.80000305175781,
+ "lifepoints": "5000",
+ "max-ranged": "N/A",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Blue dragon#3.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"287\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "3",
+ "slayer-exp": 93.80000305175781,
+ "lifepoints": "5000",
+ "max-ranged": "N/A",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Blue dragon#4.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"230\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "4",
+ "slayer-exp": 93.80000305175781,
+ "lifepoints": "5000",
+ "max-ranged": "N/A",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Blue dragon#5.png\" decoding=\"async\" loading=\"lazy\" width=\"267\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "5",
+ "slayer-exp": 93.80000305175781,
+ "lifepoints": "5000",
+ "max-ranged": "N/A",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Vorkath",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Vorkath#Hard mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"174\" id=\"image-?\">",
+ "level": "789",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 60411.6015625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19935.80078125,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Hard mode",
+ "slayer-exp": 31340.5,
+ "lifepoints": "1500000",
+ "max-ranged": "1224",
+ "max-magic": "1224",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vorkath#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"174\" id=\"image-?\">",
+ "level": "789",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 60411.6015625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19935.80078125,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "8500",
+ "name": "Normal mode",
+ "slayer-exp": 31340.5,
+ "lifepoints": "750000",
+ "max-ranged": "1224",
+ "max-magic": "1224",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vorkath#Requiem for a Dragon.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"174\" id=\"image-?\">",
+ "level": "789",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Requiem for a Dragon",
+ "slayer-exp": 31340.5,
+ "lifepoints": "75001",
+ "max-ranged": "1224",
+ "max-magic": "1224",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vorkath#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"174\" id=\"image-?\">",
+ "level": "789",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 60411.6015625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19935.80078125,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": 31340.5,
+ "lifepoints": "375000",
+ "max-ranged": "1224",
+ "max-magic": "1224",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Bound skeleton",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Bound skeleton#1.png\" decoding=\"async\" loading=\"lazy\" width=\"276\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 600,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 198,
+ "max-melee": "1194",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 420,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bound skeleton#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"223\" id=\"image-?\">",
+ "level": "70",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 600,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 198,
+ "max-melee": "1194",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 420,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bound skeleton#3.png\" decoding=\"async\" loading=\"lazy\" width=\"252\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 600,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 198,
+ "max-melee": "1194",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 420,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Brine rat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Brine rat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "43",
+ "defence": "30",
+ "slayer-level": "47",
+ "experience": 240,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 79.19999694824219,
+ "max-melee": "640",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 43.20000076293945,
+ "lifepoints": "4800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Bronze dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bronze dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"218\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "409",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 124.5,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "409",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Camel Warrior",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Camel Warrior#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"278\" id=\"image-?\">",
+ "level": "132",
+ "defence": "93",
+ "slayer-level": "96",
+ "experience": 1006.2000122070312,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 332,
+ "max-melee": "912",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "2678",
+ "name": "Default",
+ "slayer-exp": 4768.7998046875,
+ "lifepoints": "20125",
+ "max-ranged": "931",
+ "max-magic": "931",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Catablepon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Catablepon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"261\" height=\"300\" id=\"image-?\">",
+ "level": "43",
+ "defence": "28",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "480",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 74.5,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "700",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cave bug",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Cave bug#Level 6.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "6",
+ "defence": "4",
+ "slayer-level": "7",
+ "experience": 32.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 10.699999809265137,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 6",
+ "slayer-exp": 7,
+ "lifepoints": "650",
+ "max-ranged": "120",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cave bug#Level 11.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"254\" id=\"image-?\">",
+ "level": "11",
+ "defence": "7",
+ "slayer-level": "7",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 11",
+ "slayer-exp": 8,
+ "lifepoints": "1650",
+ "max-ranged": "180",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Cave crawler",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Cave crawler#Level 24.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"241\" id=\"image-?\">",
+ "level": "24",
+ "defence": "15",
+ "slayer-level": "10",
+ "experience": 132.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 24",
+ "slayer-exp": 24.5,
+ "lifepoints": "2650",
+ "max-ranged": "400",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cave crawler#Level 59.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"241\" id=\"image-?\">",
+ "level": "59",
+ "defence": "40",
+ "slayer-level": "10",
+ "experience": 325,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 107.19999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 59",
+ "slayer-exp": 57.599998474121094,
+ "lifepoints": "6500",
+ "max-ranged": "900",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Cave horror",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cave horror#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "58",
+ "experience": 250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 82.5,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 99.4000015258789,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cave horror (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cave horror (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "75",
+ "slayer-level": "58",
+ "experience": 550,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 181.5,
+ "max-melee": "660",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 509,
+ "lifepoints": "11000",
+ "max-ranged": "0",
+ "max-magic": "660",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Unspeakable horror",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Unspeakable horror#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"208\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "58",
+ "experience": 650,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 214.5,
+ "max-melee": "720",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 440,
+ "lifepoints": "13000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Unspeakable horror (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Unspeakable horror (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"208\" height=\"300\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "58",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "768",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1241.5999755859375,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cave slime",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cave slime#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"257\" id=\"image-?\">",
+ "level": "22",
+ "defence": "19",
+ "slayer-level": "17",
+ "experience": 157.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 51.900001525878906,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 11,
+ "lifepoints": "3150",
+ "max-ranged": "240",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant slime",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Giant slime#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"272\" id=\"image-?\">",
+ "level": "106",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 6000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1980,
+ "max-melee": "1400",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal mode",
+ "slayer-exp": 5047,
+ "lifepoints": "120000",
+ "max-ranged": "1400",
+ "max-magic": "1400",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant slime#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"272\" id=\"image-?\">",
+ "level": "106",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 6000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1980,
+ "max-melee": "1400",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Story mode",
+ "slayer-exp": 2523.39990234375,
+ "lifepoints": "120000",
+ "max-ranged": "1400",
+ "max-magic": "1400",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Laboratory slime",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Laboratory slime#Adult (normal mode).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"272\" id=\"image-?\">",
+ "level": "90",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Adult (normal mode)",
+ "slayer-exp": 551,
+ "lifepoints": "20000",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Laboratory slime#Spawnling (normal mode).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"272\" id=\"image-?\">",
+ "level": "90",
+ "defence": "60",
+ "slayer-level": "N/A",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Spawnling (normal mode)",
+ "slayer-exp": -2,
+ "lifepoints": "9500",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Laboratory slime#Adult (story mode).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"272\" id=\"image-?\">",
+ "level": "90",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Adult (story mode)",
+ "slayer-exp": 275.3999938964844,
+ "lifepoints": "9500",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Laboratory slime#Spawnling (story mode).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"272\" id=\"image-?\">",
+ "level": "90",
+ "defence": "60",
+ "slayer-level": "N/A",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Spawnling (story mode)",
+ "slayer-exp": -2,
+ "lifepoints": "9500",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Astellarn",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Astellarn#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"188\" id=\"image-?\">",
+ "level": "1200",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 6250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2062.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2700",
+ "name": "Default",
+ "slayer-exp": 27400,
+ "lifepoints": "250000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Celestial dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Celestial dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"186\" id=\"image-?\">",
+ "level": "127",
+ "defence": "91",
+ "slayer-level": "1",
+ "experience": 1137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 375.29998779296875,
+ "max-melee": "1068",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 976.5999755859375,
+ "lifepoints": "22750",
+ "max-ranged": "0",
+ "max-magic": "1168",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Celestial dragon (Dragonkin Laboratory)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Celestial dragon (Dragonkin Laboratory)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"186\" id=\"image-?\">",
+ "level": "114",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 2400,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 792,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 2400,
+ "lifepoints": "48000",
+ "max-ranged": "1653",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Elegorn the Celestial",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Elegorn the Celestial#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"186\" id=\"image-?\">",
+ "level": "114",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 8750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2887.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 8800,
+ "lifepoints": "175000",
+ "max-ranged": "1296",
+ "max-magic": "1296",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Chaos Giant",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Chaos Giant#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "450",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 929.4000244140625,
+ "lifepoints": "22500",
+ "max-ranged": "450",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cockatrice",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cockatrice#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"297\" id=\"image-?\">",
+ "level": "31",
+ "defence": "25",
+ "slayer-level": "25",
+ "experience": 202.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 66.80000305175781,
+ "max-melee": "360",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 23.399999618530273,
+ "lifepoints": "4050",
+ "max-ranged": "400",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cockroach drone",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cockroach drone#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "4",
+ "defence": "3",
+ "slayer-level": "1",
+ "experience": 60,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 19.799999237060547,
+ "max-melee": "60",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6,
+ "lifepoints": "1200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cockroach soldier",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cockroach soldier#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"284\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 525,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 173.1999969482422,
+ "max-melee": "1000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 14,
+ "lifepoints": "10500",
+ "max-ranged": "1000",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cockroach worker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cockroach worker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"269\" id=\"image-?\">",
+ "level": "30",
+ "defence": "22",
+ "slayer-level": "1",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "440",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 12,
+ "lifepoints": "3600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Warped cockroach",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Warped cockroach#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"280\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 25,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 8.199999809265137,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "500",
+ "max-ranged": "20",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corrupted dust devil",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corrupted dust devil#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"192\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "76",
+ "slayer-level": "97",
+ "experience": 600,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 198,
+ "max-melee": "1123",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 679.7999877929688,
+ "lifepoints": "12000",
+ "max-ranged": "1123",
+ "max-magic": "1123",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corrupted kalphite guardian",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corrupted kalphite guardian#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"263\" height=\"300\" id=\"image-?\">",
+ "level": "110",
+ "defence": "78",
+ "slayer-level": "100",
+ "experience": 750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1152",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 494,
+ "lifepoints": "15000",
+ "max-ranged": "1152",
+ "max-magic": "1152",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corrupted kalphite marauder",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corrupted kalphite marauder#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"228\" height=\"300\" id=\"image-?\">",
+ "level": "110",
+ "defence": "78",
+ "slayer-level": "100",
+ "experience": 750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1152",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 494,
+ "lifepoints": "15000",
+ "max-ranged": "1152",
+ "max-magic": "1152",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corrupted lizard",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corrupted lizard#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"173\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "94",
+ "experience": 550,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 181.5,
+ "max-melee": "1094",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 533.4000244140625,
+ "lifepoints": "11000",
+ "max-ranged": "1094",
+ "max-magic": "1094",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corrupted scarab",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corrupted scarab#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"286\" height=\"300\" id=\"image-?\">",
+ "level": "101",
+ "defence": "72",
+ "slayer-level": "91",
+ "experience": 500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 165,
+ "max-melee": "700",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 389,
+ "lifepoints": "10000",
+ "max-ranged": "700",
+ "max-magic": "700",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corrupted scorpion",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corrupted scorpion#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"260\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "88",
+ "experience": 450,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 148.5,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 353.20001220703125,
+ "lifepoints": "9000",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corrupted worker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corrupted worker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"153\" height=\"300\" id=\"image-?\">",
+ "level": "113",
+ "defence": "80",
+ "slayer-level": "103",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1180",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 653,
+ "lifepoints": "15000",
+ "max-ranged": "1180",
+ "max-magic": "1180",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cow",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Cow#Standard (1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "2",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "40",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Standard (1)",
+ "slayer-exp": 3.299999952316284,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cow#Standard (2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"260\" id=\"image-?\">",
+ "level": "2",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "40",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Standard (2)",
+ "slayer-exp": 3.299999952316284,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cow#Standard (3).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"209\" id=\"image-?\">",
+ "level": "2",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "40",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Standard (3)",
+ "slayer-exp": 3.299999952316284,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cow#Zanaris.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"213\" id=\"image-?\">",
+ "level": "2",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "40",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Zanaris",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Cow calf",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cow calf#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"290\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 25,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 8.199999809265137,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 3.200000047683716,
+ "lifepoints": "500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Super Cow",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Super Cow#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"260\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 36.400001525878906,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Undead cow",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Undead cow#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"198\" id=\"image-?\">",
+ "level": "2",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 16.5,
+ "max-melee": "40",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Crawling hand",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#6a.png\" decoding=\"async\" loading=\"lazy\" width=\"236\" height=\"300\" id=\"image-?\">",
+ "level": "6",
+ "defence": "5",
+ "slayer-level": "5",
+ "experience": 72.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "6a",
+ "slayer-exp": 7.599999904632568,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#6b.png\" decoding=\"async\" loading=\"lazy\" width=\"248\" height=\"300\" id=\"image-?\">",
+ "level": "6",
+ "defence": "5",
+ "slayer-level": "5",
+ "experience": 72.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "6b",
+ "slayer-exp": 7.599999904632568,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#6c.png\" decoding=\"async\" loading=\"lazy\" width=\"259\" height=\"300\" id=\"image-?\">",
+ "level": "6",
+ "defence": "5",
+ "slayer-level": "5",
+ "experience": 72.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "6c",
+ "slayer-exp": 7.599999904632568,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#6d.png\" decoding=\"async\" loading=\"lazy\" width=\"257\" height=\"300\" id=\"image-?\">",
+ "level": "6",
+ "defence": "5",
+ "slayer-level": "5",
+ "experience": 72.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "6d",
+ "slayer-exp": 7.599999904632568,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#6e.png\" decoding=\"async\" loading=\"lazy\" width=\"277\" height=\"300\" id=\"image-?\">",
+ "level": "6",
+ "defence": "5",
+ "slayer-level": "5",
+ "experience": 72.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "6e",
+ "slayer-exp": 7.599999904632568,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#10a.png\" decoding=\"async\" loading=\"lazy\" width=\"269\" height=\"300\" id=\"image-?\">",
+ "level": "10",
+ "defence": "8",
+ "slayer-level": "5",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "10a",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#10b.png\" decoding=\"async\" loading=\"lazy\" width=\"273\" height=\"300\" id=\"image-?\">",
+ "level": "10",
+ "defence": "8",
+ "slayer-level": "5",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "10b",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#10c.png\" decoding=\"async\" loading=\"lazy\" width=\"278\" height=\"300\" id=\"image-?\">",
+ "level": "10",
+ "defence": "8",
+ "slayer-level": "5",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "10c",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#10d.png\" decoding=\"async\" loading=\"lazy\" width=\"265\" height=\"300\" id=\"image-?\">",
+ "level": "10",
+ "defence": "8",
+ "slayer-level": "5",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "10d",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crawling hand#10e.png\" decoding=\"async\" loading=\"lazy\" width=\"271\" height=\"300\" id=\"image-?\">",
+ "level": "10",
+ "defence": "8",
+ "slayer-level": "5",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "10e",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeletal hand",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeletal hand#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"261\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "50",
+ "slayer-level": "5",
+ "experience": 420,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 138.60000610351562,
+ "max-melee": "800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 60.599998474121094,
+ "lifepoints": "8400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Zombie hand",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Zombie hand#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"285\" height=\"300\" id=\"image-?\">",
+ "level": "69",
+ "defence": "54",
+ "slayer-level": "5",
+ "experience": 460,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 151.8000030517578,
+ "max-melee": "880",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 73.19999694824219,
+ "lifepoints": "9200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Edimmu",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Edimmu#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "85",
+ "slayer-level": "90",
+ "experience": 1600,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 528,
+ "max-melee": "350",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 880.2000122070312,
+ "lifepoints": "32000",
+ "max-ranged": "0",
+ "max-magic": "350",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Edimmu (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Edimmu (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"172\" height=\"300\" id=\"image-?\">",
+ "level": "125",
+ "defence": "85",
+ "slayer-level": "90",
+ "experience": 4800,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 1584,
+ "max-melee": "1050",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 2044.5999755859375,
+ "lifepoints": "96000",
+ "max-ranged": "0",
+ "max-magic": "1050",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Frost dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Frost dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"223\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 425,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 140.1999969482422,
+ "max-melee": "500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "Varies",
+ "name": "Default",
+ "slayer-exp": 398.79998779296875,
+ "lifepoints": "8500",
+ "max-ranged": "500",
+ "max-magic": "500",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kal'gerion demon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon#Bloodchiller.png\" decoding=\"async\" loading=\"lazy\" width=\"167\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "Bloodchiller",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon#Riftsplitter.png\" decoding=\"async\" loading=\"lazy\" width=\"173\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "Riftsplitter",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon#Pummeller.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "Pummeller",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon#Thunderous.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "Thunderous",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon#Warmonger.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "Warmonger",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon#Rush of Blood.png\" decoding=\"async\" loading=\"lazy\" width=\"167\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "Rush of Blood",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Seeker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Seeker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "55",
+ "slayer-level": "71",
+ "experience": 1200,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 396,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1500",
+ "name": "Default",
+ "slayer-exp": 440.3999938964844,
+ "lifepoints": "24000",
+ "max-ranged": "0",
+ "max-magic": "250",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Soulgazer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Soulgazer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"227\" height=\"300\" id=\"image-?\">",
+ "level": "128",
+ "defence": "85",
+ "slayer-level": "99",
+ "experience": 2000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 660,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 1950.4000244140625,
+ "lifepoints": "40000",
+ "max-ranged": "0",
+ "max-magic": "738",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Bulbous crawler",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bulbous crawler#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "140",
+ "defence": "95",
+ "slayer-level": "106",
+ "experience": 1900,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 627,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "4000",
+ "name": "Default",
+ "slayer-exp": 2360,
+ "lifepoints": "38000",
+ "max-ranged": "2123",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Moss golem",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Moss golem#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"236\" height=\"300\" id=\"image-?\">",
+ "level": "140",
+ "defence": "95",
+ "slayer-level": "108",
+ "experience": 1750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 577.5,
+ "max-melee": "2123",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 2408.800048828125,
+ "lifepoints": "35000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Vinecrawler",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Vinecrawler#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "140",
+ "defence": "95",
+ "slayer-level": "104",
+ "experience": 1600,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 528,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "4000",
+ "name": "Default",
+ "slayer-exp": 2086,
+ "lifepoints": "32000",
+ "max-ranged": "0",
+ "max-magic": "2123",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Automaton Generator",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Automaton Generator#Post-quest.png\" decoding=\"async\" loading=\"lazy\" width=\"274\" height=\"300\" id=\"image-?\">",
+ "level": "115",
+ "defence": "80",
+ "slayer-level": "67",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2500",
+ "name": "Post-quest",
+ "slayer-exp": 624,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "510",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Automaton Generator#During The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"274\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "N/A",
+ "experience": 375,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2500",
+ "name": "During The World Wakes",
+ "slayer-exp": 0,
+ "lifepoints": "7500",
+ "max-ranged": "0",
+ "max-magic": "600",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Automaton Guardian",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Automaton Guardian#Post-quest.png\" decoding=\"async\" loading=\"lazy\" width=\"276\" height=\"300\" id=\"image-?\">",
+ "level": "115",
+ "defence": "80",
+ "slayer-level": "67",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "810",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1000",
+ "name": "Post-quest",
+ "slayer-exp": 624,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Automaton Guardian#During The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"276\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "N/A",
+ "experience": 375,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "During The World Wakes",
+ "slayer-exp": 0,
+ "lifepoints": "7500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Automaton Tracer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Automaton Tracer#Post-quest.png\" decoding=\"async\" loading=\"lazy\" width=\"242\" height=\"300\" id=\"image-?\">",
+ "level": "115",
+ "defence": "80",
+ "slayer-level": "67",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Post-quest",
+ "slayer-exp": 624,
+ "lifepoints": "20000",
+ "max-ranged": "510",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Automaton Tracer#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"242\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "N/A",
+ "experience": 375,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1000",
+ "name": "The World Wakes",
+ "slayer-exp": 0,
+ "lifepoints": "7500",
+ "max-ranged": "600",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Crocodile",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Crocodile#77.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"132\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "116",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "77",
+ "slayer-exp": 44.400001525878906,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crocodile#40.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"132\" id=\"image-?\">",
+ "level": "40",
+ "defence": "29",
+ "slayer-level": "1",
+ "experience": 72.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "116",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "40",
+ "slayer-exp": 33.400001525878906,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Crocodile akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Crocodile akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"191\" id=\"image-?\">",
+ "level": "115",
+ "defence": "80",
+ "slayer-level": "111",
+ "experience": 900,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 297,
+ "max-melee": "1561",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4000",
+ "name": "Default",
+ "slayer-exp": 761.2000122070312,
+ "lifepoints": "18000",
+ "max-ranged": "1561",
+ "max-magic": "1561",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ol' Sawtooth",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ol' Sawtooth#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"132\" id=\"image-?\">",
+ "level": "120",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 6750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 2227.5,
+ "max-melee": "1966",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "135000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Sea crocodile",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Sea crocodile#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"132\" id=\"image-?\">",
+ "level": "77",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 634.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 209.3000030517578,
+ "max-melee": "936",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "15500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Sea crocodile#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"132\" id=\"image-?\">",
+ "level": "77",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": 387.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 127.80000305175781,
+ "max-melee": "?",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "7750",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Crystal Shapeshifter",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Crystal Shapeshifter#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"299\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "80",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "980",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1900",
+ "name": "Melee",
+ "slayer-exp": 1269.800048828125,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crystal Shapeshifter#Ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"237\" height=\"300\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "80",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "1900",
+ "name": "Ranged",
+ "slayer-exp": 1269.800048828125,
+ "lifepoints": "30000",
+ "max-ranged": "980",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Crystal Shapeshifter#Magic.png\" decoding=\"async\" loading=\"lazy\" width=\"117\" height=\"300\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "80",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1900",
+ "name": "Magic",
+ "slayer-exp": 1269.800048828125,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "980",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Cyclops",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#57 (Stab).png\" decoding=\"async\" loading=\"lazy\" width=\"177\" height=\"300\" id=\"image-?\">",
+ "level": "57",
+ "defence": "41",
+ "slayer-level": "1",
+ "experience": 205,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 67.5999984741211,
+ "max-melee": "205",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "57 (Stab)",
+ "slayer-exp": 71.80000305175781,
+ "lifepoints": "4100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#68 (Stab).png\" decoding=\"async\" loading=\"lazy\" width=\"191\" height=\"300\" id=\"image-?\">",
+ "level": "68",
+ "defence": "49",
+ "slayer-level": "1",
+ "experience": 245,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 80.80000305175781,
+ "max-melee": "245",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "68 (Stab)",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "4900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#57 (Slash).png\" decoding=\"async\" loading=\"lazy\" width=\"179\" height=\"300\" id=\"image-?\">",
+ "level": "57",
+ "defence": "41",
+ "slayer-level": "1",
+ "experience": 205,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 67.5999984741211,
+ "max-melee": "205",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "57 (Slash)",
+ "slayer-exp": 71.80000305175781,
+ "lifepoints": "4100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#68 (Slash).png\" decoding=\"async\" loading=\"lazy\" width=\"176\" height=\"300\" id=\"image-?\">",
+ "level": "68",
+ "defence": "49",
+ "slayer-level": "1",
+ "experience": 245,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 80.80000305175781,
+ "max-melee": "245",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "68 (Slash)",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "4900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#57 (Crush).png\" decoding=\"async\" loading=\"lazy\" width=\"184\" height=\"300\" id=\"image-?\">",
+ "level": "57",
+ "defence": "41",
+ "slayer-level": "1",
+ "experience": 205,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 67.5999984741211,
+ "max-melee": "205",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "57 (Crush)",
+ "slayer-exp": 71.80000305175781,
+ "lifepoints": "4100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#68 (Crush).png\" decoding=\"async\" loading=\"lazy\" width=\"183\" height=\"300\" id=\"image-?\">",
+ "level": "68",
+ "defence": "49",
+ "slayer-level": "1",
+ "experience": 245,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 80.80000305175781,
+ "max-melee": "245",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "68 (Crush)",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "4900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#91 (God Wars Dungeon), 1.png\" decoding=\"async\" loading=\"lazy\" width=\"184\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 487.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 160.8000030517578,
+ "max-melee": "325",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "91 (God Wars Dungeon), 1",
+ "slayer-exp": 281.79998779296875,
+ "lifepoints": "9750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cyclops#91 (God Wars Dungeon), 2.png\" decoding=\"async\" loading=\"lazy\" width=\"166\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 487.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 160.8000030517578,
+ "max-melee": "325",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "91 (God Wars Dungeon), 2",
+ "slayer-exp": 281.79998779296875,
+ "lifepoints": "9750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Cyclossus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cyclossus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"187\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 630,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 207.89999389648438,
+ "max-melee": "960",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 350,
+ "lifepoints": "12600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dagannoth (Lighthouse)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Dagannoth (Lighthouse)#Level 77.png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "165",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 77",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "220",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dagannoth (Lighthouse)#Level 78.png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 140,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 46.20000076293945,
+ "max-melee": "224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 78",
+ "slayer-exp": 57.599998474121094,
+ "lifepoints": "2800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Dagannoth (Waterbirth Island)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Dagannoth (Waterbirth Island)#Melee (78).png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 140,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 46.20000076293945,
+ "max-melee": "224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee (78)",
+ "slayer-exp": 57.599998474121094,
+ "lifepoints": "2800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dagannoth (Waterbirth Island)#Melee (79).png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "79",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 140,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 46.20000076293945,
+ "max-melee": "224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee (79)",
+ "slayer-exp": 61,
+ "lifepoints": "2800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dagannoth (Waterbirth Island)#Blood Runs Deep (78).png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 140,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 46.20000076293945,
+ "max-melee": "224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Blood Runs Deep (78)",
+ "slayer-exp": -1,
+ "lifepoints": "2800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Dagannoth (Waterbirth Island, ranged)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Dagannoth (Waterbirth Island, ranged)#Ranged (78).png\" decoding=\"async\" loading=\"lazy\" width=\"254\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 140,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 46.20000076293945,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged (78)",
+ "slayer-exp": 57.599998474121094,
+ "lifepoints": "2800",
+ "max-ranged": "224",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dagannoth (Waterbirth Island, ranged)#Ranged (79).png\" decoding=\"async\" loading=\"lazy\" width=\"254\" height=\"300\" id=\"image-?\">",
+ "level": "79",
+ "defence": "57",
+ "slayer-level": "1",
+ "experience": 142.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 47,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged (79)",
+ "slayer-exp": 64,
+ "lifepoints": "2850",
+ "max-ranged": "171",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Dagannoth Prime",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dagannoth Prime#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "303",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 288.70001220703125,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1068,
+ "lifepoints": "35000",
+ "max-ranged": "0",
+ "max-magic": "1788",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dagannoth Rex",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dagannoth Rex#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"214\" id=\"image-?\">",
+ "level": "303",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 1750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 577.5,
+ "max-melee": "1788",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1068,
+ "lifepoints": "35000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dagannoth Supreme",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dagannoth Supreme#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"193\" height=\"300\" id=\"image-?\">",
+ "level": "303",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 875,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 288.70001220703125,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1068,
+ "lifepoints": "35000",
+ "max-ranged": "1788",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dagannoth fledgeling",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dagannoth fledgeling#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"178\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "208",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 0,
+ "lifepoints": "2600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dagannoth guardian",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dagannoth guardian#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"244\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 165,
+ "max-melee": "400",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 326.6000061035156,
+ "lifepoints": "10000",
+ "max-ranged": "400",
+ "max-magic": "400",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dagannoth spawn",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dagannoth spawn#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"243\" id=\"image-?\">",
+ "level": "65",
+ "defence": "47",
+ "slayer-level": "1",
+ "experience": 117.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Balmung\" title=\"Balmung\" target=\"_blank\"><img src=\"./images/susceptible/Balmung.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"28\"><\/a>"
+ ],
+ "lifepoint-exp": 38.70000076293945,
+ "max-melee": "188",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 39.400001525878906,
+ "lifepoints": "2350",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dark beast",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Dark beast#8,500 life points.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "101",
+ "defence": "75",
+ "slayer-level": "90",
+ "experience": 425,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 140.1999969482422,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "8,500 life points",
+ "slayer-exp": 331.3999938964844,
+ "lifepoints": "8500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dark beast#19,000 life points.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "101",
+ "defence": "75",
+ "slayer-level": "90",
+ "experience": 950,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 313.5,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "19,000 life points",
+ "slayer-exp": 440,
+ "lifepoints": "19000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Dark beast (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dark beast (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "114",
+ "defence": "75",
+ "slayer-level": "90",
+ "experience": 1700,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 561,
+ "max-melee": "1800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1372.800048828125,
+ "lifepoints": "34000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant dark beast",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant dark beast#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"290\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 442.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 146,
+ "max-melee": "1327",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 415.6000061035156,
+ "lifepoints": "8850",
+ "max-ranged": "1327",
+ "max-magic": "1327",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cerberus Juvenile",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cerberus Juvenile#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "138",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 6000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1980,
+ "max-melee": "2570",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 10000,
+ "lifepoints": "120000",
+ "max-ranged": "2011",
+ "max-magic": "2011",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Gargoyle",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Gargoyle#Regular.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"164\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "75",
+ "experience": 335,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 110.5,
+ "max-melee": "268",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Regular",
+ "slayer-exp": 197.39999389648438,
+ "lifepoints": "6700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Gargoyle#Wilderness.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"164\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "75",
+ "experience": 675,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 222.6999969482422,
+ "max-melee": "1080",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Wilderness",
+ "slayer-exp": 197.39999389648438,
+ "lifepoints": "13500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Greater demon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Greater demon#1.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "1",
+ "slayer-exp": 135.39999389648438,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "566",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Greater demon#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "2",
+ "slayer-exp": 135.39999389648438,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "566",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Greater demon#3.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "3",
+ "slayer-exp": 135.39999389648438,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "566",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Greater demon#4.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "4",
+ "slayer-exp": 135.39999389648438,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "566",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Greater demon#5.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "5",
+ "slayer-exp": 135.39999389648438,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "566",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Greater demon ash lord",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Greater demon ash lord#The Zamorakian Undercity.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"250\" id=\"image-?\">",
+ "level": "157",
+ "defence": "110",
+ "slayer-level": "1",
+ "experience": 7000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2310,
+ "max-melee": "1564",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "The Zamorakian Undercity",
+ "slayer-exp": 7150,
+ "lifepoints": "140000",
+ "max-ranged": "1564",
+ "max-magic": "2570",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Greater demon ash lord#Wilderness.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"250\" id=\"image-?\">",
+ "level": "149",
+ "defence": "100",
+ "slayer-level": "1",
+ "experience": 5500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1815,
+ "max-melee": "1564",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Wilderness",
+ "slayer-exp": 7150,
+ "lifepoints": "110000",
+ "max-ranged": "1564",
+ "max-magic": "2570",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Greater demon berserker",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Greater demon berserker#The Zamorakian Undercity.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "166",
+ "defence": "110",
+ "slayer-level": "1",
+ "experience": 7000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2310,
+ "max-melee": "1564",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "The Zamorakian Undercity",
+ "slayer-exp": 7150,
+ "lifepoints": "140000",
+ "max-ranged": "1564",
+ "max-magic": "2570",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Greater demon berserker#Wilderness.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "159",
+ "defence": "104",
+ "slayer-level": "1",
+ "experience": 5500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1815,
+ "max-melee": "2793",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Wilderness",
+ "slayer-exp": 7150,
+ "lifepoints": "110000",
+ "max-ranged": "1564",
+ "max-magic": "1564",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Greater demon brute",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Greater demon brute#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "148",
+ "defence": "107",
+ "slayer-level": "1",
+ "experience": 5000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1650,
+ "max-melee": "2346",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "1564",
+ "max-magic": "1564",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Greater demon pyromancer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Greater demon pyromancer#The Zamorakian Undercity.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "132",
+ "defence": "98",
+ "slayer-level": "1",
+ "experience": 3500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1155,
+ "max-melee": "1564",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "The Zamorakian Undercity",
+ "slayer-exp": -1,
+ "lifepoints": "70000",
+ "max-ranged": "1564",
+ "max-magic": "2011",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Greater demon pyromancer#Wilderness.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "132",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 2500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 825,
+ "max-melee": "1564",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Wilderness",
+ "slayer-exp": -1,
+ "lifepoints": "50000",
+ "max-ranged": "1564",
+ "max-magic": "2011",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Greater demon sage",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Greater demon sage#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "146",
+ "defence": "104",
+ "slayer-level": "1",
+ "experience": 4500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1485,
+ "max-melee": "1564",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1564",
+ "max-magic": "2346",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Greater demon savage",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Greater demon savage#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "133",
+ "defence": "100",
+ "slayer-level": "1",
+ "experience": 4000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1320,
+ "max-melee": "2011",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 8000,
+ "lifepoints": "80000",
+ "max-ranged": "1564",
+ "max-magic": "1564",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Imp",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Imp#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"192\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 10,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 3.299999952316284,
+ "max-melee": "16",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Imp#God Wars Dungeon.png\" decoding=\"async\" loading=\"lazy\" width=\"192\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 10,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 3.299999952316284,
+ "max-melee": "16",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "God Wars Dungeon",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Imp scavenger",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Imp scavenger#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"219\" height=\"300\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1650,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 544.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "33000",
+ "max-ranged": "1296",
+ "max-magic": "1296",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "K'ril Tsutsaroth",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/K'ril Tsutsaroth#Hard mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"196\" id=\"image-?\">",
+ "level": "650",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "840",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2000",
+ "name": "Hard mode",
+ "slayer-exp": 3912.39990234375,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "840",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/K'ril Tsutsaroth#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"196\" id=\"image-?\">",
+ "level": "650",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 2750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"
+ ],
+ "lifepoint-exp": 907.5,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "6600",
+ "name": "Normal",
+ "slayer-exp": 2151.800048828125,
+ "lifepoints": "55000",
+ "max-ranged": "0",
+ "max-magic": "1500",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/K'ril Tsutsaroth#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"282\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 2250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 742.5,
+ "max-melee": "840",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2000",
+ "name": "The World Wakes",
+ "slayer-exp": 1804,
+ "lifepoints": "45000",
+ "max-ranged": "0",
+ "max-magic": "840",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Kal'gerion demon (The Shadow Reef)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon (The Shadow Reef)#Bloodchiller.png\" decoding=\"async\" loading=\"lazy\" width=\"167\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Bloodchiller",
+ "slayer-exp": 3404,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon (The Shadow Reef)#Pummeller.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Pummeller",
+ "slayer-exp": 3404,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon (The Shadow Reef)#Riftsplitter.png\" decoding=\"async\" loading=\"lazy\" width=\"173\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Riftsplitter",
+ "slayer-exp": 3404,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kal'gerion demon (The Shadow Reef)#Warmonger.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Warmonger",
+ "slayer-exp": 3404,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Lesser demon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Lesser demon#1.png\" decoding=\"async\" loading=\"lazy\" width=\"163\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "480",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Lesser demon#2.png\" decoding=\"async\" loading=\"lazy\" width=\"215\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "480",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Lesser demon#3.png\" decoding=\"async\" loading=\"lazy\" width=\"174\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "480",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Lesser demon#4.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "480",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Lesser demon#5.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "5",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "480",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Revenant demon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant demon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"131\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "1125",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 175,
+ "lifepoints": "7500",
+ "max-ranged": "1125",
+ "max-magic": "1125",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ripper Demon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ripper Demon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"291\" height=\"300\" id=\"image-?\">",
+ "level": "131",
+ "defence": "90",
+ "slayer-level": "96",
+ "experience": 1678.0999755859375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 553.7000122070312,
+ "max-melee": "950",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "32000",
+ "name": "Default",
+ "slayer-exp": 2721.60009765625,
+ "lifepoints": "33563",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Tormented demon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Tormented demon#Standard.png\" decoding=\"async\" loading=\"lazy\" width=\"179\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "950",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Standard",
+ "slayer-exp": 1136,
+ "lifepoints": "20000",
+ "max-ranged": "1150",
+ "max-magic": "1150",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Tormented demon#While Guthix Sleeps.png\" decoding=\"async\" loading=\"lazy\" width=\"149\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "950",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "While Guthix Sleeps",
+ "slayer-exp": 1136,
+ "lifepoints": "20000",
+ "max-ranged": "1150",
+ "max-magic": "1150",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Tstanon Karlak",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Tstanon Karlak#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"286\" height=\"300\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "365",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 272.79998779296875,
+ "lifepoints": "7500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Yor'Ger the Deceiver",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Yor'Ger the Deceiver#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "200",
+ "defence": "72",
+ "slayer-level": "0",
+ "experience": 9000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 2970,
+ "max-melee": "1425",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": 11368,
+ "lifepoints": "180000",
+ "max-ranged": "1425",
+ "max-magic": "1425",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Yor'Ger the Deceiver#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "?",
+ "slayer-level": "0",
+ "experience": -1,
+ "susceptible": [],
+ "lifepoint-exp": -1,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Zakl'n Gritch",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Zakl'n Gritch#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 375,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 150,
+ "lifepoints": "7500",
+ "max-ranged": "365",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Desert Lizard",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Desert Lizard#Green.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"183\" id=\"image-?\">",
+ "level": "30",
+ "defence": "22",
+ "slayer-level": "22",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "440",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Green",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "3600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Desert Lizard#Yellow.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"155\" id=\"image-?\">",
+ "level": "30",
+ "defence": "22",
+ "slayer-level": "22",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "440",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Yellow",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "3600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Desert Lizard#Brown.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"141\" id=\"image-?\">",
+ "level": "30",
+ "defence": "22",
+ "slayer-level": "22",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "440",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Brown",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "3600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Lizard",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Lizard#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"179\" id=\"image-?\">",
+ "level": "40",
+ "defence": "29",
+ "slayer-level": "22",
+ "experience": 232.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 76.69999694824219,
+ "max-melee": "580",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "4650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Small Lizard",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Small Lizard#Green.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"171\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "22",
+ "experience": 132.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Green",
+ "slayer-exp": 9.600000381469727,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Small Lizard#Yellow.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"215\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "22",
+ "experience": 132.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Yellow",
+ "slayer-exp": 9.600000381469727,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Desert strykewyrm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Desert strykewyrm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "103",
+ "defence": "74",
+ "slayer-level": "77",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "710",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "2000",
+ "name": "Default",
+ "slayer-exp": 376.6000061035156,
+ "lifepoints": "10000",
+ "max-ranged": "710",
+ "max-magic": "710",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Baby Dinosaur Skeleton",
+ "variants": []
+ },
+ {
+ "name": "Brutish dinosaur",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Brutish dinosaur#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"282\" id=\"image-?\">",
+ "level": "164",
+ "defence": "80",
+ "slayer-level": "99",
+ "experience": 3500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"
+ ],
+ "lifepoint-exp": 1155,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2757",
+ "name": "Normal",
+ "slayer-exp": 3100,
+ "lifepoints": "70000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Brutish dinosaur#Dinosaur invasion.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"282\" id=\"image-?\">",
+ "level": "164",
+ "defence": "80",
+ "slayer-level": "99",
+ "experience": 3500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"
+ ],
+ "lifepoint-exp": 1155,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2757",
+ "name": "Dinosaur invasion",
+ "slayer-exp": 3100,
+ "lifepoints": "70000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Feral Dinosaur",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Feral Dinosaur#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"187\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "90",
+ "experience": 2250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"
+ ],
+ "lifepoint-exp": 742.5,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal",
+ "slayer-exp": 1810,
+ "lifepoints": "45000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Feral Dinosaur#Dinosaur invasion.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"187\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "N/A",
+ "experience": 2250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 742.5,
+ "max-melee": "1224",
+ "weakness": [],
+ "max-spec": "N/A",
+ "name": "Dinosaur invasion",
+ "slayer-exp": -2,
+ "lifepoints": "45000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Orikalka",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Orikalka#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"255\" id=\"image-?\">",
+ "level": "888",
+ "defence": "96",
+ "slayer-level": "1",
+ "experience": 4750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"
+ ],
+ "lifepoint-exp": 1567.5,
+ "max-melee": "3129",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "4500",
+ "name": "Default",
+ "slayer-exp": 4500,
+ "lifepoints": "190000",
+ "max-ranged": "0",
+ "max-magic": "4500",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Osseous",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Osseous#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"283\" id=\"image-?\">",
+ "level": "888",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 17500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 5775,
+ "max-melee": "?",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Necromancy\" title=\"Necromancy\" target=\"_blank\"><img src=\"./images/weakness/s/Necromancy-icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "5100",
+ "name": "Default",
+ "slayer-exp": 394,
+ "lifepoints": "350000",
+ "max-ranged": "?",
+ "max-magic": "0",
+ "max-necromancy": "3129"
+ }]
+ },
+ {
+ "name": "Pthentraken",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Pthentraken#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"282\" id=\"image-?\">",
+ "level": "888",
+ "defence": "96",
+ "slayer-level": "1",
+ "experience": 4750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"
+ ],
+ "lifepoint-exp": 1567.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "5500",
+ "name": "Default",
+ "slayer-exp": 4545,
+ "lifepoints": "190000",
+ "max-ranged": "3500",
+ "max-magic": "3129",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Rathis",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Rathis#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"244\" id=\"image-?\">",
+ "level": "888",
+ "defence": "96",
+ "slayer-level": "1",
+ "experience": 4750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"
+ ],
+ "lifepoint-exp": 1567.5,
+ "max-melee": "3129",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "4500",
+ "name": "Default",
+ "slayer-exp": 4545,
+ "lifepoints": "190000",
+ "max-ranged": "3500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ripper dinosaur",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ripper dinosaur#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"208\" id=\"image-?\">",
+ "level": "176",
+ "defence": "80",
+ "slayer-level": "114",
+ "experience": 3250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "lifepoint-exp": 1072.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal",
+ "slayer-exp": 1904,
+ "lifepoints": "65000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ripper dinosaur#Dinosaur invasion.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"208\" id=\"image-?\">",
+ "level": "176",
+ "defence": "80",
+ "slayer-level": "N/A",
+ "experience": 3250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "lifepoint-exp": 1072.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Dinosaur invasion",
+ "slayer-exp": -2,
+ "lifepoints": "65000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Venomous dinosaur",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Venomous dinosaur#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"173\" id=\"image-?\">",
+ "level": "172",
+ "defence": "80",
+ "slayer-level": "105",
+ "experience": 1750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"
+ ],
+ "lifepoint-exp": 577.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal",
+ "slayer-exp": 1332,
+ "lifepoints": "35000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Venomous dinosaur#Dinosaur invasion.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"173\" id=\"image-?\">",
+ "level": "172",
+ "defence": "80",
+ "slayer-level": "N/A",
+ "experience": 1750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Necklace_of_Salamancy\" title=\"Necklace of Salamancy\" target=\"_blank\"><img src=\"./images/susceptible/Necklace_of_Salamancy.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "lifepoint-exp": 577.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Dinosaur invasion",
+ "slayer-exp": -2,
+ "lifepoints": "35000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Guard dog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Guard dog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"275\" height=\"300\" id=\"image-?\">",
+ "level": "33",
+ "defence": "24",
+ "slayer-level": "1",
+ "experience": 60,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 19.799999237060547,
+ "max-melee": "96",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 13.399999618530273,
+ "lifepoints": "1200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Jackal",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Jackal#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"203\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "1",
+ "experience": 175,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 57.70000076293945,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 43.20000076293945,
+ "lifepoints": "3500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Shadow Hound",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Shadow Hound#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"288\" id=\"image-?\">",
+ "level": "67",
+ "defence": "48",
+ "slayer-level": "1",
+ "experience": 120,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 39.599998474121094,
+ "max-melee": "192",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 39.400001525878906,
+ "lifepoints": "2400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Wild dog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wild dog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"270\" height=\"300\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": [],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 14,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Baby red dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Baby red dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"233\" height=\"300\" id=\"image-?\">",
+ "level": "47",
+ "defence": "34",
+ "slayer-level": "1",
+ "experience": 85,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28,
+ "max-melee": "136",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 20.600000381469727,
+ "lifepoints": "1700",
+ "max-ranged": "0",
+ "max-magic": "136",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Black stone dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Black stone dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"156\" id=\"image-?\">",
+ "level": "2500",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 16250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"
+ ],
+ "lifepoint-exp": 5362.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4000",
+ "name": "Default",
+ "slayer-exp": 37600,
+ "lifepoints": "650000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Brutal green dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Brutal green dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"219\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1250",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1500",
+ "name": "Default",
+ "slayer-exp": 440,
+ "lifepoints": "15000",
+ "max-ranged": "0",
+ "max-magic": "1250",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dragonstone dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dragonstone dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"231\" id=\"image-?\">",
+ "level": "119",
+ "defence": "85",
+ "slayer-level": "95",
+ "experience": 2000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 660,
+ "max-melee": "1561",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1561",
+ "name": "Default",
+ "slayer-exp": 1448.4000244140625,
+ "lifepoints": "40000",
+ "max-ranged": "0",
+ "max-magic": "1561",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dragonstone dragon (Dragonkin Laboratory)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dragonstone dragon (Dragonkin Laboratory)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"231\" id=\"image-?\">",
+ "level": "111",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 2750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 907.5,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 5100,
+ "lifepoints": "55000",
+ "max-ranged": "1224",
+ "max-magic": "1224",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Green dragon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Green dragon#1.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"255\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "297",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "1",
+ "slayer-exp": 68.5999984741211,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "297",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Green dragon#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"259\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "297",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "2",
+ "slayer-exp": 68.5999984741211,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "297",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Green dragon#3.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"232\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "297",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "3",
+ "slayer-exp": 68.5999984741211,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "297",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Green dragon#4.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"299\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "297",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "4",
+ "slayer-exp": 68.5999984741211,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "297",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Green dragon#5.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"224\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "297",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "5",
+ "slayer-exp": 68.5999984741211,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "297",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Hydrix dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hydrix dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "133",
+ "defence": "95",
+ "slayer-level": "101",
+ "experience": 3000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 990,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3900",
+ "name": "Default",
+ "slayer-exp": 4768.7998046875,
+ "lifepoints": "60000",
+ "max-ranged": "0",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hydrix dragon (Dragonkin Laboratory)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hydrix dragon (Dragonkin Laboratory)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "118",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 3750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1237.5,
+ "max-melee": "1745",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3900",
+ "name": "Default",
+ "slayer-exp": 17000,
+ "lifepoints": "75000",
+ "max-ranged": "1745",
+ "max-magic": "1745",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Iron dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Iron dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"222\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 123.69999694824219,
+ "max-melee": "488",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 245,
+ "lifepoints": "7500",
+ "max-ranged": "0",
+ "max-magic": "488",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mithril dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mithril dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"265\" id=\"image-?\">",
+ "level": "112",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 890,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 293.70001220703125,
+ "max-melee": "1068",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2700",
+ "name": "Default",
+ "slayer-exp": 564.4000244140625,
+ "lifepoints": "17800",
+ "max-ranged": "1068",
+ "max-magic": "1068",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Nodon artificer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nodon artificer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"241\" id=\"image-?\">",
+ "level": "120",
+ "defence": "94",
+ "slayer-level": "92",
+ "experience": 1500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 495,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1598",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Nodon engineer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nodon engineer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"209\" id=\"image-?\">",
+ "level": "150",
+ "defence": "95",
+ "slayer-level": "92",
+ "experience": 6250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2062.5,
+ "max-melee": "1506",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 2769,
+ "lifepoints": "50000",
+ "max-ranged": "1506",
+ "max-magic": "1506",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Nodon guard",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nodon guard#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"248\" id=\"image-?\">",
+ "level": "120",
+ "defence": "94",
+ "slayer-level": "92",
+ "experience": 1500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 495,
+ "max-melee": "1598",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Nodon hunter",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nodon hunter#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"263\" id=\"image-?\">",
+ "level": "120",
+ "defence": "94",
+ "slayer-level": "92",
+ "experience": 1500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 495,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "30000",
+ "max-ranged": "1598",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Onyx dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Onyx dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"187\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "98",
+ "experience": 2500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 825,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1653.8",
+ "name": "Default",
+ "slayer-exp": 1858.800048828125,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Onyx dragon (Dragonkin Laboratory)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Onyx dragon (Dragonkin Laboratory)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"187\" id=\"image-?\">",
+ "level": "114",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 3000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 990,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 6050,
+ "lifepoints": "60000",
+ "max-ranged": "1296",
+ "max-magic": "1296",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Red dragon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Red dragon#1.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"252\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "396",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "396",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Red dragon#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "396",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "396",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Red dragon#3.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"226\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "396",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "396",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Red dragon#4.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"262\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "396",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "396",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Red dragon#5.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"235\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "396",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "5",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "396",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Red dragon (Dragonkin Laboratory)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Red dragon (Dragonkin Laboratory)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"271\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 1450,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 478.5,
+ "max-melee": "1080",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 1227,
+ "lifepoints": "29000",
+ "max-ranged": "1080",
+ "max-magic": "1080",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Rune dragon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Rune dragon#Armoured.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"234\" id=\"image-?\">",
+ "level": "127",
+ "defence": "90",
+ "slayer-level": "76",
+ "experience": 3412.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1126.0999755859375,
+ "max-melee": "1820",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "10000",
+ "name": "Armoured",
+ "slayer-exp": 2051,
+ "lifepoints": "68250",
+ "max-ranged": "1820",
+ "max-magic": "1820",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Rune dragon#Unarmoured.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "127",
+ "defence": "90",
+ "slayer-level": "76",
+ "experience": 3412.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1126.0999755859375,
+ "max-melee": "1820",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "10000",
+ "name": "Unarmoured",
+ "slayer-exp": 2051,
+ "lifepoints": "68250",
+ "max-ranged": "1820",
+ "max-magic": "1820",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Sangri the Red",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Sangri the Red#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"271\" id=\"image-?\">",
+ "level": "131",
+ "defence": "94",
+ "slayer-level": "1",
+ "experience": 8750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2887.5,
+ "max-melee": "1353",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4000",
+ "name": "Default",
+ "slayer-exp": 14077,
+ "lifepoints": "175000",
+ "max-ranged": "1353",
+ "max-magic": "1353",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Siege engine",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Siege engine#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"181\" id=\"image-?\">",
+ "level": "150",
+ "defence": "90",
+ "slayer-level": "92",
+ "experience": 2400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 792,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1505,
+ "lifepoints": "30000",
+ "max-ranged": "1653",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Steel dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Steel dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"264\" id=\"image-?\">",
+ "level": "100",
+ "defence": "72",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 165,
+ "max-melee": "508",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2100",
+ "name": "Default",
+ "slayer-exp": 350,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "508",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dust devil",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dust devil#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"175\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "61",
+ "slayer-level": "65",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 192.8000030517578,
+ "lifepoints": "8000",
+ "max-ranged": "244",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dust devil (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dust devil (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"175\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "61",
+ "slayer-level": "65",
+ "experience": 1600,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 528,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 684,
+ "lifepoints": "32000",
+ "max-ranged": "732",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Earth warrior",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Earth warrior#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "61",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 482.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 159.1999969482422,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 57.5,
+ "lifepoints": "9650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Earth warrior (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Earth warrior (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 1630,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 537.9000244140625,
+ "max-melee": "800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 295,
+ "lifepoints": "32600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cadarn magus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cadarn magus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"171\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1791",
+ "name": "Default",
+ "slayer-exp": 608,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "1083",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cadarn ranger",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cadarn ranger#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"141\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "1300",
+ "name": "Default",
+ "slayer-exp": 608,
+ "lifepoints": "10000",
+ "max-ranged": "1083",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Elf warrior",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Elf warrior#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 49.5,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee",
+ "slayer-exp": 73.5999984741211,
+ "lifepoints": "3000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Elf warrior#Range.png\" decoding=\"async\" loading=\"lazy\" width=\"126\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 160,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 52.79999923706055,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Range",
+ "slayer-exp": 89.4000015258789,
+ "lifepoints": "3200",
+ "max-ranged": "256",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Iorwerth guard",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Iorwerth guard#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"90\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "1899",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 608,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Iorwerth scout",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Iorwerth scout#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"107\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 608,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Knight of Ardougne (West Ardougne)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Knight of Ardougne (West Ardougne)#Surface.png\" decoding=\"async\" loading=\"lazy\" width=\"173\" height=\"300\" id=\"image-?\">",
+ "level": "33",
+ "defence": "24",
+ "slayer-level": "1",
+ "experience": 80,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 26.399999618530273,
+ "max-melee": "96",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Surface",
+ "slayer-exp": 0,
+ "lifepoints": "1200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Knight of Ardougne (West Ardougne)#Mourner Tunnels.png\" decoding=\"async\" loading=\"lazy\" width=\"173\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 203.3000030517578,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 67,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Mourner Tunnels",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Mourner (Mourner Tunnels)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mourner (Mourner Tunnels)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"221\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 81,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Seren archer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Seren archer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"192\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 334.20001220703125,
+ "lifepoints": "8000",
+ "max-ranged": "980",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Seren mage",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Seren mage#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"161\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 334.20001220703125,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "980",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Seren warrior",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Seren warrior#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"191\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "980",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 334.20001220703125,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Fetid zombie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Fetid zombie#1.png\" decoding=\"async\" loading=\"lazy\" width=\"128\" height=\"300\" id=\"image-?\">",
+ "level": "66",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "480",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 100,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Fetid zombie#2.png\" decoding=\"async\" loading=\"lazy\" width=\"130\" height=\"300\" id=\"image-?\">",
+ "level": "66",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "480",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 100,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Fever spider",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Fever spider#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"202\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "42",
+ "experience": 210,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 69.30000305175781,
+ "max-melee": "740",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "4200",
+ "max-ranged": "840",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Fire giant",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Fire giant#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"127\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 335,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 110.5,
+ "max-melee": "335",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 161.1999969482422,
+ "lifepoints": "6700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Flesh Crawler",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Flesh Crawler#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"262\" id=\"image-?\">",
+ "level": "26",
+ "defence": "22",
+ "slayer-level": "1",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 50,
+ "lifepoints": "3600",
+ "max-ranged": "320",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Big frog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Big frog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"140\" id=\"image-?\">",
+ "level": "18",
+ "defence": "20",
+ "slayer-level": "1",
+ "experience": 165,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 54.400001525878906,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 14.399999618530273,
+ "lifepoints": "3300",
+ "max-ranged": "120",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Frog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Frog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"265\" id=\"image-?\">",
+ "level": "67",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 235,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 77.5,
+ "max-melee": "800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "4700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Frogeel",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Frogeel#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"160\" id=\"image-?\">",
+ "level": "68",
+ "defence": "49",
+ "slayer-level": "1",
+ "experience": 410,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 135.3000030517578,
+ "max-melee": "720",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 41.400001525878906,
+ "lifepoints": "8200",
+ "max-ranged": "980",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant frog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Giant frog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"140\" id=\"image-?\">",
+ "level": "33",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 255,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 84.0999984741211,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 18.799999237060547,
+ "lifepoints": "5100",
+ "max-ranged": "300",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Plague frog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Plague frog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"253\" id=\"image-?\">",
+ "level": "17",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 19.200000762939453,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Swamp frog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Swamp frog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"140\" id=\"image-?\">",
+ "level": "11",
+ "defence": "12",
+ "slayer-level": "1",
+ "experience": 55,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 18.100000381469727,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 10,
+ "lifepoints": "1100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Fungal mage",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Fungal mage#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"204\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 63.599998474121094,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "232",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Fungal mage#Weakened.png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Weakened",
+ "slayer-exp": 63.599998474121094,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "116",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ganodermic beast",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ganodermic beast#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"282\" height=\"300\" id=\"image-?\">",
+ "level": "112",
+ "defence": "70",
+ "slayer-level": "95",
+ "experience": 625,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 565,
+ "lifepoints": "12500",
+ "max-ranged": "0",
+ "max-magic": "332",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ganodermic beast#Neem oil.png\" decoding=\"async\" loading=\"lazy\" width=\"255\" height=\"300\" id=\"image-?\">",
+ "level": "112",
+ "defence": "60",
+ "slayer-level": "95",
+ "experience": 625,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Neem oil",
+ "slayer-exp": 565,
+ "lifepoints": "12500",
+ "max-ranged": "0",
+ "max-magic": "166",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ganodermic runt",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ganodermic runt#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"297\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "95",
+ "experience": 625,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 564.4000244140625,
+ "lifepoints": "12500",
+ "max-ranged": "332",
+ "max-magic": "332",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ganodermic runt#Neem oil.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"268\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "95",
+ "experience": 625,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Neem oil",
+ "slayer-exp": 564.4000244140625,
+ "lifepoints": "12500",
+ "max-ranged": "166",
+ "max-magic": "166",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Gelatinous abomination",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Gelatinous abomination#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"164\" height=\"300\" id=\"image-?\">",
+ "level": "2",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 25,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 8.199999809265137,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 19,
+ "lifepoints": "500",
+ "max-ranged": "0",
+ "max-magic": "60",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ahrim the Blighted",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ahrim the Blighted#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"195\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 395,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "1260",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ahrim the Blighted#Rise of the Six.png\" decoding=\"async\" loading=\"lazy\" width=\"271\" height=\"300\" id=\"image-?\">",
+ "level": "650",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 412.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Rise of the Six",
+ "slayer-exp": 0,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "864",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ahrim the Blighted#Ritual of the Mahjarrat.png\" decoding=\"async\" loading=\"lazy\" width=\"195\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 412.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ritual of the Mahjarrat",
+ "slayer-exp": 395,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "864",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Akrisae the Doomed",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Akrisae the Doomed#Barrows.png\" decoding=\"async\" loading=\"lazy\" width=\"199\" height=\"300\" id=\"image-?\">",
+ "level": "115",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Barrows",
+ "slayer-exp": -1,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "2167",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Akrisae the Doomed#Gregorovic.png\" decoding=\"async\" loading=\"lazy\" width=\"199\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Gregorovic",
+ "slayer-exp": -1,
+ "lifepoints": "1000000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Akrisae the Doomed#Sliske's Endgame.png\" decoding=\"async\" loading=\"lazy\" width=\"199\" height=\"300\" id=\"image-?\">",
+ "level": "650",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": -1,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": -1,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Sliske's Endgame",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Dharok the Wretched",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Dharok the Wretched#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"143\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "1260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3150",
+ "name": "Normal",
+ "slayer-exp": 395,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dharok the Wretched#Ritual of the Mahjarrat.png\" decoding=\"async\" loading=\"lazy\" width=\"143\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3150",
+ "name": "Ritual of the Mahjarrat",
+ "slayer-exp": 395,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dharok the Wretched#Rise of the Six.png\" decoding=\"async\" loading=\"lazy\" width=\"228\" height=\"300\" id=\"image-?\">",
+ "level": "650",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3150",
+ "name": "Rise of the Six",
+ "slayer-exp": 0,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ghast",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ghast#Regular.png\" decoding=\"async\" loading=\"lazy\" width=\"275\" height=\"300\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "150",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Regular",
+ "slayer-exp": -1,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghast#Temple Trekking (Easy Route).png\" decoding=\"async\" loading=\"lazy\" width=\"275\" height=\"300\" id=\"image-?\">",
+ "level": "28",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": -1,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": -1,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Temple Trekking (Easy Route)",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghast#Temple Trekking (Medium Route).png\" decoding=\"async\" loading=\"lazy\" width=\"275\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": -1,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": -1,
+ "max-melee": "180",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Temple Trekking (Medium Route)",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghast#Temple Trekking (Hard Route).png\" decoding=\"async\" loading=\"lazy\" width=\"275\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": -1,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": -1,
+ "max-melee": "260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Temple Trekking (Hard Route)",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ghost",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ghost#1.png\" decoding=\"async\" loading=\"lazy\" width=\"182\" height=\"300\" id=\"image-?\">",
+ "level": "25",
+ "defence": "18",
+ "slayer-level": "1",
+ "experience": 59.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19.600000381469727,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 10,
+ "lifepoints": "900",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost#2.png\" decoding=\"async\" loading=\"lazy\" width=\"133\" height=\"300\" id=\"image-?\">",
+ "level": "25",
+ "defence": "18",
+ "slayer-level": "1",
+ "experience": 59.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19.600000381469727,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 10,
+ "lifepoints": "900",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost#3.png\" decoding=\"async\" loading=\"lazy\" width=\"182\" height=\"300\" id=\"image-?\">",
+ "level": "25",
+ "defence": "18",
+ "slayer-level": "1",
+ "experience": 59.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19.600000381469727,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 10,
+ "lifepoints": "900",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost#4.png\" decoding=\"async\" loading=\"lazy\" width=\"126\" height=\"300\" id=\"image-?\">",
+ "level": "25",
+ "defence": "18",
+ "slayer-level": "1",
+ "experience": 59.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19.600000381469727,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": 10,
+ "lifepoints": "900",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost#5.png\" decoding=\"async\" loading=\"lazy\" width=\"132\" height=\"300\" id=\"image-?\">",
+ "level": "25",
+ "defence": "18",
+ "slayer-level": "1",
+ "experience": 59.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19.600000381469727,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "5",
+ "slayer-exp": 10,
+ "lifepoints": "900",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost#6.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "25",
+ "defence": "18",
+ "slayer-level": "1",
+ "experience": 59.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19.600000381469727,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "6",
+ "slayer-exp": 10,
+ "lifepoints": "900",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost#7.png\" decoding=\"async\" loading=\"lazy\" width=\"115\" height=\"300\" id=\"image-?\">",
+ "level": "25",
+ "defence": "18",
+ "slayer-level": "1",
+ "experience": 59.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 19.600000381469727,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "7",
+ "slayer-exp": 10,
+ "lifepoints": "900",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ghost (Abandoned Mine)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ghost (Abandoned Mine)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "42",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": -1,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": -1,
+ "max-melee": "120",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ghost (Ourania Runecrafting Altar)",
+ "variants": []
+ },
+ {
+ "name": "Ghost (Shattered Worlds)",
+ "variants": []
+ },
+ {
+ "name": "Ghost (Spirit of Summer)",
+ "variants": []
+ },
+ {
+ "name": "Ghost (Stronghold of Security)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ghost (Stronghold of Security)#1.png\" decoding=\"async\" loading=\"lazy\" width=\"150\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 265,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 87.4000015258789,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 69,
+ "lifepoints": "5300",
+ "max-ranged": "0",
+ "max-magic": "825",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost (Stronghold of Security)#2.png\" decoding=\"async\" loading=\"lazy\" width=\"133\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 265,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 87.4000015258789,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 69,
+ "lifepoints": "5300",
+ "max-ranged": "0",
+ "max-magic": "825",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost (Stronghold of Security)#3.png\" decoding=\"async\" loading=\"lazy\" width=\"115\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 265,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 87.4000015258789,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 69,
+ "lifepoints": "5300",
+ "max-ranged": "0",
+ "max-magic": "825",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost (Stronghold of Security)#4.png\" decoding=\"async\" loading=\"lazy\" width=\"126\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 265,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 87.4000015258789,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": 69,
+ "lifepoints": "5300",
+ "max-ranged": "0",
+ "max-magic": "825",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghost (Stronghold of Security)#5.png\" decoding=\"async\" loading=\"lazy\" width=\"133\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 265,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 87.4000015258789,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "5",
+ "slayer-exp": 69,
+ "lifepoints": "5300",
+ "max-ranged": "0",
+ "max-magic": "825",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ghost healer",
+ "variants": []
+ },
+ {
+ "name": "Ghostly troll bruiser",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ghostly troll bruiser#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 20.799999237060547,
+ "lifepoints": "1800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ghostly troll thrower",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ghostly troll thrower#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"242\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 20.799999237060547,
+ "lifepoints": "1800",
+ "max-ranged": "100",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ghostly warrior",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ghostly warrior#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"133\" height=\"300\" id=\"image-?\">",
+ "level": "61",
+ "defence": "44",
+ "slayer-level": "1",
+ "experience": 110,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 36.29999923706055,
+ "max-melee": "176",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 32.599998474121094,
+ "lifepoints": "2200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Guthan the Infested",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Guthan the Infested#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"102\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 881.4000244140625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 290.79998779296875,
+ "max-melee": "1260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 395,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Guthan the Infested#Ritual of the Mahjarrat.png\" decoding=\"async\" loading=\"lazy\" width=\"102\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ritual of the Mahjarrat",
+ "slayer-exp": -1,
+ "lifepoints": "3750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Guthan the Infested#Rise of the Six.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"276\" id=\"image-?\">",
+ "level": "650",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 7149.60009765625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 2359.300048828125,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Rise of the Six",
+ "slayer-exp": 0,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Karil the Tainted",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Karil the Tainted#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"161\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 395,
+ "lifepoints": "12000",
+ "max-ranged": "1260",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Karil the Tainted#Rise of the Six.png\" decoding=\"async\" loading=\"lazy\" width=\"270\" height=\"300\" id=\"image-?\">",
+ "level": "650",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 412.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "8000",
+ "name": "Rise of the Six",
+ "slayer-exp": 0,
+ "lifepoints": "50000",
+ "max-ranged": "864",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Linza the Disgraced",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Linza the Disgraced#Barrows.png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 3750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 1237.5,
+ "max-melee": "1200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Barrows",
+ "slayer-exp": 440,
+ "lifepoints": "150000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Linza the Disgraced#Sliske's Endgame.png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Sliske's Endgame",
+ "slayer-exp": -1,
+ "lifepoints": "150000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Masuta the Descended",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Masuta the Descended#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"205\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "85",
+ "slayer-level": "?",
+ "experience": 9750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 3217.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "195000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant cyclops",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant cyclops#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"117\" height=\"300\" id=\"image-?\">",
+ "level": "60",
+ "defence": "43",
+ "slayer-level": "1",
+ "experience": 322.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 106.4000015258789,
+ "max-melee": "967",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 93.19999694824219,
+ "lifepoints": "6450",
+ "max-ranged": "967",
+ "max-magic": "967",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant dragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant dragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"161\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 517.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 170.6999969482422,
+ "max-melee": "1552",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 712.4000244140625,
+ "lifepoints": "10350",
+ "max-ranged": "1552",
+ "max-magic": "1552",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant goblin",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Revenant goblin#16.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"294\" id=\"image-?\">",
+ "level": "16",
+ "defence": "12",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "270",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "16",
+ "slayer-exp": 27.799999237060547,
+ "lifepoints": "1800",
+ "max-ranged": "270",
+ "max-magic": "270",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Revenant goblin#19.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"294\" id=\"image-?\">",
+ "level": "19",
+ "defence": "20",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 49.5,
+ "max-melee": "450",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "19",
+ "slayer-exp": 28.399999618530273,
+ "lifepoints": "3000",
+ "max-ranged": "450",
+ "max-magic": "450",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Revenant goblin#22.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"294\" id=\"image-?\">",
+ "level": "22",
+ "defence": "20",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 49.5,
+ "max-melee": "450",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "22",
+ "slayer-exp": 29.600000381469727,
+ "lifepoints": "3000",
+ "max-ranged": "450",
+ "max-magic": "450",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Revenant goblin#28.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"294\" id=\"image-?\">",
+ "level": "28",
+ "defence": "20",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 49.5,
+ "max-melee": "450",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "28",
+ "slayer-exp": 34.599998474121094,
+ "lifepoints": "3000",
+ "max-ranged": "450",
+ "max-magic": "450",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Revenant hellhound",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant hellhound#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 352.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 116.30000305175781,
+ "max-melee": "1057",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 122.19999694824219,
+ "lifepoints": "7050",
+ "max-ranged": "1057",
+ "max-magic": "1057",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant hobgoblin",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant hobgoblin#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"162\" height=\"300\" id=\"image-?\">",
+ "level": "44",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 240,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 79.19999694824219,
+ "max-melee": "720",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 56.599998474121094,
+ "lifepoints": "4800",
+ "max-ranged": "720",
+ "max-magic": "720",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant icefiend",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant icefiend#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"194\" height=\"300\" id=\"image-?\">",
+ "level": "37",
+ "defence": "27",
+ "slayer-level": "1",
+ "experience": 202.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 66.80000305175781,
+ "max-melee": "607",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 45.599998474121094,
+ "lifepoints": "4050",
+ "max-ranged": "607",
+ "max-magic": "607",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant imp",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant imp#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"273\" height=\"300\" id=\"image-?\">",
+ "level": "14",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 75,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 24.700000762939453,
+ "max-melee": "225",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 25,
+ "lifepoints": "1500",
+ "max-ranged": "225",
+ "max-magic": "225",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant knight",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant knight#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"161\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 487.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 160.8000030517578,
+ "max-melee": "1462",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 552.7999877929688,
+ "lifepoints": "9750",
+ "max-ranged": "1462",
+ "max-magic": "1462",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant ork",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant ork#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"174\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 412.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 136.10000610351562,
+ "max-melee": "1237",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 269.20001220703125,
+ "lifepoints": "8250",
+ "max-ranged": "1237",
+ "max-magic": "1237",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant pyrefiend",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant pyrefiend#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"199\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "29",
+ "slayer-level": "1",
+ "experience": 217.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 71.69999694824219,
+ "max-melee": "652",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 50.20000076293945,
+ "lifepoints": "4350",
+ "max-ranged": "652",
+ "max-magic": "652",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant vampyre",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant vampyre#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"163\" height=\"300\" id=\"image-?\">",
+ "level": "47",
+ "defence": "34",
+ "slayer-level": "1",
+ "experience": 255,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 84.0999984741211,
+ "max-melee": "765",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 62.20000076293945,
+ "lifepoints": "5100",
+ "max-ranged": "765",
+ "max-magic": "765",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Revenant werewolf",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Revenant werewolf#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"171\" height=\"300\" id=\"image-?\">",
+ "level": "53",
+ "defence": "38",
+ "slayer-level": "1",
+ "experience": 285,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Revenant_bane_equipment\" title=\"Revenant bane equipment\" target=\"_blank\"><img src=\"./images/susceptible/Corrupt_Vesta%27s_longsword.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 94,
+ "max-melee": "855",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 74.4000015258789,
+ "lifepoints": "5700",
+ "max-ranged": "855",
+ "max-magic": "855",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Risen ghost",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Risen ghost#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"196\" height=\"300\" id=\"image-?\">",
+ "level": "101",
+ "defence": "70",
+ "slayer-level": "85",
+ "experience": 1500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 495,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1000,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1117",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Shade",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Shade#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"135\" height=\"300\" id=\"image-?\">",
+ "level": "52",
+ "defence": "44",
+ "slayer-level": "1",
+ "experience": 362.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 119.5999984741211,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 70,
+ "lifepoints": "7250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Shadow warrior",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Shadow warrior#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"107\" height=\"300\" id=\"image-?\">",
+ "level": "65",
+ "defence": "47",
+ "slayer-level": "1",
+ "experience": 390,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 128.6999969482422,
+ "max-melee": "940",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 113,
+ "lifepoints": "7800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Torag the Corrupted",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Torag the Corrupted#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"149\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "1260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Normal",
+ "slayer-exp": 395,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Torag the Corrupted#Rise of the Six.png\" decoding=\"async\" loading=\"lazy\" width=\"179\" height=\"300\" id=\"image-?\">",
+ "level": "650",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Rise of the Six",
+ "slayer-exp": 0,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Tormented soul (Uncharted Isles)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Tormented soul (Uncharted Isles)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"150\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "268",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 98.5999984741211,
+ "lifepoints": "1000",
+ "max-ranged": "268",
+ "max-magic": "268",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Tormented wraith",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Tormented wraith#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"117\" height=\"300\" id=\"image-?\">",
+ "level": "42",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "270",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 52,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "120",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Tortured soul (Port Phasmatys)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Tortured soul (Port Phasmatys)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "53",
+ "defence": "38",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 49.5,
+ "max-melee": "114",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 38.79999923706055,
+ "lifepoints": "3000",
+ "max-ranged": "0",
+ "max-magic": "152",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Verac the Defiled",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Verac the Defiled#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "1260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": -1,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Verac the Defiled#Rise of the Six.png\" decoding=\"async\" loading=\"lazy\" width=\"166\" height=\"300\" id=\"image-?\">",
+ "level": "650",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Rise of the Six",
+ "slayer-exp": 0,
+ "lifepoints": "50000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Wight",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wight#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"218\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 132,
+ "max-melee": "980",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Wight (Missing, Presumed Death)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wight (Missing, Presumed Death)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 17.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 5.699999809265137,
+ "max-melee": "25",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "350",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Wight ranger",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wight ranger#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"194\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ghost_hunter_equipment\" title=\"Ghost hunter equipment\" target=\"_blank\"><img src=\"./images/susceptible/s/Ghost_hunter_backpack.png\" decoding=\"async\" loading=\"lazy\" width=\"20\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 132,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "8000",
+ "max-ranged": "980",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Wight ranger (Sliske's Endgame)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Wight ranger (Sliske's Endgame)#78.png\" decoding=\"async\" loading=\"lazy\" width=\"212\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": 206.25,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 68,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "78",
+ "slayer-exp": -1,
+ "lifepoints": "4125",
+ "max-ranged": "192",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Wight ranger (Sliske's Endgame)#78 (Weak in slash).png\" decoding=\"async\" loading=\"lazy\" width=\"212\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": 206.25,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 68,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "78 (Weak in slash)",
+ "slayer-exp": -1,
+ "lifepoints": "4125",
+ "max-ranged": "1676.3",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Wight ranger (Sliske's Endgame)#85.png\" decoding=\"async\" loading=\"lazy\" width=\"212\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": 206.25,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 68,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "85",
+ "slayer-exp": -1,
+ "lifepoints": "4125",
+ "max-ranged": "384",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Ghoul",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ghoul#Brown.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "50",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 325,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 107.19999694824219,
+ "max-melee": "620",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Brown",
+ "slayer-exp": 35.79999923706055,
+ "lifepoints": "6500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ghoul#Blue.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "50",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 325,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 107.19999694824219,
+ "max-melee": "620",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Blue",
+ "slayer-exp": 35.79999923706055,
+ "lifepoints": "6500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ghoul (Paterdomus)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ghoul (Paterdomus)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "33",
+ "defence": "24",
+ "slayer-level": "1",
+ "experience": 60,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 19.799999237060547,
+ "max-melee": "96",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "1200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ravenous ghoul",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ravenous ghoul#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"257\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 725,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 239.1999969482422,
+ "max-melee": "595",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 440,
+ "lifepoints": "14500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ravenous ghoul (Mazchna)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ravenous ghoul (Mazchna)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 475,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 156.6999969482422,
+ "max-melee": "480",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 440,
+ "lifepoints": "9500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Arch-Glacor",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Arch-Glacor#Hard mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"233\" id=\"image-?\">",
+ "level": "7000",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 1625,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 536.2000122070312,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "32000",
+ "name": "Hard mode",
+ "slayer-exp": 4810,
+ "lifepoints": "65000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Arch-Glacor#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"233\" id=\"image-?\">",
+ "level": "7000",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 1625,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 536.2000122070312,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "32000",
+ "name": "Normal mode",
+ "slayer-exp": 4810,
+ "lifepoints": "65000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Bolstered Glacyte",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bolstered Glacyte#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"269\" height=\"300\" id=\"image-?\">",
+ "level": "131",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "950",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "1250",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Enduring glacyte",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Enduring glacyte#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"298\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 333.29998779296875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 109.9000015258789,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 0,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Glacor",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Glacor#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"265\" height=\"300\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 2000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 660,
+ "max-melee": "1266",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "Varies",
+ "name": "Default",
+ "slayer-exp": 1881,
+ "lifepoints": "40000",
+ "max-ranged": "1266",
+ "max-magic": "1266",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Glacyte",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Glacyte#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"269\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "80",
+ "slayer-level": "84",
+ "experience": 250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 82.5,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee",
+ "slayer-exp": 182,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Glacyte#Magic.png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "80",
+ "slayer-level": "84",
+ "experience": 250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 82.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic",
+ "slayer-exp": 182,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Glacyte (Arch-Glacor)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Glacyte (Arch-Glacor)#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"269\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee",
+ "slayer-exp": -1,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Glacyte (Arch-Glacor)#Magic.png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "105",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 82.5,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic",
+ "slayer-exp": -1,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Sapping glacyte",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Sapping glacyte#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"296\" id=\"image-?\">",
+ "level": "114",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 333.29998779296875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 109.9000015258789,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 0,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Unstable glacyte",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Unstable glacyte#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"289\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 333.29998779296875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 109.9000015258789,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "Varies",
+ "name": "Default",
+ "slayer-exp": 0,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Angry goblin",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Angry goblin#A Soul's Bane.png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "45",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "A Soul's Bane",
+ "slayer-exp": 0,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Angry goblin#Post-quest.png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Post-quest",
+ "slayer-exp": 14,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Brokeface",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Brokeface#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"198\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "150",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cave goblin (monster)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Cave goblin (monster)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"172\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 2.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0.800000011920929,
+ "max-melee": "4",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "50",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Cave goblin guard",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Cave goblin guard#Club.png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "60",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Club",
+ "slayer-exp": 9.600000381469727,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cave goblin guard#Spear.png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "60",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Spear",
+ "slayer-exp": 9.600000381469727,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Cave goblin miner",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Cave goblin miner#Mining.png\" decoding=\"async\" loading=\"lazy\" width=\"208\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": [],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Mining",
+ "slayer-exp": 6.800000190734863,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Cave goblin miner#Slacking off.png\" decoding=\"async\" loading=\"lazy\" width=\"208\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": [],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Slacking off",
+ "slayer-exp": 6.800000190734863,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Goblin",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Goblin#Level 2.png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "2",
+ "defence": "2",
+ "slayer-level": "1",
+ "experience": 27.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 9,
+ "max-melee": "40",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Level 2",
+ "slayer-exp": -1,
+ "lifepoints": "550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin#Level 5.png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Level 5",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin#Level 11.png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "11",
+ "defence": "8",
+ "slayer-level": "1",
+ "experience": 87.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "160",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Level 11",
+ "slayer-exp": -1,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin#Level 1 (Slayer challenge).png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 2.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0.800000011920929,
+ "max-melee": "4",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Level 1 (Slayer challenge)",
+ "slayer-exp": -1,
+ "lifepoints": "50",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin#Level 5 (Slayer challenge).png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 10,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3.299999952316284,
+ "max-melee": "16",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Level 5 (Slayer challenge)",
+ "slayer-exp": -1,
+ "lifepoints": "200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin#Level 11 (Slayer challenge).png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "11",
+ "defence": "8",
+ "slayer-level": "1",
+ "experience": 20,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "32",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Level 11 (Slayer challenge)",
+ "slayer-exp": -1,
+ "lifepoints": "400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Goblin (Goblin Village)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Red (1).png\" decoding=\"async\" loading=\"lazy\" width=\"271\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Red (1)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Red (2).png\" decoding=\"async\" loading=\"lazy\" width=\"273\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Red (2)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Red (3).png\" decoding=\"async\" loading=\"lazy\" width=\"196\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Red (3)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Red (4).png\" decoding=\"async\" loading=\"lazy\" width=\"280\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Red (4)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Red (5).png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Red (5)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Red (6).png\" decoding=\"async\" loading=\"lazy\" width=\"170\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Red (6)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Green (1).png\" decoding=\"async\" loading=\"lazy\" width=\"271\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Green (1)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Green (2).png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Green (2)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Green (3).png\" decoding=\"async\" loading=\"lazy\" width=\"273\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Green (3)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Green (4).png\" decoding=\"async\" loading=\"lazy\" width=\"196\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Green (4)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Green (5).png\" decoding=\"async\" loading=\"lazy\" width=\"164\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Green (5)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Goblin Village)#Green (6).png\" decoding=\"async\" loading=\"lazy\" width=\"170\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Green (6)",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Goblin (God Wars Dungeon)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Goblin (God Wars Dungeon)#Sword.png\" decoding=\"async\" loading=\"lazy\" width=\"205\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Sword",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (God Wars Dungeon)#Warhammer.png\" decoding=\"async\" loading=\"lazy\" width=\"201\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Warhammer",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (God Wars Dungeon)#Banner.png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Banner",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (God Wars Dungeon)#Spear.png\" decoding=\"async\" loading=\"lazy\" width=\"189\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Spear",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (God Wars Dungeon)#Battleaxe.png\" decoding=\"async\" loading=\"lazy\" width=\"200\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Battleaxe",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Goblin (Stronghold of Security)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Stronghold of Security)#Level 5 (a).png\" decoding=\"async\" loading=\"lazy\" width=\"220\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 5 (a)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Stronghold of Security)#Level 5 (b).png\" decoding=\"async\" loading=\"lazy\" width=\"211\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 5 (b)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Stronghold of Security)#Level 5 (c).png\" decoding=\"async\" loading=\"lazy\" width=\"213\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 5 (c)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Stronghold of Security)#Level 5 (d).png\" decoding=\"async\" loading=\"lazy\" width=\"213\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 5 (d)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Stronghold of Security)#Level 5 (e).png\" decoding=\"async\" loading=\"lazy\" width=\"213\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 5 (e)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Goblin (Stronghold of Security)#Level 5 (f).png\" decoding=\"async\" loading=\"lazy\" width=\"213\" height=\"300\" id=\"image-?\">",
+ "level": "5",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "80",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 5 (f)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Guard (cave goblin)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Guard (cave goblin)#Club.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Club",
+ "slayer-exp": 29.600000381469727,
+ "lifepoints": "2100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Guard (cave goblin)#Spear.png\" decoding=\"async\" loading=\"lazy\" width=\"146\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Spear",
+ "slayer-exp": 29.600000381469727,
+ "lifepoints": "2100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Lumpnose",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Lumpnose#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"240\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1800",
+ "max-ranged": "150",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Sergeant Grimspike",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Sergeant Grimspike#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"222\" height=\"300\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 273.70001220703125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 90.30000305175781,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 199.1999969482422,
+ "lifepoints": "5475",
+ "max-ranged": "365",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Sergeant Steelwill",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Sergeant Steelwill#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"206\" height=\"300\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 273.70001220703125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 90.30000305175781,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 199.1999969482422,
+ "lifepoints": "5475",
+ "max-ranged": "0",
+ "max-magic": "365",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Sergeant Strongstack",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Sergeant Strongstack#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"266\" height=\"300\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 273.70001220703125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 90.30000305175781,
+ "max-melee": "365",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 199.1999969482422,
+ "lifepoints": "5475",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skoblin",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skoblin#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"163\" height=\"300\" id=\"image-?\">",
+ "level": "19",
+ "defence": "14",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 9.399999618530273,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Stinkears",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Stinkears#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"203\" height=\"300\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "1800",
+ "max-ranged": "0",
+ "max-magic": "150",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Gorak",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Gorak#Gorak Plane.png\" decoding=\"async\" loading=\"lazy\" width=\"224\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Gorak Plane",
+ "slayer-exp": 49.79999923706055,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Gorak#God Wars Dungeon.png\" decoding=\"async\" loading=\"lazy\" width=\"224\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 598.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 197.5,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "God Wars Dungeon",
+ "slayer-exp": 207.39999389648438,
+ "lifepoints": "6800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Gorak#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"224\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 598.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 197.5,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "The World Wakes",
+ "slayer-exp": -1,
+ "lifepoints": "6800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Butcher demon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Butcher demon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"233\" height=\"300\" id=\"image-?\">",
+ "level": "118",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 5000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1650,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 5680.2001953125,
+ "lifepoints": "100000",
+ "max-ranged": "1653",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Champion of Infernus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Champion of Infernus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"195\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 1136,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "816",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Chaos Demon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Chaos Demon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "100",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 750,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 247.5,
+ "max-melee": "2212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "15000",
+ "max-ranged": "2212",
+ "max-magic": "2212",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Chaos Demon Savage",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Chaos Demon Savage#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "141",
+ "defence": "110",
+ "slayer-level": "1",
+ "experience": 3500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1155,
+ "max-melee": "2011",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 8000,
+ "lifepoints": "70000",
+ "max-ranged": "1564",
+ "max-magic": "1564",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Denizen of Infernus",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Denizen of Infernus#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "127",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 6000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1980,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 10000,
+ "lifepoints": "120000",
+ "max-ranged": "864",
+ "max-magic": "1656",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Greater demon (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Greater demon (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"250\" id=\"image-?\">",
+ "level": "92",
+ "defence": "59",
+ "slayer-level": "1",
+ "experience": 1200,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 396,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 619.7999877929688,
+ "lifepoints": "24000",
+ "max-ranged": "0",
+ "max-magic": "1065",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kor'Vath the Blightbringer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kor'Vath the Blightbringer#140,000 life points.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1650,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "140,000 life points",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "566.4",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kor'Vath the Blightbringer#170,000 life points.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1650,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "170,000 life points",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "566.4",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kor'Vath the Blightbringer#400,000 life points.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1650,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "400,000 life points",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "566.4",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "La'Kalor the Unbroken",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/La'Kalor the Unbroken#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1650,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "566.4",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Shara'Kor the Widowmaker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Shara'Kor the Widowmaker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1650,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "566.4",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Grifolapine",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Grifolapine#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"270\" height=\"300\" id=\"image-?\">",
+ "level": "103",
+ "defence": "74",
+ "slayer-level": "88",
+ "experience": 370,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 122.0999984741211,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 279,
+ "lifepoints": "7400",
+ "max-ranged": "296",
+ "max-magic": "296",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Grifolapine#Neem oil.png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "103",
+ "defence": "74",
+ "slayer-level": "88",
+ "experience": 370,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 122.0999984741211,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Neem oil",
+ "slayer-exp": 279,
+ "lifepoints": "7400",
+ "max-ranged": "148",
+ "max-magic": "148",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Grifolaroo",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Grifolaroo#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"234\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "82",
+ "experience": 385,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 127,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 323.20001220703125,
+ "lifepoints": "7700",
+ "max-ranged": "308",
+ "max-magic": "308",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Grifolaroo#Neem oil.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "82",
+ "experience": 385,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 127,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Neem oil",
+ "slayer-exp": 323.20001220703125,
+ "lifepoints": "7700",
+ "max-ranged": "154",
+ "max-magic": "154",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Giant worm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Giant worm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"211\" id=\"image-?\">",
+ "level": "72",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 325,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 107.19999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 117.4000015258789,
+ "lifepoints": "6500",
+ "max-ranged": "0",
+ "max-magic": "600",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Grotworm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Grotworm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"211\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 372.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 122.9000015258789,
+ "max-melee": "900",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 102.80000305175781,
+ "lifepoints": "7450",
+ "max-ranged": "0",
+ "max-magic": "900",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mature grotworm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mature grotworm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"199\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 640,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 211.1999969482422,
+ "max-melee": "1400",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "12800",
+ "max-ranged": "0",
+ "max-magic": "1400",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Young grotworm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Young grotworm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"186\" id=\"image-?\">",
+ "level": "28",
+ "defence": "20",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 11.399999618530273,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "400",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Harpie Bug Swarm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Harpie Bug Swarm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"275\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "33",
+ "experience": 112.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 37.099998474121094,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 34,
+ "lifepoints": "2250",
+ "max-ranged": "180",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Harpie Bug Swarm (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Harpie Bug Swarm (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"275\" id=\"image-?\">",
+ "level": "72",
+ "defence": "45",
+ "slayer-level": "33",
+ "experience": 450,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 148.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 313,
+ "lifepoints": "9000",
+ "max-ranged": "540",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hellhound",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Hellhound#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "92",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 165,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 54.400001525878906,
+ "max-melee": "264",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 93.80000305175781,
+ "lifepoints": "3300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Hellhound#God Wars Dungeon.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "95",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 475,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 156.6999969482422,
+ "max-melee": "1080",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "God Wars Dungeon",
+ "slayer-exp": 207.39999389648438,
+ "lifepoints": "9500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Hellhound#Level 105.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "105",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 475,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 156.6999969482422,
+ "max-melee": "1080",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 105",
+ "slayer-exp": 371,
+ "lifepoints": "9500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Hellhound (Heart of Gielinor)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hellhound (Heart of Gielinor)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "768",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 334.20001220703125,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hellhound (The Zamorakian Undercity)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hellhound (The Zamorakian Undercity)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "104",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 450,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 148.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 800,
+ "lifepoints": "9000",
+ "max-ranged": "14",
+ "max-magic": "14",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hellhound (summoned)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hellhound (summoned)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "104",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 450,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 148.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "9000",
+ "max-ranged": "14",
+ "max-magic": "14",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hellhound Alpha",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hellhound Alpha#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "113",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "1584",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "20000",
+ "max-ranged": "14",
+ "max-magic": "14",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hellhound Hunter",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hellhound Hunter#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "111",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 600,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 198,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "12000",
+ "max-ranged": "14",
+ "max-magic": "14",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hellhound Hunter (summoned)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hellhound Hunter (summoned)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "111",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 600,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 198,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "12000",
+ "max-ranged": "14",
+ "max-magic": "14",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hill Giant",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hill Giant#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"143\" height=\"300\" id=\"image-?\">",
+ "level": "26",
+ "defence": "22",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "450",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 37.599998474121094,
+ "lifepoints": "4500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Hobgoblin",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Hobgoblin#Level 15.png\" decoding=\"async\" loading=\"lazy\" width=\"221\" height=\"300\" id=\"image-?\">",
+ "level": "15",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 33,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 15",
+ "slayer-exp": 35,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Hobgoblin#Level 18.png\" decoding=\"async\" loading=\"lazy\" width=\"293\" height=\"300\" id=\"image-?\">",
+ "level": "18",
+ "defence": "12",
+ "slayer-level": "1",
+ "experience": 112.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 37.099998474121094,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 18",
+ "slayer-exp": 39,
+ "lifepoints": "2250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Hobgoblin#Level 91 (GWD).png\" decoding=\"async\" loading=\"lazy\" width=\"265\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 487.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 160.8000030517578,
+ "max-melee": "325",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 91 (GWD)",
+ "slayer-exp": 268.6000061035156,
+ "lifepoints": "9750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Hobgoblin (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Hobgoblin (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"226\" height=\"300\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 252.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 83.30000305175781,
+ "max-melee": "500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "5050",
+ "max-ranged": "460",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ice giant",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ice giant#Level 47 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "47",
+ "defence": "37",
+ "slayer-level": "1",
+ "experience": 372.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 122.9000015258789,
+ "max-melee": "750",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 47 (1)",
+ "slayer-exp": 80.80000305175781,
+ "lifepoints": "7450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ice giant#Level 47 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"143\" height=\"300\" id=\"image-?\">",
+ "level": "47",
+ "defence": "37",
+ "slayer-level": "1",
+ "experience": 372.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 122.9000015258789,
+ "max-melee": "750",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 47 (2)",
+ "slayer-exp": 80.80000305175781,
+ "lifepoints": "7450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ice strykewyrm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ice strykewyrm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "106",
+ "defence": "76",
+ "slayer-level": "93",
+ "experience": 1250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 412.5,
+ "max-melee": "729",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2000",
+ "name": "Default",
+ "slayer-exp": 693.2000122070312,
+ "lifepoints": "25000",
+ "max-ranged": "729",
+ "max-magic": "729",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ice warrior",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ice warrior#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"142\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "26",
+ "slayer-level": "1",
+ "experience": 210,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 69.30000305175781,
+ "max-melee": "640",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 25.799999237060547,
+ "lifepoints": "4200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ice warrior#Ice Queen's Lair.png\" decoding=\"async\" loading=\"lazy\" width=\"142\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "26",
+ "slayer-level": "1",
+ "experience": 210,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 69.30000305175781,
+ "max-melee": "640",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ice Queen's Lair",
+ "slayer-exp": 25.799999237060547,
+ "lifepoints": "4200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Icelord",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Icelord#ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"219\" height=\"300\" id=\"image-?\">",
+ "level": "42",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 75,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 24.700000762939453,
+ "max-melee": "90",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "ranged",
+ "slayer-exp": 60,
+ "lifepoints": "1500",
+ "max-ranged": "120",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Icelord#melee.png\" decoding=\"async\" loading=\"lazy\" width=\"219\" height=\"300\" id=\"image-?\">",
+ "level": "42",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 75,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 24.700000762939453,
+ "max-melee": "120",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "melee",
+ "slayer-exp": 60,
+ "lifepoints": "1500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Icefiend",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Icefiend#Ice Mountain.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ice Mountain",
+ "slayer-exp": 7,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "500",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Icefiend#God Wars Dungeon.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "God Wars Dungeon",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Icefiend#Ice Mountain (melting).png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ice Mountain (melting)",
+ "slayer-exp": 7,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "500",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Icefiend (Ghorrock)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Icefiend (Ghorrock)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 362.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 119.5999984741211,
+ "max-melee": "1540",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 335,
+ "lifepoints": "7250",
+ "max-ranged": "1540",
+ "max-magic": "1540",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Infernal Mage",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Infernal Mage#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"145\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "40",
+ "slayer-level": "45",
+ "experience": 325,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 107.19999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 91,
+ "lifepoints": "6500",
+ "max-ranged": "0",
+ "max-magic": "1040",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Infernal Mage (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Infernal Mage (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"145\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "50",
+ "slayer-level": "45",
+ "experience": 1050,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 346.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 596,
+ "lifepoints": "21000",
+ "max-ranged": "0",
+ "max-magic": "1240",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Jelly",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Jelly#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "61",
+ "defence": "49",
+ "slayer-level": "52",
+ "experience": 410,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 135.3000030517578,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 93,
+ "lifepoints": "8200",
+ "max-ranged": "760",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Jungle horror",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Jungle horror#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"221\" height=\"300\" id=\"image-?\">",
+ "level": "48",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 240,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 79.19999694824219,
+ "max-melee": "1000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 41.5,
+ "lifepoints": "4800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Quetzathog",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Quetzathog#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "85",
+ "slayer-level": "0",
+ "experience": 7275,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 2400.699951171875,
+ "max-melee": "2376",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "145500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Sea horror",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Sea horror#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 4178.2001953125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1378.800048828125,
+ "max-melee": "482",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal mode",
+ "slayer-exp": 1388,
+ "lifepoints": "35500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Sea horror#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 887.5,
+ "susceptible": [],
+ "lifepoint-exp": 292.79998779296875,
+ "max-melee": "482",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Story mode",
+ "slayer-exp": 1388,
+ "lifepoints": "17750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Jungle strykewyrm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Jungle strykewyrm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"224\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "73",
+ "experience": 425,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 140.1999969482422,
+ "max-melee": "643",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "1800",
+ "name": "Default",
+ "slayer-exp": 249.8000030517578,
+ "lifepoints": "8500",
+ "max-ranged": "643",
+ "max-magic": "643",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Exiled Kalphite Queen",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Exiled Kalphite Queen#First form.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"243\" id=\"image-?\">",
+ "level": "356",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 2500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 825,
+ "max-melee": "1100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "First form",
+ "slayer-exp": 2055,
+ "lifepoints": "50000",
+ "max-ranged": "1100",
+ "max-magic": "1100",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Exiled Kalphite Queen#Second form.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"191\" id=\"image-?\">",
+ "level": "356",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 2500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 825,
+ "max-melee": "1100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Second form",
+ "slayer-exp": 2055,
+ "lifepoints": "50000",
+ "max-ranged": "1100",
+ "max-magic": "1100",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Exiled kalphite guardian",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Exiled kalphite guardian#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"272\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Exiled kalphite marauder",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Exiled kalphite marauder#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"278\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 350,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 115.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": 229,
+ "lifepoints": "7000",
+ "max-ranged": "0",
+ "max-magic": "280",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Exiled kalphite marauder#Kalphite King.png\" decoding=\"async\" loading=\"lazy\" width=\"278\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "1676",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Kalphite King",
+ "slayer-exp": 229,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "720",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Exiled kalphite paragon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Exiled kalphite paragon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"279\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 140,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "240",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Exiled kalphite soldier",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Exiled kalphite soldier#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"248\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 300,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 99,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 147,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Exiled kalphite worker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Exiled kalphite worker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"230\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 270,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 89.0999984741211,
+ "max-melee": "188",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 109.80000305175781,
+ "lifepoints": "5400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kalphite Guardian",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Kalphite Guardian#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"247\" height=\"300\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "1",
+ "experience": 260,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 85.80000305175781,
+ "max-melee": "208",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 95,
+ "lifepoints": "5200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kalphite King",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kalphite King#Magic.png\" decoding=\"async\" loading=\"lazy\" width=\"262\" height=\"300\" id=\"image-?\">",
+ "level": "2500",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 6500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 2145,
+ "max-melee": "2560",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2500",
+ "name": "Magic",
+ "slayer-exp": 3963,
+ "lifepoints": "260000",
+ "max-ranged": "1280",
+ "max-magic": "2560",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kalphite King#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"248\" height=\"300\" id=\"image-?\">",
+ "level": "2500",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 6500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 2145,
+ "max-melee": "2560",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2500",
+ "name": "Melee",
+ "slayer-exp": 3963,
+ "lifepoints": "260000",
+ "max-ranged": "1280",
+ "max-magic": "2560",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kalphite King#Ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"275\" id=\"image-?\">",
+ "level": "2500",
+ "defence": "85",
+ "slayer-level": "1",
+ "experience": 6500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 2145,
+ "max-melee": "2560",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "2500",
+ "name": "Ranged",
+ "slayer-exp": 3963,
+ "lifepoints": "260000",
+ "max-ranged": "1280",
+ "max-magic": "2560",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Kalphite Queen",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kalphite Queen#First form.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"244\" id=\"image-?\">",
+ "level": "333",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "980",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "First form",
+ "slayer-exp": 1309.4000244140625,
+ "lifepoints": "40000",
+ "max-ranged": "980",
+ "max-magic": "980",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kalphite Queen#Second form.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"152\" id=\"image-?\">",
+ "level": "333",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "980",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Second form",
+ "slayer-exp": 1309.4000244140625,
+ "lifepoints": "40000",
+ "max-ranged": "980",
+ "max-magic": "980",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Kalphite Soldier",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Kalphite Soldier#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "65",
+ "defence": "47",
+ "slayer-level": "1",
+ "experience": 235,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 77.5,
+ "max-melee": "188",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 75.4000015258789,
+ "lifepoints": "4700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kalphite Worker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Kalphite Worker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"299\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 210,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 69.30000305175781,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 59.29999923706055,
+ "lifepoints": "4200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Killerwatt",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Killerwatt#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "55",
+ "defence": "44",
+ "slayer-level": "37",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "450",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 32.599998474121094,
+ "lifepoints": "3600",
+ "max-ranged": "510",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kurask",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kurask#Examine #1.png\" decoding=\"async\" loading=\"lazy\" width=\"297\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "70",
+ "experience": 280,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 92.4000015258789,
+ "max-melee": "224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Examine #1",
+ "slayer-exp": 115,
+ "lifepoints": "5600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kurask#Examine #2.png\" decoding=\"async\" loading=\"lazy\" width=\"297\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "70",
+ "experience": 280,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 92.4000015258789,
+ "max-melee": "224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Examine #2",
+ "slayer-exp": 115,
+ "lifepoints": "5600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Engorged lava strykewyrm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Engorged lava strykewyrm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"207\" height=\"300\" id=\"image-?\">",
+ "level": "113",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 9250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 3052.5,
+ "max-melee": "1400",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 29105,
+ "lifepoints": "185000",
+ "max-ranged": "1400",
+ "max-magic": "1400",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Lava strykewyrm",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Lava strykewyrm#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"207\" height=\"300\" id=\"image-?\">",
+ "level": "115",
+ "defence": "80",
+ "slayer-level": "94",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "1788",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "Varies",
+ "name": "Default",
+ "slayer-exp": 1872,
+ "lifepoints": "30000",
+ "max-ranged": "1152",
+ "max-magic": "1152",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Lava strykewyrm (Dragonkin Laboratory)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Lava strykewyrm (Dragonkin Laboratory)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"207\" height=\"300\" id=\"image-?\">",
+ "level": "101",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "1117",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 3100,
+ "lifepoints": "30000",
+ "max-ranged": "1117",
+ "max-magic": "1117",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "WildyWyrm (2015, historical)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/WildyWyrm (2015, historical)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"207\" height=\"300\" id=\"image-?\">",
+ "level": "92",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "2212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4700",
+ "name": "Default",
+ "slayer-exp": 16462.599609375,
+ "lifepoints": "1000000",
+ "max-ranged": "1425",
+ "max-magic": "1425",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Lesser demon (Wizards' Tower)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Lesser demon (Wizards' Tower)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"284\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 82.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 86.5999984741211,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "200",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Living rock patriarch",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Living rock patriarch#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"214\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 1250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 320,
+ "lifepoints": "25000",
+ "max-ranged": "1000",
+ "max-magic": "1000",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Living rock protector",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Living rock protector#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"296\" id=\"image-?\">",
+ "level": "92",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 275,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 90.69999694824219,
+ "max-melee": "500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 156,
+ "lifepoints": "5500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Living rock striker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Living rock striker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"286\" height=\"300\" id=\"image-?\">",
+ "level": "92",
+ "defence": "66",
+ "slayer-level": "1",
+ "experience": 275,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 90.69999694824219,
+ "max-melee": "264",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 156,
+ "lifepoints": "5500",
+ "max-ranged": "500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Wyvern",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wyvern#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"227\" id=\"image-?\">",
+ "level": "127",
+ "defence": "91",
+ "slayer-level": "96",
+ "experience": 1125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1310",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1878.800048828125,
+ "lifepoints": "22500",
+ "max-ranged": "1310",
+ "max-magic": "1310",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Wyvern (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wyvern (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"227\" id=\"image-?\">",
+ "level": "133",
+ "defence": "95",
+ "slayer-level": "96",
+ "experience": 2250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 742.5,
+ "max-melee": "1339",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 2654,
+ "lifepoints": "45000",
+ "max-ranged": "1339",
+ "max-magic": "1339",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Minotaur",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Minotaur#Level 12.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "12",
+ "defence": "8",
+ "slayer-level": "1",
+ "experience": 87.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 12",
+ "slayer-exp": 16.600000381469727,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Minotaur#Level 15.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "15",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 33,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 15",
+ "slayer-exp": 46.400001525878906,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Minotaur#Level 44 (Slayer challenge).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "44",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 80,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 26.399999618530273,
+ "max-melee": "128",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 44 (Slayer challenge)",
+ "slayer-exp": -2,
+ "lifepoints": "1600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Mogre",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mogre#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"198\" height=\"300\" id=\"image-?\">",
+ "level": "45",
+ "defence": "39",
+ "slayer-level": "32",
+ "experience": 315,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 103.9000015258789,
+ "max-melee": "625",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 27,
+ "lifepoints": "6300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Molanisk",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Molanisk#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"230\" id=\"image-?\">",
+ "level": "44",
+ "defence": "38",
+ "slayer-level": "39",
+ "experience": 307.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 101.4000015258789,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 49.599998474121094,
+ "lifepoints": "6150",
+ "max-ranged": "500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Moss giant",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Moss giant#Common (1).png\" decoding=\"async\" loading=\"lazy\" width=\"160\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "625",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Common (1)",
+ "slayer-exp": 60,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Moss giant#Common (2).png\" decoding=\"async\" loading=\"lazy\" width=\"183\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "625",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Common (2)",
+ "slayer-exp": 60,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Moss giant#Common (3).png\" decoding=\"async\" loading=\"lazy\" width=\"164\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "625",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Common (3)",
+ "slayer-exp": 60,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Moss giant#Common (4).png\" decoding=\"async\" loading=\"lazy\" width=\"167\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "625",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Common (4)",
+ "slayer-exp": 60,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Moss giant#Common (5).png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "40",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "625",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Common (5)",
+ "slayer-exp": 60,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Moss giant#Glarial's Tomb.png\" decoding=\"async\" loading=\"lazy\" width=\"160\" height=\"300\" id=\"image-?\">",
+ "level": "24",
+ "defence": "20",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "216",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Glarial's Tomb",
+ "slayer-exp": 60,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Bladed muspah",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bladed muspah#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"235\" id=\"image-?\">",
+ "level": "150",
+ "defence": "75",
+ "slayer-level": "76",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ancient_Magicks\" title=\"Ancient Magicks\" target=\"_blank\"><img src=\"./images/susceptible/Ice_Barrage_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 469,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Force muspah",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Force muspah#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"249\" id=\"image-?\">",
+ "level": "150",
+ "defence": "75",
+ "slayer-level": "76",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ancient_Magicks\" title=\"Ancient Magicks\" target=\"_blank\"><img src=\"./images/susceptible/Ice_Barrage_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 469,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "500",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Throwing muspah",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Throwing muspah#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"270\" height=\"300\" id=\"image-?\">",
+ "level": "150",
+ "defence": "75",
+ "slayer-level": "76",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Ancient_Magicks\" title=\"Ancient Magicks\" target=\"_blank\"><img src=\"./images/susceptible/Ice_Barrage_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 469,
+ "lifepoints": "20000",
+ "max-ranged": "500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mutated jadinko baby",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mutated jadinko baby#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"218\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "80",
+ "experience": 167.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 55.20000076293945,
+ "max-melee": "268",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 98.5999984741211,
+ "lifepoints": "3350",
+ "max-ranged": "0",
+ "max-magic": "268",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mutated jadinko guard",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mutated jadinko guard#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"195\" id=\"image-?\">",
+ "level": "96",
+ "defence": "69",
+ "slayer-level": "86",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 188.39999389648438,
+ "lifepoints": "6000",
+ "max-ranged": "500",
+ "max-magic": "500",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mutated jadinko male",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mutated jadinko male#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"271\" id=\"image-?\">",
+ "level": "100",
+ "defence": "72",
+ "slayer-level": "91",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 209.60000610351562,
+ "lifepoints": "6000",
+ "max-ranged": "600",
+ "max-magic": "600",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mutated zygomite",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Mutated zygomite#Level 58.png\" decoding=\"async\" loading=\"lazy\" width=\"242\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "57",
+ "experience": 105,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 58",
+ "slayer-exp": 31,
+ "lifepoints": "2100",
+ "max-ranged": "168",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mutated zygomite#Level 65.png\" decoding=\"async\" loading=\"lazy\" width=\"242\" height=\"300\" id=\"image-?\">",
+ "level": "65",
+ "defence": "47",
+ "slayer-level": "57",
+ "experience": 125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 65",
+ "slayer-exp": 42,
+ "lifepoints": "2500",
+ "max-ranged": "188",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Nechryael",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nechryael#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"256\" height=\"300\" id=\"image-?\">",
+ "level": "96",
+ "defence": "69",
+ "slayer-level": "80",
+ "experience": 400,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 132,
+ "max-melee": "276",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 251.60000610351562,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Nechryael (Heart of Gielinor)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nechryael (Heart of Gielinor)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "80",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "768",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 251.60000610351562,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Nechryael (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nechryael (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"256\" height=\"300\" id=\"image-?\">",
+ "level": "106",
+ "defence": "69",
+ "slayer-level": "80",
+ "experience": 1600,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 528,
+ "max-melee": "828",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 1120,
+ "lifepoints": "32000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Nightmare",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nightmare#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"164\" height=\"300\" id=\"image-?\">",
+ "level": "128",
+ "defence": "92",
+ "slayer-level": "80",
+ "experience": 1750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 577.5,
+ "max-melee": "1324",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1540,
+ "lifepoints": "35000",
+ "max-ranged": "1324",
+ "max-magic": "1324",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Blood nihil",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Blood nihil#boss.png\" decoding=\"async\" loading=\"lazy\" width=\"299\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "76",
+ "experience": 1250,
+ "susceptible": [],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "boss",
+ "slayer-exp": 705.4000244140625,
+ "lifepoints": "25000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Blood nihil#normal.png\" decoding=\"async\" loading=\"lazy\" width=\"299\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "76",
+ "experience": 1250,
+ "susceptible": [],
+ "lifepoint-exp": 412.5,
+ "max-melee": "768",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Magic\" title=\"Magic\" target=\"_blank\"><img src=\"./images/weakness/Magic_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "normal",
+ "slayer-exp": 705.4000244140625,
+ "lifepoints": "25000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ice nihil",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ice nihil#boss.png\" decoding=\"async\" loading=\"lazy\" width=\"290\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "boss",
+ "slayer-exp": 564,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "1000",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ice nihil#normal.png\" decoding=\"async\" loading=\"lazy\" width=\"290\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "normal",
+ "slayer-exp": 564,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Shadow nihil",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Shadow nihil#boss.png\" decoding=\"async\" loading=\"lazy\" width=\"285\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1500",
+ "name": "boss",
+ "slayer-exp": 423,
+ "lifepoints": "15000",
+ "max-ranged": "1000",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Shadow nihil#normal.png\" decoding=\"async\" loading=\"lazy\" width=\"285\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Melee\" title=\"Melee\" target=\"_blank\"><img src=\"./images/weakness/Melee_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "1500",
+ "name": "normal",
+ "slayer-exp": 423,
+ "lifepoints": "15000",
+ "max-ranged": "768",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Smoke nihil",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Smoke nihil#boss.png\" decoding=\"async\" loading=\"lazy\" width=\"299\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "boss",
+ "slayer-exp": 564,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "1000",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Smoke nihil#normal.png\" decoding=\"async\" loading=\"lazy\" width=\"299\" height=\"300\" id=\"image-?\">",
+ "level": "160",
+ "defence": "80",
+ "slayer-level": "0",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Ranged_weapons\" title=\"Ranged weapons\" target=\"_blank\"><img src=\"./images/weakness/Ranged_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "normal",
+ "slayer-exp": 564,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "768",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Kerapac, the bound",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Kerapac, the bound#Hard mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"225\" id=\"image-?\">",
+ "level": "3000",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 11250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 3712.5,
+ "max-melee": "1339",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Hard mode",
+ "slayer-exp": 16700,
+ "lifepoints": "450000",
+ "max-ranged": "1339",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Kerapac, the bound#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"225\" id=\"image-?\">",
+ "level": "3000",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "1339",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": 16700,
+ "lifepoints": "200000",
+ "max-ranged": "1339",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Nodon enforcer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nodon enforcer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"237\" id=\"image-?\">",
+ "level": "200",
+ "defence": "99",
+ "slayer-level": "92",
+ "experience": 12500,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 4125,
+ "max-melee": "1561",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3300",
+ "name": "Default",
+ "slayer-exp": 4003,
+ "lifepoints": "100000",
+ "max-ranged": "1561",
+ "max-magic": "1561",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Enclave guard",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Enclave guard#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"299\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 580,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 191.39999389648438,
+ "max-melee": "278",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 190,
+ "lifepoints": "11600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ogre",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ogre#Kandarin(Level 67).png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "48",
+ "slayer-level": "1",
+ "experience": 240,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 79.19999694824219,
+ "max-melee": "288",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Kandarin(Level 67)",
+ "slayer-exp": 88.4000015258789,
+ "lifepoints": "4800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ogre#Combat Camp(56).png\" decoding=\"async\" loading=\"lazy\" width=\"229\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 33,
+ "max-melee": "310",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Combat Camp(56)",
+ "slayer-exp": 34,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ogre#God Wars Dungeon(86).png\" decoding=\"async\" loading=\"lazy\" width=\"189\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 465,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 153.39999389648438,
+ "max-melee": "310",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "God Wars Dungeon(86)",
+ "slayer-exp": 232,
+ "lifepoints": "9300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ogre chieftain",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ogre chieftain#Version 1.png\" decoding=\"async\" loading=\"lazy\" width=\"285\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 612,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 201.89999389648438,
+ "max-melee": "278",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Version 1",
+ "slayer-exp": 200,
+ "lifepoints": "11600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ogre chieftain#Version 2.png\" decoding=\"async\" loading=\"lazy\" width=\"285\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 612,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 201.89999389648438,
+ "max-melee": "278",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Version 2",
+ "slayer-exp": 200,
+ "lifepoints": "11600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ogre chieftain#Version 3.png\" decoding=\"async\" loading=\"lazy\" width=\"285\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 612,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 201.89999389648438,
+ "max-melee": "278",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Version 3",
+ "slayer-exp": 200,
+ "lifepoints": "11600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ogress",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ogress#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 33,
+ "lifepoints": "2100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ogress champion",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ogress champion#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"175\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "48",
+ "slayer-level": "1",
+ "experience": 120,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 39.599998474121094,
+ "max-melee": "192",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 44,
+ "lifepoints": "2400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ogress warrior",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ogress warrior#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"173\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 112.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 37.099998474121094,
+ "max-melee": "180",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 38.20000076293945,
+ "lifepoints": "2250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skogre",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skogre#1.png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Brutal_arrows\" title=\"Brutal arrows\" target=\"_blank\"><img src=\"./images/susceptible/s/Steel_brutal_2.png\" decoding=\"async\" loading=\"lazy\" width=\"19\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 26.799999237060547,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skogre#2.png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Brutal_arrows\" title=\"Brutal arrows\" target=\"_blank\"><img src=\"./images/susceptible/s/Steel_brutal_2.png\" decoding=\"async\" loading=\"lazy\" width=\"19\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 26.799999237060547,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skogre#3.png\" decoding=\"async\" loading=\"lazy\" width=\"241\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Brutal_arrows\" title=\"Brutal arrows\" target=\"_blank\"><img src=\"./images/susceptible/s/Steel_brutal_2.png\" decoding=\"async\" loading=\"lazy\" width=\"19\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 26.799999237060547,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zogre",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zogre#1.png\" decoding=\"async\" loading=\"lazy\" width=\"224\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Brutal_arrows\" title=\"Brutal arrows\" target=\"_blank\"><img src=\"./images/susceptible/s/Steel_brutal_2.png\" decoding=\"async\" loading=\"lazy\" width=\"19\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "160",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 28,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zogre#2.png\" decoding=\"async\" loading=\"lazy\" width=\"261\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Brutal_arrows\" title=\"Brutal arrows\" target=\"_blank\"><img src=\"./images/susceptible/s/Steel_brutal_2.png\" decoding=\"async\" loading=\"lazy\" width=\"19\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 28,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zogre#3.png\" decoding=\"async\" loading=\"lazy\" width=\"244\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Brutal_arrows\" title=\"Brutal arrows\" target=\"_blank\"><img src=\"./images/susceptible/s/Steel_brutal_2.png\" decoding=\"async\" loading=\"lazy\" width=\"19\" height=\"25\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 28,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Otherworldly being",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Otherworldly being#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"133\" height=\"300\" id=\"image-?\">",
+ "level": "55",
+ "defence": "35",
+ "slayer-level": "1",
+ "experience": 282.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 93.19999694824219,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 34,
+ "lifepoints": "5650",
+ "max-ranged": "0",
+ "max-magic": "900",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Pyrefiend",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Pyrefiend#Level 38.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "38",
+ "defence": "25",
+ "slayer-level": "30",
+ "experience": 202.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 66.80000305175781,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 38",
+ "slayer-exp": 32.599998474121094,
+ "lifepoints": "4050",
+ "max-ranged": "0",
+ "max-magic": "600",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Pyrefiend#God Wars Dungeon.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "92",
+ "defence": "66",
+ "slayer-level": "30",
+ "experience": 330,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 108.9000015258789,
+ "max-melee": "264",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "God Wars Dungeon",
+ "slayer-exp": -1,
+ "lifepoints": "6600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Pyrefiend (The Zamorakian Undercity)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Pyrefiend (The Zamorakian Undercity)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "113",
+ "defence": "75",
+ "slayer-level": "30",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "576",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "8000",
+ "max-ranged": "576",
+ "max-magic": "1267",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Pyrefiend (summoned)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Pyrefiend (summoned)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "113",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 400,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 132,
+ "max-melee": "576",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "8000",
+ "max-ranged": "576",
+ "max-magic": "1267",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Seething Pyrefiend",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Seething Pyrefiend#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "119",
+ "defence": "75",
+ "slayer-level": "30",
+ "experience": 800,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 264,
+ "max-melee": "576",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "16000",
+ "max-ranged": "576",
+ "max-magic": "1411",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Smoulders",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Smoulders#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "129",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 9000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2970,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "180000",
+ "max-ranged": "0",
+ "max-magic": "176",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Smoulders, the Revenger",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Smoulders, the Revenger#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "152",
+ "defence": "91",
+ "slayer-level": "?",
+ "experience": 9000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2970,
+ "max-melee": "1414",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "180000",
+ "max-ranged": "2113",
+ "max-magic": "2388",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Angry giant rat",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Angry giant rat#A Soul's Bane.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"219\" id=\"image-?\">",
+ "level": "45",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "A Soul's Bane",
+ "slayer-exp": -1,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Angry giant rat#Post-quest (1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"199\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Post-quest (1)",
+ "slayer-exp": 14,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Angry giant rat#Post-quest (2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"215\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 62.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 20.600000381469727,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Post-quest (2)",
+ "slayer-exp": 14,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Crypt rat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Crypt rat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"162\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dungeon rat",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Dungeon rat#Level 11 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"234\" id=\"image-?\">",
+ "level": "11",
+ "defence": "8",
+ "slayer-level": "1",
+ "experience": 20,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "32",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 11 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dungeon rat#Level 11 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"238\" id=\"image-?\">",
+ "level": "11",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 32.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 10.699999809265137,
+ "max-melee": "52",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 11 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dungeon rat#Level 11 (3).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"180\" id=\"image-?\">",
+ "level": "11",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 32.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 10.699999809265137,
+ "max-melee": "52",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 11 (3)",
+ "slayer-exp": -1,
+ "lifepoints": "650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dungeon rat#Level 18 (brown).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"148\" id=\"image-?\">",
+ "level": "18",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 32.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 10.699999809265137,
+ "max-melee": "52",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 18 (brown)",
+ "slayer-exp": -1,
+ "lifepoints": "650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dungeon rat#Level 18 (grey).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"148\" id=\"image-?\">",
+ "level": "18",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 32.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 10.699999809265137,
+ "max-melee": "52",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 18 (grey)",
+ "slayer-exp": -1,
+ "lifepoints": "650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dungeon rat#Level 18 (brown, arrows).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"199\" id=\"image-?\">",
+ "level": "18",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 32.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 10.699999809265137,
+ "max-melee": "52",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 18 (brown, arrows)",
+ "slayer-exp": -1,
+ "lifepoints": "650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Giant crypt rat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Giant crypt rat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"202\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "330",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant rat",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Giant rat#Level 7 (grey).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"148\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 72.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 7 (grey)",
+ "slayer-exp": -1,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant rat#Level 7 (brown).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"140\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 72.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 7 (brown)",
+ "slayer-exp": -1,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant rat#Level 7 (grey, arrows).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"215\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 72.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 7 (grey, arrows)",
+ "slayer-exp": -1,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant rat#Level 7 (brown, arrows).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"199\" id=\"image-?\">",
+ "level": "7",
+ "defence": "5",
+ "slayer-level": "1",
+ "experience": 72.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 7 (brown, arrows)",
+ "slayer-exp": -1,
+ "lifepoints": "1450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant rat#Level 9 (Stronghold of Security, 1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"262\" id=\"image-?\">",
+ "level": "9",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 9 (Stronghold of Security, 1)",
+ "slayer-exp": -1,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant rat#Level 9 (Stronghold of Security, 2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"240\" id=\"image-?\">",
+ "level": "9",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 9 (Stronghold of Security, 2)",
+ "slayer-exp": -1,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant rat#Level 9 (Stronghold of Security, 3).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"195\" id=\"image-?\">",
+ "level": "9",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 9 (Stronghold of Security, 3)",
+ "slayer-exp": -1,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Rat",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Rat#Common.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"208\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 2.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0.800000011920929,
+ "max-melee": "4",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Common",
+ "slayer-exp": -1,
+ "lifepoints": "50",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Rat#Stronghold of Security.png\" decoding=\"async\" loading=\"lazy\" width=\"211\" height=\"156\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 2.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0.800000011920929,
+ "max-melee": "4",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Stronghold of Security",
+ "slayer-exp": -1,
+ "lifepoints": "50",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Rat#Ratcatchers.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"208\" id=\"image-?\">",
+ "level": "N/A",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.399999618530273,
+ "susceptible": [],
+ "lifepoint-exp": 4,
+ "max-melee": "−20",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Ratcatchers",
+ "slayer-exp": -1,
+ "lifepoints": "10",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Warped rat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Warped rat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "12",
+ "defence": "9",
+ "slayer-level": "1",
+ "experience": 95,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 31.299999237060547,
+ "max-melee": "180",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 8,
+ "lifepoints": "1900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Slasher Demon",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Slasher Demon#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"291\" height=\"300\" id=\"image-?\">",
+ "level": "138",
+ "defence": "99",
+ "slayer-level": "96",
+ "experience": 3356.300048828125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1107.5,
+ "max-melee": "979",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "32000",
+ "name": "Default",
+ "slayer-exp": 5299.7998046875,
+ "lifepoints": "67126",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Rock slug",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Rock slug#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"170\" id=\"image-?\">",
+ "level": "28",
+ "defence": "25",
+ "slayer-level": "20",
+ "experience": 202.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 66.80000305175781,
+ "max-melee": "375",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 33.599998474121094,
+ "lifepoints": "4050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Elite rune dragon",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Elite rune dragon#Armoured.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"236\" id=\"image-?\">",
+ "level": "130",
+ "defence": "92",
+ "slayer-level": "1",
+ "experience": 5259.39990234375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1735.5999755859375,
+ "max-melee": "2992",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Armoured",
+ "slayer-exp": 3399,
+ "lifepoints": "105188",
+ "max-ranged": "2992",
+ "max-magic": "2992",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Elite rune dragon#Unarmoured.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"239\" id=\"image-?\">",
+ "level": "130",
+ "defence": "92",
+ "slayer-level": "1",
+ "experience": 5259.39990234375,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Dragon_slayer_(effect)\" title=\"Dragon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Dragon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 1735.5999755859375,
+ "max-melee": "2992",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Unarmoured",
+ "slayer-exp": 3399,
+ "lifepoints": "105188",
+ "max-ranged": "2992",
+ "max-magic": "2992",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Locust lancer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Locust lancer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"264\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 91,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Locust ranger",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Locust ranger#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"276\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "165",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 100,
+ "lifepoints": "2750",
+ "max-ranged": "220",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Locust rider",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Locust rider#Melee (1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"264\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 135,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 44.5,
+ "max-melee": "810",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (1)",
+ "slayer-exp": -1,
+ "lifepoints": "2700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Locust rider#Range (1).png\" decoding=\"async\" loading=\"lazy\" width=\"277\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 270,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 89.0999984741211,
+ "max-melee": "364",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Range (1)",
+ "slayer-exp": -1,
+ "lifepoints": "5400",
+ "max-ranged": "486",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Locust rider#Melee (2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"264\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 270,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 89.0999984741211,
+ "max-melee": "364",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (2)",
+ "slayer-exp": -1,
+ "lifepoints": "5400",
+ "max-ranged": "486",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Locust rider#Range (2).png\" decoding=\"async\" loading=\"lazy\" width=\"277\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 270,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 89.0999984741211,
+ "max-melee": "364",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Range (2)",
+ "slayer-exp": -1,
+ "lifepoints": "5400",
+ "max-ranged": "486",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Locust rider#Melee (3).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"264\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "?",
+ "experience": 270,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 89.0999984741211,
+ "max-melee": "364",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (3)",
+ "slayer-exp": -1,
+ "lifepoints": "5400",
+ "max-ranged": "486",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Locust rider#Range (3).png\" decoding=\"async\" loading=\"lazy\" width=\"277\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "?",
+ "experience": 270,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 89.0999984741211,
+ "max-melee": "364",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Range (3)",
+ "slayer-exp": -1,
+ "lifepoints": "5400",
+ "max-ranged": "486",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Scabaras lancer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Scabaras lancer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"200\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 55,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Scabaras mage",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Scabaras mage#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"176\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "618",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 55,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "825",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Scabaras ranger",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Scabaras ranger#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"210\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 275,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 90.69999694824219,
+ "max-melee": "165",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 109.5,
+ "lifepoints": "5500",
+ "max-ranged": "220",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Scarab akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Scarab akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"281\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "80",
+ "slayer-level": "109",
+ "experience": 1100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 363,
+ "max-melee": "921",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 715,
+ "lifepoints": "22000",
+ "max-ranged": "921",
+ "max-magic": "921",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Scarab mage",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Scarab mage#Sophanem Dungeon.png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "0",
+ "experience": 135,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 44.5,
+ "max-melee": "607",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Sophanem Dungeon",
+ "slayer-exp": 55,
+ "lifepoints": "2700",
+ "max-ranged": "0",
+ "max-magic": "810",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Scarab mage#Contact!.png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "?",
+ "experience": 135,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 44.5,
+ "max-melee": "900",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Contact!",
+ "slayer-exp": 55,
+ "lifepoints": "5400",
+ "max-ranged": "0",
+ "max-magic": "1215",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Scarab mage#Dominion Tower.png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "?",
+ "experience": 135,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 44.5,
+ "max-melee": "900",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Dominion Tower",
+ "slayer-exp": 55,
+ "lifepoints": "5400",
+ "max-ranged": "0",
+ "max-magic": "1215",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Scarab mage#Rumble Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"165\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "?",
+ "experience": 135,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 44.5,
+ "max-melee": "900",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Rumble Mode",
+ "slayer-exp": 55,
+ "lifepoints": "5400",
+ "max-ranged": "0",
+ "max-magic": "1215",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Small scarab",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Small scarab#Uzer Mastaba.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"235\" id=\"image-?\">",
+ "level": "42",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 75,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 24.700000762939453,
+ "max-melee": "120",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Uzer Mastaba",
+ "slayer-exp": 17,
+ "lifepoints": "1500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Small scarab#Zombie (1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"244\" id=\"image-?\">",
+ "level": "42",
+ "defence": "36",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "108",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Zombie (1)",
+ "slayer-exp": 17,
+ "lifepoints": "1800",
+ "max-ranged": "144",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Small scarab#Zombie (2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"284\" id=\"image-?\">",
+ "level": "42",
+ "defence": "36",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "108",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Zombie (2)",
+ "slayer-exp": 17,
+ "lifepoints": "1800",
+ "max-ranged": "144",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Small scarab#Zombie (3).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"235\" id=\"image-?\">",
+ "level": "42",
+ "defence": "36",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "108",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Zombie (3)",
+ "slayer-exp": 17,
+ "lifepoints": "1800",
+ "max-ranged": "144",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Small scarab#Do No Evil.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"242\" id=\"image-?\">",
+ "level": "50",
+ "defence": "36",
+ "slayer-level": "1",
+ "experience": 90,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Keris\" title=\"Keris\" target=\"_blank\"><img src=\"./images/susceptible/Keris.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"27\"><\/a>"
+ ],
+ "lifepoint-exp": 29.700000762939453,
+ "max-melee": "108",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Do No Evil",
+ "slayer-exp": -1,
+ "lifepoints": "1800",
+ "max-ranged": "144",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Grave scorpion",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Grave scorpion#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"254\" id=\"image-?\">",
+ "level": "14",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 7.199999809265137,
+ "lifepoints": "1000",
+ "max-ranged": "200",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "King Scorpion",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/King Scorpion#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"295\" id=\"image-?\">",
+ "level": "22",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "360",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 48,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Pit Scorpion",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Pit Scorpion#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"298\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 162.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 53.599998474121094,
+ "max-melee": "800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 26.799999237060547,
+ "lifepoints": "3250",
+ "max-ranged": "800",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Poison Scorpion",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Poison Scorpion#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"296\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "1",
+ "experience": 282.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 93.19999694824219,
+ "max-melee": "700",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "5650",
+ "max-ranged": "700",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Scorpion",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Scorpion#Level 14.png\" decoding=\"async\" loading=\"lazy\" width=\"298\" height=\"300\" id=\"image-?\">",
+ "level": "14",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 33,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 14",
+ "slayer-exp": 25,
+ "lifepoints": "2000",
+ "max-ranged": "200",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Scorpion#Level 26 (Stronghold of Security, 1).png\" decoding=\"async\" loading=\"lazy\" width=\"298\" height=\"300\" id=\"image-?\">",
+ "level": "26",
+ "defence": "19",
+ "slayer-level": "1",
+ "experience": 157.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 51.900001525878906,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 26 (Stronghold of Security, 1)",
+ "slayer-exp": -1,
+ "lifepoints": "3150",
+ "max-ranged": "475",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Scorpion#Level 26 (Stronghold of Security, 2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"296\" id=\"image-?\">",
+ "level": "26",
+ "defence": "19",
+ "slayer-level": "1",
+ "experience": 157.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 51.900001525878906,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 26 (Stronghold of Security, 2)",
+ "slayer-exp": -1,
+ "lifepoints": "3150",
+ "max-ranged": "475",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Scorpion (Ape Atoll)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Scorpion (Ape Atoll)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"294\" height=\"300\" id=\"image-?\">",
+ "level": "14",
+ "defence": "10",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "1000",
+ "max-ranged": "200",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Sea Snake Hatchling",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Sea Snake Hatchling#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"92\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "40",
+ "experience": 175,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 57.70000076293945,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 50,
+ "lifepoints": "3500",
+ "max-ranged": "225",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Sea Snake Young",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Sea Snake Young#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"129\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "40",
+ "experience": 225,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 85,
+ "lifepoints": "4500",
+ "max-ranged": "225",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Blissful shadow",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Blissful shadow#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"281\" id=\"image-?\">",
+ "level": "112",
+ "defence": "80",
+ "slayer-level": "1",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1152",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 564.4000244140625,
+ "lifepoints": "15000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Manifest shadow",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Manifest shadow#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"292\" id=\"image-?\">",
+ "level": "126",
+ "defence": "90",
+ "slayer-level": "1",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 929.4000244140625,
+ "lifepoints": "15000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Shadow (Temple of Light)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Shadow (Temple of Light)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"141\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1.600000023841858,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 103.5999984741211,
+ "lifepoints": "100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Truthful shadow",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Truthful shadow#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"294\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1008",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "15000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeletal Wyvern",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeletal Wyvern#1.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"267\" id=\"image-?\">",
+ "level": "109",
+ "defence": "78",
+ "slayer-level": "72",
+ "experience": 625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "1100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2000",
+ "name": "1",
+ "slayer-exp": 510.79998779296875,
+ "lifepoints": "12500",
+ "max-ranged": "1100",
+ "max-magic": "1100",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeletal Wyvern#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"255\" id=\"image-?\">",
+ "level": "109",
+ "defence": "78",
+ "slayer-level": "72",
+ "experience": 625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "1100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2000",
+ "name": "2",
+ "slayer-exp": 510.79998779296875,
+ "lifepoints": "12500",
+ "max-ranged": "1100",
+ "max-magic": "1100",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeletal Wyvern#3.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"251\" id=\"image-?\">",
+ "level": "109",
+ "defence": "78",
+ "slayer-level": "72",
+ "experience": 625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "1100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2000",
+ "name": "3",
+ "slayer-exp": 510.79998779296875,
+ "lifepoints": "12500",
+ "max-ranged": "1100",
+ "max-magic": "1100",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeletal Wyvern#4.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "109",
+ "defence": "78",
+ "slayer-level": "72",
+ "experience": 625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "1100",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2000",
+ "name": "4",
+ "slayer-exp": 510.79998779296875,
+ "lifepoints": "12500",
+ "max-ranged": "1100",
+ "max-magic": "1100",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Bossy McBossFace's First mate",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bossy McBossFace's First mate#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"175\" height=\"300\" id=\"image-?\">",
+ "level": "122",
+ "defence": "78",
+ "slayer-level": "1",
+ "experience": 1100,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 363,
+ "max-melee": "1886.4",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "22000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant skeleton (Shadow Dungeon)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Giant skeleton (Shadow Dungeon)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 49.5,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 70,
+ "lifepoints": "3000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant skeleton (Tarn's Lair)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Giant skeleton (Tarn's Lair)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 49.5,
+ "max-melee": "240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 70,
+ "lifepoints": "3000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Huge skeleton",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Huge skeleton#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "113",
+ "defence": "72",
+ "slayer-level": "0",
+ "experience": 600,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 198,
+ "max-melee": "1684.8",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": 608,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Huge skeleton#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "113",
+ "defence": "72",
+ "slayer-level": "0",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "1684.8",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": 608,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeletal miner",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeletal miner#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"177\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "1",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeletal shielder",
+ "variants": []
+ },
+ {
+ "name": "Skeleton",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton#Level 15.png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "15",
+ "defence": "11",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "44",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 15",
+ "slayer-exp": 8.800000190734863,
+ "lifepoints": "2100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton#Level 16.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "16",
+ "defence": "12",
+ "slayer-level": "1",
+ "experience": 30,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 9.899999618530273,
+ "max-melee": "48",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 16",
+ "slayer-exp": 9.199999809265137,
+ "lifepoints": "600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton#Level 32.png\" decoding=\"async\" loading=\"lazy\" width=\"299\" height=\"300\" id=\"image-?\">",
+ "level": "32",
+ "defence": "23",
+ "slayer-level": "1",
+ "experience": 57.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 18.899999618530273,
+ "max-melee": "92",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 32",
+ "slayer-exp": 13,
+ "lifepoints": "1150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton#Level 46.png\" decoding=\"async\" loading=\"lazy\" width=\"166\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 265,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 87.4000015258789,
+ "max-melee": "660",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 46",
+ "slayer-exp": 39.400001525878906,
+ "lifepoints": "5300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton#Level 51.png\" decoding=\"async\" loading=\"lazy\" width=\"239\" height=\"300\" id=\"image-?\">",
+ "level": "51",
+ "defence": "37",
+ "slayer-level": "1",
+ "experience": 297.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 98.0999984741211,
+ "max-melee": "740",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 51",
+ "slayer-exp": 47.20000076293945,
+ "lifepoints": "5950",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton#Level 58.png\" decoding=\"async\" loading=\"lazy\" width=\"204\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 58",
+ "slayer-exp": 29.600000381469727,
+ "lifepoints": "2100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton (Ape Atoll)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton (Ape Atoll)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"175\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 250,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 82.5,
+ "max-melee": "224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 102.4000015258789,
+ "lifepoints": "5000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton (Barrows)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Barrows)#86.png\" decoding=\"async\" loading=\"lazy\" width=\"130\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 155,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "372",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "86",
+ "slayer-exp": 77.19999694824219,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Barrows)#88.png\" decoding=\"async\" loading=\"lazy\" width=\"130\" height=\"300\" id=\"image-?\">",
+ "level": "88",
+ "defence": "63",
+ "slayer-level": "1",
+ "experience": 157.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 51.900001525878906,
+ "max-melee": "378",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "88",
+ "slayer-exp": 81,
+ "lifepoints": "3150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton (Dark Warriors' Fortress)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Dark Warriors' Fortress)#1.png\" decoding=\"async\" loading=\"lazy\" width=\"292\" height=\"300\" id=\"image-?\">",
+ "level": "32",
+ "defence": "23",
+ "slayer-level": "1",
+ "experience": 57.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 18.899999618530273,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": -1,
+ "lifepoints": "1150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Dark Warriors' Fortress)#2.png\" decoding=\"async\" loading=\"lazy\" width=\"273\" height=\"300\" id=\"image-?\">",
+ "level": "32",
+ "defence": "23",
+ "slayer-level": "1",
+ "experience": 57.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 18.899999618530273,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": -1,
+ "lifepoints": "1150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton (Heart of Gielinor)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton (Heart of Gielinor)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"228\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "75",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 132,
+ "max-melee": "980",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 334.20001220703125,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton (Lumbridge Catacombs)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton (Lumbridge Catacombs)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"145\" height=\"300\" id=\"image-?\">",
+ "level": "15",
+ "defence": "11",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 8.800000190734863,
+ "lifepoints": "2100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton (Tarn's Lair)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Tarn's Lair)#1.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"296\" id=\"image-?\">",
+ "level": "79",
+ "defence": "57",
+ "slayer-level": "1",
+ "experience": 142.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 47,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "1",
+ "slayer-exp": 60.599998474121094,
+ "lifepoints": "2850",
+ "max-ranged": "0",
+ "max-magic": "228",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Tarn's Lair)#2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"284\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "2",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Tarn's Lair)#8.png\" decoding=\"async\" loading=\"lazy\" width=\"182\" height=\"300\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "1",
+ "experience": 130,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 42.900001525878906,
+ "max-melee": "208",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "8",
+ "slayer-exp": 47.400001525878906,
+ "lifepoints": "2600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton (Temple Trekking)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Temple Trekking)#18.png\" decoding=\"async\" loading=\"lazy\" width=\"286\" height=\"300\" id=\"image-?\">",
+ "level": "18",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 8.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 2.799999952316284,
+ "max-melee": "7",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "18",
+ "slayer-exp": 2.4000000953674316,
+ "lifepoints": "170",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Temple Trekking)#Helmet.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 35,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 11.5,
+ "max-melee": "28",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Helmet",
+ "slayer-exp": 18.600000381469727,
+ "lifepoints": "700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Temple Trekking)#No helmet.png\" decoding=\"async\" loading=\"lazy\" width=\"277\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 35,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 11.5,
+ "max-melee": "28",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "No helmet",
+ "slayer-exp": 18.600000381469727,
+ "lifepoints": "700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton (Ullek)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Ullek)#Warhammer.png\" decoding=\"async\" loading=\"lazy\" width=\"231\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Warhammer",
+ "slayer-exp": -1,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Ullek)#Axe.png\" decoding=\"async\" loading=\"lazy\" width=\"223\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Axe",
+ "slayer-exp": -1,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Ullek)#Round shield.png\" decoding=\"async\" loading=\"lazy\" width=\"215\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Round shield",
+ "slayer-exp": -1,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Ullek)#Square shield.png\" decoding=\"async\" loading=\"lazy\" width=\"255\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Square shield",
+ "slayer-exp": -1,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Ullek)#Mace.png\" decoding=\"async\" loading=\"lazy\" width=\"234\" height=\"300\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Mace",
+ "slayer-exp": -1,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton (Uncharted Isles)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Uncharted Isles)#Melee (With Weapons).png\" decoding=\"async\" loading=\"lazy\" width=\"205\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 550,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 181.5,
+ "max-melee": "1515",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee (With Weapons)",
+ "slayer-exp": 98.5999984741211,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Uncharted Isles)#Melee (Without Weapons).png\" decoding=\"async\" loading=\"lazy\" width=\"149\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 550,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 181.5,
+ "max-melee": "1515",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee (Without Weapons)",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton (Uncharted Isles)#Ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 550,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 181.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "1515",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton Archer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton Archer#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "100",
+ "defence": "67",
+ "slayer-level": "0",
+ "experience": 729,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 240.5,
+ "max-melee": "369",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "10000",
+ "max-ranged": "369",
+ "max-magic": "369",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton Archer#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": -1,
+ "susceptible": [],
+ "lifepoint-exp": -1,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton Mage",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton Mage#Level 19.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"296\" id=\"image-?\">",
+ "level": "19",
+ "defence": "14",
+ "slayer-level": "1",
+ "experience": 35,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 11.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 19",
+ "slayer-exp": 9.399999618530273,
+ "lifepoints": "700",
+ "max-ranged": "0",
+ "max-magic": "56",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton Mage#Level 49.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"296\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "1",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 49",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "140",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton archer (Ancient Awakening)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton archer (Ancient Awakening)#1 (Ancient Awakening).png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 535.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 176.6999969482422,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "1 (Ancient Awakening)",
+ "slayer-exp": 0,
+ "lifepoints": "10710",
+ "max-ranged": "1500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton archer (Ancient Awakening)#2 (Ancient Awakening).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"270\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 535.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 176.6999969482422,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "2 (Ancient Awakening)",
+ "slayer-exp": 0,
+ "lifepoints": "10710",
+ "max-ranged": "1500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton archer (Ancient Awakening)#1 (Ungael combat activity).png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 765,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 252.39999389648438,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "1 (Ungael combat activity)",
+ "slayer-exp": 0,
+ "lifepoints": "15300",
+ "max-ranged": "1500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton archer (Ancient Awakening)#2 (Ungael combat activity).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"270\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 765,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 252.39999389648438,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "2 (Ungael combat activity)",
+ "slayer-exp": 0,
+ "lifepoints": "15300",
+ "max-ranged": "1500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton brute",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton brute#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "88",
+ "defence": "63",
+ "slayer-level": "1",
+ "experience": 157.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 51.900001525878906,
+ "max-melee": "252",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 81,
+ "lifepoints": "3150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton fremennik",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton fremennik#Level 23.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "23",
+ "defence": "17",
+ "slayer-level": "1",
+ "experience": 42.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 14,
+ "max-melee": "102",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 23",
+ "slayer-exp": 10.199999809265137,
+ "lifepoints": "850",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton fremennik#Level 28.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "28",
+ "defence": "22",
+ "slayer-level": "1",
+ "experience": 55,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 18.100000381469727,
+ "max-melee": "132",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 28",
+ "slayer-exp": 11.399999618530273,
+ "lifepoints": "1100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton fremennik#Level 30.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "30",
+ "defence": "22",
+ "slayer-level": "1",
+ "experience": 55,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 18.100000381469727,
+ "max-melee": "132",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 30",
+ "slayer-exp": 12.600000381469727,
+ "lifepoints": "1100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton heavy",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton heavy#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"265\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 160,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 52.79999923706055,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 85.19999694824219,
+ "lifepoints": "3200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton hero",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton hero#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"232\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 49.79999923706055,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton knight",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton knight#Ancient Awakening.png\" decoding=\"async\" loading=\"lazy\" width=\"243\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 787.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 259.79998779296875,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ancient Awakening",
+ "slayer-exp": 0,
+ "lifepoints": "15750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton knight#Ungael combat activity (standard).png\" decoding=\"async\" loading=\"lazy\" width=\"243\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (standard)",
+ "slayer-exp": 0,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton knight#Ungael combat activity (hard).png\" decoding=\"async\" loading=\"lazy\" width=\"243\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (hard)",
+ "slayer-exp": 0,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton ranger (Ancient Awakening)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Skeleton ranger (Ancient Awakening)#Ancient Awakening.png\" decoding=\"async\" loading=\"lazy\" width=\"247\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 670.25,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 221.10000610351562,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ancient Awakening",
+ "slayer-exp": 0,
+ "lifepoints": "13405",
+ "max-ranged": "1875",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton ranger (Ancient Awakening)#Ungael combat activity (standard).png\" decoding=\"async\" loading=\"lazy\" width=\"247\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 957.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 315.8999938964844,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (standard)",
+ "slayer-exp": 0,
+ "lifepoints": "19150",
+ "max-ranged": "1875",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Skeleton ranger (Ancient Awakening)#Ungael combat activity (hard).png\" decoding=\"async\" loading=\"lazy\" width=\"247\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1436.25,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 473.8999938964844,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (hard)",
+ "slayer-exp": 0,
+ "lifepoints": "28725",
+ "max-ranged": "1875",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Skeleton thug",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton thug#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"132\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 73.5999984741211,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton warlord",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton warlord#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"249\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 162.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 53.599998474121094,
+ "max-melee": "260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 89.4000015258789,
+ "lifepoints": "3250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton warrior (Ancient Awakening)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Skeleton warrior (Ancient Awakening)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"274\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "?",
+ "experience": 603.9000244140625,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 199.1999969482422,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "15300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Skeleton warrior (Rasial)",
+ "variants": []
+ },
+ {
+ "name": "Summoned skeleton",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Summoned skeleton#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"177\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 450,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 148.5,
+ "max-melee": "1415",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": 1165,
+ "lifepoints": "9000",
+ "max-ranged": "1415",
+ "max-magic": "1415",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Summoned skeleton#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"177\" height=\"300\" id=\"image-?\">",
+ "level": "114",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 225,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "1415",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": 1165,
+ "lifepoints": "4500",
+ "max-ranged": "1415",
+ "max-magic": "1415",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Summoned skeleton archer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Summoned skeleton archer#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "2000",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Summoned skeleton archer#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "?",
+ "slayer-level": "0",
+ "experience": 50,
+ "susceptible": [],
+ "lifepoint-exp": 16.5,
+ "max-melee": "?",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Training dummy",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Permanent.png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Permanent",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to air, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to air, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to air, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to air, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to air, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to air, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to water, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to water, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to water, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to water, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to water, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to water, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to earth, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to earth, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to earth, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to earth, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to earth, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to earth, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to fire, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to fire, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to fire, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to fire, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to fire, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to fire, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to nothing, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to nothing, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to nothing, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to nothing, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Melee (weak to nothing, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Melee (weak to nothing, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to stab, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to stab, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to stab, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to stab, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to stab, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to stab, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to slash, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to slash, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to slash, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to slash, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to slash, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to slash, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to crush, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to crush, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to crush, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to crush, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to crush, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to crush, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to nothing, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to nothing, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to nothing, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to nothing, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Ranged (weak to nothing, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ranged (weak to nothing, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to arrows, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to arrows, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to arrows, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to arrows, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to arrows, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to arrows, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to bolts, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to bolts, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to bolts, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to bolts, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to bolts, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to bolts, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to thrown, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to thrown, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to thrown, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to thrown, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to thrown, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to thrown, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to nothing, weak).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to nothing, weak)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to nothing, medium).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to nothing, medium)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Magic (weak to nothing, strong).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Magic (weak to nothing, strong)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Dragon (magic).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Dragon (magic)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Dragon (ranged).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Dragon (ranged)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Dragon (melee).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Dragon (melee)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Undead (magic).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Undead (magic)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Undead (ranged).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Undead (ranged)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Undead (melee).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Undead (melee)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Demon (magic).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Demon (magic)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Demon (ranged).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Demon (ranged)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Demon (melee).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Demon (melee)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Abyssal demon (magic).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Abyssal demon (magic)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Abyssal demon (ranged).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Abyssal demon (ranged)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Abyssal demon (melee).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Abyssal demon (melee)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Wallasalki (magic).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Wallasalki (magic)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Wallasalki (ranged).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Wallasalki (ranged)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Wallasalki (melee).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Wallasalki (melee)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Basilisk (magic).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Basilisk (magic)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Basilisk (ranged).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Basilisk (ranged)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Basilisk (melee).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Basilisk (melee)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Revenant (magic).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Revenant (magic)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "10",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Revenant (ranged).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Revenant (ranged)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "10",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Training dummy#Revenant (melee).png\" decoding=\"async\" loading=\"lazy\" width=\"137\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "5",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Revenant (melee)",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Undead one",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Undead one#Skeleton (level 44).png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "44",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 72.5999984741211,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "192",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Skeleton (level 44)",
+ "slayer-exp": 18.799999237060547,
+ "lifepoints": "1600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead one#Skeleton (level 46).png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 75.9000015258789,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 25,
+ "max-melee": "132",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Skeleton (level 46)",
+ "slayer-exp": 19.600000381469727,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead one#Zombie (level 44).png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "44",
+ "defence": "32",
+ "slayer-level": "1",
+ "experience": 72.5999984741211,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 23.899999618530273,
+ "max-melee": "128",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Zombie (level 44)",
+ "slayer-exp": 18.799999237060547,
+ "lifepoints": "1600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead one#Zombie (level 46).png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 75.9000015258789,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 25,
+ "max-melee": "132",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Zombie (level 46)",
+ "slayer-exp": 19.600000381469727,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Warped skeleton",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Warped skeleton#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"181\" height=\"300\" id=\"image-?\">",
+ "level": "113",
+ "defence": "72",
+ "slayer-level": "0",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "1684.8",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "1684.8",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped skeleton#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"181\" height=\"300\" id=\"image-?\">",
+ "level": "113",
+ "defence": "72",
+ "slayer-level": "0",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1684.8",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "15000",
+ "max-ranged": "0",
+ "max-magic": "1684.8",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Feline akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Feline akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"235\" id=\"image-?\">",
+ "level": "109",
+ "defence": "76",
+ "slayer-level": "107",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "1166",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 536.2000122070312,
+ "lifepoints": "15000",
+ "max-ranged": "1166",
+ "max-magic": "1166",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Gorilla akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Gorilla akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"227\" height=\"300\" id=\"image-?\">",
+ "level": "111",
+ "defence": "70",
+ "slayer-level": "113",
+ "experience": 1000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 330,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "1300",
+ "name": "Default",
+ "slayer-exp": 705.4000244140625,
+ "lifepoints": "20000",
+ "max-ranged": "1296",
+ "max-magic": "1296",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Imperial mage akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Imperial mage akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"174\" height=\"300\" id=\"image-?\">",
+ "level": "130",
+ "defence": "92",
+ "slayer-level": "117",
+ "experience": 1250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 1780.5999755859375,
+ "lifepoints": "25000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Imperial ranger akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Imperial ranger akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"172\" height=\"300\" id=\"image-?\">",
+ "level": "130",
+ "defence": "92",
+ "slayer-level": "117",
+ "experience": 1250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 1780.5999755859375,
+ "lifepoints": "25000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Imperial warrior akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Imperial warrior akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"243\" height=\"300\" id=\"image-?\">",
+ "level": "130",
+ "defence": "92",
+ "slayer-level": "117",
+ "experience": 1250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 412.5,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Default",
+ "slayer-exp": 1780.5999755859375,
+ "lifepoints": "25000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Oreb, the Magister",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Oreb, the Magister#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"234\" height=\"300\" id=\"image-?\">",
+ "level": "899",
+ "defence": "90",
+ "slayer-level": "0",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1425",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 8000,
+ "lifepoints": "200000",
+ "max-ranged": "1425",
+ "max-magic": "1425",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Salawa akh",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Salawa akh#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"242\" height=\"300\" id=\"image-?\">",
+ "level": "106",
+ "defence": "73",
+ "slayer-level": "105",
+ "experience": 625,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 206.1999969482422,
+ "max-melee": "1152",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 508.3999938964844,
+ "lifepoints": "12500",
+ "max-ranged": "1152",
+ "max-magic": "1152",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "The Magister",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/The Magister#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"259\" height=\"300\" id=\"image-?\">",
+ "level": "899",
+ "defence": "90",
+ "slayer-level": "115",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1425",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4000",
+ "name": "Default",
+ "slayer-exp": 8000,
+ "lifepoints": "200000",
+ "max-ranged": "1425",
+ "max-magic": "1425",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Soulgazer (elite)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Soulgazer (elite)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"227\" height=\"300\" id=\"image-?\">",
+ "level": "135",
+ "defence": "90",
+ "slayer-level": "99",
+ "experience": 6000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 1980,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 5849.2001953125,
+ "lifepoints": "120000",
+ "max-ranged": "0",
+ "max-magic": "1738",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corpse spider",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corpse spider#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"255\" id=\"image-?\">",
+ "level": "4",
+ "defence": "3",
+ "slayer-level": "1",
+ "experience": 30,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 9.899999618530273,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.599999904632568,
+ "lifepoints": "600",
+ "max-ranged": "60",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Crypt spider",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Crypt spider#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"236\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 112.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 37.099998474121094,
+ "max-melee": "270",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 34.20000076293945,
+ "lifepoints": "2250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Deadly red spider",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Deadly red spider#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"209\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 307.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 101.4000015258789,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 103.5999984741211,
+ "lifepoints": "6150",
+ "max-ranged": "1360",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant crypt spider",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Giant crypt spider#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"171\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 49.5,
+ "max-melee": "360",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 70,
+ "lifepoints": "3000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Giant spider",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Giant spider#Level 2.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"224\" id=\"image-?\">",
+ "level": "2",
+ "defence": "2",
+ "slayer-level": "1",
+ "experience": 27.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 9,
+ "max-melee": "40",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 2",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "550",
+ "max-ranged": "40",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant spider#Level 33.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"224\" id=\"image-?\">",
+ "level": "33",
+ "defence": "24",
+ "slayer-level": "1",
+ "experience": 225,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 74.19999694824219,
+ "max-melee": "480",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 33",
+ "slayer-exp": 13.399999618530273,
+ "lifepoints": "3900",
+ "max-ranged": "480",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant spider#Level 29.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"218\" id=\"image-?\">",
+ "level": "29",
+ "defence": "19",
+ "slayer-level": "1",
+ "experience": 157.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 51.900001525878906,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 29",
+ "slayer-exp": 31.200000762939453,
+ "lifepoints": "3150",
+ "max-ranged": "480",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ice spider",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ice spider#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"162\" id=\"image-?\">",
+ "level": "42",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 120,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 39.599998474121094,
+ "max-melee": "440",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 17.200000762939453,
+ "lifepoints": "2400",
+ "max-ranged": "600",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Jungle spider",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Jungle spider#Common.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"261\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 272.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 89.9000015258789,
+ "max-melee": "1240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Common",
+ "slayer-exp": 77,
+ "lifepoints": "5450",
+ "max-ranged": "1240",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Jungle spider#Musa Point.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"261\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.20000076293945,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 12.199999809265137,
+ "max-melee": "56",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Musa Point",
+ "slayer-exp": 9,
+ "lifepoints": "750",
+ "max-ranged": "56",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Jungle spider#Ape Atoll.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"223\" id=\"image-?\">",
+ "level": "88",
+ "defence": "63",
+ "slayer-level": "1",
+ "experience": 312.29998779296875,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 103,
+ "max-melee": "189",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ape Atoll",
+ "slayer-exp": -1,
+ "lifepoints": "3150",
+ "max-ranged": "252",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Jungle spider#Jade Vine (level 42).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"288\" id=\"image-?\">",
+ "level": "42",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 66.9000015258789,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 22,
+ "max-melee": "90",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Jade Vine (level 42)",
+ "slayer-exp": -1,
+ "lifepoints": "1500",
+ "max-ranged": "120",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Jungle spider#Jade Vine (level 49).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"288\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "1",
+ "experience": 83.0999984741211,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 27.399999618530273,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Jade Vine (level 49)",
+ "slayer-exp": -1,
+ "lifepoints": "1750",
+ "max-ranged": "140",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Jungle spider#Tai Bwo Wannai Cleanup.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"261\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 272.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 89.9000015258789,
+ "max-melee": "1240",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Tai Bwo Wannai Cleanup",
+ "slayer-exp": -1,
+ "lifepoints": "5450",
+ "max-ranged": "1240",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Lava spider",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Lava spider#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"216\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal mode",
+ "slayer-exp": 491,
+ "lifepoints": "15000",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Lava spider#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"216\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 247.5,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Story mode",
+ "slayer-exp": 245.5,
+ "lifepoints": "15000",
+ "max-ranged": "672",
+ "max-magic": "672",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Poison spider",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Poison spider#Common.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"254\" id=\"image-?\">",
+ "level": "53",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 185,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 61,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Common",
+ "slayer-exp": 34.20000076293945,
+ "lifepoints": "3700",
+ "max-ranged": "600",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Poison spider#Observatory.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"254\" id=\"image-?\">",
+ "level": "15",
+ "defence": "11",
+ "slayer-level": "1",
+ "experience": 27.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 9,
+ "max-melee": "33",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Observatory",
+ "slayer-exp": 8.800000190734863,
+ "lifepoints": "550",
+ "max-ranged": "44",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Shadow spider",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Shadow spider#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"173\" id=\"image-?\">",
+ "level": "46",
+ "defence": "33",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "132",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 19.600000381469727,
+ "lifepoints": "1650",
+ "max-ranged": "132",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Spider",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Spider#Common.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"186\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 2.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0.800000011920929,
+ "max-melee": "4",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Common",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "50",
+ "max-ranged": "4",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spider#Underground Pass.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"243\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 2.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0.800000011920929,
+ "max-melee": "3",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Underground Pass",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "50",
+ "max-ranged": "4",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spider#Ape Atoll.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"285\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 2.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0.800000011920929,
+ "max-melee": "3",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ape Atoll",
+ "slayer-exp": 17.600000381469727,
+ "lifepoints": "50",
+ "max-ranged": "4",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spider#Stronghold of Security.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"243\" id=\"image-?\">",
+ "level": "15",
+ "defence": "11",
+ "slayer-level": "1",
+ "experience": 52.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 17.299999237060547,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Stronghold of Security",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "1050",
+ "max-ranged": "220",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Spyndra",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Spyndra#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"216\" id=\"image-?\">",
+ "level": "107",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 9000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 2970,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "180000",
+ "max-ranged": "816",
+ "max-magic": "816",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Spyndra#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"216\" id=\"image-?\">",
+ "level": "107",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 9000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 2970,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Story mode",
+ "slayer-exp": 3760.89990234375,
+ "lifepoints": "180000",
+ "max-ranged": "816",
+ "max-magic": "816",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Veil-ripper Ozharakha",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Veil-ripper Ozharakha#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "135",
+ "defence": "90",
+ "slayer-level": "99",
+ "experience": 7500,
+ "susceptible": [],
+ "lifepoint-exp": 2475,
+ "max-melee": "1104",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 25000,
+ "lifepoints": "150000",
+ "max-ranged": "1104",
+ "max-magic": "1104",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Suqah",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Suqah#Level 73 (Dual wielding swords).png\" decoding=\"async\" loading=\"lazy\" width=\"289\" height=\"300\" id=\"image-?\">",
+ "level": "73",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": [],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "380",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 73 (Dual wielding swords)",
+ "slayer-exp": 47.400001525878906,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "380",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Suqah#Level 74.png\" decoding=\"async\" loading=\"lazy\" width=\"279\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": [],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 74",
+ "slayer-exp": 49.79999923706055,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Suqah#Level 74 (Magic).png\" decoding=\"async\" loading=\"lazy\" width=\"279\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": [],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 74 (Magic)",
+ "slayer-exp": 49.79999923706055,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Suqah#Level 79.png\" decoding=\"async\" loading=\"lazy\" width=\"279\" height=\"300\" id=\"image-?\">",
+ "level": "79",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "349",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 79",
+ "slayer-exp": 57.599998474121094,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "349",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Terror dog",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Terror dog#Level 65.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "65",
+ "defence": "47",
+ "slayer-level": "40",
+ "experience": 235,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 77.5,
+ "max-melee": "188",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 65",
+ "slayer-exp": 75.4000015258789,
+ "lifepoints": "4700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Terror dog#Level 61.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"293\" id=\"image-?\">",
+ "level": "61",
+ "defence": "44",
+ "slayer-level": "40",
+ "experience": 220,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 72.5999984741211,
+ "max-melee": "176",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 61",
+ "slayer-exp": 65.19999694824219,
+ "lifepoints": "4400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ice troll",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ice troll#Troll Romance.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"280\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "38",
+ "experience": 525,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 173.1999969482422,
+ "max-melee": "1200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Troll Romance",
+ "slayer-exp": 70,
+ "lifepoints": "10500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ice troll#Desert Treasure.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"280\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "38",
+ "experience": 525,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 173.1999969482422,
+ "max-melee": "1200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Desert Treasure",
+ "slayer-exp": 70,
+ "lifepoints": "10500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ice troll female",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ice troll female#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"274\" height=\"300\" id=\"image-?\">",
+ "level": "68",
+ "defence": "49",
+ "slayer-level": "1",
+ "experience": 410,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 135.3000030517578,
+ "max-melee": "720",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 41.5,
+ "lifepoints": "8200",
+ "max-ranged": "980",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ice troll grunt",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ice troll grunt#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"193\" height=\"300\" id=\"image-?\">",
+ "level": "68",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 420,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 138.60000610351562,
+ "max-melee": "1000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "8400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ice troll male",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ice troll male#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"275\" height=\"300\" id=\"image-?\">",
+ "level": "68",
+ "defence": "49",
+ "slayer-level": "1",
+ "experience": 410,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 135.3000030517578,
+ "max-melee": "980",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 41.5,
+ "lifepoints": "8200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Ice troll runt",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ice troll runt#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"271\" id=\"image-?\">",
+ "level": "53",
+ "defence": "38",
+ "slayer-level": "1",
+ "experience": 307.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 101.4000015258789,
+ "max-melee": "760",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 24.799999237060547,
+ "lifepoints": "6150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Kraka",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Kraka#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"274\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 657.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 216.89999389648438,
+ "max-melee": "1800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 70,
+ "lifepoints": "13150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mountain troll",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mountain troll#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"259\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 460,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 151.8000030517578,
+ "max-melee": "1620",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 52.20000076293945,
+ "lifepoints": "9200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Mountain troll (well)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Mountain troll (well)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"259\" height=\"300\" id=\"image-?\">",
+ "level": "9",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 7,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Pee Hat",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Pee Hat#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"290\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 657.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 216.89999389648438,
+ "max-melee": "1800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 70,
+ "lifepoints": "13150",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "River troll",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/River troll#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"215\" height=\"300\" id=\"image-?\">",
+ "level": "N/A",
+ "defence": "130",
+ "slayer-level": "1",
+ "experience": 172.1999969482422,
+ "susceptible": [],
+ "lifepoint-exp": 56.79999923706055,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 89.4000015258789,
+ "lifepoints": "1700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Rock (monster)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Rock (monster)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"272\" height=\"300\" id=\"image-?\">",
+ "level": "88",
+ "defence": "63",
+ "slayer-level": "1",
+ "experience": 1395,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 460.29998779296875,
+ "max-melee": "1890",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 81,
+ "lifepoints": "27900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Stick",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Stick#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"268\" id=\"image-?\">",
+ "level": "85",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 670,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 221.10000610351562,
+ "max-melee": "1830",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 73.5999984741211,
+ "lifepoints": "13400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Stove",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Stove#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"230\" height=\"300\" id=\"image-?\">",
+ "level": "4",
+ "defence": "3",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 16.5,
+ "max-melee": "129",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Thrower Troll",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Thrower Troll#Death Plateau.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 472.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 155.89999389648438,
+ "max-melee": "1435",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Death Plateau",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "9450",
+ "max-ranged": "1225",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Thrower Troll#Trollheim.png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 472.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 155.89999389648438,
+ "max-melee": "1435",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Trollheim",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "9450",
+ "max-ranged": "1225",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Troll brute",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll brute#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"265\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 12.800000190734863,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Troll brute (Davendale)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll brute (Davendale)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"182\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 20,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "72",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Troll chucker",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll chucker#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"158\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 12.800000190734863,
+ "lifepoints": "250",
+ "max-ranged": "20",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Troll chucker (Davendale)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll chucker (Davendale)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"163\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": 20,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "0",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "72",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Troll general",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Troll general#Sword.png\" decoding=\"async\" loading=\"lazy\" width=\"272\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 727.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 240,
+ "max-melee": "1950",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Sword",
+ "slayer-exp": 89.4000015258789,
+ "lifepoints": "14550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Troll general#Hammer.png\" decoding=\"async\" loading=\"lazy\" width=\"263\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 727.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 240,
+ "max-melee": "1950",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Hammer",
+ "slayer-exp": 89.4000015258789,
+ "lifepoints": "14550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Troll general#Club.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"295\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 727.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 240,
+ "max-melee": "1950",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Club",
+ "slayer-exp": 89.4000015258789,
+ "lifepoints": "14550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Troll lout",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll lout#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"224\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "?",
+ "experience": 20,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "72",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Troll shaman",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll shaman#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"231\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 12.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 4.099999904632568,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 6.400000095367432,
+ "lifepoints": "250",
+ "max-ranged": "0",
+ "max-magic": "20",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Troll shaman (Davendale)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll shaman (Davendale)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"238\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": 20,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "0",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "72",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Troll spectator",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Troll spectator#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"255\" height=\"300\" id=\"image-?\">",
+ "level": "65",
+ "defence": "47",
+ "slayer-level": "1",
+ "experience": 390,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 128.6999969482422,
+ "max-melee": "1175",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 37.599998474121094,
+ "lifepoints": "7800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Undead troll",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 77.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 77",
+ "slayer-exp": -1,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 81 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"175\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "232",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 81 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 81 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "232",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 81 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 81 (3).png\" decoding=\"async\" loading=\"lazy\" width=\"192\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "232",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 81 (3)",
+ "slayer-exp": -1,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 81 (4).png\" decoding=\"async\" loading=\"lazy\" width=\"188\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "232",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 81 (4)",
+ "slayer-exp": -1,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 81 (5).png\" decoding=\"async\" loading=\"lazy\" width=\"183\" height=\"300\" id=\"image-?\">",
+ "level": "81",
+ "defence": "58",
+ "slayer-level": "1",
+ "experience": 145,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 47.79999923706055,
+ "max-melee": "232",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 81 (5)",
+ "slayer-exp": -1,
+ "lifepoints": "2900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 86 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"187\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 155,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "248",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 86 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 86 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"187\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 155,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "248",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 86 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 86 (3).png\" decoding=\"async\" loading=\"lazy\" width=\"210\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 155,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "248",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 86 (3)",
+ "slayer-exp": -1,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 95 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"193\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 170,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 56.099998474121094,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 95 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 95 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 170,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 56.099998474121094,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 95 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 95 (3).png\" decoding=\"async\" loading=\"lazy\" width=\"191\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 170,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 56.099998474121094,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 95 (3)",
+ "slayer-exp": -1,
+ "lifepoints": "3400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 95 (4).png\" decoding=\"async\" loading=\"lazy\" width=\"176\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 170,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 56.099998474121094,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 95 (4)",
+ "slayer-exp": -1,
+ "lifepoints": "3400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 95 (5).png\" decoding=\"async\" loading=\"lazy\" width=\"207\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 170,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 56.099998474121094,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 95 (5)",
+ "slayer-exp": -1,
+ "lifepoints": "3400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 95 (6).png\" decoding=\"async\" loading=\"lazy\" width=\"210\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 170,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 56.099998474121094,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 95 (6)",
+ "slayer-exp": -1,
+ "lifepoints": "3400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead troll#Level 95 (7).png\" decoding=\"async\" loading=\"lazy\" width=\"201\" height=\"300\" id=\"image-?\">",
+ "level": "95",
+ "defence": "68",
+ "slayer-level": "1",
+ "experience": 170,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 56.099998474121094,
+ "max-melee": "272",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 95 (7)",
+ "slayer-exp": -1,
+ "lifepoints": "3400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Turoth",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Turoth#60 - Small.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"284\" id=\"image-?\">",
+ "level": "60",
+ "defence": "44",
+ "slayer-level": "55",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "840",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "60 - Small",
+ "slayer-exp": 52,
+ "lifepoints": "3600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Turoth#60 - Large.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"298\" id=\"image-?\">",
+ "level": "60",
+ "defence": "44",
+ "slayer-level": "55",
+ "experience": 180,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 59.400001525878906,
+ "max-melee": "840",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "60 - Large",
+ "slayer-exp": 52,
+ "lifepoints": "3600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Turoth#68 - Male.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"258\" id=\"image-?\">",
+ "level": "68",
+ "defence": "50",
+ "slayer-level": "55",
+ "experience": 210,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 69.30000305175781,
+ "max-melee": "960",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "68 - Male",
+ "slayer-exp": 70.80000305175781,
+ "lifepoints": "4200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Turoth#68 - Female.png\" decoding=\"async\" loading=\"lazy\" width=\"284\" height=\"300\" id=\"image-?\">",
+ "level": "68",
+ "defence": "50",
+ "slayer-level": "55",
+ "experience": 210,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 69.30000305175781,
+ "max-melee": "960",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "68 - Female",
+ "slayer-exp": 70.80000305175781,
+ "lifepoints": "4200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "TzHaar-Hur",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/TzHaar-Hur#Level 86.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"290\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 155,
+ "susceptible": [],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "310",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 86",
+ "slayer-exp": 77.5,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/TzHaar-Hur#Level 98.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"290\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 175,
+ "susceptible": [],
+ "lifepoint-exp": 57.70000076293945,
+ "max-melee": "210",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 98",
+ "slayer-exp": 0,
+ "lifepoints": "3500",
+ "max-ranged": "0",
+ "max-magic": "280",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "TzHaar-Ket",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/TzHaar-Ket#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"271\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 155,
+ "susceptible": [],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "248",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 77.5,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "TzHaar-Mej",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/TzHaar-Mej#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"270\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 155,
+ "susceptible": [],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 77.5,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "310",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "TzHaar-Xil",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/TzHaar-Xil#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"279\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "0",
+ "experience": 155,
+ "susceptible": [],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "248",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee",
+ "slayer-exp": 77.5,
+ "lifepoints": "3100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/TzHaar-Xil#Ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"279\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "0",
+ "experience": 155,
+ "susceptible": [],
+ "lifepoint-exp": 51.099998474121094,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged",
+ "slayer-exp": 77.5,
+ "lifepoints": "3100",
+ "max-ranged": "248",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Animated spade",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Animated spade#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"83\" height=\"300\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "1",
+ "experience": 130,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 42.900001525878906,
+ "max-melee": "208",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "2600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Armoured zombie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"116\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "1",
+ "experience": 310,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 102.30000305175781,
+ "max-melee": "297",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Melee",
+ "slayer-exp": 154.39999389648438,
+ "lifepoints": "6200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#Ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "144",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged",
+ "slayer-exp": 154.39999389648438,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#Ritual of the Mahjarrat.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "144",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ritual of the Mahjarrat",
+ "slayer-exp": 154.39999389648438,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"116\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "144",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "The World Wakes",
+ "slayer-exp": 154.39999389648438,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#One of a Kind.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "144",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "One of a Kind",
+ "slayer-exp": 154.39999389648438,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#Dishonour among Thieves.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "144",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Dishonour among Thieves",
+ "slayer-exp": 154.39999389648438,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#Dimension of Disaster.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "42",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "144",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Dimension of Disaster",
+ "slayer-exp": 154.39999389648438,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie#New Foundations.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 37.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 12.300000190734863,
+ "max-melee": "144",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "New Foundations",
+ "slayer-exp": 9.600000381469727,
+ "lifepoints": "750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Bloated monstrosity",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Bloated monstrosity#Normal mode (trio).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode (trio)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bloated monstrosity#Normal mode (duo).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode (duo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bloated monstrosity#Normal mode (solo).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode (solo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bloated monstrosity#Story mode (trio).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode (trio)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bloated monstrosity#Story mode (duo).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode (duo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Bloated monstrosity#Story mode (solo).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"273\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode (solo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Corpse archer",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corpse archer#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"132\" height=\"300\" id=\"image-?\">",
+ "level": "18",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 117.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 38.70000076293945,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "2350",
+ "max-ranged": "260",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Corpse carrier",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Corpse carrier#Normal mode (trio).png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode (trio)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Corpse carrier#Normal mode (duo).png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode (duo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Corpse carrier#Normal mode (solo).png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode (solo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Corpse carrier#Story mode (trio).png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode (trio)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Corpse carrier#Story mode (duo).png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode (duo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Corpse carrier#Story mode (solo).png\" decoding=\"async\" loading=\"lazy\" width=\"258\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "70",
+ "slayer-level": "0",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "1512",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode (solo)",
+ "slayer-exp": -1,
+ "lifepoints": "90000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Corpse mage",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corpse mage#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 9,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "300",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Crawling corpse torso",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Crawling corpse torso#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"231\" id=\"image-?\">",
+ "level": "9",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 40,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 13.199999809265137,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 16.600000381469727,
+ "lifepoints": "800",
+ "max-ranged": "0",
+ "max-magic": "140",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dragith Nurn",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dragith Nurn#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"142\" height=\"300\" id=\"image-?\">",
+ "level": "26",
+ "defence": "19",
+ "slayer-level": "1",
+ "experience": 395,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 130.3000030517578,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 11,
+ "lifepoints": "7900",
+ "max-ranged": "280",
+ "max-magic": "380",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "General malpractitioner",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/General malpractitioner#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"129\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 150,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 49.5,
+ "max-melee": "180",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "3000",
+ "max-ranged": "240",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Graveside Phantom",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Graveside Phantom#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "104",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 33,
+ "max-melee": "768",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "8000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Magic axe",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Magic axe#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"267\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "1",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Monkey Zombie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Monkey Zombie#72.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"300\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "1",
+ "experience": 130,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 42.900001525878906,
+ "max-melee": "208",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "72",
+ "slayer-exp": 47.400001525878906,
+ "lifepoints": "2600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Monkey Zombie#75.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "75",
+ "slayer-exp": 52.20000076293945,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Monkey Zombie#77.png\" decoding=\"async\" loading=\"lazy\" width=\"159\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.29999923706055,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "77",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Mummy (Jaldraocht Pyramid)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#1.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#2.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#3.png\" decoding=\"async\" loading=\"lazy\" width=\"141\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#4.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#1 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"147\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (on fire)",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#2 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"147\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2 (on fire)",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#3 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3 (on fire)",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#4 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4 (on fire)",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#Ashes.png\" decoding=\"async\" loading=\"lazy\" width=\"150\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ashes",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Jaldraocht Pyramid)#Jaldraocht sarcophagus.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "55",
+ "slayer-level": "1",
+ "experience": 137,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 45.20000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Jaldraocht sarcophagus",
+ "slayer-exp": 54.79999923706055,
+ "lifepoints": "2750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Mummy (Ullek)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#1.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#2.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#3.png\" decoding=\"async\" loading=\"lazy\" width=\"141\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#4.png\" decoding=\"async\" loading=\"lazy\" width=\"138\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#1 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"147\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (on fire)",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#2 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"147\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "2 (on fire)",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#3 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "3 (on fire)",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#4 (on fire).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "4 (on fire)",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Mummy (Ullek)#Ashes.png\" decoding=\"async\" loading=\"lazy\" width=\"150\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "53",
+ "slayer-level": "1",
+ "experience": 192,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 63.29999923706055,
+ "max-melee": "212",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ashes",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Phantom sorcerer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Phantom sorcerer#1 (Ancient Awakening).png\" decoding=\"async\" loading=\"lazy\" width=\"221\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 787.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 259.79998779296875,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (Ancient Awakening)",
+ "slayer-exp": 0,
+ "lifepoints": "15750",
+ "max-ranged": "0",
+ "max-magic": "1875",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Phantom sorcerer#1 (standard Ungael combat activity).png\" decoding=\"async\" loading=\"lazy\" width=\"221\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (standard Ungael combat activity)",
+ "slayer-exp": 0,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "1875",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Phantom sorcerer#1 (hard Ungael combat activity).png\" decoding=\"async\" loading=\"lazy\" width=\"221\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (hard Ungael combat activity)",
+ "slayer-exp": 0,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "1875",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Phantom wizard",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Phantom wizard#1 (Ancient Awakening).png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 535.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 176.6999969482422,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (Ancient Awakening)",
+ "slayer-exp": 0,
+ "lifepoints": "10710",
+ "max-ranged": "0",
+ "max-magic": "1500",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Phantom wizard#1 (Ungael combat activity).png\" decoding=\"async\" loading=\"lazy\" width=\"216\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 765,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 252.39999389648438,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (Ungael combat activity)",
+ "slayer-exp": 0,
+ "lifepoints": "15300",
+ "max-ranged": "0",
+ "max-magic": "1500",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Possessed pickaxe",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Possessed pickaxe#Abandoned Mine.png\" decoding=\"async\" loading=\"lazy\" width=\"174\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": 87.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 28.799999237060547,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Abandoned Mine",
+ "slayer-exp": -1,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Possessed pickaxe#Lair of Tarn Razorlor.png\" decoding=\"async\" loading=\"lazy\" width=\"174\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": 175,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 57.70000076293945,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Lair of Tarn Razorlor",
+ "slayer-exp": -1,
+ "lifepoints": "3500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Possessed pickaxe#Dominion Tower.png\" decoding=\"async\" loading=\"lazy\" width=\"174\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "?",
+ "slayer-level": "1",
+ "experience": -1,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": -1,
+ "max-melee": "210",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Dominion Tower",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Possessed pickaxe (Lava Flow Mine)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Possessed pickaxe (Lava Flow Mine)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"174\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 20,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 6.599999904632568,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Putrid zombie (Rasial)",
+ "variants": []
+ },
+ {
+ "name": "Soulless armoured zombie",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Soulless armoured zombie#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "N/A",
+ "defence": "30",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 0,
+ "max-melee": "288",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "10000000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Soulless unarmoured zombie",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Soulless unarmoured zombie#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "N/A",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": -1,
+ "susceptible": [],
+ "lifepoint-exp": -1,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Taraket the Necromancer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Taraket the Necromancer#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"160\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 10000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 3300,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "400000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Taraket the Necromancer#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"160\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 10000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 3300,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "400000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Undead giant (Battle of Forinthry)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Undead giant (Battle of Forinthry)#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"192\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "90",
+ "slayer-level": "?",
+ "experience": 3063.75,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1011,
+ "max-melee": "3000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "61275",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead giant (Battle of Forinthry)#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"192\" height=\"300\" id=\"image-?\">",
+ "level": "300",
+ "defence": "90",
+ "slayer-level": "?",
+ "experience": 6127.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 2022,
+ "max-melee": "3000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "122550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Unstable zombie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Unstable zombie#Ancient Awakening.png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 787.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 259.79998779296875,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ancient Awakening",
+ "slayer-exp": 0,
+ "lifepoints": "15750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Unstable zombie#Ungael combat activity (standard).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (standard)",
+ "slayer-exp": 0,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Unstable zombie#Ungael combat activity (hard).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (hard)",
+ "slayer-exp": 0,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zombie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie#Level 12.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "12",
+ "defence": "9",
+ "slayer-level": "1",
+ "experience": 30.899999618530273,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 10.100000381469727,
+ "max-melee": "36",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 12",
+ "slayer-exp": 8,
+ "lifepoints": "450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie#Level 22.png\" decoding=\"async\" loading=\"lazy\" width=\"121\" height=\"300\" id=\"image-?\">",
+ "level": "22",
+ "defence": "16",
+ "slayer-level": "1",
+ "experience": 38.099998474121094,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 12.5,
+ "max-melee": "64",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 22",
+ "slayer-exp": 8,
+ "lifepoints": "800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie#Level 22 (Graveyard of Shadows).png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "22",
+ "defence": "16",
+ "slayer-level": "1",
+ "experience": 38.099998474121094,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 12.5,
+ "max-melee": "64",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 22 (Graveyard of Shadows)",
+ "slayer-exp": 8,
+ "lifepoints": "800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie#Level 29.png\" decoding=\"async\" loading=\"lazy\" width=\"127\" height=\"300\" id=\"image-?\">",
+ "level": "29",
+ "defence": "21",
+ "slayer-level": "1",
+ "experience": 46.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 15.300000190734863,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 29",
+ "slayer-exp": 9.800000190734863,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie#Level 29 (Entrana).png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "29",
+ "defence": "21",
+ "slayer-level": "1",
+ "experience": 46.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 15.300000190734863,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 29 (Entrana)",
+ "slayer-exp": 8,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie#Level 29 (Graveyard of Shadows).png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "29",
+ "defence": "21",
+ "slayer-level": "1",
+ "experience": 46.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 15.300000190734863,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 29 (Graveyard of Shadows)",
+ "slayer-exp": 12,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zombie (New Varrock)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Zombie (New Varrock)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"130\" height=\"300\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 1.2000000476837158,
+ "susceptible": [],
+ "lifepoint-exp": 0.30000001192092896,
+ "max-melee": "10",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "25",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Zombie cow (New Varrock)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie cow (New Varrock)#Boss.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"220\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "20",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Boss",
+ "slayer-exp": -1,
+ "lifepoints": "50",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie cow (New Varrock)#Regular.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"220\" id=\"image-?\">",
+ "level": "1",
+ "defence": "1",
+ "slayer-level": "1",
+ "experience": 10,
+ "susceptible": [],
+ "lifepoint-exp": 3.299999952316284,
+ "max-melee": "28",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Regular",
+ "slayer-exp": -1,
+ "lifepoints": "200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Zombie knight",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie knight#Ancient Awakening.png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 787.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 259.79998779296875,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ancient Awakening",
+ "slayer-exp": 0,
+ "lifepoints": "15750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie knight#Ungael combat activity (standard).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1125,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 371.20001220703125,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (standard)",
+ "slayer-exp": 0,
+ "lifepoints": "22500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie knight#Ungael combat activity (hard).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "97",
+ "defence": "65",
+ "slayer-level": "1",
+ "experience": 1687.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 556.7999877929688,
+ "max-melee": "1875",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ungael combat activity (hard)",
+ "slayer-exp": 0,
+ "lifepoints": "33750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zombie pirate",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie pirate#Level 49.png\" decoding=\"async\" loading=\"lazy\" width=\"141\" height=\"300\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "1",
+ "experience": 83.0999984741211,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 27.399999618530273,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Level 49",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "1750",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie pirate#Level 50.png\" decoding=\"async\" loading=\"lazy\" width=\"203\" height=\"300\" id=\"image-?\">",
+ "level": "50",
+ "defence": "36",
+ "slayer-level": "1",
+ "experience": 86.69999694824219,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 28.600000381469727,
+ "max-melee": "144",
+ "weakness": [
+ "<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"
+ ],
+ "max-spec": "0",
+ "name": "Level 50",
+ "slayer-exp": 11.199999809265137,
+ "lifepoints": "1800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie pirate#Pieces of Hate.png\" decoding=\"async\" loading=\"lazy\" width=\"141\" height=\"300\" id=\"image-?\">",
+ "level": "35",
+ "defence": "25",
+ "slayer-level": "1",
+ "experience": 54,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 17.799999237060547,
+ "max-melee": "120",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Pieces of Hate",
+ "slayer-exp": 0,
+ "lifepoints": "1250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zombie swab",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Zombie swab#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"121\" height=\"300\" id=\"image-?\">",
+ "level": "47",
+ "defence": "34",
+ "slayer-level": "1",
+ "experience": 79.80000305175781,
+ "susceptible": [],
+ "lifepoint-exp": 26.299999237060547,
+ "max-melee": "136",
+ "weakness": [
+ "<a href=\"https://runescape.wiki/w/Air_spells\" title=\"Air spells\" target=\"_blank\"><img src=\"./images/weakness/Air_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Crush_weapons\" title=\"Crush weapons\" target=\"_blank\"><img src=\"./images/weakness/Crush_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"19\"><\/a>"
+ ],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 22,
+ "lifepoints": "1700",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Zombie warrior",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie warrior#1 (Ancient Awakening).png\" decoding=\"async\" loading=\"lazy\" width=\"132\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 535.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 176.6999969482422,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "1 (Ancient Awakening)",
+ "slayer-exp": 0,
+ "lifepoints": "10710",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie warrior#2 (Ancient Awakening).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 535.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 176.6999969482422,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "2 (Ancient Awakening)",
+ "slayer-exp": 0,
+ "lifepoints": "10710",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie warrior#1 (Ungael combat activity).png\" decoding=\"async\" loading=\"lazy\" width=\"132\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 765,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 252.39999389648438,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "1 (Ungael combat activity)",
+ "slayer-exp": 0,
+ "lifepoints": "15300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie warrior#2 (Ungael combat activity).png\" decoding=\"async\" loading=\"lazy\" width=\"139\" height=\"300\" id=\"image-?\">",
+ "level": "76",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 765,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 252.39999389648438,
+ "max-melee": "1500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "2 (Ungael combat activity)",
+ "slayer-exp": 0,
+ "lifepoints": "15300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Angry vampyre",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Angry vampyre#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"270\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "168",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 29.600000381469727,
+ "lifepoints": "2100",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Feral vampyre",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Feral vampyre#Standard.png\" decoding=\"async\" loading=\"lazy\" width=\"250\" height=\"300\" id=\"image-?\">",
+ "level": "61",
+ "defence": "44",
+ "slayer-level": "1",
+ "experience": 110,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 36.29999923706055,
+ "max-melee": "176",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Standard",
+ "slayer-exp": 32.599998474121094,
+ "lifepoints": "2200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Feral vampyre#Spider.png\" decoding=\"async\" loading=\"lazy\" width=\"250\" height=\"300\" id=\"image-?\">",
+ "level": "61",
+ "defence": "44",
+ "slayer-level": "1",
+ "experience": 110,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 36.29999923706055,
+ "max-melee": "176",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Spider",
+ "slayer-exp": 32.599998474121094,
+ "lifepoints": "2200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Vampyre",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Vampyre#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"250\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 170.39999389648438,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Vampyre Juvenile",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Vampyre Juvenile#Burgh de Rott.png\" decoding=\"async\" loading=\"lazy\" width=\"150\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 100,
+ "susceptible": [],
+ "lifepoint-exp": 33,
+ "max-melee": "160",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Burgh de Rott",
+ "slayer-exp": 28,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vampyre Juvenile#Meiyerditch.png\" decoding=\"async\" loading=\"lazy\" width=\"121\" height=\"300\" id=\"image-?\">",
+ "level": "56",
+ "defence": "40",
+ "slayer-level": "?",
+ "experience": 100,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 33,
+ "max-melee": "160",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Meiyerditch",
+ "slayer-exp": 28,
+ "lifepoints": "2000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Vampyre Juvinate",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Vampyre Juvinate#Burgh de Rott (Level 58).png\" decoding=\"async\" loading=\"lazy\" width=\"116\" height=\"300\" id=\"image-?\">",
+ "level": "58",
+ "defence": "42",
+ "slayer-level": "1",
+ "experience": 105,
+ "susceptible": [],
+ "lifepoint-exp": 34.599998474121094,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Burgh de Rott (Level 58)",
+ "slayer-exp": 210,
+ "lifepoints": "2100",
+ "max-ranged": "168",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vampyre Juvinate#Burgh de Rott (Level 63).png\" decoding=\"async\" loading=\"lazy\" width=\"116\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 487.5,
+ "susceptible": [],
+ "lifepoint-exp": 160.8000030517578,
+ "max-melee": "576",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Burgh de Rott (Level 63)",
+ "slayer-exp": 210,
+ "lifepoints": "9750",
+ "max-ranged": "576",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vampyre Juvinate#Meiyerditch.png\" decoding=\"async\" loading=\"lazy\" width=\"116\" height=\"300\" id=\"image-?\">",
+ "level": "61",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 487.5,
+ "susceptible": [],
+ "lifepoint-exp": 160.8000030517578,
+ "max-melee": "576",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Stab_weapons\" title=\"Stab weapons\" target=\"_blank\"><img src=\"./images/weakness/Stab_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"20\"><\/a>"],
+ "max-spec": "?",
+ "name": "Meiyerditch",
+ "slayer-exp": 210,
+ "lifepoints": "9750",
+ "max-ranged": "576",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vampyre Juvinate#Darkmeyer.png\" decoding=\"async\" loading=\"lazy\" width=\"116\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "60",
+ "slayer-level": "1",
+ "experience": 487.5,
+ "susceptible": [],
+ "lifepoint-exp": 160.8000030517578,
+ "max-melee": "576",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Darkmeyer",
+ "slayer-exp": 210,
+ "lifepoints": "9750",
+ "max-ranged": "576",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Devil's snare",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Devil's snare#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"274\" id=\"image-?\">",
+ "level": "220",
+ "defence": "70",
+ "slayer-level": "90",
+ "experience": 2100,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 693,
+ "max-melee": "1152",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Default",
+ "slayer-exp": 1760,
+ "lifepoints": "42000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Lampenflora",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Lampenflora#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"249\" height=\"300\" id=\"image-?\">",
+ "level": "216",
+ "defence": "70",
+ "slayer-level": "102",
+ "experience": 1250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 412.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "3600",
+ "name": "Default",
+ "slayer-exp": 1331.800048828125,
+ "lifepoints": "25000",
+ "max-ranged": "0",
+ "max-magic": "1296",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Liverworts",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Liverworts#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"245\" id=\"image-?\">",
+ "level": "228",
+ "defence": "70",
+ "slayer-level": "110",
+ "experience": 3000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 990,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "4104",
+ "name": "Default",
+ "slayer-exp": 3338.39990234375,
+ "lifepoints": "60000",
+ "max-ranged": "1368",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Luminous snaggler",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Luminous snaggler#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"200\" id=\"image-?\">",
+ "level": "224",
+ "defence": "70",
+ "slayer-level": "95",
+ "experience": 2900,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 957,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "6900",
+ "name": "Default",
+ "slayer-exp": 1664.800048828125,
+ "lifepoints": "58000",
+ "max-ranged": "0",
+ "max-magic": "2300",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Vyrelady",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Vyrelady#1.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "1",
+ "slayer-exp": 340,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelady#2.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "2",
+ "slayer-exp": 340,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelady#3.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "3",
+ "slayer-exp": 340,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelady#4.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "4",
+ "slayer-exp": 340,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelady#5.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "5",
+ "slayer-exp": 340,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelady#6.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "6",
+ "slayer-exp": 340,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Vyrelord",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Vyrelord#1.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "1",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelord#2.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "2",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelord#3.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "3",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelord#4.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "4",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelord#5.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "5",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrelord#6.png\" decoding=\"async\" loading=\"lazy\" width=\"106\" height=\"300\" id=\"image-?\">",
+ "level": "98",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 568.5,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"
+ ],
+ "lifepoint-exp": 187.60000610351562,
+ "max-melee": "672",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "6",
+ "slayer-exp": 343.6000061035156,
+ "lifepoints": "11370",
+ "max-ranged": "0",
+ "max-magic": "672",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Vyrewatch",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 70.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "70",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 125,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 41.20000076293945,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 70",
+ "slayer-exp": 43.20000076293945,
+ "lifepoints": "2500",
+ "max-ranged": "0",
+ "max-magic": "200",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 72.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "1",
+ "experience": 130,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 42.900001525878906,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 72",
+ "slayer-exp": 47.400001525878906,
+ "lifepoints": "2600",
+ "max-ranged": "0",
+ "max-magic": "208",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 75.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "75",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 135,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 44.5,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 75",
+ "slayer-exp": 52.20000076293945,
+ "lifepoints": "2700",
+ "max-ranged": "0",
+ "max-magic": "216",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 78.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "78",
+ "defence": "56",
+ "slayer-level": "1",
+ "experience": 140,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 46.20000076293945,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 78",
+ "slayer-exp": 57.599998474121094,
+ "lifepoints": "2800",
+ "max-ranged": "0",
+ "max-magic": "224",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 86.png\" decoding=\"async\" loading=\"lazy\" width=\"103\" height=\"300\" id=\"image-?\">",
+ "level": "86",
+ "defence": "62",
+ "slayer-level": "?",
+ "experience": 500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 165,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 86",
+ "slayer-exp": 238.6999969482422,
+ "lifepoints": "10000",
+ "max-ranged": "0",
+ "max-magic": "595",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 91.png\" decoding=\"async\" loading=\"lazy\" width=\"103\" height=\"300\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "?",
+ "experience": 528,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 174.1999969482422,
+ "max-melee": "260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 91",
+ "slayer-exp": 364.5,
+ "lifepoints": "10560",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Temple Trekking (Easy Route).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "49",
+ "defence": "35",
+ "slayer-level": "?",
+ "experience": 175,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 57.70000076293945,
+ "max-melee": "140",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Temple Trekking (Easy Route)",
+ "slayer-exp": -1,
+ "lifepoints": "3500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Temple Trekking (Medium Route).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "91",
+ "defence": "65",
+ "slayer-level": "?",
+ "experience": 325,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 107.19999694824219,
+ "max-melee": "260",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Temple Trekking (Medium Route)",
+ "slayer-exp": -1,
+ "lifepoints": "6500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Temple Trekking (Hard Route).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "97",
+ "defence": "60",
+ "slayer-level": "?",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Blisterwood\" title=\"Blisterwood\" target=\"_blank\"><img src=\"./images/susceptible/s/Blisterwood_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"29\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "280",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Temple Trekking (Hard Route)",
+ "slayer-exp": -1,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 70 (East of Burgh de Rott).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "70",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": 406,
+ "susceptible": [],
+ "lifepoint-exp": 133.89999389648438,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Level 70 (East of Burgh de Rott)",
+ "slayer-exp": -1,
+ "lifepoints": "8120",
+ "max-ranged": "0",
+ "max-magic": "?",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 72 (East of Burgh de Rott).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "72",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": 422.5,
+ "susceptible": [],
+ "lifepoint-exp": 139.39999389648438,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Level 72 (East of Burgh de Rott)",
+ "slayer-exp": -1,
+ "lifepoints": "8450",
+ "max-ranged": "0",
+ "max-magic": "?",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 75 (East of Burgh de Rott).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "75",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": 438.5,
+ "susceptible": [],
+ "lifepoint-exp": 144.6999969482422,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Level 75 (East of Burgh de Rott)",
+ "slayer-exp": -1,
+ "lifepoints": "8770",
+ "max-ranged": "0",
+ "max-magic": "?",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vyrewatch#Level 78 (East of Burgh de Rott).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "78",
+ "defence": "?",
+ "slayer-level": "?",
+ "experience": 455,
+ "susceptible": [],
+ "lifepoint-exp": 150.10000610351562,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Level 78 (East of Burgh de Rott)",
+ "slayer-exp": -1,
+ "lifepoints": "9100",
+ "max-ranged": "0",
+ "max-magic": "?",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Wall beast",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Wall beast#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "45",
+ "defence": "34",
+ "slayer-level": "35",
+ "experience": 272.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 89.9000015258789,
+ "max-melee": "600",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 20.600000381469727,
+ "lifepoints": "5450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Warped terrorbird",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#1.png\" decoding=\"async\" loading=\"lazy\" width=\"239\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "1",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#1 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"236\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "1 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#2.png\" decoding=\"async\" loading=\"lazy\" width=\"218\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "2",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#2 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"224\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "2 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#3.png\" decoding=\"async\" loading=\"lazy\" width=\"229\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "3",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#3 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"230\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "3 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#4.png\" decoding=\"async\" loading=\"lazy\" width=\"215\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "4",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#4 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"209\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "4 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#5.png\" decoding=\"async\" loading=\"lazy\" width=\"265\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "5",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#5 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"242\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "5 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#6.png\" decoding=\"async\" loading=\"lazy\" width=\"239\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "6",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#6 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"246\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "6 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#7.png\" decoding=\"async\" loading=\"lazy\" width=\"212\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "7",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#7 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"217\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "7 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#8.png\" decoding=\"async\" loading=\"lazy\" width=\"250\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "8",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#8 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"263\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "8 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#9.png\" decoding=\"async\" loading=\"lazy\" width=\"250\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "9",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#9 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"232\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "9 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#10.png\" decoding=\"async\" loading=\"lazy\" width=\"220\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "10",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped terrorbird#10 (chimed).png\" decoding=\"async\" loading=\"lazy\" width=\"212\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "59",
+ "slayer-level": "56",
+ "experience": 295,
+ "susceptible": [],
+ "lifepoint-exp": 97.30000305175781,
+ "max-melee": "177",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "10 (chimed)",
+ "slayer-exp": 133.39999389648438,
+ "lifepoints": "5900",
+ "max-ranged": "236",
+ "max-magic": "177",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Warped tortoise",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Warped tortoise#Immune.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"199\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "56",
+ "experience": 260,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 85.80000305175781,
+ "max-melee": "156",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Immune",
+ "slayer-exp": 95,
+ "lifepoints": "5200",
+ "max-ranged": "0",
+ "max-magic": "208",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Warped tortoise#Vulnerable.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"183\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "56",
+ "experience": 260,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 85.80000305175781,
+ "max-melee": "156",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Vulnerable",
+ "slayer-exp": 95,
+ "lifepoints": "5200",
+ "max-ranged": "0",
+ "max-magic": "208",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Maelstrom, Raging Waterfiend",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Maelstrom, Raging Waterfiend#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"218\" height=\"300\" id=\"image-?\">",
+ "level": "142",
+ "defence": "77",
+ "slayer-level": "?",
+ "experience": 9000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2970,
+ "max-melee": "1414",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 10000,
+ "lifepoints": "180000",
+ "max-ranged": "2113",
+ "max-magic": "2388",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Torrential Waterfiend",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Torrential Waterfiend#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"218\" height=\"300\" id=\"image-?\">",
+ "level": "118",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 900,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 297,
+ "max-melee": "1414",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "18000",
+ "max-ranged": "1727",
+ "max-magic": "1727",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Torrential Waterfiend (summoned)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Torrential Waterfiend (summoned)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"286\" height=\"300\" id=\"image-?\">",
+ "level": "118",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 900,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 297,
+ "max-melee": "1414",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "18000",
+ "max-ranged": "1727",
+ "max-magic": "1727",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Waterfiend",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Waterfiend#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"215\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 132,
+ "max-melee": "800",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 335,
+ "lifepoints": "8000",
+ "max-ranged": "800",
+ "max-magic": "800",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Waterfiend (Ghorrock)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Waterfiend (Ghorrock)#102.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "102",
+ "defence": "73",
+ "slayer-level": "1",
+ "experience": 400,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 132,
+ "max-melee": "739",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "102",
+ "slayer-exp": 290.79998779296875,
+ "lifepoints": "8000",
+ "max-ranged": "739",
+ "max-magic": "739",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Waterfiend (Ghorrock)#107.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "720",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "107",
+ "slayer-exp": -1,
+ "lifepoints": "20000",
+ "max-ranged": "0",
+ "max-magic": "720",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Waterfiend (Temple of Aminishi)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Waterfiend (Temple of Aminishi)#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 700,
+ "susceptible": [],
+ "lifepoint-exp": 231,
+ "max-melee": "936",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "14000",
+ "max-ranged": "936",
+ "max-magic": "936",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Waterfiend (Temple of Aminishi)#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 700,
+ "susceptible": [],
+ "lifepoint-exp": 231,
+ "max-melee": "936",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "14000",
+ "max-ranged": "936",
+ "max-magic": "936",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Waterfiend (The Zamorakian Undercity)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Waterfiend (The Zamorakian Undercity)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"218\" height=\"300\" id=\"image-?\">",
+ "level": "111",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 450,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 148.5,
+ "max-melee": "1414",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 600,
+ "lifepoints": "9000",
+ "max-ranged": "1506",
+ "max-magic": "1506",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Waterfiend (elite)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Waterfiend (elite)#Ancient Cavern.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "111",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 1600,
+ "susceptible": [],
+ "lifepoint-exp": 528,
+ "max-melee": "2400",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Ancient Cavern",
+ "slayer-exp": 1181.4000244140625,
+ "lifepoints": "32000",
+ "max-ranged": "2400",
+ "max-magic": "2400",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Waterfiend (elite)#Ghorrock.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "111",
+ "defence": "77",
+ "slayer-level": "1",
+ "experience": 1600,
+ "susceptible": [],
+ "lifepoint-exp": 528,
+ "max-melee": "2400",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Ghorrock",
+ "slayer-exp": 1181.4000244140625,
+ "lifepoints": "32000",
+ "max-ranged": "2400",
+ "max-magic": "2400",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Waterfiend (summoned)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Waterfiend (summoned)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"286\" height=\"300\" id=\"image-?\">",
+ "level": "111",
+ "defence": "77",
+ "slayer-level": "?",
+ "experience": 450,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Demon_slayer_(effect)\" title=\"Demon slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Demon_Slayer_%28perk%29.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 148.5,
+ "max-melee": "1414",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "9000",
+ "max-ranged": "1506",
+ "max-magic": "1506",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Werewolf",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Boris.png\" decoding=\"async\" loading=\"lazy\" width=\"184\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "45",
+ "slayer-level": "1",
+ "experience": 112.5,
+ "susceptible": [],
+ "lifepoint-exp": 37.099998474121094,
+ "max-melee": "225",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Boris",
+ "slayer-exp": 34.5,
+ "lifepoints": "2250",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Imre.png\" decoding=\"async\" loading=\"lazy\" width=\"187\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Imre",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Yuri.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Yuri",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Joseph.png\" decoding=\"async\" loading=\"lazy\" width=\"184\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Joseph",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Nikolai.png\" decoding=\"async\" loading=\"lazy\" width=\"185\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Nikolai",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Eduard.png\" decoding=\"async\" loading=\"lazy\" width=\"188\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Eduard",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Lev.png\" decoding=\"async\" loading=\"lazy\" width=\"184\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Lev",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Georgy.png\" decoding=\"async\" loading=\"lazy\" width=\"183\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Georgy",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Svetlana.png\" decoding=\"async\" loading=\"lazy\" width=\"161\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Svetlana",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Irina.png\" decoding=\"async\" loading=\"lazy\" width=\"158\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Irina",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Alexis.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Alexis",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Milla.png\" decoding=\"async\" loading=\"lazy\" width=\"162\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Milla",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Galina.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Galina",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Sofiya.png\" decoding=\"async\" loading=\"lazy\" width=\"161\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Sofiya",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Ksenia.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Ksenia",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Yadviga.png\" decoding=\"async\" loading=\"lazy\" width=\"149\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Yadviga",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Nikita.png\" decoding=\"async\" loading=\"lazy\" width=\"155\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Nikita",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Vera.png\" decoding=\"async\" loading=\"lazy\" width=\"157\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Vera",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Zoja.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Zoja",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#Liliya.png\" decoding=\"async\" loading=\"lazy\" width=\"156\" height=\"300\" id=\"image-?\">",
+ "level": "63",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Liliya",
+ "slayer-exp": 34.5,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#God Wars Dungeon (male).png\" decoding=\"async\" loading=\"lazy\" width=\"160\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "God Wars Dungeon (male)",
+ "slayer-exp": 171,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Werewolf#God Wars Dungeon (female).png\" decoding=\"async\" loading=\"lazy\" width=\"146\" height=\"300\" id=\"image-?\">",
+ "level": "89",
+ "defence": "64",
+ "slayer-level": "1",
+ "experience": 320,
+ "susceptible": [],
+ "lifepoint-exp": 105.5999984741211,
+ "max-melee": "256",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "God Wars Dungeon (female)",
+ "slayer-exp": 171,
+ "lifepoints": "6400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Adolescent White wolf",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Adolescent White wolf#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"282\" height=\"300\" id=\"image-?\">",
+ "level": "6",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "120",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 7,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Big Wolf",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Big Wolf#White.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"241\" id=\"image-?\">",
+ "level": "20",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 147.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 48.599998474121094,
+ "max-melee": "340",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "White",
+ "slayer-exp": 18,
+ "lifepoints": "2950",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Big Wolf#Grey.png\" decoding=\"async\" loading=\"lazy\" width=\"264\" height=\"300\" id=\"image-?\">",
+ "level": "20",
+ "defence": "13",
+ "slayer-level": "1",
+ "experience": 147.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 48.599998474121094,
+ "max-melee": "340",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Grey",
+ "slayer-exp": 18,
+ "lifepoints": "2950",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Desert wolf",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Desert wolf#Brown.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"223\" id=\"image-?\">",
+ "level": "12",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Brown",
+ "slayer-exp": 8.800000190734863,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Desert wolf#Grey.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"247\" id=\"image-?\">",
+ "level": "12",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Grey",
+ "slayer-exp": 8.800000190734863,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Dire Wolf",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Dire Wolf#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "43",
+ "defence": "29",
+ "slayer-level": "1",
+ "experience": 232.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 76.69999694824219,
+ "max-melee": "660",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 19.600000381469727,
+ "lifepoints": "4650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Fenris wolf",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Fenris wolf#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"294\" height=\"300\" id=\"image-?\">",
+ "level": "46",
+ "defence": "31",
+ "slayer-level": "1",
+ "experience": 247.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 81.5999984741211,
+ "max-melee": "700",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": 21.600000381469727,
+ "lifepoints": "4950",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Fenris wolf (Sköll)",
+ "variants": []
+ },
+ {
+ "name": "Ice wolf",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Ice wolf#58.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"276\" id=\"image-?\">",
+ "level": "58",
+ "defence": "40",
+ "slayer-level": "1",
+ "experience": 325,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 107.19999694824219,
+ "max-melee": "880",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "58",
+ "slayer-exp": 45.400001525878906,
+ "lifepoints": "6500",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Ice wolf#72.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"276\" id=\"image-?\">",
+ "level": "72",
+ "defence": "50",
+ "slayer-level": "1",
+ "experience": 420,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 138.60000610351562,
+ "max-melee": "1350",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "72",
+ "slayer-exp": 207.39999389648438,
+ "lifepoints": "8400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Jungle Wolf",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Jungle Wolf#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"278\" id=\"image-?\">",
+ "level": "78",
+ "defence": "54",
+ "slayer-level": "1",
+ "experience": 460,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 151.8000030517578,
+ "max-melee": "1160",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 81,
+ "lifepoints": "9200",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "White wolf",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/White wolf#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"282\" height=\"300\" id=\"image-?\">",
+ "level": "12",
+ "defence": "7",
+ "slayer-level": "1",
+ "experience": 82.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 27.200000762939453,
+ "max-melee": "220",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 12.600000381469727,
+ "lifepoints": "1650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Wolf",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Wolf#Level 8 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"252\" height=\"300\" id=\"image-?\">",
+ "level": "8",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "160",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 8 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Wolf#Level 8 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "8",
+ "defence": "4",
+ "slayer-level": "1",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "160",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 8 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Wolf#Level 11 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"241\" id=\"image-?\">",
+ "level": "11",
+ "defence": "6",
+ "slayer-level": "1",
+ "experience": 77.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 25.5,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 11 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "1550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Wolf#Level 11 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"241\" id=\"image-?\">",
+ "level": "11",
+ "defence": "6",
+ "slayer-level": "1",
+ "experience": 77.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 25.5,
+ "max-melee": "200",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 11 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "1550",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Armoured zombie (The Shadow Reef)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie (The Shadow Reef)#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "?",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "864",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": 841,
+ "lifepoints": "20000",
+ "max-ranged": "739",
+ "max-magic": "739",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie (The Shadow Reef)#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "77",
+ "slayer-level": "?",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "864",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "20000",
+ "max-ranged": "739",
+ "max-magic": "739",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Armoured zombie (Uncharted Isles)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie (Uncharted Isles)#Docile (Throwing Axes).png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 16.5,
+ "max-melee": "268",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Docile (Throwing Axes)",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "268",
+ "max-magic": "268",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie (Uncharted Isles)#Docile (Sword and Shield).png\" decoding=\"async\" loading=\"lazy\" width=\"116\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 16.5,
+ "max-melee": "268",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Docile (Sword and Shield)",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "268",
+ "max-magic": "268",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Armoured zombie (Uncharted Isles)#Aggressive.png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 50,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 16.5,
+ "max-melee": "268",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Aggressive",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "268",
+ "max-magic": "268",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Bossy McBossFace",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Bossy McBossFace#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"281\" id=\"image-?\">",
+ "level": "123",
+ "defence": "72",
+ "slayer-level": "0",
+ "experience": 9000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2970,
+ "max-melee": "1966",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "180000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Dried zombie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Dried zombie#Parched.png\" decoding=\"async\" loading=\"lazy\" width=\"133\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "48",
+ "slayer-level": "1",
+ "experience": 120,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 39.599998474121094,
+ "max-melee": "192",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Parched",
+ "slayer-exp": 41,
+ "lifepoints": "2400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dried zombie#Unmoisturised.png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "48",
+ "slayer-level": "1",
+ "experience": 120,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 39.599998474121094,
+ "max-melee": "192",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Unmoisturised",
+ "slayer-exp": 41,
+ "lifepoints": "2400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Dried zombie#Dried.png\" decoding=\"async\" loading=\"lazy\" width=\"129\" height=\"300\" id=\"image-?\">",
+ "level": "67",
+ "defence": "48",
+ "slayer-level": "1",
+ "experience": 120,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 39.599998474121094,
+ "max-melee": "192",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Dried",
+ "slayer-exp": 41,
+ "lifepoints": "2400",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Empowering zombie",
+ "variants": []
+ },
+ {
+ "name": "Summoned Zombie",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Summoned Zombie#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"95\" height=\"300\" id=\"image-?\">",
+ "level": "12",
+ "defence": "9",
+ "slayer-level": "1",
+ "experience": 22.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 7.400000095367432,
+ "max-melee": "36",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 8,
+ "lifepoints": "450",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Summoned Zombie (The Shadow Reef)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Summoned Zombie (The Shadow Reef)#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"148\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "0",
+ "experience": 600,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 198,
+ "max-melee": "368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "8000",
+ "max-ranged": "368",
+ "max-magic": "368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Summoned Zombie (The Shadow Reef)#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"148\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "?",
+ "slayer-level": "0",
+ "experience": -1,
+ "susceptible": [],
+ "lifepoint-exp": -1,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Summoned armoured zombie",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Summoned armoured zombie#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "107",
+ "defence": "77",
+ "slayer-level": "0",
+ "experience": 1000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 330,
+ "max-melee": "864",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Water_spells\" title=\"Water spells\" target=\"_blank\"><img src=\"./images/weakness/Water_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "10000",
+ "max-ranged": "864",
+ "max-magic": "864",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Summoned armoured zombie#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "?",
+ "slayer-level": "0",
+ "experience": -1,
+ "susceptible": [],
+ "lifepoint-exp": -1,
+ "max-melee": "?",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Ulthven Keith",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Ulthven Keith#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"286\" id=\"image-?\">",
+ "level": "117",
+ "defence": "72",
+ "slayer-level": "0",
+ "experience": 9000,
+ "susceptible": [
+ "<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>",
+ "<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"
+ ],
+ "lifepoint-exp": 2970,
+ "max-melee": "1966",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "180000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Undead Witch",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Undead Witch#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"114\" height=\"300\" id=\"image-?\">",
+ "level": "170",
+ "defence": "75",
+ "slayer-level": "0",
+ "experience": 1500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 495,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "30000",
+ "max-ranged": "0",
+ "max-magic": "Varies",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Undead Witch#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"114\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "?",
+ "slayer-level": "0",
+ "experience": -1,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": -1,
+ "max-melee": "?",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "?",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zombie (Lair of Tarn Razorlor)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#72.png\" decoding=\"async\" loading=\"lazy\" width=\"102\" height=\"300\" id=\"image-?\">",
+ "level": "72",
+ "defence": "52",
+ "slayer-level": "1",
+ "experience": 130,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 42.900001525878906,
+ "max-melee": "208",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "72",
+ "slayer-exp": -1,
+ "lifepoints": "2600",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#74 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"101\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "74 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#74 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"101\" height=\"300\" id=\"image-?\">",
+ "level": "74",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "74 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#75 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"101\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "75 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#75 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"101\" height=\"300\" id=\"image-?\">",
+ "level": "75",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "75 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#77 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"96\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "77 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#77 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"122\" height=\"300\" id=\"image-?\">",
+ "level": "77",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "77 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#78 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"121\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "78 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#78 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"120\" height=\"300\" id=\"image-?\">",
+ "level": "78",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "78 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#79 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"113\" height=\"300\" id=\"image-?\">",
+ "level": "79",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "79 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#79 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"113\" height=\"300\" id=\"image-?\">",
+ "level": "79",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "79 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#82 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "82 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#82 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "82 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#82 (3).png\" decoding=\"async\" loading=\"lazy\" width=\"107\" height=\"300\" id=\"image-?\">",
+ "level": "82",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "82 (3)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#84 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"113\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "84 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#84 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"113\" height=\"300\" id=\"image-?\">",
+ "level": "84",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "84 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#85 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"111\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "85 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Lair of Tarn Razorlor)#85 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"112\" height=\"300\" id=\"image-?\">",
+ "level": "85",
+ "defence": "61",
+ "slayer-level": "1",
+ "experience": 152.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 50.29999923706055,
+ "max-melee": "244",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "85 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "3050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Zombie (Stronghold of Security)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Stronghold of Security)#Level 12.png\" decoding=\"async\" loading=\"lazy\" width=\"109\" height=\"300\" id=\"image-?\">",
+ "level": "12",
+ "defence": "9",
+ "slayer-level": "1",
+ "experience": 95,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 31.299999237060547,
+ "max-melee": "180",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 12",
+ "slayer-exp": -1,
+ "lifepoints": "1900",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Stronghold of Security)#Level 21.png\" decoding=\"async\" loading=\"lazy\" width=\"248\" height=\"300\" id=\"image-?\">",
+ "level": "21",
+ "defence": "15",
+ "slayer-level": "1",
+ "experience": 132.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 43.70000076293945,
+ "max-melee": "300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Earth_spells\" title=\"Earth spells\" target=\"_blank\"><img src=\"./images/weakness/Earth_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 21",
+ "slayer-exp": -1,
+ "lifepoints": "2650",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zombie (Temple Trekking)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Zombie (Temple Trekking)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"96\" height=\"300\" id=\"image-?\">",
+ "level": "28",
+ "defence": "20",
+ "slayer-level": "?",
+ "experience": 50,
+ "susceptible": [],
+ "lifepoint-exp": 16.5,
+ "max-melee": "0",
+ "weakness": [],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "Zombie (The Shadow Reef)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie (The Shadow Reef)#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"148\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "67",
+ "slayer-level": "0",
+ "experience": 600,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 198,
+ "max-melee": "384",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": 504,
+ "lifepoints": "12000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (The Shadow Reef)#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"148\" height=\"300\" id=\"image-?\">",
+ "level": "108",
+ "defence": "67",
+ "slayer-level": "0",
+ "experience": 300,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 99,
+ "max-melee": "384",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": 504,
+ "lifepoints": "6000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zombie (Uncharted Isles)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Uncharted Isles)#Male.png\" decoding=\"async\" loading=\"lazy\" width=\"127\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 236,
+ "susceptible": [],
+ "lifepoint-exp": 77.80000305175781,
+ "max-melee": "1515",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Male",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Uncharted Isles)#Female.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 236,
+ "susceptible": [],
+ "lifepoint-exp": 77.80000305175781,
+ "max-melee": "1515",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Female",
+ "slayer-exp": -1,
+ "lifepoints": "1000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Uncharted Isles)#Aggressive.png\" decoding=\"async\" loading=\"lazy\" width=\"127\" height=\"300\" id=\"image-?\">",
+ "level": "93",
+ "defence": "67",
+ "slayer-level": "1",
+ "experience": 236,
+ "susceptible": [],
+ "lifepoint-exp": 77.80000305175781,
+ "max-melee": "1515",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Aggressive",
+ "slayer-exp": -1,
+ "lifepoints": "4950",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Zombie (Wilderness)",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Wilderness)#Level 22 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"131\" height=\"300\" id=\"image-?\">",
+ "level": "22",
+ "defence": "16",
+ "slayer-level": "?",
+ "experience": 40,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 13.199999809265137,
+ "max-melee": "64",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 22 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "800",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Wilderness)#Level 22 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"127\" height=\"300\" id=\"image-?\">",
+ "level": "22",
+ "defence": "21",
+ "slayer-level": "?",
+ "experience": 52.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 17.299999237060547,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 22 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Wilderness)#Level 22 (3).png\" decoding=\"async\" loading=\"lazy\" width=\"130\" height=\"300\" id=\"image-?\">",
+ "level": "22",
+ "defence": "21",
+ "slayer-level": "?",
+ "experience": 52.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 17.299999237060547,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 22 (3)",
+ "slayer-exp": -1,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Wilderness)#Level 29 (1).png\" decoding=\"async\" loading=\"lazy\" width=\"127\" height=\"300\" id=\"image-?\">",
+ "level": "29",
+ "defence": "21",
+ "slayer-level": "?",
+ "experience": 52.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 17.299999237060547,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 29 (1)",
+ "slayer-exp": -1,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Wilderness)#Level 29 (2).png\" decoding=\"async\" loading=\"lazy\" width=\"128\" height=\"300\" id=\"image-?\">",
+ "level": "29",
+ "defence": "21",
+ "slayer-level": "?",
+ "experience": 52.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 17.299999237060547,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 29 (2)",
+ "slayer-exp": -1,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Wilderness)#Level 29 (3).png\" decoding=\"async\" loading=\"lazy\" width=\"130\" height=\"300\" id=\"image-?\">",
+ "level": "29",
+ "defence": "21",
+ "slayer-level": "?",
+ "experience": 52.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 17.299999237060547,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 29 (3)",
+ "slayer-exp": -1,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zombie (Wilderness)#Level 29 (4).png\" decoding=\"async\" loading=\"lazy\" width=\"128\" height=\"300\" id=\"image-?\">",
+ "level": "29",
+ "defence": "21",
+ "slayer-level": "?",
+ "experience": 52.5,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 17.299999237060547,
+ "max-melee": "105",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Fire_spells\" title=\"Fire spells\" target=\"_blank\"><img src=\"./images/weakness/Fire_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Level 29 (4)",
+ "slayer-exp": -1,
+ "lifepoints": "1050",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "Zombie (Zogre Flesh Eaters)",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Zombie (Zogre Flesh Eaters)#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"118\" height=\"300\" id=\"image-?\">",
+ "level": "36",
+ "defence": "26",
+ "slayer-level": "?",
+ "experience": 65,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 21.399999618530273,
+ "max-melee": "156",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Arrows\" title=\"Arrows\" target=\"_blank\"><img src=\"./images/weakness/Arrow_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "?",
+ "name": "Default",
+ "slayer-exp": -1,
+ "lifepoints": "1300",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "?"
+ }]
+ },
+ {
+ "name": "The Ambassador",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/The Ambassador#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"145\" height=\"300\" id=\"image-?\">",
+ "level": "5500",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 25000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 8250,
+ "max-melee": "3300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "9000",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "1000000",
+ "max-ranged": "2200",
+ "max-magic": "10000",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/The Ambassador#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"145\" height=\"300\" id=\"image-?\">",
+ "level": "5500",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 25000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 8250,
+ "max-melee": "330",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "900",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "500000",
+ "max-ranged": "220",
+ "max-magic": "1000",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Araxxi",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Araxxi#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"217\" id=\"image-?\">",
+ "level": "3000",
+ "defence": "80",
+ "slayer-level": "-4",
+ "experience": 2500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 825,
+ "max-melee": "1653",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "10700",
+ "name": "Default",
+ "slayer-exp": -4,
+ "lifepoints": "100000",
+ "max-ranged": "1653",
+ "max-magic": "1653",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Chaos Elemental",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Chaos Elemental#F2P.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"228\" id=\"image-?\">",
+ "level": "305",
+ "defence": "69",
+ "slayer-level": "?",
+ "experience": 862,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 284.3999938964844,
+ "max-melee": "1104",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "F2P",
+ "slayer-exp": -1,
+ "lifepoints": "17250",
+ "max-ranged": "1104",
+ "max-magic": "1104",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Chaos Elemental#P2P.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"228\" id=\"image-?\">",
+ "level": "305",
+ "defence": "69",
+ "slayer-level": "?",
+ "experience": 862,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 284.3999938964844,
+ "max-melee": "1104",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Bolts\" title=\"Bolts\" target=\"_blank\"><img src=\"./images/weakness/Bolt_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "P2P",
+ "slayer-exp": -1,
+ "lifepoints": "17250",
+ "max-ranged": "1104",
+ "max-magic": "1104",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Commander Zilyana",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Aftermath.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Aftermath",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Battle of the Monolith.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Battle of the Monolith",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Council of Burthorpe.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Council of Burthorpe",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Extinction.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Extinction",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Gower Quest.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Gower Quest",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Missing, Presumed Death.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Missing, Presumed Death",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Once Upon a Time in Gielinor.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Once Upon a Time in Gielinor",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Ritual of the Mahjarrat.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Ritual of the Mahjarrat",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#Senntisten.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Senntisten",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Commander Zilyana#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "The World Wakes",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ }
+ ]
+ },
+ {
+ "name": "Croesus",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Croesus#Active.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"255\" id=\"image-?\">",
+ "level": "6000",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Active",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Croesus#Dormant.png\" decoding=\"async\" loading=\"lazy\" width=\"267\" height=\"300\" id=\"image-?\">",
+ "level": "6000",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Dormant",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ }
+ ]
+ },
+ {
+ "name": "Corporeal Beast",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Corporeal Beast#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"253\" height=\"300\" id=\"image-?\">",
+ "level": "785",
+ "defence": "75",
+ "slayer-level": "-4",
+ "experience": 2500,
+ "susceptible": [],
+ "lifepoint-exp": 825,
+ "max-melee": "3000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": -4,
+ "lifepoints": "100000",
+ "max-ranged": "720",
+ "max-magic": "720",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "General Graardor",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/General Graardor#Hard mode.png\" decoding=\"async\" loading=\"lazy\" width=\"208\" height=\"300\" id=\"image-?\">",
+ "level": "624",
+ "defence": "72",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Hard mode",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/General Graardor#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"208\" height=\"300\" id=\"image-?\">",
+ "level": "624",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 2000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 660,
+ "max-melee": "7000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Normal",
+ "slayer-exp": -1,
+ "lifepoints": "40000",
+ "max-ranged": "1676",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/General Graardor#The Mighty Fall.png\" decoding=\"async\" loading=\"lazy\" width=\"266\" height=\"300\" id=\"image-?\">",
+ "level": "210",
+ "defence": "72",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "4800",
+ "name": "The Mighty Fall",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/General Graardor#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"208\" height=\"300\" id=\"image-?\">",
+ "level": "210",
+ "defence": "72",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "The World Wakes",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Giant mole",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Giant mole#Hard Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"288\" id=\"image-?\">",
+ "level": "230",
+ "defence": "45",
+ "slayer-level": "?",
+ "experience": 1950,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 643.5,
+ "max-melee": "720",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2800",
+ "name": "Hard Mode",
+ "slayer-exp": -1,
+ "lifepoints": "78000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Giant mole#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"288\" id=\"image-?\">",
+ "level": "230",
+ "defence": "45",
+ "slayer-level": "?",
+ "experience": 1950,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 643.5,
+ "max-melee": "720",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2800",
+ "name": "Normal",
+ "slayer-exp": -1,
+ "lifepoints": "78000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Gregorovic",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Gregorovic#Challenge Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"203\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "2300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2300",
+ "name": "Challenge Mode",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "2300",
+ "max-magic": "1800",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Gregorovic#Normal Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"203\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "2300",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "2300",
+ "name": "Normal Mode",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "2300",
+ "max-magic": "1800",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Gregorovic#Sliske's Endgame.png\" decoding=\"async\" loading=\"lazy\" width=\"203\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Sliske's Endgame",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "1152",
+ "max-magic": "1152",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Har-Aken",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Har-Aken#Head.png\" decoding=\"async\" loading=\"lazy\" width=\"298\" height=\"300\" id=\"image-?\">",
+ "level": "800",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 3750,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1237.5,
+ "max-melee": "1152",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Head",
+ "slayer-exp": -1,
+ "lifepoints": "150000",
+ "max-ranged": "1152",
+ "max-magic": "1152",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Har-Aken#Magic Tentacle.png\" decoding=\"async\" loading=\"lazy\" width=\"113\" height=\"300\" id=\"image-?\">",
+ "level": "800",
+ "defence": "76",
+ "slayer-level": "?",
+ "experience": 350,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 115.5,
+ "max-melee": "820",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Thrown_weapons\" title=\"Thrown weapons\" target=\"_blank\"><img src=\"./images/weakness/Thrown_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "0",
+ "name": "Magic Tentacle",
+ "slayer-exp": -1,
+ "lifepoints": "7000",
+ "max-ranged": "1094",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Har-Aken#Ranged Tentacle.png\" decoding=\"async\" loading=\"lazy\" width=\"134\" height=\"300\" id=\"image-?\">",
+ "level": "800",
+ "defence": "76",
+ "slayer-level": "?",
+ "experience": 350,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 115.5,
+ "max-melee": "820",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Slash_weapons\" title=\"Slash weapons\" target=\"_blank\"><img src=\"./images/weakness/Slash_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"22\"><\/a>"],
+ "max-spec": "0",
+ "name": "Ranged Tentacle",
+ "slayer-exp": -1,
+ "lifepoints": "7000",
+ "max-ranged": "1094",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Helwyr",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Helwyr#Challenge Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"219\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1296",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "6000",
+ "name": "Challenge Mode",
+ "slayer-exp": -1,
+ "lifepoints": "300000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Helwyr#Normal Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"219\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1224",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "3000",
+ "name": "Normal Mode",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Hermod, the Spirit of War",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Hermod, the Spirit of War#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"234\" height=\"300\" id=\"image-?\">",
+ "level": "732",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Necromancy\" title=\"Necromancy\" target=\"_blank\"><img src=\"./images/weakness/s/Necromancy-icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2250",
+ "name": "Normal",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "1750"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Hermod, the Spirit of War#Quest.png\" decoding=\"async\" loading=\"lazy\" width=\"234\" height=\"300\" id=\"image-?\">",
+ "level": "732",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/Necromancy\" title=\"Necromancy\" target=\"_blank\"><img src=\"./images/weakness/s/Necromancy-icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "max-spec": "2250",
+ "name": "Quest",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "1750"
+ }
+ ]
+ },
+ {
+ "name": "Nex",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Nex#Magic.png\" decoding=\"async\" loading=\"lazy\" width=\"287\" height=\"300\" id=\"image-?\">",
+ "level": "1001",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1250",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "8000",
+ "name": "Magic",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "1250",
+ "max-magic": "1250",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Nex#Melee.png\" decoding=\"async\" loading=\"lazy\" width=\"282\" height=\"300\" id=\"image-?\">",
+ "level": "1001",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1250",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "8000",
+ "name": "Melee",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "1250",
+ "max-magic": "1250",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Nex#Ranged.png\" decoding=\"async\" loading=\"lazy\" width=\"292\" height=\"300\" id=\"image-?\">",
+ "level": "1001",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1250",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "8000",
+ "name": "Ranged",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "1250",
+ "max-magic": "1250",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Nex#Standard.png\" decoding=\"async\" loading=\"lazy\" width=\"271\" height=\"300\" id=\"image-?\">",
+ "level": "1001",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1250",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "8000",
+ "name": "Standard",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "1250",
+ "max-magic": "1250",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Nex: Angel of Death",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Nex: Angel of Death#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"251\" height=\"300\" id=\"image-?\">",
+ "level": "7000",
+ "defence": "99",
+ "slayer-level": "-4",
+ "experience": 75000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 24750,
+ "max-melee": "2123",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "75000",
+ "name": "Default",
+ "slayer-exp": -4,
+ "lifepoints": "3000000",
+ "max-ranged": "2123",
+ "max-magic": "2123",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Raksha, the Shadow Colossus",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Raksha, the Shadow Colossus#During fight.png\" decoding=\"async\" loading=\"lazy\" width=\"231\" height=\"300\" id=\"image-?\">",
+ "level": "6000",
+ "defence": "85",
+ "slayer-level": "?",
+ "experience": 40000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 13200,
+ "max-melee": "2570",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "During fight",
+ "slayer-exp": -1,
+ "lifepoints": "800000",
+ "max-ranged": "2570",
+ "max-magic": "2570",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Raksha, the Shadow Colossus#During fight (duo).png\" decoding=\"async\" loading=\"lazy\" width=\"231\" height=\"300\" id=\"image-?\">",
+ "level": "6000",
+ "defence": "85",
+ "slayer-level": "?",
+ "experience": 40000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 13200,
+ "max-melee": "2570",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "During fight (duo)",
+ "slayer-exp": -1,
+ "lifepoints": "1600000",
+ "max-ranged": "2570",
+ "max-magic": "2570",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Raksha, the Shadow Colossus#Shackled.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"212\" id=\"image-?\">",
+ "level": "6000",
+ "defence": "85",
+ "slayer-level": "?",
+ "experience": 40000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 13200,
+ "max-melee": "2570",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Shackled",
+ "slayer-exp": -1,
+ "lifepoints": "N/A",
+ "max-ranged": "2570",
+ "max-magic": "2570",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Raksha, the Shadow Colossus#Subdued.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"179\" id=\"image-?\">",
+ "level": "6000",
+ "defence": "85",
+ "slayer-level": "?",
+ "experience": 40000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 13200,
+ "max-melee": "2570",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Subdued",
+ "slayer-exp": -1,
+ "lifepoints": "N/A",
+ "max-ranged": "2570",
+ "max-magic": "2570",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Rasial, the First Necromancer",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Rasial, the First Necromancer#Alpha vs Omega.png\" decoding=\"async\" loading=\"lazy\" width=\"207\" height=\"300\" id=\"image-?\">",
+ "level": "8462",
+ "defence": "95",
+ "slayer-level": "?",
+ "experience": 20000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 6600,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11500",
+ "name": "Alpha vs Omega",
+ "slayer-exp": -1,
+ "lifepoints": "400000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "2300"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Rasial, the First Necromancer#Normal.png\" decoding=\"async\" loading=\"lazy\" width=\"207\" height=\"300\" id=\"image-?\">",
+ "level": "8462",
+ "defence": "95",
+ "slayer-level": "?",
+ "experience": 18000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Undead_slayer_(effect)\" title=\"Undead slayer (effect)\" target=\"_blank\"><img src=\"./images/susceptible/Undead_Slayer.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"25\"><\/a>"],
+ "lifepoint-exp": 5940,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11500",
+ "name": "Normal",
+ "slayer-exp": -1,
+ "lifepoints": "800000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "2300"
+ }
+ ]
+ },
+ {
+ "name": "Seiryu the Azure Serpent",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Seiryu the Azure Serpent#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"148\" id=\"image-?\">",
+ "level": "10000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "1368",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "7500000",
+ "max-ranged": "1368",
+ "max-magic": "1368",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Seiryu the Azure Serpent#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"148\" id=\"image-?\">",
+ "level": "10000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 187500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 61875,
+ "max-melee": "?",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "3750000",
+ "max-ranged": "?",
+ "max-magic": "?",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Solak",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Solak#Left arm.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "2000",
+ "defence": "60",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "12000",
+ "name": "Left arm",
+ "slayer-exp": -1,
+ "lifepoints": "45000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Solak#Left leg.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "2000",
+ "defence": "60",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "12000",
+ "name": "Left leg",
+ "slayer-exp": -1,
+ "lifepoints": "35000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Solak#Right arm.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "2000",
+ "defence": "60",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "12000",
+ "name": "Right arm",
+ "slayer-exp": -1,
+ "lifepoints": "45000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Solak#Right leg.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "2000",
+ "defence": "60",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": [],
+ "lifepoint-exp": 0,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "12000",
+ "name": "Right leg",
+ "slayer-exp": -1,
+ "lifepoints": "35000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Solak#Solak.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "7000",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 200000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 66000,
+ "max-melee": "4000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "12000",
+ "name": "Solak",
+ "slayer-exp": -1,
+ "lifepoints": "2000000",
+ "max-ranged": "4000",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Solak#Withering.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"246\" id=\"image-?\">",
+ "level": "7000",
+ "defence": "60",
+ "slayer-level": "?",
+ "experience": 8000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 2640,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "12000",
+ "name": "Withering",
+ "slayer-exp": -1,
+ "lifepoints": "125000",
+ "max-ranged": "0",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Telos, the Warden",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Telos, the Warden#Dormant.png\" decoding=\"async\" loading=\"lazy\" width=\"190\" height=\"300\" id=\"image-?\">",
+ "level": "2000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": -2,
+ "susceptible": [],
+ "lifepoint-exp": -2,
+ "max-melee": "N/A",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Dormant",
+ "slayer-exp": -1,
+ "lifepoints": "N/A",
+ "max-ranged": "N/A",
+ "max-magic": "N/A",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Telos, the Warden#Phase 5.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"135\" id=\"image-?\">",
+ "level": "2000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 5000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 1650,
+ "max-melee": "0",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "Varies",
+ "name": "Phase 5",
+ "slayer-exp": -1,
+ "lifepoints": "100000",
+ "max-ranged": "0",
+ "max-magic": "1324",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Telos, the Warden#Standard.png\" decoding=\"async\" loading=\"lazy\" width=\"201\" height=\"300\" id=\"image-?\">",
+ "level": "2000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 20000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 6600,
+ "max-melee": "1324",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "5555",
+ "name": "Standard",
+ "slayer-exp": -1,
+ "lifepoints": "400000",
+ "max-ranged": "0",
+ "max-magic": "1324",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Nymora, the Vengeful",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Nymora, the Vengeful#Normal Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"173\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 12500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 4125,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal Mode",
+ "slayer-exp": -1,
+ "lifepoints": "250000",
+ "max-ranged": "816",
+ "max-magic": "816",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Nymora, the Vengeful#Challenge Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"173\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Terrasaur_maul\" title=\"Terrasaur maul\" target=\"_blank\"><img src=\"./images/susceptible/Terrasaur_maul.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"30\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "864",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Challenge Mode",
+ "slayer-exp": -1,
+ "lifepoints": "350000",
+ "max-ranged": "864",
+ "max-magic": "864",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Avaryss, the Unceasing",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Avaryss, the Unceasing#Challenge Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"177\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 17500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 5775,
+ "max-melee": "864",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Challenge Mode",
+ "slayer-exp": -1,
+ "lifepoints": "350000",
+ "max-ranged": "864",
+ "max-magic": "864",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Avaryss, the Unceasing#Daughter of Chaos.png\" decoding=\"async\" loading=\"lazy\" width=\"177\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "N/A",
+ "slayer-level": "?",
+ "experience": 0,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 0,
+ "max-melee": "N/A",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "N/A",
+ "name": "Daughter of Chaos",
+ "slayer-exp": -1,
+ "lifepoints": "500000",
+ "max-ranged": "N/A",
+ "max-magic": "N/A",
+ "max-necromancy": "?"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Avaryss, the Unceasing#Normal Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"177\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "70",
+ "slayer-level": "?",
+ "experience": 12500,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4125,
+ "max-melee": "816",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "7140",
+ "name": "Normal Mode",
+ "slayer-exp": -1,
+ "lifepoints": "250000",
+ "max-ranged": "816",
+ "max-magic": "816",
+ "max-necromancy": "?"
+ }
+ ]
+ },
+ {
+ "name": "TzKal-Zuk",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/TzKal-Zuk#Hard Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"232\" id=\"image-?\">",
+ "level": "14000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 15000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4950,
+ "max-melee": "1837",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "15000",
+ "name": "Hard Mode",
+ "slayer-exp": -1,
+ "lifepoints": "1200000",
+ "max-ranged": "1837",
+ "max-magic": "1837",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/TzKal-Zuk#Normal Mode.png\" decoding=\"async\" loading=\"lazy\" width=\"300\" height=\"232\" id=\"image-?\">",
+ "level": "14000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 15000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4950,
+ "max-melee": "1837",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "15000",
+ "name": "Normal Mode",
+ "slayer-exp": -1,
+ "lifepoints": "600000",
+ "max-ranged": "1837",
+ "max-magic": "1837",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "TzTok-Jad",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/TzTok-Jad#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"212\" height=\"300\" id=\"image-?\">",
+ "level": "702",
+ "defence": "70",
+ "slayer-level": "1",
+ "experience": 1000,
+ "susceptible": [],
+ "lifepoint-exp": 330,
+ "max-melee": "8000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "0",
+ "name": "Default",
+ "slayer-exp": 1309,
+ "lifepoints": "40000",
+ "max-ranged": "8000",
+ "max-magic": "8000",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Vindicta",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Vindicta#Hard mode.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "85",
+ "slayer-level": "?",
+ "experience": 15000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 4950,
+ "max-melee": "4500",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Hard mode",
+ "slayer-exp": -1,
+ "lifepoints": "300000",
+ "max-ranged": "2500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Vindicta#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"169\" height=\"300\" id=\"image-?\">",
+ "level": "1000",
+ "defence": "75",
+ "slayer-level": "?",
+ "experience": 10000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 3300,
+ "max-melee": "3000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "?",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "200000",
+ "max-ranged": "1500",
+ "max-magic": "0",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Vorago",
+ "variants": [{
+ "image": "<img src=\"./images/creatures/Vorago#Default.png\" decoding=\"async\" loading=\"lazy\" width=\"245\" height=\"300\" id=\"image-?\">",
+ "level": "10000",
+ "defence": "90",
+ "slayer-level": "-4",
+ "experience": 6250,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Inquisitor_staff\" title=\"Inquisitor staff\" target=\"_blank\"><img src=\"./images/susceptible/Inquisitor_staff.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"23\"><\/a>"],
+ "lifepoint-exp": 2062.5,
+ "max-melee": "3000",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Default",
+ "slayer-exp": -4,
+ "lifepoints": "250000",
+ "max-ranged": "5000",
+ "max-magic": "5000",
+ "max-necromancy": "0"
+ }]
+ },
+ {
+ "name": "Zamorak, Lord of Chaos",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zamorak, Lord of Chaos#Hard mode.png\" decoding=\"async\" loading=\"lazy\" width=\"290\" height=\"300\" id=\"image-?\">",
+ "level": "14000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 15000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 4950,
+ "max-melee": "1819",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Hard mode",
+ "slayer-exp": -1,
+ "lifepoints": "300000",
+ "max-ranged": "1819",
+ "max-magic": "1819",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zamorak, Lord of Chaos#Normal mode.png\" decoding=\"async\" loading=\"lazy\" width=\"290\" height=\"300\" id=\"image-?\">",
+ "level": "14000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 15000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 4950,
+ "max-melee": "1819",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Normal mode",
+ "slayer-exp": -1,
+ "lifepoints": "300000",
+ "max-ranged": "1819",
+ "max-magic": "1819",
+ "max-necromancy": "0"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zamorak, Lord of Chaos#Story mode.png\" decoding=\"async\" loading=\"lazy\" width=\"290\" height=\"300\" id=\"image-?\">",
+ "level": "14000",
+ "defence": "80",
+ "slayer-level": "?",
+ "experience": 15000,
+ "susceptible": ["<a href=\"https://runescape.wiki/w/Hexhunter_bow\" title=\"Hexhunter bow\" target=\"_blank\"><img src=\"./images/susceptible/Hexhunter_bow.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "lifepoint-exp": 4950,
+ "max-melee": "1819",
+ "weakness": ["<a href=\"https://runescape.wiki/w/No_weakness\" title=\"No weakness\" target=\"_blank\"><img src=\"./images/weakness/Zero_weakness_icon.png\" decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"26\"><\/a>"],
+ "max-spec": "11000",
+ "name": "Story mode",
+ "slayer-exp": -1,
+ "lifepoints": "150000",
+ "max-ranged": "1819",
+ "max-magic": "1819",
+ "max-necromancy": "0"
+ }
+ ]
+ },
+ {
+ "name": "Zemouregal",
+ "variants": [
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Defender of Varrock (1).png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Defender of Varrock (1)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Defender of Varrock (2).png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Defender of Varrock (2)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Ritual of the Mahjarrat.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Ritual of the Mahjarrat",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Ritual of the Mahjarrat (fort, skeletal).png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Ritual of the Mahjarrat (fort, skeletal)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Ritual of the Mahjarrat (fort).png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Ritual of the Mahjarrat (fort)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Nadir.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Nadir",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#The World Wakes.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "The World Wakes",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Missing, Presumed Death.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Missing, Presumed Death",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Dishonour among Thieves.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Dishonour among Thieves",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Dishonour among Thieves (lair).png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Dishonour among Thieves (lair)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Dishonour among Thieves (lair, examinable).png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Dishonour among Thieves (lair, examinable)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Dishonour among Thieves (cutscene).png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Dishonour among Thieves (cutscene)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Dimension of Disaster.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Dimension of Disaster",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Children of Mah.png\" decoding=\"async\" loading=\"lazy\" width=\"153\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Children of Mah",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Children of Mah (examinable).png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Children of Mah (examinable)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Children of Mah (Freneskae cutscene).png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Children of Mah (Freneskae cutscene)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#TzekHaar Front.png\" decoding=\"async\" loading=\"lazy\" width=\"150\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "TzekHaar Front",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Daughter of Chaos.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Daughter of Chaos",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Succession.png\" decoding=\"async\" loading=\"lazy\" width=\"151\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Succession",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Succession (skeletal).png\" decoding=\"async\" loading=\"lazy\" width=\"231\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Succession (skeletal)",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Unwelcome Guests.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Unwelcome Guests",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Dead and Buried.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Dead and Buried",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Ancient Awakening.png\" decoding=\"async\" loading=\"lazy\" width=\"226\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Ancient Awakening",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Battle of Forinthry.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Battle of Forinthry",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ },
+ {
+ "image": "<img src=\"./images/creatures/Zemouregal#Requiem for a Dragon.png\" decoding=\"async\" loading=\"lazy\" width=\"152\" height=\"300\" id=\"image-?\">",
+ "level": "?",
+ "defence": "-4",
+ "slayer-level": "-4",
+ "experience": -4,
+ "susceptible": [],
+ "lifepoint-exp": -4,
+ "max-melee": "-4",
+ "weakness": [],
+ "max-spec": "-4",
+ "name": "Requiem for a Dragon",
+ "slayer-exp": -4,
+ "lifepoints": "-4",
+ "max-ranged": "-4",
+ "max-magic": "-4",
+ "max-necromancy": "-4"
+ }
+ ]
+ }
+]
--- /dev/null
+[
+ {
+ "task-counts": {
+ "Gelatinous abominations": "10-20",
+ "Trolls": "10-20",
+ "Wolves": "10-20",
+ "Cave bugs": "10-20",
+ "Cows": "10-25",
+ "Birds": "10-20",
+ "Crawling hands": "10-20"
+ },
+ "name": "Turael",
+ "id": 1,
+ "url": "https://runescape.wiki/w/Turael"
+ },
+ {
+ "task-counts": {
+ "Frogs": "15-30",
+ "Goblins": "15-30",
+ "Bats": "15-30",
+ "Ghosts": "15-25",
+ "Skeletons": "15-25",
+ "Spiders": "15-25",
+ "Zombies": "15-30",
+ "Cave slimes": "10-25",
+ "Cave bugs": "15-30",
+ "Cows": "15-30",
+ "Rats": "15-30",
+ "Birds": "15-30"
+ },
+ "name": "Jacquelyn",
+ "id": 2,
+ "url": "https://runescape.wiki/w/Jacquelyn"
+ },
+ {
+ "task-counts": {
+ "Frogs": "40-60",
+ "Bats": "40-60",
+ "Hill giants": "40-60",
+ "Wall beasts": "10-20",
+ "Zombies": "40-60",
+ "Cave slimes": "40-60",
+ "Mogres": "40-60",
+ "Moss giants": "40-60",
+ "Hobgoblins": "40-60",
+ "Bears": "20-40",
+ "Ice warriors": "40-60",
+ "Ghosts": "40-70",
+ "Skeletons": "40-60",
+ "Icefiends": "40-60",
+ "Minotaurs": "40-60",
+ "Scorpions": "40-60",
+ "Spiders": "40-60",
+ "Wolves": "40-60",
+ "Grotworms": "40-60",
+ "Kalphite": "40-60",
+ "Catablepon": "40-60",
+ "Fleshcrawlers": "40-60",
+ "Ice giants": "40-60",
+ "Cockroaches": "40-60"
+ },
+ "name": "Vannaka",
+ "id": 3,
+ "url": "https://runescape.wiki/w/Vannaka"
+ },
+ {
+ "task-counts": {
+ "Demons": "45-90",
+ "Aviansies": "50-110",
+ "Lesser demons": "120-180",
+ "Abyssal Demons": "140-260",
+ "Skeletons": "95-125",
+ "Undead": "130-170",
+ "Black demons": "110-160",
+ "Dark beasts": "120-180",
+ "Dragons": "60-90",
+ "Grotworms": "140-190",
+ "Zemouregal's undead": "110-150",
+ "Hellhounds": "70-110",
+ "Living wyverns": "40-65",
+ "Fire giants": "110-160",
+ "Ankou": "80-120",
+ "Dagannoth": "190-250",
+ "Zombies": "100-140",
+ "Fetid zombies": "140-170",
+ "Armoured phantoms": "45-55",
+ "Ghosts": "160-180",
+ "Green dragons": "70-120",
+ "Acheron mammoths": "20-45",
+ "Risen ghosts": "90-120",
+ "Aberrant spectres": "50-80",
+ "Kalphite": "65-110",
+ "Black dragons": "70-120",
+ "Camel warriors": "30-55",
+ "Greater demons": "140-200",
+ "Bound skeletons": "120-140",
+ "Ripper demons": "40-65"
+ },
+ "name": "The Raptor",
+ "id": 4,
+ "url": "https://runescape.wiki/w/The_Raptor"
+ },
+ {
+ "task-counts": {
+ "Desert lizards": "50-90",
+ "Werewolves": "50-90",
+ "Killerwatts": "60-100",
+ "Lesser demons": "60-100",
+ "Moss giants": "50-90",
+ "Banshees": "50-90",
+ "Ice warriors": "40-60",
+ "Shades": "60-100",
+ "Cockatrice": "50-90",
+ "Earth warriors": "35-55",
+ "Grotworms": "60-100",
+ "Jellies": "60-100",
+ "Otherworldly beings": "60-100",
+ "Bloodveld": "60-100",
+ "Cyclopes": "50-90",
+ "Basilisks": "60-100",
+ "Shadow warriors": "60-100",
+ "Brine rats": "60-100",
+ "Ice giants": "50-90",
+ "Cave crawlers": "50-90",
+ "Jungle horrors": "60-100",
+ "Ogres": "60-100",
+ "Ankou": "60-100",
+ "Sea snakes": "60-100",
+ "Infernal mages": "60-100",
+ "Turoth": "60-100",
+ "Crocodiles": "50-90",
+ "Green dragons": "35-55",
+ "Vampyres": "50-90",
+ "Aberrant spectres": "60-100",
+ "Dogs": "50-90",
+ "Molanisks": "50-90",
+ "Rockslugs": "50-90",
+ "Ghouls": "60-100",
+ "Pyrefiends": "60-100"
+ },
+ "name": "Mazchna",
+ "id": 5,
+ "url": "https://runescape.wiki/w/Mazchna"
+ },
+ {
+ "task-counts": {
+ "Warped tortoises": "110-170",
+ "Dust devils": "110-170",
+ "Elves": "60-90",
+ "Cave horrors": "110-170",
+ "Lesser demons": "110-170",
+ "Crawling hands": "110-170",
+ "Gargoyles": "110-170",
+ "Banshees": "110-170",
+ "Grifolaroos": "50-65",
+ "Jungle strykewyrms": "80-110",
+ "Trolls": "110-170",
+ "Grotworms": "70-110",
+ "Jellies": "110-170",
+ "Bloodveld": "110-170",
+ "Basilisks": "110-170",
+ "Shadow warriors": "110-170",
+ "Harpie bug swarms": "110-170",
+ "Brine rats": "110-170",
+ "Fever spiders": "110-170",
+ "Cave crawlers": "110-170",
+ "Fire giants": "110-170",
+ "Jungle horrors": "110-170",
+ "Grifolapines": "50-65",
+ "Mutated zygomites": "30-60",
+ "Dagannoth": "110-170",
+ "Blue dragons": "110-170",
+ "Infernal mages": "110-170",
+ "Bronze dragons": "30-60",
+ "Turoth": "110-170",
+ "Kurask": "110-170",
+ "Aberrant spectres": "110-170",
+ "Kalphite": "110-170",
+ "Fungal magi": "80-105",
+ "Vyrewatch": "80-110"
+ },
+ "name": "Chaeldar",
+ "id": 6,
+ "url": "https://runescape.wiki/w/Chaeldar"
+ },
+ {
+ "task-counts": {
+ "Desert lizards": "150-250",
+ "Warped tortoises": "120-185",
+ "Dust devils": "120-185",
+ "Elves": "60-90",
+ "Cave horrors": "120-185",
+ "Spiritual warriors": "120-185",
+ "Aviansies": "50-100",
+ "Gargoyles": "120-195",
+ "Banshees": "120-185",
+ "Grifolaroos": "55-75",
+ "Red dragons": "30-60",
+ "Spiritual mages": "120-185",
+ "Jungle strykewyrms": "90-120",
+ "Abyssal Demons": "120-185",
+ "Trolls": "120-185",
+ "Scorpions": "150-250",
+ "Nechryael": "120-185",
+ "Black demons": "120-185",
+ "Grotworms": "70-120",
+ "Bloodveld": "120-185",
+ "Cres's creations": "65-80",
+ "Basilisks": "120-185",
+ "Cave crawlers": "120-185",
+ "Hellhounds": "120-185",
+ "Fire giants": "120-185",
+ "Grifolapines": "55-75",
+ "Scabarites": "30-60",
+ "Mutated jadinkos": "80-130",
+ "Dagannoth": "120-185",
+ "Blue dragons": "120-185",
+ "Aquanites": "120-185",
+ "Iron dragons": "30-60",
+ "Corrupted creatures": "175-300",
+ "Turoth": "120-185",
+ "Crocodiles": "150-250",
+ "Kurask": "120-185",
+ "Desert strykewyrms": "90-110",
+ "Soul devourers": "175-300",
+ "Terror dogs": "30-60",
+ "Aberrant spectres": "120-185",
+ "Kalphite": "120-185",
+ "Fungal magi": "90-110",
+ "Greater demons": "120-185",
+ "Vyrewatch": "90-120"
+ },
+ "name": "Sumona",
+ "id": 7,
+ "url": "https://runescape.wiki/w/Sumona"
+ },
+ {
+ "task-counts": {
+ "Dust devils": "130-200",
+ "Waterfiends": "130-200",
+ "Aviansies": "100-125",
+ "Celestial dragons": "125-150",
+ "Ganodermic creatures": "55-70",
+ "Gargoyles": "130-200",
+ "Grifolaroos": "60-85",
+ "Airut": "125-150",
+ "Spiritual mages": "130-200",
+ "Jungle strykewyrms": "90-120",
+ "Abyssal Demons": "130-200",
+ "Nechryael": "130-200",
+ "Black demons": "130-200",
+ "Dark beasts": "130-200",
+ "Grotworms": "80-120",
+ "Bloodveld": "130-200",
+ "Cres's creations": "65-80",
+ "Skeletal wyverns": "40-80",
+ "Suqahs": "40-80",
+ "Hellhounds": "130-200",
+ "Fire giants": "130-200",
+ "Grifolapines": "60-85",
+ "Scabarites": "40-80",
+ "Mutated jadinkos": "120-200",
+ "Dagannoth": "130-200",
+ "Goraks": "40-80",
+ "Aquanites": "130-200",
+ "Iron dragons": "40-80",
+ "Desert strykewyrms": "90-140",
+ "Ascension members": "100-125",
+ "Aberrant spectres": "130-200",
+ "Kalphite": "130-200",
+ "Black dragons": "40-80",
+ "Warped terrorbirds": "130-200",
+ "Steel dragons": "40-80",
+ "Edimmu": "130-200",
+ "Fungal magi": "100-200",
+ "Greater demons": "130-200",
+ "Ice strykewyrms": "100-200",
+ "Mithril dragons": "4-8",
+ "Vyrewatch": "90-120"
+ },
+ "name": "Duradel",
+ "id": 8,
+ "url": "https://runescape.wiki/w/Duradel"
+ },
+ {
+ "task-counts": {
+ "Chaos giants": "60-100",
+ "TzHaar": "80-110",
+ "Warped tortoises": "150-240",
+ "Elves": "120-150",
+ "Glacors": "50-70",
+ "Waterfiends": "170-250",
+ "Adamant dragons": "40-50",
+ "Aviansies": "125-150",
+ "Kal'gerion demons": "50-100",
+ "Muspah": "125-150",
+ "Grifolaroos": "65-80",
+ "Airut": "125-150",
+ "Spiritual mages": "150-240",
+ "Stalker creatures": "120-170",
+ "Nechryael": "140-220",
+ "Black demons": "190-250",
+ "Cres's creations": "65-80",
+ "Skeletal wyverns": "40-90",
+ "Gemstone dragons": "60-100",
+ "Hellhounds": "130-220",
+ "Lava strykewyrms": "50-100",
+ "Living wyverns": "30-55",
+ "Fire giants": "170-250",
+ "Mutated jadinkos": "160-220",
+ "Nihil": "40-90",
+ "Corrupted creatures": "150-250",
+ "Terror dogs": "60-70",
+ "Ascension members": "100-125",
+ "Camel warriors": "25-45",
+ "Greater demons": "150-250",
+ "Ice strykewyrms": "100-200",
+ "Vyrewatch": "90-130",
+ "Dust devils": "150-250",
+ "Tormented demons": "40-60",
+ "Celestial dragons": "125-150",
+ "Ganodermic creatures": "70-90",
+ "Gargoyles": "150-250",
+ "Jungle strykewyrms": "90-130",
+ "Abyssal Demons": "150-250",
+ "Living rock creatures": "120-170",
+ "Dark beasts": "150-250",
+ "Grotworms": "80-150",
+ "Bloodveld": "180-250",
+ "Suqahs": "50-100",
+ "Grifolapines": "65-80",
+ "Nightmare creatures": "100-120",
+ "Dagannoth": "170-240",
+ "Blue dragons": "120-200",
+ "Aquanites": "160-200",
+ "Iron dragons": "60-110",
+ "Desert strykewyrms": "90-160",
+ "Soul devourers": "150-250",
+ "Acheron mammoths": "20-45",
+ "Aberrant spectres": "150-250",
+ "Kalphite": "170-250",
+ "Black dragons": "40-90",
+ "Steel dragons": "40-100",
+ "Edimmu": "150-250",
+ "Ripper demons": "50-75",
+ "Mithril dragons": "30-35"
+ },
+ "name": "Kuradal",
+ "id": 9,
+ "url": "https://runescape.wiki/w/Kuradal"
+ },
+ {
+ "task-counts": {
+ "Chaos giants": "80-120",
+ "TzHaar": "95-130",
+ "Elves": "150-180",
+ "Glacors": "60-85",
+ "Nodon dragonkin": "90-130",
+ "Waterfiends": "205-300",
+ "Adamant dragons": "40-60",
+ "Aviansies": "150-180",
+ "Kal'gerion demons": "60-120",
+ "Muspah": "150-180",
+ "Crystal shapeshifters": "110-150",
+ "Airut": "150-180",
+ "Stalker creatures": "140-190",
+ "Nechryael": "170-265",
+ "Black demons": "230-300",
+ "Cres's creations": "80-100",
+ "Gemstone dragons": "80-130",
+ "Lava strykewyrms": "60-120",
+ "Living wyverns": "40-65",
+ "Mutated jadinkos": "195-265",
+ "Nihil": "50-110",
+ "Corrupted creatures": "150-250",
+ "Ascension members": "120-150",
+ "Camel warriors": "35-55",
+ "Greater demons": "180-300",
+ "Ice strykewyrms": "120-240",
+ "Vyrewatch": "110-155",
+ "Tormented demons": "50-75",
+ "Celestial dragons": "150-180",
+ "Ganodermic creatures": "85-110",
+ "Gargoyles": "180-300",
+ "Abyssal Demons": "180-300",
+ "Dark beasts": "180-300",
+ "Grotworms": "100-180",
+ "Creatures of the Lost Grove": "100-120",
+ "Nightmare creatures": "110-160",
+ "Dagannoth": "205-290",
+ "Rune dragons": "50-75",
+ "Aquanites": "195-240",
+ "Iron dragons": "75-130",
+ "Shadow creatures": "100-150",
+ "Desert strykewyrms": "110-190",
+ "Soul devourers": "150-250",
+ "Acheron mammoths": "30-55",
+ "Kalphite": "205-300",
+ "Black dragons": "50-110",
+ "Steel dragons": "50-125",
+ "Edimmu": "170-265",
+ "Ripper demons": "60-85",
+ "Mithril dragons": "30-50"
+ },
+ "name": "Morvran",
+ "id": 10,
+ "url": "https://runescape.wiki/w/Morvran"
+ },
+ {
+ "task-counts": {
+ "Chaos giants": "80-120",
+ "Elves": "150-180",
+ "Glacors": "60-85",
+ "Nodon dragonkin": "110-150",
+ "Adamant dragons": "40-60",
+ "Aviansies": "150-180",
+ "Kal'gerion demons": "60-120",
+ "Muspah": "150-180",
+ "Crystal shapeshifters": "110-150",
+ "Airut": "150-180",
+ "Stalker creatures": "140-190",
+ "Black demons": "230-300",
+ "Dragons": "101-150",
+ "Cres's creations": "80-100",
+ "Gemstone dragons": "80-130",
+ "Lava strykewyrms": "60-120",
+ "Living wyverns": "40-65",
+ "Mutated jadinkos": "195-265",
+ "Nihil": "50-110",
+ "Corrupted creatures": "150-250",
+ "Armoured phantoms": "55-65",
+ "Vile blooms": "70-110",
+ "Ascension members": "120-150",
+ "Camel warriors": "35-55",
+ "Greater demons": "180-300",
+ "Ice strykewyrms": "120-240",
+ "Vyrewatch": "110-155",
+ "Demons": "101-150",
+ "Tormented demons": "50-75",
+ "Celestial dragons": "150-180",
+ "Ganodermic creatures": "85-110",
+ "Gargoyles": "180-300",
+ "Abyssal Demons": "180-300",
+ "Undead": "120-160",
+ "Dark beasts": "180-300",
+ "Creatures of the Lost Grove": "100-120",
+ "Dinosaurs": "70-110",
+ "Nightmare creatures": "110-162",
+ "Dagannoth": "205-290",
+ "Rune dragons": "50-75",
+ "Aquanites": "195-240",
+ "Iron dragons": "75-130",
+ "Shadow creatures": "100-150",
+ "Soul devourers": "150-250",
+ "Acheron mammoths": "30-55",
+ "Risen ghosts": "120-160",
+ "Creatures of Daemonheim": "101-150",
+ "Kalphite": "205-300",
+ "Black dragons": "50-110",
+ "Steel dragons": "50-125",
+ "Strykewyrms": "101-150",
+ "Edimmu": "170-265",
+ "Ripper demons": "60-85",
+ "Mithril dragons": "30-50"
+ },
+ "name": "Laniakea",
+ "id": 11,
+ "url": "https://runescape.wiki/w/Laniakea"
+ },
+ {
+ "task-counts": {
+ "Soulgazers": "140-190",
+ "Glacors": "70-100",
+ "Abyssal beasts": "140-200",
+ "Kal'gerion demons": "60-120",
+ "Gargoyles": "180-300",
+ "Greater demon berserkers and ash lords": "50-80",
+ "Hydrix dragons": "90-140",
+ "Revenants": "50-80",
+ "Abyssal Demons": "180-300",
+ "Abyssal lords": "100-150",
+ "Abyssal savages": "180-250",
+ "Acheron mammoths": "40-60",
+ "Black demons": "200-280",
+ "Dark beasts": "180-300",
+ "Onyx dragons": "100-150",
+ "Ripper demons": "70-95",
+ "Ice strykewyrms": "100-150",
+ "Lava strykewyrms": "60-120",
+ "Living wyverns": "50-75"
+ },
+ "name": "Mandrith",
+ "id": 12,
+ "url": "https://runescape.wiki/w/Mandrith"
+ }
+]
--- /dev/null
+[
+ {
+ "default-creature": "Araxxi#Default",
+ "weakness": [],
+ "creatures": ["Araxxi"],
+ "hidden-creatures": [],
+ "index": "Araxxi",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Arch-Glacor#Normal mode",
+ "weakness": [],
+ "creatures": ["Arch-Glacor"],
+ "hidden-creatures": [],
+ "index": "Arch-Glacor",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Black stone dragon#Default",
+ "weakness": [],
+ "creatures": ["Black stone dragon"],
+ "hidden-creatures": [],
+ "index": "Black stone dragon",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Chaos Elemental#P2P",
+ "weakness": [],
+ "creatures": ["Chaos Elemental"],
+ "hidden-creatures": [],
+ "index": "Chaos Elemental",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "weakness": [],
+ "creatures": ["Commander Zilyana"],
+ "hidden-creatures": [],
+ "index": "Commander Zilyana",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Corporeal Beast#Default",
+ "weakness": [],
+ "creatures": ["Corporeal Beast"],
+ "hidden-creatures": [],
+ "index": "Corporeal Beast",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Croesus#Active",
+ "weakness": [],
+ "creatures": ["Croesus"],
+ "hidden-creatures": [],
+ "index": "Croesus",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Dagannoth Rex#Default",
+ "weakness": [],
+ "creatures": [
+ "Dagannoth Prime",
+ "Dagannoth Rex",
+ "Dagannoth Supreme"
+ ],
+ "hidden-creatures": [],
+ "index": "Dagannoth Kings",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "General Graardor#Normal",
+ "weakness": [],
+ "creatures": ["General Graardor"],
+ "hidden-creatures": [],
+ "index": "General Graardor",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Giant mole#Normal",
+ "weakness": [],
+ "creatures": ["Giant mole"],
+ "hidden-creatures": [],
+ "index": "Giant mole",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Gregorovic#Normal Mode",
+ "weakness": [],
+ "creatures": ["Gregorovic"],
+ "hidden-creatures": [],
+ "index": "Gregorovic",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Har-Aken#Head",
+ "weakness": [],
+ "creatures": ["Har-Aken"],
+ "hidden-creatures": [],
+ "index": "Har-Aken",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Helwyr#Normal Mode",
+ "weakness": [],
+ "creatures": ["Helwyr"],
+ "hidden-creatures": [],
+ "index": "Helwyr",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Hermod, the Spirit of War#Normal",
+ "weakness": [],
+ "creatures": ["Hermod, the Spirit of War"],
+ "hidden-creatures": [],
+ "index": "Hermod, the Spirit of War",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "K'ril Tsutsaroth#Normal",
+ "weakness": [],
+ "creatures": ["K'ril Tsutsaroth"],
+ "hidden-creatures": [],
+ "index": "K'ril Tsutsaroth",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Kalphite King#Magic",
+ "weakness": [],
+ "creatures": ["Kalphite King"],
+ "hidden-creatures": [],
+ "index": "Kalphite King",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Kalphite Queen#First form",
+ "weakness": [],
+ "creatures": ["Kalphite Queen"],
+ "hidden-creatures": [],
+ "index": "Kalphite Queen",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Kerapac, the bound#Normal mode",
+ "weakness": [],
+ "creatures": ["Kerapac, the bound"],
+ "hidden-creatures": [],
+ "index": "Kerapac, the bound",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "King Black Dragon#Default",
+ "weakness": [],
+ "creatures": ["King Black Dragon"],
+ "hidden-creatures": [],
+ "index": "King Black Dragon",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Kree'arra#Normal",
+ "weakness": [],
+ "creatures": ["Kree'arra"],
+ "hidden-creatures": [],
+ "index": "Kree'arra",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Legio Primus#Default",
+ "weakness": [],
+ "creatures": [
+ "Legio Primus",
+ "Legio Quartus",
+ "Legio Quintus",
+ "Legio Secundus",
+ "Legio Sextus",
+ "Legio Tertius"
+ ],
+ "hidden-creatures": [],
+ "index": "Legiones",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Nex#Standard",
+ "weakness": [],
+ "creatures": ["Nex"],
+ "hidden-creatures": [],
+ "index": "Nex",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Nex: Angel of Death#Default",
+ "weakness": [],
+ "creatures": ["Nex: Angel of Death"],
+ "hidden-creatures": [],
+ "index": "Nex: Angel of Death",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Queen Black Dragon#Normal",
+ "weakness": [],
+ "creatures": ["Queen Black Dragon"],
+ "hidden-creatures": [],
+ "index": "Queen Black Dragon",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Raksha, the Shadow Colossus#During fight",
+ "weakness": [],
+ "creatures": ["Raksha, the Shadow Colossus"],
+ "hidden-creatures": [],
+ "index": "Raksha, the Shadow Colossus",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Rasial, the First Necromancer#Normal",
+ "weakness": [],
+ "creatures": ["Rasial, the First Necromancer"],
+ "hidden-creatures": [],
+ "index": "Rasial, the First Necromancer",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Orikalka#Default",
+ "weakness": [],
+ "creatures": [
+ "Orikalka",
+ "Osseous",
+ "Pthentraken",
+ "Rathis"
+ ],
+ "hidden-creatures": [],
+ "index": "Rex Matriarchs",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Seiryu the Azure Serpent#Normal mode",
+ "weakness": [],
+ "creatures": ["Seiryu the Azure Serpent"],
+ "hidden-creatures": [],
+ "index": "Seiryu the Azure Serpent",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Solak#Solak",
+ "weakness": [],
+ "creatures": ["Solak"],
+ "hidden-creatures": [],
+ "index": "Solak",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Telos, the Warden#Standard",
+ "weakness": [],
+ "creatures": ["Telos, the Warden"],
+ "hidden-creatures": [],
+ "index": "Telos, the Warden",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "The Ambassador#Normal mode",
+ "weakness": [],
+ "creatures": ["The Ambassador"],
+ "hidden-creatures": [],
+ "index": "The Ambassador",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Dharok the Wretched#Normal",
+ "weakness": [],
+ "creatures": [
+ "Ahrim the Blighted",
+ "Akrisae the Doomed",
+ "Dharok the Wretched",
+ "Guthan the Infested",
+ "Karil the Tainted",
+ "Linza the Disgraced",
+ "Torag the Corrupted",
+ "Verac the Defiled"
+ ],
+ "hidden-creatures": [],
+ "index": "The Barrows Brothers",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Dharok the Wretched#Normal",
+ "weakness": [],
+ "creatures": [
+ "Ahrim the Blighted",
+ "Dharok the Wretched",
+ "Guthan the Infested",
+ "Karil the Tainted",
+ "Torag the Corrupted",
+ "Verac the Defiled"
+ ],
+ "hidden-creatures": [],
+ "index": "The Barrows: Rise of the Six",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "The Magister#Default",
+ "weakness": [],
+ "creatures": ["The Magister"],
+ "hidden-creatures": [],
+ "index": "The Magister",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Avaryss, the Unceasing#Normal Mode",
+ "weakness": [],
+ "creatures": [
+ "Avaryss, the Unceasing",
+ "Nymora, the Vengeful"
+ ],
+ "hidden-creatures": [],
+ "index": "Twin Furies",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "TzKal-Zuk#Normal Mode",
+ "weakness": [],
+ "creatures": ["TzKal-Zuk"],
+ "hidden-creatures": [],
+ "index": "TzKal-Zuk",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "TzTok-Jad#Default",
+ "weakness": [],
+ "creatures": ["TzTok-Jad"],
+ "hidden-creatures": [],
+ "index": "TzTok-Jad",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Vindicta#Normal mode",
+ "weakness": [],
+ "creatures": ["Vindicta"],
+ "hidden-creatures": [],
+ "index": "Vindicta",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Vorago#Default",
+ "weakness": [],
+ "creatures": ["Vorago"],
+ "hidden-creatures": [],
+ "index": "Vorago",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Zamorak, Lord of Chaos#Normal mode",
+ "weakness": [],
+ "creatures": ["Zamorak, Lord of Chaos"],
+ "hidden-creatures": [],
+ "index": "Zamorak, Lord of Chaos",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ },
+ {
+ "default-creature": "Vorkath#Normal mode",
+ "weakness": [],
+ "creatures": [
+ "Vorkath",
+ "Zemouregal"
+ ],
+ "hidden-creatures": [],
+ "index": "Zemouregal & Vorkath",
+ "alias": [],
+ "equipment": [],
+ "masters": [],
+ "locations": []
+ }
+]
--- /dev/null
+{
+ "version": "0.0.17"
+}
\ No newline at end of file
--- /dev/null
+{
+ "appName": "Local Slayer Assistant",
+ "description": "Developement version of Slayer Assistant",
+ "appUrl": "https://slayer.local/",
+ "configUrl": "https://slayer.local/appconfig.json",
+ "iconUrl": "https://slayer.local/images/icon.png",
+ "defaultWidth": 360,
+ "defaultHeight": 395,
+ "minWidth": 360,
+ "minHeight": 142,
+ "maxWidth": 400,
+ "maxHeight": 550,
+ "requestHandlers": [],
+ "activators": [
+ ],
+ "permissions": "pixel,gamestate,overlay"
+}
--- /dev/null
+import * as a1lib from "alt1";
+import { ImgRefData } from 'alt1';
+
+import * as slayer from "./modules/slayer";
+import * as logger from "./modules/logger";
+
+/* Extra Features for advanced controls in the app
+ The following functions adds some extra functionality to the app
+ - Ability to Ctrl+V to paste and image into the app
+ - Ability to drag and drop and image into the app
+ These functions can be used inside of alt1 but are not useful (mostly for other browsers)
+*/
+
+// Listen for pasted (ctrl-v) images, usually used in the browser version of an app
+a1lib.PasteInput.listen((img) => {
+ // Look and see if we can read a slayer task
+ slayer.findTask(img);
+}, (err: any, errid: any) => {
+ logger.log(`${errid}: ${err}`);
+});
+
+// Handle events for when a file gets dragged or dropped onto the app
+document.addEventListener('dragover', handleDragOverFiles, false);
+document.addEventListener('drop', handleFileDropped, false);
+
+// Convert Blob(file) into Image Data so we can use it with alt1
+var blobToImageData = async function (blob: Blob) {
+ var blobUrl = URL.createObjectURL(blob);
+ var img = await new Promise<HTMLImageElement>(function (resolve, reject) {
+ var img = new Image();
+ img.onload = function () { return resolve(img); };
+ img.onerror = function (err) { return reject(err); };
+ img.src = blobUrl;
+ });
+ URL.revokeObjectURL(blobUrl);
+ var [w, h] = [img.width, img.height];
+ var aspectRatio = w / h;
+ var canvas = document.createElement("canvas");
+ canvas.width = w;
+ canvas.height = h;
+ var ctx = canvas.getContext("2d");
+ ctx.drawImage(img, 0, 0);
+ return ctx.getImageData(0, 0, w, h);
+};
+
+
+
+// Handle when a file is dropped onto the app and have it load assignment from the file if it can
+async function handleFileDropped(evt: DragEvent): Promise<void> {
+ evt.stopPropagation();
+ evt.preventDefault();
+
+ const files = evt.dataTransfer?.files;
+
+ // Only accept 1 file at a time
+ if (files && files.length > 1) {
+ console.error("We can only process 1 file at a time. Please only drag and drop 1 file at a time!");
+ return;
+ }
+
+ const file = files ? files[0] : null;
+
+ if (file) {
+ // Skip any files that aren't a supported image type
+ if (!file.type.match('image/png')) {
+ console.error("Unsupported file type. Please drop a PNG image.");
+ return;
+ }
+
+ try {
+ const imgData = await blobToImageData(file);
+ const img = new ImgRefData(imgData, 0, 0);
+
+ // Look and see if we can read a slayer task
+ slayer.findTask(img);
+ } catch (error) {
+ console.error("Error processing the image file:", error);
+ }
+ }
+}
+
+// Handle when a file is dragged onto the app and show user we will only make a copy of it (must exist or it won't work sadly)
+function handleDragOverFiles(evt) {
+ evt.stopPropagation();
+ evt.preventDefault();
+ evt.dataTransfer.dropEffect = 'copy';
+}
\ No newline at end of file
--- /dev/null
+{
+ "basey": 11,
+ "spacewidth": 3,
+ "treshold": 0.6,
+ "color": [ 255, 255, 255 ],
+ "unblendmode": "raw",
+ "shadow": false,
+ "chars": "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_abcdefghijklmnopqrstuvwxyz{|}~",
+ "seconds": ",.-:;\"'",
+ "spriteid": 17814
+}
\ No newline at end of file
--- /dev/null
+{
+ "basey": 17,
+ "spacewidth": 4,
+ "treshold": 0.6,
+ "color": [ 255, 255, 255 ],
+ "unblendmode": "raw",
+ "shadow": false,
+ "chars": "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_abcdefghijklmnopqrstuvwxyz{|}~",
+ "seconds": ",.-:;\"'"
+}
\ No newline at end of file
--- /dev/null
+{
+ "basey": 10,
+ "spacewidth": 3,
+ "treshold": 0.6,
+ "color": [ 127, 169, 255 ],
+ "unblendmode": "removebg",
+ "shadow": true,
+ "chars": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789%/+?!@#$^~&*()_-=[]{}:;\"'<>\\.,|",
+ "seconds": ",.-:;\"'"
+}
\ No newline at end of file
--- /dev/null
+{
+ "basey": 10,
+ "spacewidth": 3,
+ "treshold": 0.6,
+ "color": [ 127, 169, 255 ],
+ "unblendmode": "blackbg",
+ "shadow": false,
+ "chars": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789%/+?!@#$^~&*()_-=[]{}:;\"'<>\\.,|",
+ "seconds": ",.-:;\"'"
+}
\ No newline at end of file
--- /dev/null
+{
+ "basey": 10,
+ "spacewidth": 3,
+ "treshold": 0.6,
+ "color": [ 255, 255, 255 ],
+ "unblendmode": "raw",
+ "shadow": false,
+ "chars": "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_abcdefghijklmnopqrstuvwxyz{|}~",
+ "seconds": ",.-:;\"'|"
+}
\ No newline at end of file
--- /dev/null
+{
+ "basey": 13,
+ "spacewidth": 5,
+ "treshold": 0.6,
+ "color": [ 255, 255, 255 ],
+ "unblendmode": "raw",
+ "shadow": false,
+ "chars": "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_abcdefghijklmnopqrstuvwxyz{|}~",
+ "seconds": ",.-:;\"'|*"
+}
\ No newline at end of file
--- /dev/null
+{
+ "basey": 7,
+ "spacewidth": 3,
+ "treshold": 0.5,
+ "color": [ 127, 169, 255 ],
+ "unblendmode": "removebg",
+ "shadow": true,
+ "chars": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789%/+?!@#$^~&*()_-=[]{}:;\"'<>\\.,|",
+ "seconds": ",.-:;\"'"
+}
\ No newline at end of file
--- /dev/null
+{
+ "basey": 9,
+ "spacewidth": 3,
+ "treshold": 0.6,
+ "color": [ 127, 169, 255 ],
+ "unblendmode": "removebg",
+ "shadow": true,
+ "chars": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789%/+?!@#$^~&*()_-=[]{}:;\"'<>\\.,|",
+ "seconds": ",.-:;\"'"
+}
\ No newline at end of file
--- /dev/null
+{
+ "basey": 10,
+ "spacewidth": 4,
+ "treshold": 0.6,
+ "color": [ 127, 169, 255 ],
+ "unblendmode": "removebg",
+ "shadow": true,
+ "chars": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789%/+?!@#$^~&*()_-=[]{}:;\"'<>\\.,|",
+ "seconds": ",.-:;\"'"
+}
\ No newline at end of file
--- /dev/null
+{
+ "basey": 12,
+ "spacewidth": 4,
+ "treshold": 0.6,
+ "color": [ 127, 169, 255 ],
+ "unblendmode": "removebg",
+ "shadow": true,
+ "chars": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789%/+?!@#$^~&*()_-=[]{}:;\"'<>\\.,|",
+ "seconds": ",.-:;\"'"
+}
\ No newline at end of file
--- /dev/null
+{
+ "basey": 13,
+ "spacewidth": 5,
+ "treshold": 0.6,
+ "color": [ 127, 169, 255 ],
+ "unblendmode": "removebg",
+ "shadow": true,
+ "chars": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789%/+?!@#$^~&*()_-=[]{}:;\"'<>\\.,|",
+ "seconds": ",.-:;\"'"
+}
\ No newline at end of file
--- /dev/null
+{
+ "basey": 14,
+ "spacewidth": 5,
+ "treshold": 0.6,
+ "color": [ 127, 169, 255 ],
+ "unblendmode": "removebg",
+ "shadow": true,
+ "chars": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789%/+?!@#$^~&*()_-=[]{}:;\"'<>\\.,|",
+ "seconds": ",.-:;\"'"
+}
\ No newline at end of file
--- /dev/null
+{
+ "basey": 16,
+ "spacewidth": 6,
+ "treshold": 0.6,
+ "color": [ 127, 169, 255 ],
+ "unblendmode": "removebg",
+ "shadow": true,
+ "chars": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789%/+?!@#$^~&*()_-=[]{}:;\"'<>\\.,|",
+ "seconds": ",.-:;\"'"
+}
\ No newline at end of file
--- /dev/null
+{
+ "basey": 7,
+ "spacewidth": 3,
+ "treshold": 0.9,
+ "color": [ 255, 255, 255 ],
+ "unblendmode": "raw",
+ "shadow": true,
+ "chars": "0123456789m()hr",
+ "seconds": ""
+}
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html>
+<html>
+
+<head>
+ <title>Slayer Assistant</title>
+ <link rel="icon" href="./images/icon.png" type="image/png">
+ <link rel="stylesheet" href="./styles/default/index.css">
+</head>
+
+<body id="nis" class="nis">
+</body>
+<script src="./main.js"></script>
+</html>
\ No newline at end of file
--- /dev/null
+import * as dochandler from "./modules/dochandler";
+import * as settings from "./modules/settings";
+import * as slayer from "./modules/slayer";
+import * as logger from "./modules/logger";
+
+import "./index.html";
+import "./appconfig.json";
+
+/* COPYRIGHT NOTICE - DO NOT REMOVE
+ 2021 @ Unlishema Dragonsworn
+ I have programmed this enitre app myself; however, I must give credit where credit is due.
+
+ The credits have been moved into their own file @ https://slayer.unlishema.org/pages/credits.html
+*/
+/*
+ ~~~ Slayer Assistant App ~~~
+ Features coming in the near future (Also my current TODO List)
+
+ ~ Before Release for Sure ~
+ Update the about page. (Will need updated again on next release)
+ Update the changelog page. (Will need updated again on next release)
+ Update the credits page. (Will need updated again on next release)
+
+ ~ Coming Next Release ~
+ Adjust where the CNAME for the app on github is located for source update (Done)
+ Upload the source of the app to github so we won't lose it again (Ready but source needs Tested First)
+ Adjust the DNS Record for https://slayer.unlishema.org to point at https://unlishema.github.io/slayerassistant/dist instead for new update because the source is the main dir
+ Add ability to load the database through a php file instead of the json (Done, except for reapers.json)
+ - We will still use a json database in the app but the php file will build the json via MySQL (Done)
+ - The php file will be creatures.json via the .htaccess file (Done)
+ - http://slayer.unlishema.org/data/creatures.json will load http://slayer.unlishema.org/data/creatures.php?q=all (Done)
+ - Add other features to the database query php even if the app don't use them yet (Coming in the future)
+ -- Example: http://slayer.unlishema.org/data/creatures.php?q=Dragon&l=10
+ -- l=100 could limit results, d could have it give extra details, q could also be setup for seaching, and so on
+ Adjust the caching of the json database files to make sure they get updated timely (use .htaccess and mode_expires.c)
+ - This may not be needed once I change over to the php file instead. (Doesn't seem to be needed anymore, more testing required)
+
+ ~ Coming Very Soon Maybe even next Release ~
+ Add in a status tracking area to keep track of xp/hr, kills/hr, and more (Needs finished)
+ Add settings into the app finally (Needs rest added)
+ Adjust histories to use sessionStorage
+ Make it show if it detects your using alt1toolkit or not and warn a users of the features they are missing without using alt1toolkit.
+ - Also add into settings ability to hide this warning. Also add setting to turn off injection of the alt1 app.
+
+ ~ Near future Release ~
+ Add support for Ushubti
+
+ ~ Settings for the app ~
+ Settings:
+ - Ability to toggle on and off Debug and Verbose mode
+ - Ability to toggle auto find task via dialog (Done)
+ - Ability to toggle auto find current task via Slayer Count RS3UI (Done)
+ - Ability to toggle extra info to make box smaller without scrollbar (Done)
+ - Ability to toggle all hidden creatures
+ -- Ability to toggle sub-classes of hidden creatures like (elite), (dragonkin lab) and such
+ - Ability to select default loading
+ -- Default Task(s) on open and adjust doc based on it (Done, Partially)
+ -- Load previous task(s) and adjust doc based on it
+ - Ability to select defaults for everything (Later On)
+ -- Select default creature per task
+ -- Select default variant per creature
+ - Ability to customize the Look N Feel of the Slayer Assistant UI (Way Later On)
+ - Ability to select how long to save search history (Way Later On)
+ - Ability to select the type of search algo for the app (Maybe Later On)
+ - Ability to toggle warnings (eg. Missing Features due to not on Alt1Toolkit, Missing Data, and so on...)
+ - Ability to turn off app injection (This will fix issues where a user can't inject into the client)
+
+*/
+
+if (window.alt1) alt1.identifyAppUrl("./appconfig.json");
+
+// Initialize the JavaScript for the app
+document.addEventListener("DOMContentLoaded", async () => {
+ try {
+ // Setup the main document and load assignment index
+ await dochandler.main.setup.documentMain();
+
+ // Run the Config Setup Process
+ await settings.controller.load();
+
+ // Start the capture loop at the configured interval
+ setInterval(() => {
+ slayer.findTask();
+ }, settings.controller.data.autoCapture.loopTimer);
+ } catch (error) {
+ console.error("Initialization error:", error);
+ }
+});
+
+// Save settings before closing the app
+document.addEventListener("beforeunload", async () => {
+ try {
+ await settings.controller.save();
+ } catch (error) {
+ logger.error("Error saving settings:", error);
+ }
+});
\ No newline at end of file
--- /dev/null
+export class SearchData {
+ reaper: boolean;
+ task: string;
+ probability: number;
+
+ constructor() {
+ this.reaper = false;
+ this.task = 'Dragons';
+ this.probability = 0;
+ }
+}
+
+export class SearchAlgorithm {
+ private data: SearchData;
+
+ constructor() {
+ this.data = new SearchData();
+ }
+
+ // Lookup best possible assignment based on input string
+ public async lookup(lookup: string, skipReaper: boolean = false): Promise<SearchData> {
+ const probabilities: { [key: string]: any } = {};
+
+ if (!skipReaper) {
+ const reapersResponse = await fetch("./data/reapers.json");
+ const reapers = await reapersResponse.json();
+
+ for (const a of reapers) {
+ probabilities[a["index"]] = {
+ reaper: true,
+ index: Math.round(this.similarity(a["index"], lookup) * 10000) / 100,
+ creatures: {}
+ };
+
+ for (const b of a["creatures"]) {
+ probabilities[a["index"]].creatures[b] = Math.round(this.similarity(b, lookup) * 10000) / 175;
+ }
+ }
+ }
+
+ const assignmentsResponse = await fetch("./data/assignments.json");
+ const assignments = await assignmentsResponse.json();
+
+ for (const a of assignments) {
+ probabilities[a["index"]] = {
+ reaper: false,
+ index: Math.round(this.similarity(a["index"], lookup) * 10000) / 125,
+ alias: {},
+ creatures: {}
+ };
+
+ for (const b of a["alias"]) {
+ probabilities[a["index"]].alias[b] = Math.round(this.similarity(b, lookup) * 10000) / 150;
+ }
+
+ for (const b of a["creatures"]) {
+ probabilities[a["index"]].creatures[b] = Math.round(this.similarity(b, lookup) * 10000) / 175;
+ }
+ }
+
+ // Find highest likelihood of the search
+ for (const key in probabilities) {
+ if (probabilities[key].index > this.data.probability) {
+ this.data.task = key;
+ this.data.reaper = probabilities[key].reaper;
+ this.data.probability = probabilities[key].index;
+ }
+
+ if (probabilities[key].alias) {
+ const aliasKeys = Object.keys(probabilities[key].alias);
+ for (const aliasKey of aliasKeys) {
+ if (probabilities[key].alias[aliasKey] > this.data.probability) {
+ this.data.task = key;
+ this.data.reaper = probabilities[key].reaper;
+ this.data.probability = probabilities[key].alias[aliasKey];
+ }
+ }
+ }
+
+ if (probabilities[key].creatures) {
+ const creatureKeys = Object.keys(probabilities[key].creatures);
+ for (const creatureKey of creatureKeys) {
+ if (probabilities[key].creatures[creatureKey] > this.data.probability) {
+ this.data.task = key;
+ this.data.reaper = probabilities[key].reaper;
+ this.data.probability = probabilities[key].creatures[creatureKey];
+ }
+ }
+ }
+ }
+
+ return this.data;
+ }
+
+ // Check the similarity of 2 strings
+ private similarity(s1: string, s2: string): number {
+ let longer = s1;
+ let shorter = s2;
+
+ if (s1.length < s2.length) {
+ longer = s2;
+ shorter = s1;
+ }
+
+ const longerLength = longer.length;
+
+ if (longerLength === 0) return 1.0;
+
+ return (longerLength - this.editDistance(longer, shorter)) / parseFloat('' + longerLength);
+ }
+
+ // Calculate the edit distance between 2 strings
+ private editDistance(s1: string, s2: string): number {
+ s1 = s1.toLowerCase();
+ s2 = s2.toLowerCase();
+ const costs: number[] = [];
+
+ for (let i = 0; i <= s1.length; i++) {
+ let lastValue = i;
+
+ for (let j = 0; j <= s2.length; j++) {
+ if (i === 0) {
+ costs[j] = j;
+ } else if (j > 0) {
+ let newValue = costs[j - 1];
+ if (s1.charAt(i - 1) !== s2.charAt(j - 1)) {
+ newValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1;
+ }
+ costs[j - 1] = lastValue;
+ lastValue = newValue;
+ }
+ }
+
+ if (i > 0) {
+ costs[s2.length] = lastValue;
+ }
+ }
+
+ return costs[s2.length];
+ }
+}
--- /dev/null
+import * as a1lib from "alt1";
+import DialogReader from 'alt1/dialog';
+
+class SlayerData {
+ selectYourOwn: boolean;
+ ticket: boolean;
+ reaper: boolean;
+ count: number[];
+ task: string[];
+
+ constructor() {
+ this.selectYourOwn = false;
+ this.ticket = false;
+ this.reaper = false;
+ this.count = [];
+ this.task = [];
+ }
+}
+
+export class SlayerDialogReader {
+ public dialogReader: any;
+ public data: SlayerData;
+
+ constructor() {}
+
+ public async read(buffer: any = null): Promise<SlayerData | null> {
+ if (!buffer) {
+ buffer = a1lib.captureHoldFullRs();
+ }
+ if (!this.dialogReader) {
+ this.dialogReader = new DialogReader();
+ }
+ this.data = new SlayerData();
+
+ const data = this.dialogReader.find(buffer);
+ if (!data) return null;
+
+ const box = this.dialogReader.read(buffer);
+ if (!box) return null;
+
+ if (box.text && (!box.opts || box.opts.length !== 2)) {
+ const msg = box.text.toString();
+
+ // Parsing logic for various types of dialogs
+ if (msg.toLowerCase().includes("select your own task")) {
+ this.data.selectYourOwn = true;
+ }
+
+ if (msg.toLowerCase().includes("require you to collect")) {
+ this.data.reaper = true;
+ const countText = msg.substring(msg.indexOf("collect ") + 8, msg.indexOf(" souls"));
+ this.data.count[0] = parseInt(countText);
+ this.data.task[0] = msg.substring(msg.indexOf("battle: ") + 8, msg.indexOf(". Can"));
+ }
+
+ if (msg.toLowerCase().includes("new task is to kill")) {
+ const e = msg.substring(msg.indexOf("kill ") + 5, msg.length - 1);
+ const countText = e.substring(0, e.includes(",") ? e.indexOf(",") : e.indexOf(" "));
+ this.data.count[0] = parseInt(countText);
+ this.data.task[0] = e.substring((e.includes(",") ? e.indexOf(",") : e.indexOf(" ")) + 1);
+ }
+
+ if (msg.toLowerCase().includes("still need to kill")) {
+ const e = msg.substring(msg.indexOf("kill ") + 5);
+ this.data.count[0] = parseInt(e.substring(0, e.indexOf(" ")));
+ this.data.task[0] = e.substring(e.indexOf(" ") + 1, e.includes(".") ? e.indexOf(".") : e.length - 1);
+ }
+
+ if (msg.toLowerCase().includes("still hunting")) {
+ this.data.task[0] = msg.substring(msg.indexOf("hunting ") + 8, msg.indexOf(";"));
+ }
+ }
+
+ if (box.opts && box.opts.length === 2 && (box.title && box.title.toLowerCase().includes("change your assigned slayer task"))) {
+ this.data.ticket = true;
+ for (let i = 0; i < box.opts.length; i++) {
+ const msg = box.opts[i].text;
+ const countText = msg.substring(0, msg.indexOf(' '));
+ this.data.count[i] = parseInt(countText);
+ this.data.task[i] = msg.substring(msg.indexOf(' ') + 1, msg.includes('(') ? msg.indexOf('(') - 1 : msg.length);
+ }
+ }
+
+ return this.data;
+ }
+}
--- /dev/null
+import * as a1lib from "alt1";
+import * as OCR from "alt1/ocr";
+import { ImageData } from "alt1/base";
+
+import * as settings from "./settings";
+
+let imgs = a1lib.webpackImages({
+ slayer_expanded_RS3: require("../images/data/slayer_expanded_RS3.data.png"),
+ slayer_expanded_OSL: require("../images/data/slayer_expanded_OSL.data.png"),
+ reaper_expanded_RS3: require("../images/data/reaper_expanded_RS3.data.png"),
+ reaper_expanded_OSL: require("../images/data/reaper_expanded_OSL.data.png"),
+ slayer_collapsed_RS3: require("../images/data/slayer_collapsed_RS3.data.png"),
+ slayer_collapsed_OSL: require("../images/data/slayer_collapsed_OSL.data.png"),
+ reaper_collapsed_RS3: require("../images/data/reaper_collapsed_RS3.data.png"),
+ reaper_collapsed_OSL: require("../images/data/reaper_collapsed_OSL.data.png"),
+});
+
+export class UICounterData {
+ img: ImageData;
+ collapsed: boolean;
+ OS: boolean;
+ reaper: boolean;
+ count: number;
+ task: string;
+}
+
+export class UICounterReader {
+ countFont: OCR.FontDefinition | null = null;
+ taskFont: OCR.FontDefinition | null = null;
+ pos: { x: number; y: number; }[];
+ data: UICounterData | null = null;
+
+ async read(buffer?: a1lib.ImgRef) {
+ if (!buffer) buffer = a1lib.captureHoldFullRs();
+ if (!this.countFont) this.countFont = await fetch(require("../fonts/aa_10px_mono.fontmeta.json")).then(r => r.json());
+ if (!this.taskFont) this.taskFont = await fetch(require("../fonts/aa_8px_mono.fontmeta.json")).then(r => r.json());
+ // Reset data for next search
+ this.pos = [];
+ this.data = null;
+
+ // Look for all UI Elements until we find one, then the rest will get skipped
+ this.findUIElement(buffer, imgs.slayer_collapsed_OSL, { reaper: false, collapsed: true, OS: true });
+ this.findUIElement(buffer, imgs.slayer_expanded_OSL, { reaper: false, collapsed: false, OS: true });
+ this.findUIElement(buffer, imgs.slayer_collapsed_RS3, { reaper: false, collapsed: true, OS: false });
+ this.findUIElement(buffer, imgs.slayer_expanded_RS3, { reaper: false, collapsed: false, OS: false });
+ this.findUIElement(buffer, imgs.reaper_collapsed_OSL, { reaper: true, collapsed: true, OS: true });
+ this.findUIElement(buffer, imgs.reaper_expanded_OSL, { reaper: true, collapsed: false, OS: true });
+ this.findUIElement(buffer, imgs.reaper_collapsed_RS3, { reaper: true, collapsed: true, OS: false });
+ this.findUIElement(buffer, imgs.reaper_expanded_RS3, { reaper: true, collapsed: false, OS: false });
+
+ // If we don't find any data or we found too many matches then return
+ if (!this.data && this.pos.length == 0) return null;
+
+ // Setup some temp data for extract the image
+ let width = this.data.collapsed ? imgs.slayer_collapsed_OSL.width : imgs.slayer_expanded_OSL.width;
+ let height = this.data.collapsed ? imgs.slayer_collapsed_OSL.height : imgs.slayer_expanded_OSL.height;
+
+ // Loop the results and return the data we find
+ for (let match of this.pos) {
+ // Overlay a rectangle around the matched area on screen if we're running in alt1
+ if (window.alt1 && alt1.permissionOverlay && settings.controller.data.ui.counter) alt1.overLayRect(a1lib.mixColor(255, 255, 255), match.x, match.y, width, height, 500, 3);
+
+ // Get the pixel data for the matched area
+ this.data.img = buffer.toData(match.x, match.y, width, height);
+
+ // Extract the count and task (if avaliable)
+ let countText = OCR.findReadLine(this.data.img, this.countFont, this.data.OS ? [[255, 152, 31]] : [[255, 203, 5]], this.data.collapsed ? 10 : 72, 15, 30, 3);
+ this.data.count = parseInt(countText.text);
+ if (!this.data.collapsed) this.data.task = OCR.findReadLine(this.data.img, this.taskFont, this.data.OS ? [[255, 152, 31]] : [[255, 203, 5]], 9, 28, 156, 3).text;
+ }
+ return (!this.pos || this.pos.length == 0) ? null : this.data;
+ }
+
+ private findUIElement(buffer: a1lib.ImgRef, img: ImageData, mode: { reaper: boolean, collapsed: boolean, OS: boolean }) {
+ if (!this.data && this.pos.length == 0) this.pos = buffer.findSubimage(img);
+ if (!this.data && this.pos.length > 0) this.data = { reaper: mode.reaper, collapsed: mode.collapsed, OS: mode.OS, img: null, count: -1, task: null }
+ }
+}
\ No newline at end of file
--- /dev/null
+// Fetch a single assignment based on the index or alias
+export async function get(assignment) {
+ try {
+ const response = await fetch("./data/assignments.json");
+ const data = await response.json();
+
+ for (const a of data) {
+ if (a["index"].toLowerCase() === assignment.toLowerCase()) {
+ return a;
+ }
+ for (const b of a["alias"]) {
+ if (b.toLowerCase() === assignment.toLowerCase()) {
+ return a;
+ }
+ }
+ }
+ return null;
+ } catch (error) {
+ console.error("Error fetching data:", error);
+ return null;
+ }
+}
+
+// Get an array of the index
+export async function getIndexList() {
+ try {
+ let dataList = "";
+ const response = await fetch("./data/assignments.json");
+ const data = await response.json();
+
+ for (const a of data) {
+ dataList += `<option>${a["index"]}</option>\n\r`;
+ }
+ return dataList;
+ } catch (error) {
+ console.error("Error fetching data:", error);
+ return "";
+ }
+}
--- /dev/null
+// Assuming decodeHtml function is defined or imported elsewhere
+import { decodeHtml } from '../extrafuncs';
+
+// Fetch a single creature based on the name
+export async function get(creature) {
+ try {
+ const response = await fetch("./data/creatures.json");
+ const data = await response.json();
+
+ for (const a of data) {
+ if (decodeHtml(a["name"].toLowerCase()) === creature.toLowerCase()) {
+ return a;
+ }
+ }
+ return null;
+ } catch (error) {
+ console.error("Error fetching data:", error);
+ return null;
+ }
+}
--- /dev/null
+// Assuming decodeHtml function is defined or imported elsewhere
+import { decodeHtml } from '../extrafuncs';
+
+// Fetch a single master based on the name
+export async function get(master) {
+ try {
+ const response = await fetch("./data/masters.json");
+ const data = await response.json();
+
+ for (const a of data) {
+ if (decodeHtml(a["name"].toLowerCase()) === master.toLowerCase()) {
+ return a;
+ }
+ }
+ return null;
+ } catch (error) {
+ console.error("Error fetching data:", error);
+ return null;
+ }
+}
--- /dev/null
+// Fetch a single reaper based on the index or alias
+export async function get(reaper) {
+ try {
+ const response = await fetch("./data/reapers.json");
+ const data = await response.json();
+
+ for (const a of data) {
+ if (a["index"].toLowerCase() === reaper.toLowerCase()) {
+ return a;
+ }
+ }
+ return null;
+ } catch (error) {
+ console.error("Error fetching data:", error);
+ return null;
+ }
+}
+
+// Get an array of the index as HTML option elements
+export async function getIndexList() {
+ try {
+ let dataList = "";
+ const response = await fetch("./data/reapers.json");
+ const data = await response.json();
+
+ for (const a of data) {
+ dataList += `<option>${a["index"]}</option>\n\r`;
+ }
+ return dataList;
+ } catch (error) {
+ console.error("Error fetching data:", error);
+ return "";
+ }
+}
--- /dev/null
+// Import the decodeHtml function
+import { decodeHtml } from '../extrafuncs';
+
+// Fetch a single variant based on the creature name and variant name
+export async function get(creature, variant) {
+ try {
+ const response = await fetch("./data/creatures.json");
+ const data = await response.json();
+
+ for (const a of data) {
+ if (decodeHtml(a["name"].toLowerCase()) === creature.toLowerCase()) {
+ for (const b of a["variants"]) {
+ if (b["name"].toLowerCase() === variant.toLowerCase()) {
+ return b;
+ }
+ }
+ }
+ }
+ return null;
+ } catch (error) {
+ console.error("Error fetching data:", error);
+ return null;
+ }
+}
--- /dev/null
+
+// Import required modules
+import * as main from './dochandler/main';
+
+// Export required modules
+export * as animate from './dochandler/animate';
+export * as change from './dochandler/change';
+export * as hide from './dochandler/hide';
+export * as hover from './dochandler/hover';
+export * as main from './dochandler/main';
+export * as show from './dochandler/show';
+export * as open from './dochandler/open';
+
+// Function to get the side element based on the index
+export function getSide(i: number) {
+ var base = main.get.elid("base");
+ var side = main.get.elc(i === 0 ? "left" : "right", base);
+ if (!side) {
+ side = main.get.elc("single", base);
+ }
+ return side;
+}
--- /dev/null
+// Import required modules
+import * as dochandler from '../dochandler';
+
+// Function to show the loading bar
+export function loading() {
+ var loadingBar = dochandler.main.get.elid("loading-bar");
+ if (loadingBar) {
+ loadingBar.style.visibility = "visible";
+ }
+}
+
+// Function to hide the loading bar
+export function loadingStop() {
+ var loadingBar = dochandler.main.get.elid("loading-bar");
+ if (loadingBar) {
+ loadingBar.style.visibility = "hidden";
+ }
+}
\ No newline at end of file
--- /dev/null
+// Import all modules as namespaces
+import * as settings from '../settings';
+import * as dochandler from '../dochandler';
+import * as extrafuncs from '../extrafuncs';
+import * as masters from '../data/masters';
+import * as reapers from '../data/reapers';
+import * as assignments from '../data/assignnments';
+import * as creatures from '../data/creatures';
+import * as variants from '../data/variants';
+import * as logger from "../logger";
+
+// Update the Creature variant shown
+export async function variant(i, creature = null, variant = null) {
+ // Start loading animation
+ dochandler.animate.loading();
+
+ // Determine the side (view/panel)
+ const side = dochandler.getSide(i);
+
+ // Return early if UI is limited or data is not available
+ if ((settings.controller.data.ui.limited || dochandler.main.limitedLoaded) && (!creature || !variant)) {
+ dochandler.animate.loadingStop();
+ return;
+ }
+
+ // Fetch creature and variant from UI elements if not provided
+ if (!creature) {
+ creature = (<HTMLInputElement>dochandler.main.get.elc("creatures", side)).value;
+ }
+ if (!variant) {
+ variant = (<HTMLInputElement>dochandler.main.get.elc("variants", side)).value;
+ }
+
+ logger.log(`Change variant to: ${creature}#${variant}`);
+
+ // Fetch data for the selected variant
+ const data = await variants.get(creature, variant);
+
+ if (data) {
+ // Update UI if not limited
+ if (!settings.controller.data.ui.limited && !dochandler.main.limitedLoaded) {
+ // Update image
+ const imageContainer = dochandler.main.get.elc("image-container", side);
+ imageContainer.innerHTML = data["image"].replace("#", "%23");
+ const imageElement = <HTMLElement>imageContainer.firstElementChild;
+ const newSize = extrafuncs.calculateAspectRatioFit(
+ parseInt(imageElement.getAttribute("width")),
+ parseInt(imageElement.getAttribute("height")),
+ imageContainer.offsetWidth,
+ imageContainer.offsetHeight
+ );
+ imageElement.style.maxWidth = `${newSize.width}px`;
+ imageElement.style.maxHeight = `${newSize.height}px`;
+
+ // Update stats
+ updateStats(side, data);
+ }
+
+ // Update total slayer experience
+ const kills = parseInt(dochandler.main.get.elc("kills", side).innerHTML, 10);
+ dochandler.main.get.elc("total-slayer-exp", side).innerHTML = extrafuncs.numberWithCommas((data["slayer-exp"] * kills).toFixed(2));
+ }
+
+ // Stop loading animation
+ dochandler.animate.loadingStop();
+}
+
+// Helper function to update stats
+function updateStats(side, data) {
+ dochandler.main.get.elc("level", side).innerHTML = data["level"];
+ dochandler.main.get.elc("slayer-level", side).innerHTML = data["slayer-level"];
+ dochandler.main.get.elc("lifepoints", side).innerHTML = data["lifepoints"];
+ dochandler.main.get.elc("defence", side).innerHTML = data["defence"];
+ dochandler.main.get.elc("max-melee", side).innerHTML = data["max-melee"];
+ dochandler.main.get.elc("max-ranged", side).innerHTML = data["max-ranged"];
+ dochandler.main.get.elc("max-magic", side).innerHTML = data["max-magic"];
+ dochandler.main.get.elc("max-necromancy", side).innerHTML = data["max-necromancy"];
+ dochandler.main.get.elc("max-spec", side).innerHTML = data["max-spec"];
+
+ // Update weakness and susceptibility
+ const weaknessElem = dochandler.main.get.elc("weaknessBox", side);
+ weaknessElem.innerHTML = "<p id=\"weakness-text\">Weakness</p>" + data["weakness"].join("");
+
+ const susceptibleElem = dochandler.main.get.elc("susceptibleBox", side);
+ susceptibleElem.innerHTML = "<p id=\"susceptible-text\">Susceptible</p>" + data["susceptible"].join("");
+
+ // Update experience values
+ dochandler.main.get.elc("combat-exp", side).innerHTML = extrafuncs.numberWithCommas(data["experience"].toFixed(2));
+ dochandler.main.get.elc("lifepoints-exp", side).innerHTML = extrafuncs.numberWithCommas(data["lifepoint-exp"].toFixed(2));
+ dochandler.main.get.elc("slayer-exp", side).innerHTML = extrafuncs.numberWithCommas(data["slayer-exp"].toFixed(2));
+}
+
+// Update the Creature shown
+export async function creature(i, creature = null, variant = null) {
+ // Start loading animation
+ dochandler.animate.loading();
+
+ // Determine the side (view/panel)
+ const side = dochandler.getSide(i);
+
+ // Return early if UI is limited and no creature is provided
+ if ((settings.controller.data.ui.limited || dochandler.main.limitedLoaded) && !creature) {
+ dochandler.animate.loadingStop();
+ return;
+ }
+
+ // Fetch creature from UI elements if not provided
+ if (!creature) {
+ creature = (<HTMLInputElement>dochandler.main.get.elc("creatures", side)).value;
+ }
+
+ logger.log(`Change Creature to: ${creature}${variant ? `#${variant}` : ''}`);
+
+ // Fetch data for the selected creature
+ const data = await creatures.get(creature);
+
+ if (data) {
+ // Update variants if available
+ if (data["variants"] && !settings.controller.data.ui.limited && !dochandler.main.limitedLoaded) {
+ const variantsElem = dochandler.main.get.elc("variants", side);
+ variantsElem.innerHTML = "";
+ data["variants"].forEach(a => {
+ variantsElem.innerHTML += `<option value="${a["name"]}"${variant && extrafuncs.decodeHtml(a["name"]) === extrafuncs.decodeHtml(variant) ? " selected" : ""}>${a["name"]}</option>`;
+ });
+ if (!variant) {
+ variant = data["variants"][0]["name"];
+ }
+ }
+
+ // Update the variant to reflect changes
+ dochandler.change.variant(i, creature, variant);
+ }
+
+ // Stop loading animation
+ dochandler.animate.loadingStop();
+}
+
+// Update the reaper assignment data
+export async function reaper(task, count) {
+ return await assignment(2, task, count);
+}
+
+// Update the entire Assignment data
+export async function assignment(i, task, count) {
+ // Ensure correct task loading conditions
+ if (i === 1 && !dochandler.main.doubleLoaded) {
+ console.error("Cannot load double slayer task if only 1 is displayed!");
+ return;
+ }
+ if (i === 2 && !dochandler.main.reaperLoaded) {
+ console.error("Cannot load reaper task if 2 are displayed!");
+ return;
+ }
+
+ // Show loading animation
+ dochandler.animate.loading();
+ const side = dochandler.getSide(i);
+ const nameElement = dochandler.main.get.elc("name", side);
+
+ if (!nameElement) return;
+
+ // Check if the current task is the same as the new one
+ if ((task == null && nameElement.innerHTML !== "???") || nameElement.innerHTML.toLowerCase() === task.toLowerCase()) {
+ logger.log(`Update task: [${count}] ${task} ${i === 0 ? "(Default)" : (i === 2 ? "(Reaper)" : "(1 Slayer Token)")}`);
+ dochandler.main.get.elc("kills", side).innerHTML = extrafuncs.numberWithCommas(count);
+ let slayer_exp = dochandler.main.get.elc("slayer-exp", side);
+ if (slayer_exp && slayer_exp.innerHTML !== "") {
+ let slayxp = parseInt(slayer_exp.innerHTML);
+ dochandler.main.get.elc("total-slayer-exp", side).innerHTML = extrafuncs.numberWithCommas((slayxp * count).toFixed(2));
+ }
+ dochandler.animate.loadingStop();
+ return;
+ }
+
+ // Load new task data
+ logger.log(`Load task: [${count}] ${task} ${i === 0 ? "(Default)" : (i === 2 ? "(Reaper)" : "(1 Slayer Token)")}`);
+ dochandler.main.get.elc("type", side).innerHTML = i === 0 ? "(Default)" : (i === 2 ? "(Reaper)" : "(1 Slayer Token)");
+ if (i === 2) dochandler.main.get.elc("type", side).id = "type-reaper";
+
+ let data = await (i === 2 ? reapers.get(task) : assignments.get(task));
+ if (!data) {
+ dochandler.animate.loadingStop();
+ return;
+ }
+
+ // Update UI elements with the new data
+ dochandler.main.get.elc("name", side).innerHTML = data["index"];
+ dochandler.main.get.elc("name", side).title = data["index"];
+ dochandler.main.get.elc("kills", side).innerHTML = extrafuncs.numberWithCommas(count);
+ if (dochandler.main.limitedLoaded) {
+ let total_exp = 0; // FIXME Add in ability to show the default creature exp
+ dochandler.main.get.elc("total-slayer-exp", side).innerHTML = extrafuncs.numberWithCommas(total_exp);
+ }
+
+ // Update masters data
+ if (!settings.controller.data.ui.limited && !dochandler.main.limitedLoaded) {
+ dochandler.main.get.elc("masters", side).innerHTML = "<div class=\"nistext masterTitle\">Assignment Range</div>";
+ for (let j = 0; j < data["masters"].length; j++) {
+ const img = `<img id="masterImage${j}" alt="${data["masters"][j]}" src="./images/masters/${data["masters"][j]}.png" title="${data["masters"][j]}"></img>`;
+ const masterData = await masters.get(data["masters"][j]);
+ const kills = masterData["task-counts"][data["index"]];
+ dochandler.main.get.elc("masters", side).innerHTML += `<div class="nistext masterInfo${j}">${img} Kills: ${kills}</div>`;
+ }
+ for (let j = 0; j < data["masters"].length; j++) {
+ dochandler.main.get.elc(`masterInfo${j}`, side).addEventListener('click', () => dochandler.open.wiki.master(i, j));
+ }
+
+ // Update equipment data
+ if (data["equipment"]) {
+ for (let j = 0; j < 3; j++) {
+ dochandler.main.get.elc(`equipInfo${j + 1}`, side).innerHTML = j === 0 ? "None" : "";
+ }
+ for (let j = 0; j < data["equipment"].length; j++) {
+ dochandler.main.get.elc(`equipInfo${j + 1}`, side).innerHTML = data["equipment"][j] || "<span style=\"color: red;\" title=\"There is no information in the database.\">Database Empty</span>";
+ }
+ dochandler.main.get.elc("equipMore", side).style.visibility = data["equipment"].length < 3 ? "hidden" : "visible";
+ } else {
+ dochandler.main.get.elc("equipMore", side).style.visibility = "hidden";
+ dochandler.main.get.elc("equipInfo1", side).innerHTML = "<span style=\"color: red;\" title=\"There is no information in the database.\">Database Missing</span>";
+ }
+
+ // Update locations data
+ if (data["locations"]) {
+ for (let j = 0; j < 3; j++) {
+ dochandler.main.get.elc(`locationInfo${j + 1}`, side).innerHTML = j === 0 ? "None" : "";
+ }
+ for (let j = 0; j < data["locations"].length; j++) {
+ dochandler.main.get.elc(`locationInfo${j + 1}`, side).innerHTML = data["locations"][j] || "<span style=\"color: red;\" title=\"There is no information in the database.\">Database Empty</span>";
+ }
+ dochandler.main.get.elc("locationMore", side).style.visibility = data["locations"].length < 3 ? "hidden" : "visible";
+ } else {
+ dochandler.main.get.elc("locationMore", side).style.visibility = "hidden";
+ dochandler.main.get.elc("locationInfo1", side).innerHTML = "<span style=\"color: red;\" title=\"There is no information in the database.\">Database Missing</span>";
+ }
+
+ // Update creatures data
+ if (data["creatures"]) {
+ dochandler.main.get.elc("creatures", side).innerHTML = "";
+ for (let a of data["creatures"]) {
+ if (!extrafuncs.listContains(data["hidden-creatures"], a)) {
+ const defaultCreature = data["default-creature"]?.split("#")[0] || "";
+ dochandler.main.get.elc("creatures", side).innerHTML += `<option value="${a}" ${extrafuncs.decodeHtml(a) === extrafuncs.decodeHtml(defaultCreature) ? "selected" : ""}>${a}</option>`;
+ }
+ }
+ }
+
+ // Set default creature and variant
+ if (data["default-creature"]) {
+ const [creature, variant] = data["default-creature"].split("#");
+ dochandler.change.creature(i, creature, variant);
+ } else {
+ dochandler.change.creature(i);
+ }
+ }
+
+ // Stop loading animation
+ dochandler.animate.loadingStop();
+}
--- /dev/null
+import * as dochandler from "../dochandler";
+import * as settings from "../settings";
+
+export function assignmentWikiPreview(i: number): void {
+ if (settings.controller.data.ui.limited) return;
+ const side = dochandler.getSide(i);
+ dochandler.main.get.elc("preview-task-wiki", side).style.visibility = "hidden";
+}
+
+export function creatureWikiPreview(i: number): void {
+ if (settings.controller.data.ui.limited) return;
+ const side = dochandler.getSide(i);
+ dochandler.main.get.elc("preview-creature-wiki", side).style.visibility = "hidden";
+}
+
+export function moreEquip(i: number): void {
+ if (settings.controller.data.ui.limited) return;
+ const side = dochandler.getSide(i);
+ dochandler.main.get.elc("equipHidden", side).style.visibility = "hidden";
+}
+
+export function moreLocations(i: number): void {
+ if (settings.controller.data.ui.limited) return;
+ const side = dochandler.getSide(i);
+ dochandler.main.get.elc("locationHidden", side).style.visibility = "hidden";
+}
--- /dev/null
+import * as dochandler from "../dochandler";
+import * as settings from "../settings";
+
+export function assignmentWiki(i: number) {
+ if (settings.controller.data.ui.limited) return;
+ const side = dochandler.getSide(i);
+ let showTimer: NodeJS.Timeout;
+ let hideTimer: NodeJS.Timeout | null = null;
+ showTimer = setTimeout(() => dochandler.show.assignmentWikiPreview(i), 500);
+ dochandler.main.get.elc("task-wiki", side).onmouseleave = () => {
+ hideTimer = setTimeout(() => dochandler.hide.assignmentWikiPreview(i), 200);
+ clearTimeout(showTimer);
+ };
+ dochandler.main.get.elc("preview-task-wiki", side).onmouseenter = () => {
+ if (hideTimer !== null) clearTimeout(hideTimer);
+ };
+}
+
+export function creatureWiki(i: number) {
+ if (settings.controller.data.ui.limited) return;
+ const side = dochandler.getSide(i);
+ let showTimer: NodeJS.Timeout;
+ let hideTimer: NodeJS.Timeout | null = null;
+ showTimer = setTimeout(() => dochandler.show.creatureWikiPreview(i), 500);
+ dochandler.main.get.elc("creature-wiki", side).onmouseleave = () => {
+ hideTimer = setTimeout(() => dochandler.hide.creatureWikiPreview(i), 200);
+ clearTimeout(showTimer);
+ };
+ dochandler.main.get.elc("preview-creature-wiki", side).onmouseenter = () => {
+ if (hideTimer !== null) clearTimeout(hideTimer);
+ };
+}
+
+export function moreEquip(i: number) {
+ if (settings.controller.data.ui.limited) return;
+ const side = dochandler.getSide(i);
+ const showTimer = setTimeout(() => dochandler.show.moreEquip(i), 500);
+ dochandler.main.get.elc("equipMore", side).onmouseleave = () => {
+ clearTimeout(showTimer);
+ };
+}
+
+export function moreLocations(i: number) {
+ if (settings.controller.data.ui.limited) return;
+ const side = dochandler.getSide(i);
+ const showTimer = setTimeout(() => dochandler.show.moreLocations(i), 500);
+ dochandler.main.get.elc("locationMore", side).onmouseleave = () => {
+ clearTimeout(showTimer);
+ };
+}
--- /dev/null
+import * as dochandler from '../dochandler';
+import * as reapers from '../data/reapers';
+import * as assignments from '../data/assignnments';
+import * as settings from '../settings';
+import * as slayer from '../slayer';
+import * as logger from "../logger";
+
+// Define variables
+export let doubleLoaded = false;
+export let singleLoaded = false;
+export let reaperLoaded = false;
+export let suggestedLoaded = false;
+export let limitedLoaded = false;
+
+export module get {
+ export function elc(id: any, base: any): HTMLElement {
+ return <HTMLElement>base.getElementsByClassName(id)[0];
+ }
+
+ export function elid(id): HTMLElement {
+ return <HTMLElement>document.getElementById(id);
+ }
+
+ export function searchInput() {
+ return (<HTMLInputElement>document.querySelector(`input[name='search-info']`)).value;
+ }
+}
+
+export module reset {
+ export async function single() {
+ if (!singleLoaded) return;
+ const baseElement = await get.elid("base");
+ baseElement.innerHTML = "";
+ singleLoaded = false;
+ }
+
+ export async function double() {
+ if (!doubleLoaded) return;
+ const baseElement = await get.elid("base");
+ baseElement.innerHTML = "";
+ doubleLoaded = false;
+ }
+
+ export async function reaper() {
+ if (!reaperLoaded) return;
+ const baseElement = await get.elid("base");
+ baseElement.innerHTML = "";
+ reaperLoaded = false;
+ }
+
+ export async function suggested() {
+ if (!suggestedLoaded) return;
+ const baseElement = await get.elid("base");
+ baseElement.innerHTML = "";
+ suggestedLoaded = false;
+ }
+
+ export async function searchBox() {
+ let searchInfo: HTMLInputElement = <HTMLInputElement>await get.elid("search-info");
+ searchInfo.value = "";
+ toggle.searchText();
+ }
+}
+
+export module set {
+ // Set to use a double document
+ export async function double(task0: { name: string, count: number }, task1: { name: string, count: number }, bypass: boolean = false) {
+ if ((task0 == null || task1 == null) && !doubleLoaded) return;
+
+ logger.log(`Load Double: [${task0.count}] ${task0.name} | [${task1.count}] ${task1.name}`);
+
+ // Reset all others
+ await reset.single();
+ await reset.reaper();
+ await reset.suggested();
+
+ if (!doubleLoaded) {
+ await setup.doubleAssignment();
+ }
+
+ await dochandler.change.assignment(0, task0.name, task0.count);
+ await dochandler.change.assignment(1, task1.name, task1.count);
+
+ // Log history if not bypassed
+ if (!bypass && task0.name && task1.name) {
+ settings.change.addHistory({ type: 'double', tasks: [task0, task1] });
+ }
+ }
+
+ // Set to use a single document
+ export async function single(task: { name: string, count: number }, bypass: boolean = false) {
+ if (task == null && !singleLoaded) return;
+
+ logger.log(`Load Single: [${task.count}] ${task.name}`);
+
+ // Reset all others
+ await reset.double();
+ await reset.reaper();
+ await reset.suggested();
+
+ if (!singleLoaded) {
+ await setup.singleAssignment(0);
+ }
+
+ await dochandler.change.assignment(0, task.name, task.count);
+
+ // Log history if not bypassed
+ if (!bypass && task.name) {
+ settings.change.addHistory({ type: 'single', tasks: [task] });
+ }
+ }
+
+ // Set to use reaper tasks doc
+ export async function reaper(task: { name: string, count: number }, bypass: boolean = false) {
+ if (task == null && !reaperLoaded) return;
+
+ logger.log(`Load Reaper: [${task.count}] ${task.name}`);
+
+ // Reset all others
+ await reset.single();
+ await reset.double();
+ await reset.suggested();
+
+ await setup.singleAssignment(2);
+ await dochandler.change.reaper(task.name, task.count);
+
+ // Log history if not bypassed
+ if (!bypass && task.name) {
+ settings.change.addHistory({ type: 'reaper', tasks: [task] });
+ }
+ }
+
+ // Set to use suggested tasks doc
+ export async function suggested(bypass: boolean = false) {
+ if (suggestedLoaded) return;
+
+ logger.log("Load Suggested!");
+
+ // Reset all others
+ await reset.single();
+ await reset.double();
+ await reset.reaper();
+
+ await dochandler.main.setup.suggested();
+
+ // Log history if not bypassed
+ if (!bypass) {
+ settings.change.addHistory({ type: 'suggestion', tasks: null });
+ }
+ }
+
+ // Set search button
+ export function searchButtonText(s: string) {
+ dochandler.main.get.elid("search-button").innerHTML = `${s}<span style="visibility: hidden;">. . .</span>`;
+ }
+
+ // Set the search input
+ export function searchInput(s: string | null) {
+ if (s == null) return;
+
+ (<HTMLInputElement>dochandler.main.get.elid("search-info")).value = s;
+ dochandler.main.toggle.searchText();
+ }
+}
+
+export module setup {
+ // Setup the main document
+ export async function documentMain() {
+ const nisElement = dochandler.main.get.elid("nis");
+ nisElement.innerHTML = await fetch("./pages/doc/body.html").then(r => r.text());
+
+ // Setup event listeners
+ dochandler.main.get.elid("infobutton").addEventListener('click', dochandler.open.aboutInfo);
+ dochandler.main.get.elid("menubutton").addEventListener('click', dochandler.open.settingsPage);
+ dochandler.main.get.elid("donatebutton").addEventListener('click', dochandler.open.donate);
+ dochandler.main.get.elid("backbutton").addEventListener('click', settings.change.goPreviousHistory);
+ dochandler.main.get.elid("forwardbutton").addEventListener('click', settings.change.goNextHistory);
+ dochandler.main.get.elid("search-button").addEventListener('click', function () { slayer.searchTasks(); });
+ dochandler.main.get.elid("search-info").addEventListener('input', dochandler.main.toggle.searchText);
+ dochandler.main.get.elid("search-info").addEventListener('change', function () { slayer.searchTasks(); });
+ dochandler.main.get.elid("search-info").addEventListener('keyup', (event) => {
+ switch (event.key) {
+ case "ArrowUp":
+ dochandler.main.set.searchInput(settings.search.getPreviousHistory());
+ break;
+ case "ArrowDown":
+ dochandler.main.set.searchInput(settings.search.getNextHistory());
+ break;
+ }
+ });
+
+ // Load the list of all assignments into the search feature (aka datalist)
+ const reapersIndexList = await reapers.getIndexList();
+ dochandler.main.get.elid("search-info-list").innerHTML = reapersIndexList;
+
+ const assignmentsIndexList = await assignments.getIndexList();
+ dochandler.main.get.elid("search-info-list").innerHTML += assignmentsIndexList;
+ }
+
+ // Setup the base for double assignment
+ export async function doubleAssignment() {
+ limitedLoaded = true;
+ const baseElement = dochandler.main.get.elid("base");
+ baseElement.innerHTML = await fetch("./pages/doc/dual.html").then(r => r.text());
+
+ for (let i = 0; i < 2; i++) {
+ const side = dochandler.getSide(i);
+ side.innerHTML = await fetch("./pages/doc/example.html").then(r => r.text());
+
+ // Setup event listeners
+ dochandler.main.get.elc("task-wiki", side).addEventListener('click', () => dochandler.open.wiki.assignment(i));
+ dochandler.main.get.elc("task-wiki", side).addEventListener('mouseover', () => dochandler.hover.assignmentWiki(i));
+
+ if (!settings.controller.data.ui.limited) {
+ const extraInfo = dochandler.main.get.elc("extra-info", side);
+ extraInfo.innerHTML = await fetch("./pages/doc/example-extra.html").then(r => r.text());
+ limitedLoaded = false;
+
+ dochandler.main.get.elc("preview-task-wiki", side).addEventListener('mouseleave', () => dochandler.hide.assignmentWikiPreview(i));
+ dochandler.main.get.elc("preview-creature-wiki", side).addEventListener('mouseleave', () => dochandler.hide.creatureWikiPreview(i));
+ dochandler.main.get.elc("equipMore", side).addEventListener('mouseenter', () => dochandler.hover.moreEquip(i));
+ dochandler.main.get.elc("equipHidden", side).addEventListener('mouseleave', () => dochandler.hide.moreEquip(i));
+ dochandler.main.get.elc("locationMore", side).addEventListener('mouseenter', () => dochandler.hover.moreLocations(i));
+ dochandler.main.get.elc("locationHidden", side).addEventListener('mouseleave', () => dochandler.hide.moreLocations(i));
+ dochandler.main.get.elc("creature-wiki", side).addEventListener('click', () => dochandler.open.wiki.creature(i));
+ dochandler.main.get.elc("creature-wiki", side).addEventListener('mouseover', () => dochandler.hover.creatureWiki(i));
+ dochandler.main.get.elc("creatures", side).addEventListener('change', () => dochandler.change.creature(i));
+ dochandler.main.get.elc("variants", side).addEventListener('change', () => dochandler.change.variant(i));
+ }
+ }
+
+ // Adjust the doc for limited and full
+ adjustForSettings();
+ doubleLoaded = true;
+ }
+
+ // Setup the base for single assignment
+ export async function singleAssignment(i: number) {
+ limitedLoaded = true;
+ const baseElement = dochandler.main.get.elid("base");
+ baseElement.innerHTML = await fetch("./pages/doc/single.html").then(r => r.text());
+
+ const side = dochandler.getSide(i);
+ side.innerHTML = await fetch("./pages/doc/example.html").then(r => r.text());
+
+ // Setup event listeners
+ dochandler.main.get.elc("task-wiki", side).addEventListener('click', () => dochandler.open.wiki.assignment(i));
+ dochandler.main.get.elc("task-wiki", side).addEventListener('mouseover', () => dochandler.hover.assignmentWiki(i));
+
+ if (!settings.controller.data.ui.limited) {
+ const extraInfo = dochandler.main.get.elc("extra-info", side);
+ extraInfo.innerHTML = await fetch("./pages/doc/example-extra.html").then(r => r.text());
+ limitedLoaded = false;
+
+ dochandler.main.get.elc("preview-task-wiki", side).addEventListener('mouseleave', () => dochandler.hide.assignmentWikiPreview(i));
+ dochandler.main.get.elc("preview-creature-wiki", side).addEventListener('mouseleave', () => dochandler.hide.creatureWikiPreview(i));
+ dochandler.main.get.elc("equipMore", side).addEventListener('mouseenter', () => dochandler.hover.moreEquip(i));
+ dochandler.main.get.elc("equipHidden", side).addEventListener('mouseleave', () => dochandler.hide.moreEquip(i));
+ dochandler.main.get.elc("locationMore", side).addEventListener('mouseenter', () => dochandler.hover.moreLocations(i));
+ dochandler.main.get.elc("locationHidden", side).addEventListener('mouseleave', () => dochandler.hide.moreLocations(i));
+ dochandler.main.get.elc("creature-wiki", side).addEventListener('click', () => dochandler.open.wiki.creature(i));
+ dochandler.main.get.elc("creature-wiki", side).addEventListener('mouseover', () => dochandler.hover.creatureWiki(i));
+ dochandler.main.get.elc("creatures", side).addEventListener('change', () => dochandler.change.creature(i));
+ dochandler.main.get.elc("variants", side).addEventListener('change', () => dochandler.change.variant(i));
+ }
+
+ // Adjust if status is visible
+ const statusElement = <HTMLElement>dochandler.main.get.elc("status", side);
+ if (settings.controller.data.ui.status) {
+ statusElement.style.visibility = "visible";
+ } else {
+ statusElement.style.visibility = "hidden";
+ }
+
+ // Adjust the doc for limited and full
+ adjustForSettings();
+ if (i === 2) {
+ reaperLoaded = true;
+ } else {
+ singleLoaded = true;
+ }
+ }
+
+ // Setup the base for suggested
+ export async function suggested() {
+ const baseElement = dochandler.main.get.elid("base");
+ baseElement.innerHTML = await fetch("./pages/doc/suggested.html").then(r => r.text());
+
+ const suggestType = dochandler.main.get.elid("type-suggest");
+ if (suggestType) {
+ suggestType.addEventListener('click', () => window.open("https://runescape.wiki/w/Slayer_training/High-levelled"));
+ }
+
+ for (let i = 1; i <= 12; i++) {
+ const element = dochandler.main.get.elid(`suggestion-${i}`);
+ if (element) {
+ element.addEventListener('click', () => slayer.searchTasks(element.innerHTML));
+ }
+ }
+
+ suggestedLoaded = true;
+ }
+
+ // If limited, set the size of the base
+ function adjustForSettings() {
+ const baseElement = dochandler.main.get.elid("base");
+ const divideElement = dochandler.main.get.elid("divide");
+ const copyrightElement = dochandler.main.get.elid("copyright");
+
+ if (settings.controller.data.ui.limited) {
+ baseElement.classList.remove("base-full");
+ if (divideElement) {
+ divideElement.classList.remove("divide-full");
+ }
+ copyrightElement.classList.remove("copyright-full");
+ } else {
+ baseElement.classList.add("base-full");
+ if (divideElement) {
+ divideElement.classList.add("divide-full");
+ }
+ copyrightElement.classList.add("copyright-full");
+ }
+ }
+}
+
+export module toggle {
+ // Toggle if we are capturing screen or searching text
+ export function searchText() {
+ const searchResult = slayer.searchResult;
+ const autoCaptureEnabled = settings.controller.data.autoCapture.enabled;
+ const searchInput = dochandler.main.get.searchInput();
+
+ if (searchResult || (!autoCaptureEnabled && searchInput === "")) {
+ dochandler.main.set.searchButtonText("Capture");
+ } else {
+ dochandler.main.set.searchButtonText("Search");
+ }
+ }
+}
--- /dev/null
+import * as dochandler from '../dochandler';
+import * as settings from '../settings';
+
+// Open the Donate Page (https://www.paypal.com/donate/?hosted_button_id=LRFC6766YMVTQ)
+export function donate() {
+ window.open("https://www.paypal.com/donate/?hosted_button_id=LRFC6766YMVTQ");
+}
+
+// Open the about info page
+export function aboutInfo() {
+ window.open("./pages/about.html", null, "width=680,height=550");
+}
+
+// Open the settings page
+export function settingsPage() {
+ const settingsWindow = window.open("./pages/settings.html", "_blank", "width=420,height=550");
+ console.warn("Settings Opened!");
+ settingsWindow?.window.console.warn("Settings Loaded!");
+
+ settingsWindow?.addEventListener('keyup', (e) => {
+ if ((e.which || e.keyCode) === 116) {
+ // Prevent F5 key press from refreshing the page
+ e.preventDefault();
+ }
+ });
+
+ settingsWindow?.addEventListener('beforeunload', () => {
+ // Load the new settings and apply them
+ settings.controller.load();
+ dochandler.main.toggle.searchText();
+ console.warn("Settings Closed!");
+ settingsWindow?.window.console.warn("Settings Saved!");
+ });
+}
+
+export module wiki {
+ // Opens the wiki page for a specific task
+ export function assignment(i: number) {
+ const side = dochandler.getSide(i);
+ const task = dochandler.main.get.elc("name", side).innerHTML;
+ if (task) {
+ window.open('https://runescape.wiki/' + task + '_(Slayer_assignment)');
+ }
+ }
+
+ // Opens the wiki page for a specific creature
+ export function creature(i: number) {
+ const side = dochandler.getSide(i);
+ const creature = (<HTMLInputElement> dochandler.main.get.elc("creatures", side)).value;
+ const variant = (<HTMLInputElement> dochandler.main.get.elc("variants", side)).value;
+ if (creature && variant) {
+ window.open('https://runescape.wiki/' + creature + "#" + variant);
+ }
+ }
+
+ // Opens the wiki page for a specific master
+ export function master(i: number, j: number) {
+ const side = dochandler.getSide(i);
+ const master = (<HTMLImageElement> dochandler.main.get.elc("masterImage" + j, side)).alt;
+ if (master) {
+ window.open('https://runescape.wiki/' + master);
+ }
+ }
+}
--- /dev/null
+import * as dochandler from '../dochandler';
+import * as settings from '../settings';
+
+// Show the specific Creature's preview wiki page
+export function assignmentWikiPreview(i: number) {
+ if (settings.controller.data.ui.limited) return;
+ const side = dochandler.getSide(i);
+ dochandler.main.get.elc("preview-task-wiki", side).style.visibility = "visible";
+}
+
+// Show the specific Creature's preview wiki page
+export function creatureWikiPreview(i: number) {
+ if (settings.controller.data.ui.limited) return;
+ const side = dochandler.getSide(i);
+ dochandler.main.get.elc("preview-creature-wiki", side).style.visibility = "visible";
+}
+
+// Show more Equipment for task
+export function moreEquip(i: number) {
+ if (settings.controller.data.ui.limited) return;
+ const side = dochandler.getSide(i);
+ const equipHiddenElement = dochandler.main.get.elc("equipHidden", side);
+ if (equipHiddenElement.innerHTML?.trimEnd()) {
+ equipHiddenElement.style.visibility = "visible";
+ }
+}
+
+// Show more Locations for task
+export function moreLocations(i: number) {
+ if (settings.controller.data.ui.limited) return;
+ const side = dochandler.getSide(i);
+ const locationHiddenElement = dochandler.main.get.elc("locationHidden", side);
+ if (locationHiddenElement.innerHTML?.trimEnd()) {
+ locationHiddenElement.style.visibility = "visible";
+ }
+}
--- /dev/null
+// Add commas into a number if its big enough
+export function numberWithCommas(n: any | null): string {
+ if (n == null)
+ return "<span style=\"color: red;\">Empty</span>";
+ if (n === -666)
+ return "<span style=\"color: red;\">Error</span>";
+ return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+}
+
+// Check if the list contains what you want to find
+export function listContains(list: string[], find: string): boolean {
+ for (const l of list) {
+ if (decodeHtml(l).toLowerCase() === decodeHtml(find).toLowerCase())
+ return true;
+ }
+ return false;
+}
+
+// Get new width and height for image based on aspect ratio
+export function calculateAspectRatioFit(srcWidth: number, srcHeight: number, maxWidth: number, maxHeight: number): { width: number, height: number } {
+ const ratio = Math.min(maxWidth / srcWidth, maxHeight / srcHeight);
+ return { width: srcWidth * ratio, height: srcHeight * ratio };
+}
+
+// Decode the HTML chars that have been encoded during database downloading
+export function decodeHtml(html: string): string {
+ const txt = document.createElement("textarea");
+ txt.innerHTML = html;
+ return txt.value;
+}
--- /dev/null
+// Private queues and settings
+let debugQueue: string[] = [];
+let verboseQueue: string[] = [];
+let queueLimit = 50;
+let debugEnabled = false;
+let verboseEnabled = false;
+
+// Set the queue limit for debug and verbose
+export function setLimit(limit: number) {
+ queueLimit = limit;
+}
+
+// Enable or disable debug logging
+export function setDebug(enabled: boolean): void {
+ debugEnabled = enabled;
+ if (enabled) debug("Debug logging enabled"); // Force Flush the Queue
+}
+
+// Enable or disable verbose logging
+export function setVerbose(enabled: boolean): void {
+ verboseEnabled = enabled;
+ if (enabled) verbose("Verbose logging enabled"); // Force Flush the Queue
+}
+
+// Public: Log to the normal queue and flush the queue
+export function log(...messages: any[]): void {
+ console.log(...messages);
+}
+
+// Public: Log to the warn queue and flush the queue
+export function warn(...messages: any[]): void {
+ console.warn(...messages);
+}
+
+// Public: Log to the error queue and flush the queue
+export function error(...messages: any[]): void {
+ console.error(...messages);
+}
+
+// Public: Log to the debug queue only if debug is enabled and flush the queue
+export function debug(...messages: any[]): void {
+ debugQueue.push(messages.join(' '));
+ trimQueue(debugQueue);
+ if (debugEnabled) flushQueue(debugQueue, "Debug");
+}
+
+// Public: Log to the verbose queue only if verbose is enabled and flush the queue
+export function verbose(...messages: any[]): void {
+ verboseQueue.push(messages.join(' '));
+ trimQueue(verboseQueue);
+ if (verboseEnabled) flushQueue(verboseQueue, "Verbose");
+}
+
+// Private: Trim the queue if it exceeds the limit (FIFO: remove first entry)
+function trimQueue(queue: string[]): void {
+ if (queue.length > queueLimit) queue.shift();
+}
+
+// Private: Flush and output the entire queue, emptying it afterward
+function flushQueue(queue: string[], label: string): void {
+ while (queue.length > 0) {
+ const message = queue.shift();
+ if (label === "Debug") console.log(`[${label}] ${message}`);
+ if (label === "Verbose") console.warn(`[${label}] ${message}`);
+ }
+}
--- /dev/null
+import * as dochandler from "./dochandler"
+import * as slayer from "./slayer"
+import * as main from "./dochandler/main"
+import * as logger from "./logger";
+
+// Define classes
+export class AutoCaptureData { }
+export class UIData { }
+export class DefaultData { }
+export class HiddenData { }
+export class SettingsData { }
+
+// Controls all the settings data
+export class SettingsDataController {
+ configLoaded: boolean = false;
+ data = {
+ version: 1,
+ searchAlgorithim: "default",
+ autoCapture: {
+ enabled: true,
+ counter: true,
+ search: false,
+ loopTimer: 500,
+ counterTimer: 500,
+ dialogTimer: 5000,
+ searchTimer: 10000,
+ },
+ ui: {
+ style: "default",
+ limited: false,
+ status: true,
+ counter: false,
+ counterTimer: 500,
+ historyRetentionCount: 10,
+ lookupRetentionCount: 0,
+ },
+ showHidden: {
+ creatures: false,
+ eliteCreatures: false,
+ dragonkinCreatures: false,
+ godWarsCreatures: false,
+ ghorrockCreatures: false,
+ heartGielinorCreatures: false,
+ monsterCreatures: false,
+ newVarrockCreatures: false,
+ shadowReefCreatures: false,
+ strongholdSecurityCreatures: false,
+ summonedCreatures: false,
+ templeTrekkingCreatures: false,
+ unchartedIslesCreatures: false
+ },
+ default: {
+ taskName0: "waterfiends",
+ taskName1: "black demons",
+ taskCount0: 777,
+ taskCount1: 666
+ },
+ };
+
+ async load() {
+ if (window.localStorage.getItem('version') != null) {
+ this.data.version = this.decodeVersion(window.localStorage.getItem('version'));
+ }
+ if (this.data.version <= 5 && !this.configLoaded) {
+ logger.log("(Versioning System Missing) Setting up versioning system.");
+ window.localStorage.removeItem('recent_task_0');
+ window.localStorage.removeItem('recent_task_count_0');
+ window.localStorage.removeItem('recent_task_1');
+ window.localStorage.removeItem('recent_task_count_1');
+ this.save();
+ }
+ const res = await fetch("./data/version.json").then(r => r.json());
+ if (this.data.version < this.decodeVersion(res['version'])) {
+ this.data.version = this.decodeVersion(res['version']);
+ }
+ controller.data.autoCapture.enabled = window.localStorage.getItem("auto-capture-enabled") === "true";
+ controller.data.autoCapture.counter = window.localStorage.getItem("auto-capture-counter") === "true";
+ controller.data.autoCapture.search = window.localStorage.getItem("auto-capture-search") === "true";
+ controller.data.autoCapture.loopTimer = parseInt(window.localStorage.getItem("auto-capture-timer-loop"));
+ controller.data.autoCapture.dialogTimer = parseInt(window.localStorage.getItem("auto-capture-timer-dialog"));
+ controller.data.autoCapture.counterTimer = parseInt(window.localStorage.getItem("auto-capture-timer-counter"));
+ controller.data.autoCapture.searchTimer = parseInt(window.localStorage.getItem("auto-capture-timer-search"));
+ controller.data.ui.limited = window.localStorage.getItem("ui-limited") === "true";
+ controller.data.ui.status = window.localStorage.getItem("ui-status") === "true";
+ controller.data.ui.counter = window.localStorage.getItem("ui-counter") === "true";
+ controller.data.ui.counterTimer = parseInt(window.localStorage.getItem("ui-counter-timer"));
+
+ // TODO Load history here then reset the UI and load them
+ main.reset.single();
+ main.reset.double();
+ main.reset.reaper();
+ main.reset.suggested();
+
+ if (this.data.default.taskName0 != null && this.data.default.taskName1 != null) {
+ await main.set.double(
+ { name: this.data.default.taskName0, count: this.data.default.taskCount0 },
+ { name: this.data.default.taskName1, count: this.data.default.taskCount1 }
+ );
+ } else if (this.data.default.taskName0 != null && this.data.default.taskName1 == null) {
+ await main.set.single({ name: this.data.default.taskName0, count: this.data.default.taskCount0 });
+ }
+ console.warn("Config Loaded");
+ this.configLoaded = true;
+ }
+
+ async save() {
+ if (this.data.version > 1) {
+ window.localStorage.setItem('version', this.encodeVersion(this.data.version));
+ }
+ window.localStorage.setItem("auto-capture-enabled", "" + controller.data.autoCapture.enabled);
+ window.localStorage.setItem("auto-capture-counter", "" + controller.data.autoCapture.counter);
+ window.localStorage.setItem("auto-capture-search", "" + controller.data.autoCapture.search);
+ window.localStorage.setItem("auto-capture-timer-loop", "" + controller.data.autoCapture.loopTimer);
+ window.localStorage.setItem("auto-capture-timer-dialog", "" + controller.data.autoCapture.dialogTimer);
+ window.localStorage.setItem("auto-capture-timer-counter", "" + controller.data.autoCapture.counterTimer);
+ window.localStorage.setItem("auto-capture-timer-search", "" + controller.data.autoCapture.searchTimer);
+ window.localStorage.setItem("ui-limited", "" + controller.data.ui.limited);
+ window.localStorage.setItem("ui-status", "" + controller.data.ui.status);
+ window.localStorage.setItem("ui-counter", "" + controller.data.ui.counter);
+ window.localStorage.setItem("ui-counter-timer", "" + controller.data.ui.counterTimer);
+ console.warn("Config Saved");
+ }
+
+ decodeVersion(version: string) {
+ const versionSplit = version.split(".");
+ const versionUpper = versionSplit.length > 2 ? parseInt(versionSplit[0]) : 0;
+ const versionLower = parseInt(versionSplit.length > 2 ? versionSplit[1] : versionSplit[0]);
+ const versionPatch = parseInt(versionSplit.length > 2 ? versionSplit[2] : versionSplit[1]);
+ return ((versionUpper * 256 * 256) + (versionLower * 256) + versionPatch);
+ }
+
+ encodeVersion(version: number) {
+ const versionUpper = version > 256 * 256 ? version / (256 * 256) : 0;
+ const versionLower = version > 256 ? (version - (versionUpper * 256 * 256)) / 256 : 0;
+ const versionPatch = (version - (versionUpper * 256 * 256) - (versionLower * 256));
+ return versionUpper + "." + versionLower + "." + versionPatch;
+ }
+}
+
+export const controller = new SettingsDataController();
+
+// Change history functions
+export module change {
+ export let history: any[] = [];
+ export let index: number = 0;
+
+ export function addHistory(history: any) {
+ if (!history || !history.tasks || !change.history[change.index]) return;
+ if ((history.type === "single" || history.type === "reaper") &&
+ history.tasks[0].name === change.history[change.index].tasks[0].name) return;
+ if (history.type === "double" &&
+ history.tasks[0].name === change.history[change.index].tasks[0].name &&
+ history.tasks[1].name === change.history[change.index].tasks[1].name) return;
+ if (history.type === "suggestion" && history.type === change.history[change.index].type) return;
+
+ if (change.index + 1 != change.history.length) {
+ change.history = change.history.slice(0, change.index + 1);
+ }
+ change.history.push(history);
+ change.index = change.history.length - 1;
+ console.warn("Save History");
+ controller.save();
+ }
+
+ export function refreshCurrent() {
+ if (change.index < 0 || change.index >= change.history.length) return;
+ main.reset.single();
+ main.reset.double();
+ main.reset.reaper();
+ main.reset.suggested();
+
+ const previousChange = change.history[change.index];
+ if (previousChange.type === 'double') main.set.double(previousChange.tasks[0], previousChange.tasks[1], true);
+ if (previousChange.type === 'single') main.set.single(previousChange.tasks[0], true);
+ if (previousChange.type === 'reaper') main.set.reaper(previousChange.tasks[0], true);
+ if (previousChange.type === 'suggestion') main.set.suggested(true);
+
+ console.warn("Save History");
+ controller.save();
+ }
+
+ export function goPreviousHistory() {
+ if (change.index - 1 < 0) return;
+ const previousChange = change.history[--change.index];
+ if (previousChange.type === 'double') main.set.double(previousChange.tasks[0], previousChange.tasks[1], true);
+ if (previousChange.type === 'single') main.set.single(previousChange.tasks[0], true);
+ if (previousChange.type === 'reaper') main.set.reaper(previousChange.tasks[0], true);
+ if (previousChange.type === 'suggestion') main.set.suggested(true);
+
+ console.warn("Save History");
+ controller.save();
+ }
+
+ export function goNextHistory() {
+ if (change.index + 1 >= change.history.length) return;
+ const nextChange = change.history[++change.index];
+ if (nextChange.type === 'double') main.set.double(nextChange.tasks[0], nextChange.tasks[1], true);
+ if (nextChange.type === 'single') main.set.single(nextChange.tasks[0], true);
+ if (nextChange.type === 'reaper') main.set.reaper(nextChange.tasks[0], true);
+ if (nextChange.type === 'suggestion') main.set.suggested(true);
+
+ console.warn("Save History");
+ controller.save();
+ }
+}
+
+export module search {
+ let temp: string | null = null;
+ let history: string[] = [];
+ let index: number = 0;
+
+ export function addHistory(value: string) {
+ if (!value) return;
+ history.push(value);
+ index = history.length;
+ temp = null;
+ console.warn("Save History");
+ controller.save();
+ }
+
+ export function getPreviousHistory(): string | null {
+ tempValue();
+ console.warn("Save History");
+ controller.save();
+ if (index - 1 < 0) return null;
+ if (--index === history.length) return temp;
+ return history[index];
+ }
+
+ export function getNextHistory(): string | null {
+ tempValue();
+ console.warn("Save History");
+ controller.save();
+ if (index + 1 > history.length + (temp === "" ? 0 : 1)) return null;
+ if (++index === history.length + (temp === "" ? 0 : 1)) return "";
+ if (temp !== "" && index === history.length) return temp;
+ return history[index];
+ }
+
+ function tempValue() {
+ const currentValue = (<HTMLInputElement>dochandler.main.get.elid("search-info")).value;
+ if (temp === null) temp = currentValue;
+ if (index === history.length && temp !== currentValue) temp = currentValue;
+ if (index === history.length + 1 && currentValue !== "") {
+ temp = currentValue;
+ --index;
+ }
+ }
+}
+
+export async function executeDevTools(value: string) {
+ if (value === "devTools") {
+ logger.log(" ~~~ Dev Tools ~ Information Opened ~~~ ");
+ alt1.openBrowser("https://runeapps.org/forums/viewtopic.php?id=101");
+ return;
+ }
+
+ logger.log(" ~~~ Dev Tools ~ Started ~~~ ");
+ try {
+ if (value === "size") {
+ logger.log(`Current Size: ${document.body.clientWidth}, ${document.body.clientHeight}`);
+ } else if (value === "debug") {
+ logger.setDebug(true);
+ } else if (value === "verbose") {
+ logger.setVerbose(true);
+ } else if (value === "counterReader") {
+ const counterData = await slayer.counterReader.read();
+ if (counterData) {
+ logger.log(`The Counter UI Collapsed [${counterData.collapsed}]`);
+ logger.log(`The Counter UI Old School [${counterData.OS}]`);
+ logger.log(`The Counter UI Reaper [${counterData.reaper}]`);
+ logger.log(`The Counter UI Count [${counterData.count}]`);
+ logger.log(`The Counter UI Task [${counterData.task}]`);
+ } else {
+ logger.log(" ~~~ Dev Tools ~ Error: Cannot read counter data! ~~~ ");
+ }
+ } else if (value === "slayerReader") {
+ const slayerData = await slayer.slayerReader.read();
+ if (slayerData) {
+ logger.log(`The Slayer Reader Select Your Own [${slayerData.selectYourOwn}]`);
+ logger.log(`The Slayer Reader Reaper [${slayerData.reaper}]`);
+ logger.log(`The Slayer Reader Ticket [${slayerData.ticket}]`);
+ for (const a in slayerData.count) {
+ logger.log(`The Slayer Reader Count{${a}} [${slayerData.count[a]}]`);
+ }
+ for (const a in slayerData.task) {
+ logger.log(`The Slayer Reader Task{${a}} [${slayerData.task[a]}]`);
+ }
+ } else {
+ logger.log(" ~~~ Dev Tools ~ Error: Cannot read slayer data! ~~~ ");
+ }
+ } else if (value === "dialogReader") {
+ logger.log("Searching for Dialog...");
+ const pos = slayer.slayerReader.dialogReader.find();
+ if (!pos) {
+ logger.log(" ~~~ Dev Tools ~ Error: Cannot find the Dialog! ~~~ ");
+ return;
+ }
+ const box = slayer.slayerReader.dialogReader.read();
+ if (!box) {
+ logger.log(" ~~~ Dev Tools ~ Error: Cannot read the Dialog! ~~~ ");
+ return;
+ }
+ if (box.title) logger.log(`The Dialog Box Title [${box.title}]`);
+ if (box.text) logger.log(`The Dialog Box Text [${box.text}]`);
+ if (box.opts) {
+ logger.log(`The Dialog Box Options (${box.opts.length}) [${box.opts}]`);
+ for (const [index, option] of box.opts.entries()) {
+ logger.log(`\t${index + 1}. ${option.text}`);
+ }
+ }
+ }
+ } catch (e) {
+ console.error("~~~ Dev Tools ~ Error: Issue Capturing Screen! ~~~ ");
+ }
+ logger.log(" ~~~ Dev Tools ~ Finished ~~~ ");
+}
--- /dev/null
+import * as a1lib from "alt1";
+
+import { SearchAlgorithm } from './SearchAlgorithm';
+import { SlayerDialogReader } from './SlayerDialogReader';
+import { UICounterReader } from './UICounterReader';
+import * as settings from './settings';
+import * as docHandler from './dochandler';
+import * as logger from "./logger";
+
+// Setup the readers and search algo
+export let searchAlgo = new SearchAlgorithm();
+export let slayerReader = new SlayerDialogReader();
+export let counterReader = new UICounterReader();
+export let searchResult = false;
+
+// Get a timer and setup vars
+const timer = (ms: number) => new Promise(res => setTimeout(res, ms));
+let loopRunning = false;
+
+// Check if we can capture the screen
+export function canCaptureRunescape(): boolean {
+ return window.alt1 && alt1.rsLinked && alt1.permissionPixel;
+}
+
+// Capture the screen
+export function captureRunescape(): any {
+ if (!canCaptureRunescape()) return null;
+ try {
+ return a1lib.captureHoldFullRs();
+ } catch (ex) {
+ if (ex.message === "capturehold failed")
+ console.warn("Capturing screen failed! Is runescape open?");
+ }
+ return null;
+}
+
+// Find a task on the current screen
+export async function findTask(buffer?: any): Promise<void> {
+ if (!settings.controller.data.autoCapture.enabled || loopRunning || searchResult) return;
+ if (!buffer) buffer = captureRunescape();
+ if (!buffer) return;
+ loopRunning = true;
+ docHandler.animate.loadingStop();
+
+ let slayerData, counterData;
+ slayerData = await slayerReader.read(buffer);
+
+ if (slayerData && slayerData[0]) {
+ docHandler.animate.loading();
+ if (slayerData.selectYourOwn) {
+ docHandler.main.set.suggested();
+ docHandler.animate.loadingStop();
+ await timer(settings.controller.data.autoCapture.dialogTimer);
+ loopRunning = false;
+ return;
+ }
+ if (slayerData.reaper && !slayerData.ticket) {
+ await docHandler.main.set.reaper({ name: slayerData[0].task, count: slayerData[0].count });
+ } else if (slayerData.ticket) {
+ await docHandler.main.set.double(
+ { name: slayerData[0].task, count: slayerData[0].count },
+ { name: slayerData[1].task, count: slayerData[1].count }
+ );
+ } else {
+ await docHandler.main.set.single({ name: slayerData[0].task, count: slayerData[0].count });
+ }
+ docHandler.animate.loadingStop();
+ await timer(settings.controller.data.autoCapture.dialogTimer);
+ loopRunning = false;
+ } else if (settings.controller.data.autoCapture.counter) {
+ counterData = await counterReader.read(buffer);
+ if (counterData) {
+ docHandler.animate.loading();
+ if (counterData.reaper && (docHandler.main.reaperLoaded || counterData.task != null)) {
+ await docHandler.main.set.reaper({ name: counterData.task, count: counterData.count });
+ } else if (!counterData.reaper && (docHandler.main.singleLoaded || counterData.task != null)) {
+ await docHandler.main.set.single({ name: counterData.task, count: counterData.count });
+ }
+ docHandler.animate.loadingStop();
+ await timer(settings.controller.data.autoCapture.counterTimer);
+ loopRunning = false;
+ } else {
+ docHandler.animate.loadingStop();
+ loopRunning = false;
+ }
+ } else {
+ docHandler.animate.loadingStop();
+ loopRunning = false;
+ }
+}
+
+// Search for tasks
+export async function searchTasks(value?: string): Promise<void> {
+ if (!value) value = await docHandler.main.get.searchInput();
+ docHandler.main.reset.searchBox();
+ settings.search.addHistory(value);
+
+ if (value.length == 0 && (searchResult || !settings.controller.data.autoCapture.enabled)) {
+ searchResult = false;
+ docHandler.main.toggle.searchText();
+ await findTask();
+ return;
+ } else if (value.startsWith("devTools")) {
+ const tool = value.includes(" ") ? value.substring(value.indexOf(" ") + 1) : value;
+ settings.executeDevTools(tool);
+ return;
+ } else if (value.toLowerCase().includes("suggest")) {
+ docHandler.main.set.suggested();
+ return;
+ }
+
+ searchResult = true;
+ docHandler.main.toggle.searchText();
+ const lookup = value.includes("|") ?
+ [value.substring(0, value.indexOf("|")), value.substring(value.indexOf("|") + 1)] :
+ [value];
+ const tasks = [];
+
+ for (const term of lookup) {
+ const data = await searchAlgo.lookup(term, lookup.length > 1);
+ if (data) {
+ logger.log("Search for (Reaper/Slayer Assignment, Alias, or Creature): " + data.task);
+ tasks.push({ name: data.task, reaper: data.reaper });
+ }
+ }
+
+ if (tasks.length > 1) {
+ await docHandler.main.set.double({ name: tasks[0].name, count: 1 }, { name: tasks[1].name, count: 1 });
+ } else if (tasks.length == 1) {
+ if (tasks[0].reaper) {
+ await docHandler.main.set.reaper({ name: tasks[0].name, count: 1 });
+ } else {
+ await docHandler.main.set.single({ name: tasks[0].name, count: 1 });
+ }
+ }
+
+ docHandler.animate.loadingStop();
+ if (!settings.controller.data.autoCapture.search) {
+ await timer(settings.controller.data.autoCapture.searchTimer);
+ searchResult = false;
+ docHandler.main.toggle.searchText();
+ }
+}
--- /dev/null
+<html>
+
+<head>
+ <title>About Slayer Assistant</title>
+ <link rel="icon" href="../images/icon.png" type="image/png">
+ <link rel="stylesheet" href="../styles/default/about.css">
+</head>
+
+<body class="nis">
+
+ <div class="nisbutton" id="changelog-button" onclick="openCredits();">Open Credits</div>
+ <div class="nisbutton" id="changelog-button" onclick="openChangelog();">Open Changelog</div>
+ <h2 class="nistext">Need Help or Having Trouble?</br>Welcome to the Correct Place!</h2>
+
+ <h3 class="nistext">Current Slayer Assistant Look N Feel</h3>
+ <p class="nistext">This Look N Feel has been designed by the community. It has slowly but surely updated to
+ accomadate new information and features.</p>
+ <img src="../images/ui/default/about/Slayer_assistant_interface.png" alt="Slayer Assistant Interface Image"></img>
+
+ <h3 class="nistext">What activates the Slayer Assistant?</h3>
+ <p class="nistext">There are a few different instances that will cause the Slayer Assistant to update it's
+ information. The first is if you go get a new task from a slayer master or death for reaper tasks. The next is
+ while you are on a task, it will keep track of your kills vis the slayer/reaper counter GUI.</p>
+ <p class="nistext">Once it reads an interface similar to the examples below it will save this assignment information
+ and automatically do a lookup for you. You can also click on Capture to make it try and lookup a task on the
+ screen at the very moment.</p>
+ <h4 class="nistext">The following are examples of the interfaces it can read for slayer tasks.</h4>
+ <div class="example">
+ <img src="../images/ui/default/about/Slayer_task_interface.png" alt="Slayer Assignment Interface Image"></img>
+ <p class="info nistext">Example Slayer Assignment Interface</p>
+ </div>
+ <div class="example">
+ <img src="../images/ui/default/about/VIP_ticket_interface.png" alt="VIP Ticket Interface Image"></img>
+ <p class="info nistext">Example Slayer Ticket Assignment Interface</p>
+ </div>
+ <div class="example">
+ <img class="expanded" src="../images/ui/default/about/Slayer_counter_expanded.png"
+ alt="Slayer Counter Expanded Image"></img>
+ <img class="collapsed" src="../images/ui/default/about/Slayer_counter.png"
+ alt="Slayer Counter Collapsed Image"></img>
+ <p class="info nistext">Example Slayer Counter Interface</p>
+ <p class="info nistext">This interface will cause it to lookup the exact assignment that is given (if expanded)
+ and display relevant data; otherwise, it will just attempt to update the count of the current task it has
+ loaded.</p>
+ </div>
+ <h4 class="nistext">The following are examples of the interfaces it can read for reaper tasks.</h4>
+ <div class="example">
+ <img src="../images/ui/default/about/Reaper_task_interface.png" alt="Reaper Assignment Interface Image"></img>
+ <p class="info nistext">Example Reaper Assignment Interface</p>
+ <p class="info nistext">This interface will cause it to lookup the exact assignment that is given and display
+ relevant data.</p>
+ </div>
+ <div class="example">
+ <img class="expanded" src="../images/ui/default/about/Reaper_counter_expanded.png"
+ alt="Reaper Counter Expanded Image"></img>
+ <img class="collapsed" src="../images/ui/default/about/Reaper_counter.png"
+ alt="Reaper Counter Collapsed Image"></img>
+ <p class="info nistext">Example Reaper Counter Interface</p>
+ <p class="info nistext">This interface will cause it to lookup the exact assignment that is given (if expanded)
+ and display relevant data; otherwise, it will just attempt to update the count of the current task it has
+ loaded.</p>
+ </div>
+ <h4 class="nistext">The following are examples of the interfaces it can read for select your own assignment tasks.
+ </h4>
+ <div class="example">
+ <img src="../images/ui/default/about/Select_your_own_task.png"
+ alt="Select Your Own Assignment Interface Image"></img>
+ <p class="info nistext">Example Select Your Own Assignment Interface</p>
+ <p class="info nistext">This interface will cause it to display a list of suggested tasks and why they are
+ suggested for the Select Your Own Assignment.</p>
+ </div>
+
+
+ <h3 class="nistext">Did you know?</h3>
+ <p class="info nistext">There is now a search history you can use with the up and down arrow key? It resets
+ everytime you close the app.</p>
+ <p class="info nistext">If you hover over the assignment wiki, creature wiki, and See More... on the app it shows
+ more data. Give it a try</p>
+ <img src="../images/ui/default/about/Right_click_interface.png" alt="Right Click Image"></img>
+ <p class="info nistext">Opens up Slayer Assistant</p>
+
+ <div id="copyright">Copyright ©2021 Unlishema Dragonsworn</div>
+
+ <script type="text/javascript">
+ function openChangelog() {
+ window.open("./changelog.html", null, "width=480,height=550");
+ }
+
+ function openCredits() {
+ window.open("./credits.html", null, "width=480,height=550");
+ }
+ </script>
+
+</body>
+
+</html>
\ No newline at end of file
--- /dev/null
+<html>
+
+<head>
+ <title>Changelog</title>
+ <link rel="icon" href="../images/icon.png" type="image/png">
+ <link rel="stylesheet" href="../styles/default/changelog.css">
+</head>
+
+<body class="nis">
+ <div class="nisbutton" id="changelog-button" onclick="history.back();">Go Back</div>
+
+ <h2>06/22/2024 - Bug Fixes and Future Updates</h2>
+ <p class="nistext">
+ <b>Bug Fixes:</b> Quite a bit of minor (and a couple major) bugs that poped up during the newest development of
+ the app has been fixed in this release. There was quick pushes for the major bugs to get rid of them as fast as
+ possible.
+ </p>
+ <p class="nistext">
+ <b>Basic Settings Added:</b> Basic settings have been added, more will come in the future. The current settings
+ will allow at least simple control over the app so far. A few to more coming soon is search and lookup history.
+ </p>
+ <p class="nistext">
+ <b>Updates to Allow Better Future Updates:</b> Quite a bit of the backend of the app has been re-wrote to allow
+ better future updates. A couple examples are adding settings to allow better usability of the app, making other
+ looks for the app to allow a more personal feel for the app, and adding comments to the code along with
+ restructuring it to be easier to navigate and understand. All of these changes were to allow the next future
+ updates to be easier to implement and the settings are working but not all of them have been added where you can
+ change them. This should come in the next update.
+ </p>
+ <p class="nistext">
+ <b>A few Tweaks:</b> There is also a few tweaks to different parts of the app that happened as well due to these
+ changes. The About Page width has changed to make it easier to read. The LookNFeel of the app has been slightly
+ altered during the update due to making it more flexible for the future style update. The LookNFeel also has a
+ limited UI option now that is changable in the settings.
+ </p>
+
+ <h2>06/15/2024 - Added Counter UI Support</h2>
+ <p class="nistext">
+ <b>Slayer and Reaper Counter UI:</b> Full support added. When collapsed, it updates only the current assignment
+ count; when expanded, it loads and updates the assignment unless it's already loaded.
+ </p>
+ <p class="nistext">
+ <b>Task Comparison:</b> Compare Slayer tasks by separating them with a "|". Note: Reaper assignments cannot be
+ compared.
+ </p>
+ <p class="nistext">
+ <b>Suggested Slayer Assignments:</b> For level 120, "Select Your Own Assignment" dialog now includes suggested
+ tasks. Search "suggest" in the search bar to view suggestions.
+ </p>
+ <p class="nistext">
+ <b>Navigation Enhancements:</b> Navigate forward and backward through lookups, making it easy to revisit
+ previous tasks and suggested assignments.
+ </p>
+ <p class="nistext">
+ <b>UI Adjustments:</b> Improved look and feel for all pages when resized. Additional tweaks are planned for
+ perfection.
+ </p>
+ <p class="nistext">
+ <b>Project Adjustments:</b> Updates now designed to avoid disruptions, ensuring smoother future Alt1 updates.
+ </p>
+ <p class="nistext">
+ <b>Code Refactoring:</b> Improved readability and data separation into Readers for better portability. Skillbert
+ can now extract Readers for the main Alt1 source.
+ </p>
+ <p class="nistext">
+ <b>New DevTools:</b> Added debugging functions for testing and resolving issues.
+ </p>
+
+
+ <h2>06/11/2024 - Major Recode
+ </h2>
+ <p class="nistext">Today is a special day because a massive recode has came for Slayer Assistant. This recode
+ started on 06/02/2024. Most of the changes were due to an update to the base alt1. You may not see a lot of
+ changes but there is a lot, so lets go over them all.</p>
+ <p class="nistext">The recode has allowed me to have all the code neater so updates should be much easier. Also
+ new features won't be as hard to add in because the code before was a huge mess</p>
+ <p class="nistext">Features coming soon</p>
+ <ul class="nistext">
+ <li>Update the forum post</li>
+ <li>Add in some basic settings</li>
+ <li>120 Slayer Assignment suggestions (Needs Page Made)</li>
+ <li>Ability to lookup task via Slayer Counter RS3</li>
+ <li>Ability to lookup task via Reaper Counter RS3</li>
+ <li>Add support for Ushabti</li>
+ </ul>
+ <p class="nistext">Features added</p>
+ <ul class="nistext">
+ <li>Adjusted Search Algorithm to work better</li>
+ <li>Reaper Task support has been added (Needs more Work)</li>
+ <li>Added Necromancy Support to databaase and app</li>
+ <li>Ability to Ctrl+V paste an image for lookup</li>
+ <li>Ability to Drag & Drop an image for lookup</li>
+ <li>Added a small copyright at the bottom of all pages</li>
+ <li>Search bar now has history using up and down arrows</li>
+ <ul>
+ <li>It also temp saves the current search too</li>
+ </ul>
+ <li>Optimized the updating of current task</li>
+ <ul>
+ <li>This way it won't flicker on updates</li>
+ </ul>
+ </ul>
+ <p class="nistext">Features updated</p>
+ <ul class="nistext">
+ <li>Massive fixes to the database</li>
+ <li>Updated the database for new content</li>
+ <li>Updated the about page with new info</li>
+ <li>Capture Loop has been optimized</li>
+ <li>Capture Button has now been added</li>
+ <li>Search Button is also the Capture Button</li>
+ <ul>
+ <li>It changes when you type in search</li>
+ </ul>
+ </ul>
+ <p class="nistext">Features kept from previous version</p>
+ <ul class="nistext">
+ <li>Help/About, Settings, & Donate Buttons</li>
+ <li>Search Bar and Capture/Search Button</li>
+ <li>Ability to show single Assignments</li>
+ <li>Ability to show 2(vs) Assignments</li>
+ <li>Important Info Shown at All Times</li>
+ <ul>
+ <li>Wiki, Kills, & Assignment</li>
+ <ul>
+ <li>Total Exp for Assignment</li>
+ <li>Hover Assignment Wiki</li>
+ <ul>
+ <li>Slayer Master Info</li>
+ </ul>
+ </ul>
+ <li>Locations for Assignment</li>
+ <li>Equipment Suggested for Assignment</li>
+ <li>Wiki, Creatures, & Creature Variants</li>
+ <ul>
+ <li>Slayer Level & Exp</li>
+ <li>Weakness & Susceptible</li>
+ <li>Hover Creature Wiki</li>
+ <ul>
+ <li>Image</li>
+ <li>Stats</li>
+ <ul>
+ <li>Combat Level</li>
+ <li>Lifepoints</li>
+ <li>Defence</li>
+ </ul>
+ <li>Exp</li>
+ <ul>
+ <li>Combat</li>
+ <li>Lifepoints</li>
+ </ul>
+ <li>Max Hit</li>
+ <ul>
+ <li>Melee</li>
+ <li>Range</li>
+ <li>Magic</li>
+ <li>Spec</li>
+ </ul>
+ </ul>
+ </ul>
+ </ul>
+ </ul>
+
+ <h2>04/27/2024 - Minor Bug Fixes</h2>
+ <p class="nistext">Fixed a bug that caused only the first assignment to get loaded and not the second one.</p>
+ <p class="nistext">Fixed a bug that caused the wiki links to not go to the currently loaded assignment.</p>
+
+ <h2>02/13/2022 - Minor but Needed</h2>
+ <p class="nistext">Finally have a little time to work on updating the Forum Post as well as the credits. Also going
+ to update the about section soon.</p>
+
+ <h2>12/24/2021 - Merry Christmas</h2>
+ <p class="nistext">Finished updating all the old changelog information, some may be missing but the most of it is
+ there for now. Need to backup discord info during development so I can check later.</p>
+ <p class="nistext">Adding about info section soon...</p>
+ <p class="nistext">Current App Features to Date</p>
+ <ul class="nistext">
+ <li>Help/About, Settings, & Donate Buttons</li>
+ <li>Search Bar and Button</li>
+ <li>Ability to show 1 or 2(vs) Assignments</li>
+ <li>Important Info Shown at All Times</li>
+ <ul>
+ <li>Wiki, Kills, & Assignment</li>
+ <ul>
+ <li>Total Exp for Assignment</li>
+ <li>Hover Assignment Wiki</li>
+ <ul>
+ <li>Slayer Master Info</li>
+ </ul>
+ </ul>
+ <li>Locations for Assignment</li>
+ <li>Equipment Suggested for Assignment</li>
+ <li>Wiki, Creatures, & Creature Varants</li>
+ <ul>
+ <li>Slayer Level & Exp</li>
+ <li>Weakness & Susceptible</li>
+ <li>Hover Creature Wiki</li>
+ <ul>
+ <li>Image</li>
+ <li>Stats</li>
+ <ul>
+ <li>Combat Level</li>
+ <li>Lifepoints</li>
+ <li>Defence</li>
+ </ul>
+ <li>Exp</li>
+ <ul>
+ <li>Combat</li>
+ <li>Lifepoints</li>
+ </ul>
+ <li>Max Hit</li>
+ <ul>
+ <li>Melee</li>
+ <li>Range</li>
+ <li>Magic</li>
+ <li>Spec</li>
+ </ul>
+ </ul>
+ </ul>
+ </ul>
+ </ul>
+
+ <h2>12/09/2021 - Beta Updated</h2>
+ <p class="nistext">Massively adjusted the look and feel of the app. Moved a lot of data into a "Wiki Preview Screen"
+ that shows up when hovering over the wiki button.</p>
+ <p class="nistext">Adjusted and added a lot of the user experience features.</p>
+ <ul class="nistext">
+ <li>Hover Assigment Wiki for Slayer Master Info</li>
+ <li>Hover Creature Wiki for Creature Info</li>
+ <li>Adjusted/Added hovering effects timer</li>
+ <li>Added donate button just to have it for now</li>
+ </ul>
+
+ <h2>11/29/2021 - Beta Updated</h2>
+ <p class="nistext">Added 2 items that was missed before even though they aren't complete yet.</p>
+ <ul class="nistext">
+ <li>Added About Info Button</li>
+ <li>Added Settings Button</li>
+ </ul>
+
+ <h2>11/19/2021 - Beta Released</h2>
+ <p class="nistext">Released the Beta to the public as it was working well enough for the public to use without worry
+ about it crashing.</p>
+ <ul class="nistext">
+ <li>Ability to search for an assignment</li>
+ <li>Compare 2 Assignments side by side</li>
+ <li>Most Information for Assignments</li>
+ <ul>
+ <li>Kills Required and Total Exp</li>
+ <li>Locations for assignments</li>
+ <li>Equipment required for assignments</li>
+ <li>Slayer Master info per assignment</li>
+ <li>Cluster Task Support (Creature List and Variants)</li>
+ <li>Wiki links for each assignment and creature</li>
+ <li>Creature information</li>
+ <ul>
+ <li>Name, Image, Location, and Examine Info</li>
+ <li>Level, Slayer Lvl, LP, Defence</li>
+ <li>Max Hits for Melee, Range, Magic, and Spec</li>
+ <li>Weakness & Susceptible</li>
+ <li>Exp for Combat, Lifepoints, and Slayer</li>
+ </ul>
+ </ul>
+ </ul>
+
+ <h2>11/09/2021 - Beta Getting Close</h2>
+ <p class="nistext">Fixed almost all the major bugs and most of the minor bugs, next is to finish adjusting the look
+ of the new app.</p>
+ <p class="nistext">With a massive amount of help from <a onclick="openDiscordUser('Emma Kitty#6969');">Emma
+ Kitty</a>, I was finally able to add the first bit of
+ user experience features to the app making the list of creatures smaller and easiler to navigate. Also default
+ selected creatures were added. These features still need refined more so they do everything they are supposed
+ to.</p>
+
+ <h2>08/12/2021 - Changelog Added</h2>
+ <p class="nistext">Added the changelog and about webpages for the app; however, still haven't added them to the app
+ intself. Still need to work on settings and updating the look and feel even more to work out the rest of the
+ bugs.</p>
+
+ <h2>08/05/2021 - New Alpha Release</h2>
+ <p class="nistext">Released the alpha to the development channel on Discord with a few bugs and a lot of information
+ missing to see how it worked for others before releasing to the public.</p>
+ <p class="nistext">Features partially or fully added.</p>
+ <ul class="nistext">
+ <li>Ability to search for an assignment</li>
+ <li>Compare 2 Assignments side by side</li>
+ <li>Most Information for Assignments</li>
+ <ul>
+ <li>Kills Required and Total Exp</li>
+ <li>Locations for assignments</li>
+ <li>Equipment required for assignments</li>
+ <li>Slayer Master info per assignment</li>
+ <li>Cluster Task Support (Creature List and Variants)</li>
+ <li>Wiki links for each assignment and creature</li>
+ <li>Creature information</li>
+ <ul>
+ <li>Name, Image, Location, and Examine Info</li>
+ <li>Level, Slayer Lvl, LP, Defence</li>
+ <li>Max Hits for Melee, Range, Magic, and Spec</li>
+ <li>Weakness & Susceptible</li>
+ <li>Exp for Combat, Lifepoints, and Slayer</li>
+ </ul>
+ </ul>
+ </ul>
+
+ <h2>07/09/2021 - Major Bug Found</h2>
+ <p class="nistext">Soon after doing the redesign of the Database Updater, a major bug came up that almost crashed
+ the computer many times. Come to find out this was a bug in the compiler I was using and had nothing to do with
+ the way I created the app at all.</p>
+
+ <h2>06/11/2021 - Redesign Revealed</h2>
+ <p class="nistext">Revealed the redesigned look and feel of the Slayer Assistant to the Development channel on
+ RuneApps Discord. Public didn't have access to the app but got to see it's progress.</p>
+ <p class="nistext">Features partially or fully added.</p>
+ <ul class="nistext">
+ <li>Ability to search for an assignment</li>
+ <li>Compare 2 Assignments side by side</li>
+ <li>Most Information for Assignments</li>
+ <ul>
+ <li>Kills Required and Total Exp</li>
+ <li>Locations for assignments</li>
+ <li>Equipment required for assignments</li>
+ <li>Slayer Master info per assignment</li>
+ <li>Cluster Task Support (Creature List and Variants)</li>
+ <li>Wiki links for each assignment and creature</li>
+ <li>Creature information</li>
+ <ul>
+ <li>Name, Image, Location, and Examine Info</li>
+ <li>Level, Slayer Lvl, LP, Defence</li>
+ <li>Max Hits for Melee, Range, Magic, and Spec</li>
+ <li>Weakness & Susceptible</li>
+ <li>Exp for Combat, Lifepoints, and Slayer</li>
+ </ul>
+ </ul>
+ </ul>
+
+ <h2>05/20/2021 - Redesign Started</h2>
+ <p class="nistext">Due to a major computer crash that required a re-install of the OS, all source for the database
+ updater was lost. This lead to a complete redesign of the app for many reasons, but the biggest was due to the
+ system not supporting cluster tasks.</p>
+ <p class="nistext">After a lot of discussion with <a onclick="openDiscordUser('Zykrow#8009');">Zykrow</a> on the
+ matter, I started working on the new database
+ updater and redesigning the Alt1 app.</p>
+ <p class="nistext">Features planned for the redesign.</p>
+ <ul class="nistext">
+ <li>Ability to search for an assignment</li>
+ <li>Settings for app</li>
+ <li>About info for app</li>
+ <li>Refresh/reload button to allow manual reading of task incase the loop breaks</li>
+ <li>Compare 2 Assignments side by side</li>
+ <li>Most Information for Assignments</li>
+ <ul>
+ <li>Kills Required and Total Exp</li>
+ <li>Locations for assignments</li>
+ <li>Equipment required for assignments</li>
+ <li>Slayer Master info per assignment</li>
+ <li>Cluster Task Support (Creature List and Variants)</li>
+ <li>Wiki links for each assignment and creature</li>
+ <li>Creature information</li>
+ <ul>
+ <li>Name, Image, Location, and Examine Info</li>
+ <li>Level, Slayer Lvl, LP, Defence</li>
+ <li>Max Hits for Melee, Range, Magic, and Spec</li>
+ <li>Weakness & Susceptible</li>
+ <li>Exp for Combat, Lifepoints, and Slayer</li>
+ </ul>
+ </ul>
+ <li>Donate to contributers button</li>
+ </ul>
+
+ <h2>05/14/2021 - First Release</h2>
+ <p class="nistext">With a lot of assistance from <a onclick="openDiscordUser('Skillbert#9582');">Skillbert</a> on
+ discord, I was finally able to create my first
+ basic app on Alt1.</p>
+ <p class="nistext">Not long after the first app was working, I was able to turn it into the Slayer Assistant app.
+ This was not without help from the rest of the discord comunity though. <a
+ onclick="openDiscordUser('crazye97#2027');">crazye97</a> assisted a lot to get the first version created. <a
+ onclick="openDiscordUser('troy236#2361');">troy236</a> gave me the answer to my last issue with
+ the app allowing me to get it released.</p>
+ <p class="nistext">Here is a list of all features supported in this version.</p>
+ <ul class="nistext">
+ <li>A button to read the task on screen incase the app had a glitch and wasn't working correctly</li>
+ <li>Compare 2 Assignments side by side</li>
+ <li>Basic Information for Assignments</li>
+ <ul>
+ <li>Kills Required and Total Exp</li>
+ <li>Creature information</li>
+ <ul>
+ <li>Name, Image, and Examine Info</li>
+ <li>Level, Slayer Lvl, LP, Defence</li>
+ <li>Max Hits for Melee, Range, Magic, and Spec</li>
+ <li>Weakness (as Displayed on wiki)</li>
+ <li>Exp for Combat, Lifepoints, and Slayer</li>
+ </ul>
+ <li>Wiki links for each creature</li>
+ </ul>
+ </ul>
+
+ <h2>05/12/2021 - Project Started</h2>
+ <p class="nistext">Here is a little history on how this app came to be.</p>
+ <p class="nistext">After a long conversation with <a onclick="openDiscordUser('Zykrow#8009');">Zykrow</a> on the
+ viability of a new slayer app for Alt1, I
+ started doing some research on creating Alt1 apps and come to find out it is not hard but not easy either;
+ however, redesigning the wheel is bad practice so lets see if anyone else has already created an app like this.
+ </p>
+ <p class="nistext">To my suprise there was one; however, it was outdated and no source code was known to exist for
+ it. Oh well. Time to start designing it then.</p>
+ <p class="nistext">The original Slayer Decision App was used as a base for the look and feel for the new app I
+ started creating. The original app can be found <a
+ onclick="window.open('https://runeapps.org/forums/viewtopic.php?id=570');">here</a>.</p>
+ <p class="nistext">There was a lot discussed on what could be added to the app; however, quite a bit of it was for
+ way later on once the app was made and working. So here is a list of what was planned for the first release.</p>
+ <ul class="nistext">
+ <li>Ability to search for an assignment</li>
+ <li>Compare 2 Assignments side by side</li>
+ <li>Basic Information for Assignments</li>
+ <ul>
+ <li>Kills Required and Total Exp</li>
+ <li>Creature information</li>
+ <ul>
+ <li>Name, Image, Location, and Examine Info</li>
+ <li>Level, Slayer Lvl, LP, Defence</li>
+ <li>Max Hits for Melee, Range, Magic, and Spec</li>
+ <li>Weakness (aka. Melee, Range, Magic)</li>
+ <li>Exp for Combat, Lifepoints, and Slayer</li>
+ </ul>
+ </ul>
+ </ul>
+
+ <div id="copyright">Copyright ©2021 Unlishema Dragonsworn</div>
+
+ <script type="text/javascript">
+ function openDiscordUser(user) {
+ window.open('https://discordapp.com/users/' + user);
+ }
+ </script>
+</body>
+
+</html>
\ No newline at end of file
--- /dev/null
+<html>
+
+<head>
+ <title>Credits</title>
+ <link rel="icon" href="../images/icon.png" type="image/png">
+ <link rel="stylesheet" href="../styles/default/credits.css">
+</head>
+
+<body class="nis">
+ <div class="nisbutton" id="changelog-button" onclick="history.back();">Go Back</div>
+ <h2>Credit due where deserved</h2>
+ <p class="nistext">Assistance with Slayer Assistant for Alt1</p>
+ <ul class="nistext">
+ <li><a onclick="window.open('https://runeapps.org/forums/viewtopic.php?id=570');">codedninja</a> -
+ For creating the original app and inspiring the look and feel of this app</li>
+ <li><a onclick="openDiscordUser('Skillbert#9582');">Skillbert</a> - For all the assistance during
+ the creation of this app, as well as for creating Alt1 Toolkit</li>
+ <li><a onclick="openDiscordUser('Zykrow#8009');">Zykrow</a> - For support and assistance during the
+ entire development of this app</li>
+ <li><a onclick="openDiscordUser('crazye97#2027');">crazye97</a> - For all the assistance during the
+ development of this app, too much to specify each one</li>
+ <li><a onclick="openDiscordUser('troy236#2361');">troy236</a> - For giving me the answer to why I
+ couldn't edit the src of an img in javascript</li>
+ <li><a onclick="openDiscordUser('Emma Kitty#6969');">Emma Kitty</a> - For helping manage the
+ database; formatting, adding manual entries, and adding user experience content to the app</li>
+ <li><a onclick="openDiscordUser('Annie the Eagle#0001');">Annie the Eagle</a> - For help with
+ adjusting the Look and Feel of the app</li>
+ <li><a onclick="openDiscordUser('MrSlayerGod#5656');">MrSlayerGod</a> - For suggestions on the
+ newest Look and Feel of the app</li>
+ <li><a onclick="openDiscordUser('Poop Skewer#7325');">Poop Skewer</a> - For suggesting moving the
+ app over to github for better uptime</li>
+ <li><a onclick="openDiscordUser('vinay#5636');">display_this</a> - For reporting app breaking bugs
+ that kept the app from running at its full potential</li>
+ <li><a onclick="openDiscordUser('Leridon#6812');">Leridon</a> - For assisting me on getting the
+ slayer/reaper counter lookup started as well as helping fix major issues during upgrading alt1 source</li>
+ <li><a onclick="openDiscordUser('Umbra#5689');">Nex ex Umbra</a> - For assitance on getting the
+ Select
+ your own task detection to work</li>
+ <li><a
+ onclick="window.open('https://stackoverflow.com/questions/10473745/compare-strings-javascript-return-of-likely');">overlord1234
+ & David</a> - For the Levenshtein distance algorithim for the search feature</li>
+ </ul>
+
+ <p class="nistext">Assistance with Slayer Assistant Database Updater</p>
+ <ul class="nistext">
+ <li><a onclick="window.open('https://runescape.wiki');">Runescape Wiki</a> - For having an amazing
+ database that I can just parse to make use of in this app</li>
+ <li><a onclick="openDiscordUser('achievementshunter');">Chiev Hunter</a> - For assistance in fixing
+ the slayer assignment wiki so my updater would quit throwing an error</li>
+ <li><a onclick="openDiscordUser('Wahi#5030');">Wahi</a> - For explaining the Wights task was old
+ content that was removed</li>
+ <li><a onclick="openDiscordUser('Robert571#7543');">Robert571</a> - For suggesting the new query
+ search for database downloading from the wiki</li>
+ <li><a onclick="openDiscordUser('Wired In#2593');">Im Wired In</a> - For all the assistance in
+ helping to figure out how to use the new query search for database downloading from the wiki</li>
+ </ul>
+
+ <p class="nistext">For Creating Something Amazing</p>
+ <ul class="nistext">
+ <li><a onclick="window.open('http://jagex.com');">Jagex</a> - For creating an amazing game that has
+ many more years to come</li>
+ <li><a onclick="window.open('http://runescape.com');">Runescape</a> - For still being here after
+ all these years, it has came a long way</li>
+ <li><a onclick="window.open('https://runescape.wiki');">Runescape Wiki</a> - For having an amazing
+ database for all of the RuneScape community</li>
+ <li><a onclick="window.open('https://chat.openai.com');">Chat GPT</a> - For creating something
+ amazing that can assist with anything</li>
+ <li><a onclick="openDiscordUser('Skillbert#9582');">Skillbert</a> - For creating Alt1 Toolkit and
+ keeping it maintained</li>
+ </ul>
+
+ <div id="copyright">Copyright ©2021 Unlishema Dragonsworn</div>
+
+ <script type="text/javascript">
+ function openDiscordUser(user) {
+ window.open('https://discordapp.com/users/' + user);
+ }
+ </script>
+</body>
+
+</html>
\ No newline at end of file
--- /dev/null
+<div id="menubar">
+ <div id="infobutton" class="transbutton" title="About"></div>
+ <div id="menubutton" class="transbutton" title="Settings"></div>
+ <div id="donatebutton" class="transbutton" title="Donate"></div>
+ <div id="backbutton" class="transbutton" title="Previous Lookup"></div>
+ <div id="forwardbutton" class="transbutton" title="Next Lookup"></div>
+
+ <input type="text" list="search-info-list" class="nistext" id="search-info" name="search-info"
+ title="Search assignments, alias, or creatures" placeholder="Search..." autofocus></input>
+ <datalist id="search-info-list"></datalist>
+ <div class="nisbutton" id="search-button" title="You can also just press enter">Search<span
+ style="visibility: hidden;">. . .</span></div>
+ <div class="loading-container"><span class="loading" id="loading-bar" title="Loading..."></span></div>
+</div>
+
+<div id="base">
+</div>
+<div id="copyright" class="copyright-limited">Copyright ©2021 Unlishema Dragonsworn</div>
\ No newline at end of file
--- /dev/null
+<div class="left"></div>
+<div id="divide" class="divide-limited"></div>
+<div class="right"></div>
\ No newline at end of file
--- /dev/null
+<div class="nistext preview-task-wiki">
+ <div class="nistext masters">
+ <div class="nistext masterInfo1"><img id="masterImage1" alt="Chaeldar" src="./images/masters/Chaeldar.png"
+ title="Chaeldar"></img> Kills: Coming Soon...</div>
+ <div class="nistext masterInfo2"><img id="masterImage2" alt="Duradel" src="./images/masters/Duradel.png"
+ title="Duradel"></img> Kills: Coming Soon...</div>
+ <div class="nistext masterInfo3"><img id="masterImage3" alt="Jacquelyn" src="./images/masters/Jacquelyn.png"
+ title="Jacquelyn"></img> Kills: Coming Soon...</div>
+ <div class="nistext masterInfo4"><img id="masterImage4" alt="Kuradal" src="./images/masters/Kuradal.png"
+ title="Kuradal"></img> Kills: Coming Soon...</div>
+ <div class="nistext masterInfo5"><img id="masterImage5" alt="Laniakea" src="./images/masters/Laniakea.png"
+ title="Laniakea"></img> Kills: Coming Soon...</div>
+ <div class="nistext masterInfo6"><img id="masterImage6" alt="Mandrith" src="./images/masters/Mandrith.png"
+ title="Mandrith"></img> Kills: Coming Soon...</div>
+ <div class="nistext masterInfo7"><img id="masterImage7" alt="Mazchna" src="./images/masters/Mazchna.png"
+ title="Mazchna"></img> Kills: Coming Soon...</div>
+ </div>
+</div>
+
+<div class="nistext preview-creature-wiki">
+ <div class="nistext image-container"></div>
+ <div class="nistext stats">
+ <div class="nistext" id="title-4">Stats</div>
+ <img class="first-third-image" src="./images/misc/combat.png" title="Combat Level"></img>
+ <img class="second-third-image" src="./images/misc/lifepoints.png" title="Lifepoints"></img>
+ <img class="third-third-image" src="./images/misc/defence.png" title="Defense"></img>
+ <div class="nistext first-third level" title="Combat Level">???</div>
+ <div class="nistext second-third lifepoints" title="Lifepoints">???</div>
+ <div class="nistext third-third defence" title="Defense">???</div>
+ </div>
+
+ <div class="nistext exp">
+ <div class="nistext" id="title-5">Exp</div>
+ <img class="first-third-image" src="./images/misc/combat.png" title="Combat Exp"></img>
+ <img class="second-third-image" src="./images/misc/lifepoints.png" title="Lifepoints Exp"></img>
+ <div class="nistext first-third combat-exp" title="Combat Exp">???</div>
+ <div class="nistext second-third lifepoints-exp" title="Lifepoints Exp">???</div>
+ </div>
+
+ <div class="nistext max-hits">
+ <div class="nistext" id="title-6">Max Hit</div>
+ <img class="first-quarter-image" src="./images/misc/melee.png" title="Max Melee"></img>
+ <img class="second-quarter-image" src="./images/misc/ranged.png" title="Max Ranged"></img>
+ <img class="third-quarter-image" src="./images/misc/magic.png" title="Max Magic"></img>
+ <img class="forth-quarter-image" src="./images/misc/necromancy.png" title="Max Necromancy"></img>
+ <img class="fifth-quarter-image" src="./images/misc/spec.png" title="Max Special"></img>
+ <div class="nistext first-quarter max-melee" title="Max Melee">???</div>
+ <div class="nistext second-quarter max-ranged" title="Max Ranged">???</div>
+ <div class="nistext third-quarter max-magic" title="Max Magic">???</div>
+ <div class="nistext forth-quarter max-necromancy" title="Max Necromancy">???</div>
+ <div class="nistext fifth-quarter max-spec" title="Max Special">???</div>
+ </div>
+</div>
+
+<div class="nistext equipment">
+ <div class="nistext" id="title-1">Equipment</div>
+ <div class="nistext equipInfo1"></div>
+ <div class="nistext equipInfo2"></div>
+ <div class="nistext equipMore">See More...</div>
+ <div class="nistext equipHidden">
+ <div class="nistext equipInfo3"></div>
+ <div class="nistext equipInfo4"></div>
+ <div class="nistext equipInfo5"></div>
+ <div class="nistext equipInfo6"></div>
+ <div class="nistext equipInfo7"></div>
+ <div class="nistext equipInfo8"></div>
+ <div class="nistext equipInfo9"></div>
+ </div>
+</div>
+
+<div class="nistext locations">
+ <div class="nistext" id="title-2">Locations</div>
+ <div class="nistext locationInfo1"></div>
+ <div class="nistext locationInfo2"></div>
+ <div class="nistext locationMore">See More...</div>
+ <div class="nistext locationHidden">
+ <div class="nistext locationInfo3"></div>
+ <div class="nistext locationInfo4"></div>
+ <div class="nistext locationInfo5"></div>
+ <div class="nistext locationInfo6"></div>
+ <div class="nistext locationInfo7"></div>
+ <div class="nistext locationInfo8"></div>
+ <div class="nistext locationInfo9"></div>
+ <div class="nistext locationInfo10"></div>
+ <div class="nistext locationInfo11"></div>
+ <div class="nistext locationInfo12"></div>
+ <div class="nistext locationInfo13"></div>
+ <div class="nistext locationInfo14"></div>
+ <div class="nistext locationInfo15"></div>
+ <div class="nistext locationInfo16"></div>
+ <div class="nistext locationInfo17"></div>
+ <div class="nistext locationInfo18"></div>
+ <div class="nistext locationInfo19"></div>
+ <div class="nistext locationInfo20"></div>
+ <div class="nistext locationInfo21"></div>
+ <div class="nistext locationInfo22"></div>
+ <div class="nistext locationInfo23"></div>
+ <div class="nistext locationInfo24"></div>
+ <div class="nistext locationInfo25"></div>
+ </div>
+</div>
+
+<div class="nistext" id="creature-container">
+ <div class="nistext" id="title-3">Creatures</div>
+ <div class="nistext creature-wiki"></div>
+
+ <select class="nistext creatures" name="creatures" title="Creatures">
+ </select>
+
+ <select class="nistext variants" name="variants" title="variants">
+ </select>
+</div>
+
+<div class="nistext summary">
+ <div class="nistext" id="title-7">Summary</div>
+ <div class="nistext first-quarter" style="left: 5px;">Slayer Level</div>
+ <div class="nistext third-quarter" style="left: 5px;">Slayer Exp</div>
+ <img class="second-quarter-image" src="./images/misc/slayer.png" title="Slayer Level"></img>
+ <img class="forth-quarter-image" src="./images/misc/slayer.png" title="Slayer Exp"></img>
+ <div class="nistext second-quarter slayer-level" title="Slayer Level">???</div>
+ <div class="nistext forth-quarter slayer-exp" title="Slayer Exp">???</div>
+
+ <div class="nistext weaknessBox">
+ <p id="weakness-text">Weakness</p>
+ <img class="weakness-image weakness-image1" src=""></img>
+ <img class="weakness-image weakness-image2" src=""></img>
+ </div>
+
+ <div class="nistext susceptibleBox">
+ <p id="susceptible-text">Susceptible</p>
+ <img class="susceptible-image susceptible-image1" src=""></img>
+ <img class="susceptible-image susceptible-image2" src=""></img>
+ </div>
+</div>
\ No newline at end of file
--- /dev/null
+<div class="nistext type">(Default)</div>
+
+<div class="nistext info">
+ <div class="nistext task-wiki"></div>
+
+ <div class="nistext kills" title="Kills Left">???</div>
+ <div class="nistext name" title="Assignment">???</div>
+ <div class="nistext" id="slayer-exp-text" title="Total Slayer Experience">Exp:</div>
+ <div class="nistext total-slayer-exp" title="Total Slayer Experience">???</div>
+</div>
+
+<div class="nistext status">
+ <div class="nistext timer-text" title="Timer">Timer:
+ <div class="nistext timer-value">??:??:??</div>
+ </div>
+ <div class="nistext kills-per-text" title="Kills/Hr">Kills/Hr:
+ <div class="nistext kills-per-hour">?,???</div>
+ </div>
+ <div class="nistext exp-per-text" title="XP/Hr">XP/Hr:
+ <div class="nistext exp-per-hour">???,???</div>
+ </div>
+</div>
+
+
+<div class="nistext extra-info"></div>
\ No newline at end of file
--- /dev/null
+<div class="single"></div>
\ No newline at end of file
--- /dev/null
+<div class="nistext type" id="type-suggest">(Suggested)</div>
+
+<table id="suggestions">
+ <thead>
+ <tr>
+ <td class="nistext">Assignment</td>
+ <td class="nistext">Slayer xp/hr</td>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td class="nistext" id="suggestion-1" title="Gemstone dragons">Gemstone dragons</td>
+ <td class="nistext">1400k (Hydrix)</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-2" title="Ripper Demon">Ripper Demon</td>
+ <td class="nistext">700k (Darklight)</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-3" title="Soul devourer">Soul devourer</td>
+ <td class="nistext">680k</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-4" title="Shadow creatures">Shadow creatures</td>
+ <td class="nistext">680k (Manifest)</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-5" title="Nightmare">Nightmare</td>
+ <td class="nistext">650k</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-6" title="Lost Grove creatures">Lost Grove creatures</td>
+ <td class="nistext" title="Legacy 1324k">610k (Golem)<span class="starnote">*</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-7" title="Acheron mammoth">Acheron mammoth</td>
+ <td class="nistext">600k</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-8" title="Corrupted creatures">Corrupted creatures</td>
+ <td class="nistext">580k (Worker)</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-9" title="Elves">Elves</td>
+ <td class="nistext" title="1200k (chinning)">560k<span class="starnote">*</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-10" title="Living wyverns">Living wyverns</td>
+ <td class="nistext">530k</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-11" title="Crystal shapeshifters">Crystal shapeshifters</td>
+ <td class="nistext">500k</td>
+ </tr>
+ <tr>
+ <td class="nistext" id="suggestion-12" title="Greater demons">Greater demons</td>
+ <td class="nistext" title="180k (K'ril)">1000k (Berserkers)<span class="starnote">*</span>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<div class="nistext" id="footnote">* - More information on hover</div>
\ No newline at end of file
--- /dev/null
+<html>
+
+<head>
+ <title>Slayer Assistant Settings</title>
+ <link rel="icon" href="../images/icon.png" type="image/png">
+ <link rel="stylesheet" href="../styles/default/settings.css">
+</head>
+
+<body class="nis">
+
+ <h2 class="nistext">Settings</h2>
+ <p class="nistext" id="test">More Coming soon... This is only the basic settings for now</p>
+
+ <label class="nistext">Auto Capture Settings</label><br>
+ <input type="checkbox" id="auto-capture-enabled">
+ <label class="nistext" for="auto-capture-enabled"> Enabled?</label><br>
+ <input type="checkbox" id="auto-capture-counter">
+ <label class="nistext" for="auto-capture-counter"> Counter UI?</label><br>
+ <input type="checkbox" id="auto-capture-search">
+ <label class="nistext" for="auto-capture-search"> Search Toggle?</label><br>
+ <br>
+ <label class="nistext">UI Settings</label><br>
+ <input type="checkbox" id="ui-limited">
+ <label class="nistext" for="ui-limited"> Limited?</label><br>
+ <input type="checkbox" id="ui-status">
+ <label class="nistext" for="ui-status"> Status?</label><br>
+ <input type="checkbox" id="ui-overlay">
+ <label class="nistext" for="ui-overlay"> Overlay?</label><br>
+
+ <div class="nisbutton" id="changelog-button" onclick="closeSettings();">Close Settings</div>
+ <div id="copyright">Copyright ©2021 Unlishema Dragonsworn</div>
+
+ <script type="text/javascript">
+ function closeSettings() {
+ window.close();
+ }
+
+ // On Load lets load in the settings from the local storage
+ document.addEventListener("DOMContentLoaded", async (event) => {
+ // FIXME Finished setting up settings
+
+ if (localStorage.getItem("auto-capture-enabled")) document.getElementById("auto-capture-enabled").checked = localStorage.getItem("auto-capture-enabled") === "true";
+ if (localStorage.getItem("auto-capture-counter")) document.getElementById("auto-capture-counter").checked = localStorage.getItem("auto-capture-counter") === "true";
+ if (localStorage.getItem("auto-capture-search")) document.getElementById("auto-capture-search").checked = localStorage.getItem("auto-capture-search") === "true";
+
+ if (localStorage.getItem("ui-limited")) document.getElementById("ui-limited").checked = localStorage.getItem("ui-limited") === "true";
+ if (localStorage.getItem("ui-status")) document.getElementById("ui-status").checked = localStorage.getItem("ui-status") === "true";
+ if (localStorage.getItem("ui-overlay")) document.getElementById("ui-overlay").checked = localStorage.getItem("ui-overlay") === "true";
+ });
+
+ // On change lets update the locally stored settings
+ document.getElementById("auto-capture-enabled").addEventListener("input", function () {
+ localStorage.setItem("auto-capture-enabled", document.getElementById("auto-capture-enabled").checked);
+ });
+ document.getElementById("auto-capture-counter").addEventListener("input", function () {
+ localStorage.setItem("auto-capture-counter", document.getElementById("auto-capture-counter").checked);
+ });
+ document.getElementById("auto-capture-search").addEventListener("input", function () {
+ localStorage.setItem("auto-capture-search", document.getElementById("auto-capture-search").checked);
+ });
+ document.getElementById("ui-limited").addEventListener("input", function () {
+ localStorage.setItem("ui-limited", document.getElementById("ui-limited").checked);
+ });
+ document.getElementById("ui-status").addEventListener("input", function () {
+ localStorage.setItem("ui-status", document.getElementById("ui-status").checked);
+ });
+ document.getElementById("ui-overlay").addEventListener("input", function () {
+ localStorage.setItem("ui-overlay", document.getElementById("ui-overlay").checked);
+ });
+ </script>
+</body>
+
+</html>
\ No newline at end of file
--- /dev/null
+/* Global Settings */
+.nis {background: url("../../images/ui/default/background.png");}
+.nistext {color: #E5E6EB;}
+a {color: #ffffff; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+a:hover {color: #a19100; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+
+/* Buttons */
+.nisbutton {position: relative; width: auto; height: 32px; cursor: pointer; text-align: center; color: #000000; font-family: 'trajan-pro-3'; font-size: 18px; text-shadow: 1px 1px 2px #ECC622; margin: 5px; padding: 0px 12px; line-height: 32px; user-select: none; -webkit-user-select: none; background: url('../../images/ui/default/nisbutton.png') 0px -100%/24px 400% repeat content-box;}
+.nisbutton::before {position: absolute; width: 12px; height: 100%; top: 0px; left: 00px; content: ""; background: url('../../images/ui/default/nisbutton.png') 0px 0px / 24px 400%;}
+.nisbutton::after {position: absolute; width: 12px; height: 100%; top: 0px; right: 1px; content: ""; background: url('../../images/ui/default/nisbutton.png') -12px 0px / 24px 400%;}
+.nisbutton:hover {background-position: 000px -300%;}
+.nisbutton:hover::before {background-position: 000px -200%;}
+.nisbutton:hover::after {background-position: -12px -200%;}
+.nisbutton:active, .nisbutton.fakeactive{-webkit-filter: brightness(1.2); filter: brightness(1.2);}
+
+/* Main Settings */
+body{font-family:sans-serif; font-size:14px; overflow-x:hidden; margin:5px; width: calc(100% - 10px);}
+h2{text-align: center; font-size: 22px; font-weight:normal;}
+h2:first-child{margin-top:5px;}
+h3{text-align: center; font-size: 18px; border-top:3px double rgb(255, 231, 185); font-weight:bold;}
+h4{text-align: center; font-size: 16px; border-top:3px dashed rgb(255, 231, 185); font-weight:normal;}
+table{margin:auto;}
+img{width:100%;}
+img.expanded{width:60%;}
+img.collapsed{width:35%;}
+
+/* Sections */
+.info{text-align: center;}
+.example{border: 1px solid rgb(84, 85, 66); margin-top: 5px; margin-bottom: 5px;}
+
+/* Credits */
+#copyright {font-size: 10px; color: #5a6400; text-align:center; padding-top: 3px; height:20px; width: calc(100% - 10px);}
\ No newline at end of file
--- /dev/null
+/* Global Settings */
+.nis {background: url("../../images/ui/default/background.png");}
+.nistext {color: #E5E6EB;}
+a {color: #ffffff; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+a:hover {color: #a19100; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+
+/* Buttons */
+.nisbutton {position: relative; width: auto; height: 32px; cursor: pointer; text-align: center; color: #000000; font-family: 'trajan-pro-3'; font-size: 18px; text-shadow: 1px 1px 2px #ECC622; margin: 5px; padding: 0px 12px; line-height: 32px; user-select: none; -webkit-user-select: none; background: url('../../images/ui/default/nisbutton.png') 0px -100%/24px 400% repeat content-box;}
+.nisbutton::before {position: absolute; width: 12px; height: 100%; top: 0px; left: 00px; content: ""; background: url('../../images/ui/default/nisbutton.png') 0px 0px / 24px 400%;}
+.nisbutton::after {position: absolute; width: 12px; height: 100%; top: 0px; right: 1px; content: ""; background: url('../../images/ui/default/nisbutton.png') -12px 0px / 24px 400%;}
+.nisbutton:hover {background-position: 000px -300%;}
+.nisbutton:hover::before {background-position: 000px -200%;}
+.nisbutton:hover::after {background-position: -12px -200%;}
+.nisbutton:active, .nisbutton.fakeactive{-webkit-filter: brightness(1.2); filter: brightness(1.2);}
+
+/* Main Settings */
+body{font-family: sans-serif; font-size: 14px; overflow-x: hidden; margin: 10px; width: calc(100% - 10px);}
+h2{border-top:1px solid #A3A3A3; font-weight: normal; margin-top: 25px; margin-bottom: -10px; color: #068b1c;}
+h2:first-child{margin-top:10px;}
+
+/* Credits */
+#copyright {font-size: 10px; color: #5a6400; text-align:center; padding-top: 3px; height:20px; width: calc(100% - 10px);}
\ No newline at end of file
--- /dev/null
+/* Global Settings */
+.nis {background: url("../../images/ui/default/background.png");}
+.nistext {color: #E5E6EB;}
+a {color: #ffffff; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+a:hover {color: #a19100; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+
+/* Buttons */
+.nisbutton {position: relative; width: auto; height: 32px; cursor: pointer; text-align: center; color: #000000; font-family: 'trajan-pro-3'; font-size: 18px; text-shadow: 1px 1px 2px #ECC622; margin: 5px; padding: 0px 12px; line-height: 32px; user-select: none; -webkit-user-select: none; background: url('../../images/ui/default/nisbutton.png') 0px -100%/24px 400% repeat content-box;}
+.nisbutton::before {position: absolute; width: 12px; height: 100%; top: 0px; left: 00px; content: ""; background: url('../../images/ui/default/nisbutton.png') 0px 0px / 24px 400%;}
+.nisbutton::after {position: absolute; width: 12px; height: 100%; top: 0px; right: 1px; content: ""; background: url('../../images/ui/default/nisbutton.png') -12px 0px / 24px 400%;}
+.nisbutton:hover {background-position: 000px -300%;}
+.nisbutton:hover::before {background-position: 000px -200%;}
+.nisbutton:hover::after {background-position: -12px -200%;}
+.nisbutton:active, .nisbutton.fakeactive{-webkit-filter: brightness(1.2); filter: brightness(1.2);}
+
+/* Main Settings */
+body{font-family:sans-serif; font-size:14px; overflow-x:hidden; margin: 10px; width: calc(100% - 10px);}
+h2{border-top:1px solid #A3A3A3; font-weight:normal; margin-top: 25px; margin-bottom:-10px; color:#068b1c;}
+h2:first-child{margin-top:10px;}
+
+/* Credits */
+#copyright {font-size: 10px; color: #5a6400; text-align:center; padding-top: 3px; height:20px; width: calc(100% - 10px);}
\ No newline at end of file
--- /dev/null
+/* Global App settings */
+.nis {background: url("../../images/ui/default/background.png");}
+.nistext {color: #E5E6EB;}
+a {color: #ffffff; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; text-decoration: none; cursor: pointer;}
+a:hover {color: #a19100; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; text-decoration: none; cursor: pointer;}
+
+/* Base Sections of App */
+div#menubar {position: relative; width: 100%; height: 34px;}
+div#base {position: relative; width: 100%; height: 70px;}
+#copyright {position: relative; width: 100%; height: 13px; font-family: 'trajan-pro-3'; font-size: 11px; color: #5a6400; text-align: center; }
+div.base-full {height: 310px;}
+.copyright-limited {top: 0px;}
+.copyright-full {top: 250px;}
+
+/* Menu Bar Controls */
+#infobutton {position: absolute; width: 12px; height: 12px; top: 00px; left: 00px; z-index: 11; cursor:pointer; background: url('../../images/ui/default/infoicon.png') 0px 0px / cover;}
+#menubutton {position: absolute; width: 12px; height: 12px; top: 16px; left: 00px; z-index: 11; cursor:pointer; background: url('../../images/ui/default/settingscog.png') 0px 0px / cover;}
+#donatebutton {position: absolute; width: 12px; height: 12px; top: 32px; left: 00px; z-index: 11; cursor:pointer; background: url('../../images/ui/default/donate.png') 0px 0px / cover;}
+#backbutton {position: absolute; width: 12px; height: 12px; top: 32px; left: 16px; z-index: 11; cursor:pointer; background: url('../../images/ui/default/back.png') 0px 0px / cover;}
+#forwardbutton {position: absolute; width: 12px; height: 12px; top: 32px; left: 32px; z-index: 11; cursor:pointer; background: url('../../images/ui/default/forward.png') 0px 0px / cover;}
+#infobutton:hover {background-position: 0px -12px;}
+#menubutton:hover {background-position: 0px -12px;}
+#donatebutton:hover {background-position: 0px -12px;}
+#backbutton:hover {background-position: 0px -12px;}
+#forwardbutton:hover {background-position: 0px -12px;}
+
+/* Search Box & Button */
+#search-info {position: relative; width: calc(100% - 20px - 100px); height: 20px; top: 3px; left: 18px; color:#a39e00; cursor:pointer; background-color:#2f2f2f;}
+#search-button {position: absolute; width: 66px; height: 33px; top: 0px; right: 0px; color:#370042; font-size: 18px; text-align: left;}
+
+/* Search Button LookNFeel */
+.nisbutton {position: relative; width: auto; height: 32px; cursor: pointer; text-align: center; color: #000000; font-family: 'trajan-pro-3'; font-size: 18px; text-shadow: 1px 1px 2px #ECC622; margin-left: 5px; padding: 0px 12px; line-height: 32px; user-select: none; -webkit-user-select: none; background: url('../../images/ui/default/nisbutton.png') 0px -100%/24px 400% repeat content-box;}
+.nisbutton::before {position: absolute; width: 12px; height: 100%; top: 0px; left: 00px; content: ""; background: url('../../images/ui/default/nisbutton.png') 0px 0px / 24px 400%;}
+.nisbutton::after {position: absolute; width: 12px; height: 100%; top: 0px; right: 1px; content: ""; background: url('../../images/ui/default/nisbutton.png') -12px 0px / 24px 400%;}
+.nisbutton:hover {background-position: 000px -300%;}
+.nisbutton:hover::before {background-position: 000px -200%;}
+.nisbutton:hover::after {background-position: -12px -200%;}
+.nisbutton:active {-webkit-filter: brightness(1.2); filter: brightness(1.2);}
+.nisbutton.fakeactive {-webkit-filter: brightness(1.2); filter: brightness(1.2);}
+
+/* Loading Spinner */
+.loading-container {position: absolute; width: 20px; height: 20px; top: 8px; right: 8px; cursor:pointer; }
+.loading {width: 20px; height: 20px; display: flex; justify-content: center; visibility: hidden;}
+.loading::after {width: 12px; height: 12px; content: ""; border: 3px dashed #13314e; border-radius: 100%; transform: rotate(0.125turn); animation: loading 2.5s ease-in-out infinite;}
+@keyframes loading {to {transform: rotate(1.130turn);}}
+
+/* Division Bar */
+div.left {position: absolute; width: calc(050% - 01px); left: 00%;}
+div.right {position: absolute; width: calc(050% - 01px); left: 50%;}
+div.single {position: absolute; width: 100%; left: 00%;}
+div#divide {position: absolute; width: 2px; left: calc(50% - 2px); background-color: #afad1f;}
+.divide-limited {height: 65px;}
+.divide-full {height: 310px;}
+
+/* Headers for Sections */
+div#title-1 {position: absolute; height: 13px; left: calc(25%); right: calc(25%); z-index: 10; margin-top: -10px; font-size: 14px; text-align: center; padding: 0px 8px 0px; color: #778899; background: url("../../images/ui/default/background.png");}
+div#title-2 {position: absolute; height: 13px; left: calc(25%); right: calc(25%); z-index: 10; margin-top: -10px; font-size: 14px; text-align: center; padding: 0px 8px 0px; color: #778899; background: url("../../images/ui/default/background.png");}
+div#title-3 {position: absolute; height: 13px; left: calc(25%); right: calc(25%); z-index: 10; margin-top: -10px; font-size: 14px; text-align: center; padding: 0px 8px 0px; color: #778899; background: url("../../images/ui/default/background.png");}
+div#title-4 {position: absolute; height: 11px; left: calc(15%); right: calc(15%); z-index: 22; margin-top: -06px; font-size: 12px; text-align: center; padding: 0px 8px 0px; color: #778899; background: url("../../images/ui/default/background.png");}
+div#title-5 {position: absolute; height: 11px; left: calc(15%); right: calc(15%); z-index: 22; margin-top: -08px; font-size: 12px; text-align: center; padding: 0px 8px 0px; color: #778899; background: url("../../images/ui/default/background.png");}
+div#title-6 {position: absolute; height: 11px; left: calc(15%); right: calc(15%); z-index: 22; margin-top: -08px; font-size: 12px; text-align: center; padding: 0px 8px 0px; color: #778899; background: url("../../images/ui/default/background.png");}
+div#title-7 {position: absolute; height: 13px; left: calc(25%); right: calc(25%); z-index: 10; margin-top: -10px; font-size: 14px; text-align: center; padding: 0px 8px 0px; color: #778899; background: url("../../images/ui/default/background.png");}
+
+/* Type of Assignment */
+div.type {position: relative; width: 100%; height: 22px; color: #008000; font-family: 'trajan-pro-3'; font-size: 20px; text-align: center;}
+.right div.type {color: #ff0000;}
+#type-reaper {color: #ffd700;}
+#type-suggest {color: #ff00d4; cursor:pointer;}
+#type-suggest:hover {color: #6d0077;}
+
+/* Suggested Creatures */
+span.starnote {position: relative; display: inline; color: #ffd700; font-size: 11px;}
+div#footnote {position: relative; width: 100%; height: 015px; left: 0%; top: 0px; color: #ffd700; font-size: 11px; text-align: right;}
+table#suggestions {position: relative; width: 100%; height: 200px; left: 0%; top: 0px; font-size: 16px; text-align: left;}
+table#suggestions thead td {color: #ffd700; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+table#suggestions td {color: #39cf96; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+td[id^="suggestion"] {color: #008000; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; cursor:pointer;}
+td[id^="suggestion"]:hover {color: #00db00;}
+
+/* Assignment Info */
+div.info {position: relative; width: 068%; height: 40px; left: 3px; top: 0px; margin-top: 5px; text-align: left;}
+div.info div.task-wiki {position: absolute; width: 24px; height: 24px; left: 0px; top: -4px; cursor:pointer; text-align: left; background: transparent url("../../images/ui/default/wikipedia.png") 0px 0px / cover;}
+div.info div.kills {position: absolute; width: 40px; height: 16px; left: 18px; top: 0px; text-align: right; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+div.info div#slayer-exp-text {position: absolute; width: 33px; height: 16px; left: 3px; top: 20px; text-align: left;}
+div.info div.name {position: absolute; width: calc(100% - 65px); height: 16px; left: 62px; top: 0px; text-align: left; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+div.info div.total-slayer-exp {position: absolute; width: calc(100% - 40px); height: 16px; left: 35px; top: 20px; text-align: left; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+div.left div.info {width: 100%;}
+div.right div.info {width: 100%;}
+div.info:hover {background-color: #324e6165;}
+div.info div.task-wiki:hover {background-position:0px -24px;}
+
+/* Preview Task Wiki */
+div.preview-task-wiki {position: absolute; width: calc(100% - 8px); height: auto; left: 0px; top: 0px; z-index: 11; visibility: hidden; text-align: left; border: 2px ridge #a19100; background: url("../../images/ui/default/background.png");}
+div.preview-task-wiki div.masters {position: relative; width: calc(100% - 8px); height: auto; left: 0px; top: 0px; text-align: left;}
+div.preview-task-wiki div.masterTitle {position: relative; width: 100%; height: 27px; font-size: 18px; margin: 2px 0px 0px 3px; border-bottom: 3px double #a19100;}
+div.preview-task-wiki div[class*="masterInfo"] {position: relative; width: 100%; height: 27px; cursor:pointer; font-size: 14px; padding: 2px 0px 0px 3px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+div.preview-task-wiki img[id^="masterImage"] {position: relative; width: 20px; height: 27px; cursor:pointer; vertical-align: middle; text-align: center;}
+div.preview-task-wiki div[class*="masterInfo"]:hover {background-color: #64643065;}
+div.left div.preview-task-wiki {left: 0px;}
+div.right div.preview-task-wiki {left: 4px;}
+
+/* Status Menu */
+div.status {position: absolute; width: 100px; height: 60px; right: 0px; top: 2px; z-index: 10; text-align: left; border: 2px ridge #5a6400;}
+div.status div.kills-per-text {position: absolute; width: 100%; height: calc(33% - 6px); left: 0px; top: 33%; padding-top: 2px; font-size: 16px; border-top: 1px solid #a19100; margin-top: -2px;}
+div.status div.exp-per-text {position: absolute; width: 100%; height: calc(33% - 6px); left: 0px; top: 66%; padding-top: 2px; font-size: 16px; border-top: 1px solid #a19100; margin-top: -2px;}
+div.status div.timer-text {position: absolute; width: 100%; height: calc(33% - 6px); left: 0px; top: 0%; padding-top: 2px; font-size: 16px; margin-top: -2px;}
+div.status div.timer-value {position: absolute; width: calc(100% - 46px); height: 100%; left: 46px; top: 0px; padding: 2px 2px 0px 0px; font-size: 16px; text-align: right; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+div.status div.kills-per-hour {position: absolute; width: calc(100% - 60px); height: 100%; left: 60px; top: 0px; padding: 2px 2px 0px 0px; font-size: 16px; text-align: right; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+div.status div.exp-per-hour {position: absolute; width: calc(100% - 50px); height: 100%; left: 50px; top: 0px; padding: 2px 2px 0px 0px; font-size: 16px; text-align: right; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+div.status div.timer-text:hover {background-color: #324e6165;}
+div.status div.kills-per-text:hover {background-color: #324e6165;}
+div.status div.exp-per-text:hover {background-color: #324e6165;}
+div.left div.status {visibility: hidden;}
+div.right div.status {visibility: hidden;}
+
+/* Extra Data (Not shown on limited) */
+div.extra-info {position: relative; width: 100%;}
+
+/* Equpiment */
+img#equip-image {position: relative; width: 18px; height: 18px;}
+div.equipment {position: relative; width: calc(100% - 8px); height: 60px; left: 5px; top: 0px; padding-top: 3px; text-align: left; border-top: 3px double #a19100;}
+div.equipment div[class*="equipInfo"] {position: relative; width: 100%; height: auto; text-align: left;}
+div.equipment div.equipHidden {position: absolute; width: 100%; height: auto; left: 0px; top: 42px; z-index: 11; margin-left: -3px; visibility: hidden; border: 3px groove #778899; border-top-style:none; background: url("../../images/ui/default/background.png");}
+div.equipment div.equipMore {position: absolute; width: 100%; height: 16px; left: 0px; top: 42px; cursor:pointer; text-decoration: underline; color: #778899; font-size: 10px; text-align: left;}
+div.equipment div[class*="equipInfo"]:hover {background-color: #64643065;}
+div.equipment div.equipMore:hover {background-color: #64643065;}
+
+/* Locations */
+img#location-image {position: relative; width: 18px; height: 18px;}
+div.locations {position: relative; width: calc(100% - 8px); height: 60px; left: 5px; top: 0px; padding-top: 3px; text-align: left; border-top: 3px double #a19100;}
+div.locations div[class*="locationInfo"] {position: relative; width: 100%; height: auto; text-align: left;}
+div.locations div.locationHidden {position: absolute; width: 100%; height: auto; left: 0px; top: 42px; z-index: 11; margin-left: -3px; visibility: hidden; border: 3px groove #778899; border-top-style:none; background: url("../../images/ui/default/background.png");}
+div.locations div.locationMore {position: absolute; width: 100%; height: 16px; left: 0px; top: 42px; cursor:pointer; text-decoration: underline; color: #778899; font-size: 10px; text-align: left;}
+div.locations div[class*="locationInfo"]:hover {background-color: #64643065;}
+div.locations div.locationMore:hover {background-color: #64643065;}
+
+/* Creature Wiki */
+div#creature-container {position: relative; width: calc(100% - 08px); height: 32px; left: 03px; top: 0px; padding-top: 3px; border-top: 3px double #a19100;}
+select.creatures {position: absolute; width: calc(64% - 10px); height: 20px; left: 24px; top: 9px; cursor:pointer; background-color: #2f2f2f;}
+select.variants {position: absolute; width: calc(34.5% - 15px); height: 20px; left: calc(65% + 16px); top: 9px; cursor:pointer; background-color: #2f2f2f;}
+div.creature-wiki {position: absolute; width: 24px; height: 24px; left: -2px; top: 5px; cursor:pointer; text-align: left; background: transparent url("../../images/ui/default/wikipedia.png") 0px 0px / cover;}
+div.creature-wiki:hover {background-position: 0px -24px;}
+
+/* Creature Wiki Preview */
+div.preview-creature-wiki {position: absolute; width: calc(100% - 6px); height: 178px; left: 0px; top: -42px; z-index: 11; visibility: hidden; border: 2px ridge #a19100; background: url("../../images/ui/default/background.png"); text-align: left;}
+div.preview-creature-wiki div.image-container {position: absolute; width: 50%; height: 50%; left: 0px; top: 0px; border-top: 1px solid #a19100; border-right: 1px ridge #a19100;}
+div.preview-creature-wiki div.stats {position: absolute; width: 50%; height: 50%; left: 50%; top: 0px; font-size: 12px; text-align: center; border-top: 1px solid #a19100;}
+div.preview-creature-wiki div.exp {position: absolute; width: 50%; height: 50%; left: 0px; top: 50%; font-size: 12px; text-align: center; border-top: 3px double #a19100; border-right: 1px ridge #a19100; padding-top: -1px;}
+div.preview-creature-wiki div.max-hits {position: absolute; width: 50%; height: 50%; left: 50%; top: 50%; font-size: 12px; text-align: center; border-top: 3px double #a19100; padding-top: -1px;}
+div.preview-creature-wiki img.image {display: block; margin-left: auto; margin-right: auto; background-color: transparent;}
+div.preview-creature-wiki div.image-container:hover {background-color: #64643065;}
+div.preview-creature-wiki div.stats:hover {background-color: #64643065;}
+div.preview-creature-wiki div.exp:hover {background-color: #64643065;}
+div.preview-creature-wiki div.max-hits:hover {background-color: #64643065;}
+div.left div.preview-creature-wiki {left: -2px;}
+div.right div.preview-creature-wiki {left: 3px;}
+
+/* Summary */
+div.summary {position: relative; width: calc(100% - 8px); height: 75px; left: 5px; top: 0px; padding-top: 3px; font-size: 12px; text-align: center; border-top: 3px double #a19100;}
+div.summary:hover {background-color: #324e6165;}
+
+div.summary div.weaknessBox {position: absolute; width: 048%; height: 35px; left: 50%; top: 5px; font-size: 12px; text-align: center;}
+div.summary div.weaknessBox img {position: relative; width: 18px; height: 18px; padding: 0px 3px 0px 3px;}
+div.summary div.weaknessBox p#weakness-text {margin: 0px; padding: 0px;}
+
+div.summary div.susceptibleBox {position: absolute; width: 048%; height: 35px; left: 50%; top: 40px; font-size: 12px; text-align: center;}
+div.summary div.susceptibleBox img {position: relative; width: 18px; height: 18px; padding: 0px 3px 0px 3px;}
+div.summary div.susceptibleBox p#susceptible-text {margin: 0px; padding: 0px;}
+
+/* Third Sections */
+img.first-third-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 10px;}
+img.second-third-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 28px;}
+img.third-third-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 43px;}
+
+.first-third {position: absolute; width: 50%; height: 12px; left: 25px; top: 10px; font-size: 10px; text-align: left;}
+.second-third {position: absolute; width: 50%; height: 12px; left: 25px; top: 28px; font-size: 10px; text-align: left;}
+.third-third {position: absolute; width: 50%; height: 12px; left: 25px; top: 46px; font-size: 10px; text-align: left;}
+
+/* Quarter Sections */
+img.first-quarter-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 8px;}
+img.second-quarter-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 23px;}
+img.third-quarter-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 38px;}
+img.forth-quarter-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 53px;}
+img.fifth-quarter-image {position: absolute; width: 15px; height: 15px; left: 5px; top: 68px;}
+
+.first-quarter {position: absolute; width: 50%; height: 12px; left: 25px; top: 10px; font-size: 10px; text-align: left;}
+.second-quarter {position: absolute; width: 50%; height: 12px; left: 25px; top: 26px; font-size: 10px; text-align: left;}
+.third-quarter {position: absolute; width: 50%; height: 12px; left: 25px; top: 40px; font-size: 10px; text-align: left;}
+.forth-quarter {position: absolute; width: 50%; height: 12px; left: 25px; top: 55px; font-size: 10px; text-align: left;}
+.fifth-quarter {position: absolute; width: 50%; height: 12px; left: 25px; top: 70px; font-size: 10px; text-align: left;}
\ No newline at end of file
--- /dev/null
+/* Global Settings */
+.nis {background: url("../../images/ui/default/background.png");}
+.nistext {color: #E5E6EB;}
+a {color: #ffffff; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+a:hover {color: #a19100; text-decoration: underline; cursor: pointer; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
+
+/* Buttons */
+.nisbutton {position: relative; width: auto; height: 32px; cursor: pointer; text-align: center; color: #000000; font-family: 'trajan-pro-3'; font-size: 18px; text-shadow: 1px 1px 2px #ECC622; margin: 5px; padding: 0px 12px; line-height: 32px; user-select: none; -webkit-user-select: none; background: url('../../images/ui/default/nisbutton.png') 0px -100%/24px 400% repeat content-box;}
+.nisbutton::before {position: absolute; width: 12px; height: 100%; top: 0px; left: 00px; content: ""; background: url('../../images/ui/default/nisbutton.png') 0px 0px / 24px 400%;}
+.nisbutton::after {position: absolute; width: 12px; height: 100%; top: 0px; right: 1px; content: ""; background: url('../../images/ui/default/nisbutton.png') -12px 0px / 24px 400%;}
+.nisbutton:hover {background-position: 000px -300%;}
+.nisbutton:hover::before {background-position: 000px -200%;}
+.nisbutton:hover::after {background-position: -12px -200%;}
+.nisbutton:active, .nisbutton.fakeactive{-webkit-filter: brightness(1.2); filter: brightness(1.2);}
+
+/* Main Settings */
+body{font-family:sans-serif; font-size:14px; overflow-x:hidden; margin: 10px; width: calc(100% - 10px)}
+h2{border-top:1px solid #000; font-weight:normal;}
+h2:first-child{margin-top:5px;}
+table{margin:auto;}
+
+/* Credits */
+#copyright {font-size: 10px; color: #5a6400; text-align:center; padding-top: 3px; height:20px; width: calc(100% - 10px);}
\ No newline at end of file
--- /dev/null
+// Typescript configuration file
+{
+ "compilerOptions": {
+ // Settings to make typescript play nice with webpack
+ "resolvePackageJsonExports": true,
+ "moduleResolution": "bundler",
+ "module": "ESNext",
+ }
+}
\ No newline at end of file
--- /dev/null
+const path = require("path");
+const CopyWebpackPlugin = require('copy-webpack-plugin');
+
+/**
+ * @type {import("webpack").Configuration}
+ */
+module.exports = {
+ //tell webpack where to look for source files
+ context: path.resolve(__dirname, "src"),
+ entry: {
+ //each entrypoint results in an output file
+ //so this results in an output file called 'main.js' which is built from src/index.ts
+ "main": "./index.ts"
+ },
+ output: {
+ path: path.resolve(__dirname, "dist"),
+ // library means that the exports from the entry file can be accessed from outside, in this case from the global scope as window.TestApp
+ library: { type: "umd", name: "SlayerAssistant" }
+ },
+ devtool: 'source-map',
+ mode: "development",
+ // prevent webpack from bundling these imports (alt1 libs can use them when running in nodejs)
+ externals: [
+ "sharp",
+ "canvas",
+ "electron/common"
+ ],
+ resolve: {
+ extensions: [".wasm", ".tsx", ".ts", ".mjs", ".jsx", ".js"]
+ },
+ module: {
+ // The rules section tells webpack what to do with different file types when you import them from js/ts
+ rules: [
+ { test: /\.tsx?$/, loader: "ts-loader" },
+ { test: /\.css$/, use: ["style-loader", "css-loader"] },
+ { test: /\.scss$/, use: ["style-loader", "css-loader", "sass-loader"] },
+ // type:"asset" means that webpack copies the file and gives you an url to them when you import them from js
+ { test: /\.(png|jpg|jpeg|gif|webp)$/, type: "asset/resource", generator: { filename: "[base]" } },
+ { test: /\.(html|json)$/, type: "asset/resource", generator: { filename: "[base]" } },
+ // file types useful for writing alt1 apps, make sure these two loader come after any other json or png loaders, otherwise they will be ignored
+ { test: /\.data\.png$/, loader: "alt1/imagedata-loader", type: "javascript/auto" },
+ { test: /\.fontmeta.json/, loader: "alt1/font-loader" }
+ ]
+ },
+ plugins: [
+ new CopyWebpackPlugin({
+ patterns: [
+ { from: 'index.html', to: 'index.html' },
+ { from: 'dev-appconfig.json', to: 'appconfig.json' },
+ // Folders we need
+ { from: 'data', to: 'data' },
+ //{ from: 'modules', to: 'modules' },
+ { from: 'images', to: 'images', globOptions: { ignore: ['**/data/**'] } },
+ { from: 'styles', to: 'styles' },
+ { from: 'pages', to: 'pages' }
+ ]
+ })
+ ]
+}
\ No newline at end of file