diff --git a/docker-compose.yml b/docker-compose.yml
index fd2e2b5..d134590 100755
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -24,7 +24,7 @@ services:
depends_on:
- postgres
ports:
- - "4504:4504"
+ - "443:443"
working_dir: /server2
volumes:
- ./server2:/server2
@@ -51,20 +51,6 @@ services:
max-size: "1m"
max-file: "3"
-
- imgparser:
- build: imgparser
- restart: always
- ports:
- - "4503:4503"
- volumes:
- - ./imgparser:/imgparser
- working_dir: /imgparser/projectDivaImgParser
- logging:
- options:
- max-size: "1m"
- max-file: "3"
-
postgres:
image: postgres:10.4
restart: always
@@ -90,7 +76,7 @@ services:
- postgres
- server
ports:
- - "80:3000"
+ - "4500:3000"
environment:
- CHOKIDAR_USEPOLLING=true
stdin_open: true
@@ -135,4 +121,4 @@ services:
# context: frontend
# dockerfile: Dockerfile.prod
# ports:
-# - '3004:80'
\ No newline at end of file
+# - '3004:80'
diff --git a/frontend/src/App.js b/frontend/src/App.js
index a4622ad..a9bdd5d 100755
--- a/frontend/src/App.js
+++ b/frontend/src/App.js
@@ -842,7 +842,7 @@ function BestPlaysPanel(p) {
var [update,setUpdate] = useState(false)
useEffect(()=>{
- axios.get("http://www.projectdivar.com/bestplays/"+p.username+"?fails=false&limit=5&offset=0")
+ axios.get("http://projectdivar.com/bestplays/"+p.username+"?fails=false&limit=5&offset=0")
.then((data)=>{setBestPlays(data.data);})
},[p.profileUpdate,update,p.username])
@@ -851,7 +851,7 @@ function BestPlaysPanel(p) {
{bestPlays.map((play,i)=>{return
})}
-
+
@@ -948,7 +948,7 @@ function PlayData(p) {
Individual Plays for {p.song.name} from {p.username}
{data.map((play,i)=>
)}
-
+
>
@@ -2407,7 +2407,7 @@ function Website() {
const [userSettings,setUserSettings] = useState({})
useEffect(()=>{
- axios.get("http://www.projectdivar.com/songs")
+ axios.get("http://.projectdivar.com/songs")
.then((data)=>{
setSongs(data.data)
})
diff --git a/frontend/src/setupProxy.js b/frontend/src/setupProxy.js
old mode 100755
new mode 100644
index 2f81bc4..3c203c3
--- a/frontend/src/setupProxy.js
+++ b/frontend/src/setupProxy.js
@@ -1,501 +1,522 @@
const { createProxyMiddleware } = require('http-proxy-middleware');
-module.exports = function(app) {
- /*app.use(
+module.exports = function (app) {
+ /*app.use(
"/event/query",
createProxyMiddleware({
target: 'http://server:4501',
changeOrigin: true,
})
);*/
- app.use(
- "/sigcrafting",
- createProxyMiddleware({
- target: 'http://server:3001',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/class",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/class_level_data",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/class_weapon_type_data",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/weapon",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/weapon_existence_data",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/weapon_type",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/armor",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/potential",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/potential_data",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/builds",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/skill",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/skill_type",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/skill_data",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/augment",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/augment_type",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/food_mult",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/roles",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/users",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner/food",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ngsplanner",
- createProxyMiddleware({
- target: 'https://server2:4504',
- changeOrigin: true,
- })
- );
- app.use(
- "/ev",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/cans",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/eventchart",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/eventsubmit",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/eventdata",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/eventdata/t20",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/recalculatePlayerData/:id",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/streamtop/:id",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/streamkill/:id",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/streamstart/:id",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/streaminfo/:id",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/updates/:userid",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/passImageData",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/getUserAuthData",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/streamdata/:id",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/updateuser",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/findsong/:songname",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/authenticate/authToken",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/updateRegisteredState",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/authenticate/login",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/authenticateuser",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/sendemail/register",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/sendemail/login",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/recentplays/:username",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/plays/:username/:songname",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/song/:songname/:difficulty",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/ratings/:songname",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/completionreport/:username",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/songmods/:username/:songname/:difficulty",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/songpfccount/:username/:songname/:difficulty",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/songs",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/bestplays/:username",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/image",
- createProxyMiddleware({
- target: 'http://projectdivar.com:4503',
- changeOrigin: true,
- })
- );
- app.use(
- "/upload",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/song/:songname",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/remove",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/submit",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/songdiffs",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/accuracy/:username",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/recalculatescore/:playid",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/bestplay/:username/:songname/:difficulty",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/userdata/:username",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/playcount/:username/:songname/:difficulty",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/songpasscount/:username/:songname/:difficulty",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/songfccount/:username/:songname/:difficulty",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/rating/:username",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/users/:orderby/:sortorder",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/twitter/mentions",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
- app.use(
- "/files",
- createProxyMiddleware({
- target: 'http://server:4501',
- changeOrigin: true,
- })
- );
+ app.use(
+ "/sigcrafting",
+ createProxyMiddleware({
+ target: 'http://server:3001',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/gitea",
+ createProxyMiddleware({
+ target: 'http://sig.projectdivar.com',
+ changeOrigin:false,
+ })
+ );
+ app.use(
+ "/ngsplanner/class",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/class_level_data",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/class_weapon_type_data",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/weapon",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/weapon_existence_data",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/weapon_type",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/armor",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/potential",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/potential_data",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/builds",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/skill",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/skill_type",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/skill_data",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/augment",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/augment_type",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/food_mult",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/roles",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/users",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner/food",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ngsplanner",
+ createProxyMiddleware({
+ target: 'https://server2:4504',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ev",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/cans",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/eventchart",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/create-event",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/event/leaderboard",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/eventsubmit",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/eventdata",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/eventdata/t20",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/recalculatePlayerData/:id",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/streamtop/:id",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/streamkill/:id",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/streamstart/:id",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/streaminfo/:id",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/updates/:userid",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/passImageData",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/getUserAuthData",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/streamdata/:id",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/updateuser",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/findsong/:songname",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/authenticate/authToken",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/updateRegisteredState",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/authenticate/login",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/authenticateuser",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/sendemail/register",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/sendemail/login",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/recentplays/:username",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/plays/:username/:songname",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/song/:songname/:difficulty",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/ratings/:songname",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/completionreport/:username",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/songmods/:username/:songname/:difficulty",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/songpfccount/:username/:songname/:difficulty",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/songs",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/bestplays/:username",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/image",
+ createProxyMiddleware({
+ target: 'http://projectdivar.com:4503',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/upload",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/song/:songname",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/remove",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/submit",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/songdiffs",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/accuracy/:username",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/recalculatescore/:playid",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/bestplay/:username/:songname/:difficulty",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/userdata/:username",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/playcount/:username/:songname/:difficulty",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/songpasscount/:username/:songname/:difficulty",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/songfccount/:username/:songname/:difficulty",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/rating/:username",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/users/:orderby/:sortorder",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/twitter/mentions",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
+ app.use(
+ "/files",
+ createProxyMiddleware({
+ target: 'http://server:4501',
+ changeOrigin: true,
+ })
+ );
};
diff --git a/server/.dockerignore b/server/.dockerignore
new file mode 100644
index 0000000..30bc162
--- /dev/null
+++ b/server/.dockerignore
@@ -0,0 +1 @@
+/node_modules
\ No newline at end of file
diff --git a/server/Dockerfile b/server/Dockerfile
old mode 100755
new mode 100644
index d8e6ef2..b0e4026
--- a/server/Dockerfile
+++ b/server/Dockerfile
@@ -1,89 +1,37 @@
-FROM phusion/baseimage:bionic-1.0.0
+from node:16-alpine
-CMD ["/sbin/my_init"]
+RUN apk update
-ENV JAVA_MAJOR_VERSION=11
+RUN apk add --no-cache \
+ sudo \
+ curl \
+ build-base \
+ g++ \
+ libpng \
+ libpng-dev \
+ jpeg-dev \
+ pango-dev \
+ cairo-dev \
+ giflib-dev \
+ python3
-RUN mkdir -p /src/app
-RUN apt-get update \
- && apt-get install -y --no-install-recommends tzdata curl ca-certificates fontconfig locales \
- && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \
- && locale-gen en_US.UTF-8 \
- && rm -rf /var/lib/apt/lists/*
+RUN apk add --no-cache tini
-ENV JAVA_VERSION jdk-11.0.8+10
+RUN apk add ffmpeg
-RUN set -eux; \
- ARCH="$(dpkg --print-architecture)"; \
- case "${ARCH}" in \
- aarch64|arm64) \
- ESUM='286c869dbaefda9b470ae71d1250fdecf9f06d8da97c0f7df9021d381d749106'; \
- BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.8_10.tar.gz'; \
- ;; \
- armhf|armv7l) \
- ESUM='ffa627b2d0c6001448bb8f1f24f7c9921dad37e67637f6ed0a9a479e680a3393'; \
- BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jre_arm_linux_hotspot_11.0.8_10.tar.gz'; \
- ;; \
- ppc64el|ppc64le) \
- ESUM='89231e1667d7cc4202d1a401497bb287d4eb12281c90c17e2570211cc4e901a3'; \
- BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jre_ppc64le_linux_hotspot_11.0.8_10.tar.gz'; \
- ;; \
- s390x) \
- ESUM='dc0e715c17abcb12bedf77c638e58e67d828d3c4bf24a898f0d4b053caaeb25f'; \
- BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jre_s390x_linux_hotspot_11.0.8_10.tar.gz'; \
- ;; \
- amd64|x86_64) \
- ESUM='98615b1b369509965a612232622d39b5cefe117d6189179cbad4dcef2ee2f4e1'; \
- BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jre_x64_linux_hotspot_11.0.8_10.tar.gz'; \
- ;; \
- *) \
- echo "Unsupported arch: ${ARCH}"; \
- exit 1; \
- ;; \
- esac; \
- curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \
- echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
- mkdir -p /opt/java/openjdk; \
- cd /opt/java/openjdk; \
- tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
- rm -rf /tmp/openjdk.tar.gz;
-
-ENV JAVA_HOME=/opt/java/openjdk \
- PATH="/opt/java/openjdk/bin:$PATH"
-
-RUN apt-get update && \
- apt-get install -y ffmpeg && \
- apt-get clean;
+RUN yarn global add nodemon
-RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
- echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
- apt-get update && \
- apt-get install -y yarn;
+WORKDIR /src/app
+COPY ./package.json ./package-lock.json /src/app/
-WORKDIR /src/app
+RUN npm install
COPY . /src/app
-RUN yarn global add nodemon
-# update
-RUN apt-get update
-# install curl
-RUN apt-get install -y curl
-# get install script and pass it to execute:
-RUN curl -sL https://deb.nodesource.com/setup_12.x | bash
-# and install node
-RUN apt-get install -y nodejs
-# confirm that it was successful
-RUN node -v
-# npm installs automatically
-RUN npm -v
+EXPOSE 3005
-ENV TINI_VERSION v0.19.0
-ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
-RUN chmod +x /tini
-ENTRYPOINT ["/tini", "--"]
+ENTRYPOINT ["/sbin/tini", "--"]
-EXPOSE 3005
+CMD [ "nodemon", "app.js" ]
-CMD [ "nodemon", "app.js" ]
\ No newline at end of file
diff --git a/server/Dockerfile_old b/server/Dockerfile_old
new file mode 100755
index 0000000..d8e6ef2
--- /dev/null
+++ b/server/Dockerfile_old
@@ -0,0 +1,89 @@
+FROM phusion/baseimage:bionic-1.0.0
+
+CMD ["/sbin/my_init"]
+
+ENV JAVA_MAJOR_VERSION=11
+
+RUN mkdir -p /src/app
+RUN apt-get update \
+ && apt-get install -y --no-install-recommends tzdata curl ca-certificates fontconfig locales \
+ && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \
+ && locale-gen en_US.UTF-8 \
+ && rm -rf /var/lib/apt/lists/*
+
+ENV JAVA_VERSION jdk-11.0.8+10
+
+RUN set -eux; \
+ ARCH="$(dpkg --print-architecture)"; \
+ case "${ARCH}" in \
+ aarch64|arm64) \
+ ESUM='286c869dbaefda9b470ae71d1250fdecf9f06d8da97c0f7df9021d381d749106'; \
+ BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.8_10.tar.gz'; \
+ ;; \
+ armhf|armv7l) \
+ ESUM='ffa627b2d0c6001448bb8f1f24f7c9921dad37e67637f6ed0a9a479e680a3393'; \
+ BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jre_arm_linux_hotspot_11.0.8_10.tar.gz'; \
+ ;; \
+ ppc64el|ppc64le) \
+ ESUM='89231e1667d7cc4202d1a401497bb287d4eb12281c90c17e2570211cc4e901a3'; \
+ BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jre_ppc64le_linux_hotspot_11.0.8_10.tar.gz'; \
+ ;; \
+ s390x) \
+ ESUM='dc0e715c17abcb12bedf77c638e58e67d828d3c4bf24a898f0d4b053caaeb25f'; \
+ BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jre_s390x_linux_hotspot_11.0.8_10.tar.gz'; \
+ ;; \
+ amd64|x86_64) \
+ ESUM='98615b1b369509965a612232622d39b5cefe117d6189179cbad4dcef2ee2f4e1'; \
+ BINARY_URL='https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.8%2B10/OpenJDK11U-jre_x64_linux_hotspot_11.0.8_10.tar.gz'; \
+ ;; \
+ *) \
+ echo "Unsupported arch: ${ARCH}"; \
+ exit 1; \
+ ;; \
+ esac; \
+ curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \
+ echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
+ mkdir -p /opt/java/openjdk; \
+ cd /opt/java/openjdk; \
+ tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
+ rm -rf /tmp/openjdk.tar.gz;
+
+ENV JAVA_HOME=/opt/java/openjdk \
+ PATH="/opt/java/openjdk/bin:$PATH"
+
+RUN apt-get update && \
+ apt-get install -y ffmpeg && \
+ apt-get clean;
+
+RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
+ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
+ apt-get update && \
+ apt-get install -y yarn;
+
+
+WORKDIR /src/app
+
+COPY . /src/app
+
+RUN yarn global add nodemon
+# update
+RUN apt-get update
+# install curl
+RUN apt-get install -y curl
+# get install script and pass it to execute:
+RUN curl -sL https://deb.nodesource.com/setup_12.x | bash
+# and install node
+RUN apt-get install -y nodejs
+# confirm that it was successful
+RUN node -v
+# npm installs automatically
+RUN npm -v
+
+ENV TINI_VERSION v0.19.0
+ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
+RUN chmod +x /tini
+ENTRYPOINT ["/tini", "--"]
+
+EXPOSE 3005
+
+CMD [ "nodemon", "app.js" ]
\ No newline at end of file
diff --git a/server/app.js b/server/app.js
index eca86cc..ab37fa1 100755
--- a/server/app.js
+++ b/server/app.js
@@ -54,12 +54,8 @@ const db2 = new Pool({
port: 5432,
});
-app.use((req, _, next) => {
- req.db = db;
- next()
-})
-
exports.app = app;
+exports.db = db;
require("./routes/d4dj-routes");
@@ -2863,9 +2859,12 @@ function Process(data, ind) {
app.use(
"/files",
- express.static("files", {
+ express.static("files"
+/*,
+ {
maxAge: 86400000 * 30,
- })
+ }*/
+)
);
/*
diff --git a/server/files/JPOrbsP4S.png b/server/files/JPOrbsP4S.png
new file mode 100644
index 0000000..71ec860
Binary files /dev/null and b/server/files/JPOrbsP4S.png differ
diff --git a/server/files/SigTerm.txt b/server/files/SigTerm.txt
new file mode 100644
index 0000000..c1eff33
Binary files /dev/null and b/server/files/SigTerm.txt differ
diff --git a/server/files/leaderboard b/server/files/leaderboard
new file mode 100644
index 0000000..b3eeb3b
--- /dev/null
+++ b/server/files/leaderboard
@@ -0,0 +1 @@
+{"success":true,"message":"","data":{"leaderboard":[{"id":42,"membersId":147890,"dateAdded":"2023-03-18T21:49:01.000Z","lastUpdated":"2023-03-19T17:09:29.000Z","status":1,"totalPoints":328703,"rankingPoints":328703,"totalPass":24,"totalFc":16,"totalFec":13,"totalQuad":1,"totalQuint":0,"crossoverLevel":1237,"bracketLevel":2162,"footswitchLevel":1811,"jackLevel":932,"sideswitchLevel":3728,"doublestepLevel":1219,"staminaLevel":1352,"isBuddy":false,"preferences":"{\"discordId\":\"cmmf#8747\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"cmmf","sex":"Unspecified","profileImg":"https://i.imgur.com/XWuHg9J.png"},{"id":162,"membersId":49444,"dateAdded":"2023-03-18T22:26:42.000Z","lastUpdated":"2023-03-19T05:00:50.000Z","status":1,"totalPoints":312366,"rankingPoints":301681,"totalPass":48,"totalFc":17,"totalFec":15,"totalQuad":1,"totalQuint":0,"crossoverLevel":1380,"bracketLevel":1072,"footswitchLevel":1209,"jackLevel":1387,"sideswitchLevel":1021,"doublestepLevel":996,"staminaLevel":1610,"isBuddy":false,"preferences":"{\"discordId\":\"Freyja#4407\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"freyja","sex":"Female","profileImg":"https://i.ibb.co/26cb2XQ/Dbecdqk-151620b8-331a-42eb-9211-5d4798282726.jpg"},{"id":13,"membersId":7457,"dateAdded":"2023-03-18T21:48:42.000Z","lastUpdated":"2023-03-19T18:29:33.000Z","status":1,"totalPoints":301453,"rankingPoints":301453,"totalPass":12,"totalFc":7,"totalFec":36,"totalQuad":5,"totalQuint":0,"crossoverLevel":828,"bracketLevel":761,"footswitchLevel":1093,"jackLevel":1295,"sideswitchLevel":774,"doublestepLevel":1060,"staminaLevel":2101,"isBuddy":false,"preferences":"{\"discordId\":\"Bran#1685\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Krushrpants","sex":"Male","profileImg":""},{"id":48,"membersId":173699,"dateAdded":"2023-03-18T21:49:06.000Z","lastUpdated":"2023-03-19T05:18:55.000Z","status":1,"totalPoints":303921,"rankingPoints":269034,"totalPass":22,"totalFc":19,"totalFec":46,"totalQuad":4,"totalQuint":0,"crossoverLevel":2196,"bracketLevel":899,"footswitchLevel":1282,"jackLevel":1112,"sideswitchLevel":853,"doublestepLevel":1872,"staminaLevel":296,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"erictran0","sex":"Male","profileImg":""},{"id":302,"membersId":2026,"dateAdded":"2023-03-19T04:32:57.000Z","lastUpdated":"2023-03-19T09:28:57.000Z","status":1,"totalPoints":228371,"rankingPoints":228371,"totalPass":45,"totalFc":3,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":543,"bracketLevel":1233,"footswitchLevel":964,"jackLevel":749,"sideswitchLevel":407,"doublestepLevel":688,"staminaLevel":935,"isBuddy":false,"preferences":"{\"discordId\":\"dxultimate#6390\",\"decentsEnabled\":true,\"wayOffsEnabled\":false}","name":"BarX","sex":"Male","profileImg":""},{"id":187,"membersId":7737,"dateAdded":"2023-03-18T22:53:48.000Z","lastUpdated":"2023-03-19T18:31:05.000Z","status":1,"totalPoints":219448,"rankingPoints":219448,"totalPass":26,"totalFc":8,"totalFec":29,"totalQuad":3,"totalQuint":0,"crossoverLevel":877,"bracketLevel":936,"footswitchLevel":1364,"jackLevel":922,"sideswitchLevel":1068,"doublestepLevel":1091,"staminaLevel":622,"isBuddy":false,"preferences":"{\"discordId\":\"LemmingOnTheRun#7482\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DF.CaptainBlack","sex":"Male","profileImg":""},{"id":161,"membersId":128535,"dateAdded":"2023-03-18T22:25:38.000Z","lastUpdated":"2023-03-19T06:40:58.000Z","status":1,"totalPoints":201827,"rankingPoints":201827,"totalPass":23,"totalFc":8,"totalFec":12,"totalQuad":3,"totalQuint":0,"crossoverLevel":768,"bracketLevel":881,"footswitchLevel":869,"jackLevel":249,"sideswitchLevel":551,"doublestepLevel":819,"staminaLevel":1134,"isBuddy":false,"preferences":"{\"discordId\":\"Ritz#7358\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Ritz","sex":"Male","profileImg":"https://i.imgur.com/iwmsWIc.png"},{"id":12,"membersId":133006,"dateAdded":"2023-03-18T21:48:36.000Z","lastUpdated":"2023-03-19T01:14:04.000Z","status":1,"totalPoints":197711,"rankingPoints":197711,"totalPass":0,"totalFc":5,"totalFec":21,"totalQuad":4,"totalQuint":0,"crossoverLevel":527,"bracketLevel":1474,"footswitchLevel":1086,"jackLevel":722,"sideswitchLevel":964,"doublestepLevel":920,"staminaLevel":906,"isBuddy":false,"preferences":"{\"discordId\":\"ChanceR#2908\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Chance R.","sex":"Male","profileImg":""},{"id":116,"membersId":7385,"dateAdded":"2023-03-18T21:56:54.000Z","lastUpdated":"2023-03-19T01:40:34.000Z","status":1,"totalPoints":191652,"rankingPoints":191652,"totalPass":12,"totalFc":7,"totalFec":15,"totalQuad":0,"totalQuint":0,"crossoverLevel":54,"bracketLevel":75,"footswitchLevel":50,"jackLevel":172,"sideswitchLevel":0,"doublestepLevel":23,"staminaLevel":2868,"isBuddy":false,"preferences":"{\"discordId\":\"RainbowXynn#3637\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Xynn","sex":"Male","profileImg":"https://i.imgur.com/mbdst0K.jpg"},{"id":98,"membersId":7843,"dateAdded":"2023-03-18T21:52:50.000Z","lastUpdated":"2023-03-19T03:41:37.000Z","status":1,"totalPoints":174810,"rankingPoints":174810,"totalPass":4,"totalFc":3,"totalFec":17,"totalQuad":12,"totalQuint":0,"crossoverLevel":776,"bracketLevel":708,"footswitchLevel":912,"jackLevel":322,"sideswitchLevel":720,"doublestepLevel":470,"staminaLevel":342,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kigha","sex":"Female","profileImg":""},{"id":175,"membersId":66431,"dateAdded":"2023-03-18T22:38:00.000Z","lastUpdated":"2023-03-19T08:54:55.000Z","status":1,"totalPoints":169611,"rankingPoints":169611,"totalPass":8,"totalFc":5,"totalFec":16,"totalQuad":15,"totalQuint":0,"crossoverLevel":1164,"bracketLevel":964,"footswitchLevel":909,"jackLevel":707,"sideswitchLevel":520,"doublestepLevel":1125,"staminaLevel":168,"isBuddy":false,"preferences":"{\"discordId\":\"Berserker#2387\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Berserker","sex":"Male","profileImg":"https://i.imgur.com/QPfP2Mp.png"},{"id":190,"membersId":129254,"dateAdded":"2023-03-18T22:58:13.000Z","lastUpdated":"2023-03-19T02:50:04.000Z","status":1,"totalPoints":169279,"rankingPoints":169279,"totalPass":28,"totalFc":7,"totalFec":7,"totalQuad":1,"totalQuint":0,"crossoverLevel":802,"bracketLevel":437,"footswitchLevel":677,"jackLevel":379,"sideswitchLevel":514,"doublestepLevel":267,"staminaLevel":494,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ddrneel","sex":"Male","profileImg":""},{"id":40,"membersId":128698,"dateAdded":"2023-03-18T21:49:00.000Z","lastUpdated":"2023-03-19T01:47:26.000Z","status":1,"totalPoints":161373,"rankingPoints":161373,"totalPass":19,"totalFc":19,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":710,"bracketLevel":898,"footswitchLevel":906,"jackLevel":751,"sideswitchLevel":1395,"doublestepLevel":1017,"staminaLevel":443,"isBuddy":false,"preferences":"{\"discordId\":\"Exschwasion#5968\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Exschwasion","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/210350948055384064/957716217093820446/b.png"},{"id":26,"membersId":173788,"dateAdded":"2023-03-18T21:48:53.000Z","lastUpdated":"2023-03-19T18:28:48.000Z","status":1,"totalPoints":160169,"rankingPoints":160169,"totalPass":31,"totalFc":14,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":633,"bracketLevel":768,"footswitchLevel":1525,"jackLevel":341,"sideswitchLevel":906,"doublestepLevel":1000,"staminaLevel":422,"isBuddy":false,"preferences":"{\"discordId\":\"Jace#9339\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JaceITG","sex":"Male","profileImg":""},{"id":110,"membersId":173359,"dateAdded":"2023-03-18T21:54:58.000Z","lastUpdated":"2023-03-19T01:52:49.000Z","status":1,"totalPoints":156167,"rankingPoints":156167,"totalPass":16,"totalFc":12,"totalFec":23,"totalQuad":8,"totalQuint":0,"crossoverLevel":926,"bracketLevel":705,"footswitchLevel":837,"jackLevel":639,"sideswitchLevel":170,"doublestepLevel":684,"staminaLevel":372,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"xancara","sex":"Male","profileImg":""},{"id":216,"membersId":133806,"dateAdded":"2023-03-19T00:10:53.000Z","lastUpdated":"2023-03-19T04:31:04.000Z","status":1,"totalPoints":155169,"rankingPoints":155169,"totalPass":20,"totalFc":8,"totalFec":14,"totalQuad":1,"totalQuint":0,"crossoverLevel":880,"bracketLevel":725,"footswitchLevel":614,"jackLevel":727,"sideswitchLevel":304,"doublestepLevel":359,"staminaLevel":311,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PUYO","sex":"Unspecified","profileImg":"https://live.staticflickr.com/65535/51260131445_d6c068ca6e_m.jpg"},{"id":33,"membersId":61697,"dateAdded":"2023-03-18T21:48:57.000Z","lastUpdated":"2023-03-19T04:09:26.000Z","status":1,"totalPoints":154635,"rankingPoints":154635,"totalPass":22,"totalFc":10,"totalFec":12,"totalQuad":0,"totalQuint":0,"crossoverLevel":943,"bracketLevel":735,"footswitchLevel":959,"jackLevel":665,"sideswitchLevel":343,"doublestepLevel":1192,"staminaLevel":302,"isBuddy":false,"preferences":"{\"discordId\":\"Blizzrdball#3098\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Blizzrdball","sex":"Male","profileImg":"https://i.imgur.com/wgt2mm0.png"},{"id":254,"membersId":173047,"dateAdded":"2023-03-19T01:29:15.000Z","lastUpdated":"2023-03-19T18:23:45.000Z","status":1,"totalPoints":150983,"rankingPoints":150983,"totalPass":10,"totalFc":7,"totalFec":14,"totalQuad":1,"totalQuint":0,"crossoverLevel":750,"bracketLevel":789,"footswitchLevel":981,"jackLevel":612,"sideswitchLevel":1024,"doublestepLevel":850,"staminaLevel":348,"isBuddy":false,"preferences":"{\"discordId\":\"nvanleerdrums#8936\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nvanleerdrums","sex":"Male","profileImg":"https://i.imgur.com/wA4Bxoy.jpg"},{"id":57,"membersId":58407,"dateAdded":"2023-03-18T21:49:19.000Z","lastUpdated":"2023-03-19T06:00:33.000Z","status":1,"totalPoints":147367,"rankingPoints":147367,"totalPass":13,"totalFc":0,"totalFec":13,"totalQuad":7,"totalQuint":0,"crossoverLevel":481,"bracketLevel":1109,"footswitchLevel":765,"jackLevel":363,"sideswitchLevel":101,"doublestepLevel":1000,"staminaLevel":420,"isBuddy":false,"preferences":"{\"discordId\":\"pochoitg#4891\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Pocho","sex":"Male","profileImg":"https://c.tenor.com/qFiVMJ7kDGwAAAAM/catjam.gif"},{"id":114,"membersId":173653,"dateAdded":"2023-03-18T21:56:22.000Z","lastUpdated":"2023-03-19T18:28:00.000Z","status":1,"totalPoints":145315,"rankingPoints":145315,"totalPass":25,"totalFc":9,"totalFec":10,"totalQuad":1,"totalQuint":0,"crossoverLevel":851,"bracketLevel":341,"footswitchLevel":948,"jackLevel":332,"sideswitchLevel":354,"doublestepLevel":1030,"staminaLevel":203,"isBuddy":false,"preferences":"{\"discordId\":\"valgrind#2281\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"valgrind","sex":"Unspecified","profileImg":""},{"id":109,"membersId":175125,"dateAdded":"2023-03-18T21:54:52.000Z","lastUpdated":"2023-03-19T18:18:49.000Z","status":1,"totalPoints":145191,"rankingPoints":145191,"totalPass":6,"totalFc":8,"totalFec":9,"totalQuad":10,"totalQuint":0,"crossoverLevel":1044,"bracketLevel":403,"footswitchLevel":893,"jackLevel":267,"sideswitchLevel":1248,"doublestepLevel":607,"staminaLevel":386,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mixmasta","sex":"Male","profileImg":""},{"id":105,"membersId":168067,"dateAdded":"2023-03-18T21:53:38.000Z","lastUpdated":"2023-03-19T16:41:31.000Z","status":1,"totalPoints":175497,"rankingPoints":144849,"totalPass":41,"totalFc":56,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":1825,"bracketLevel":310,"footswitchLevel":835,"jackLevel":335,"sideswitchLevel":394,"doublestepLevel":1177,"staminaLevel":41,"isBuddy":false,"preferences":"{\"discordId\":\"BreakfastPM#2615\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BreakfastPM","sex":"Male","profileImg":"https://i.ibb.co/xhdGjnY/Avatar-Small.jpg"},{"id":52,"membersId":165504,"dateAdded":"2023-03-18T21:49:07.000Z","lastUpdated":"2023-03-19T18:29:41.000Z","status":1,"totalPoints":143537,"rankingPoints":143537,"totalPass":42,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":626,"bracketLevel":754,"footswitchLevel":697,"jackLevel":1291,"sideswitchLevel":1045,"doublestepLevel":893,"staminaLevel":502,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"_Temeraire","sex":"Unspecified","profileImg":""},{"id":43,"membersId":6284,"dateAdded":"2023-03-18T21:49:02.000Z","lastUpdated":"2023-03-18T23:43:24.000Z","status":1,"totalPoints":143147,"rankingPoints":143147,"totalPass":2,"totalFc":9,"totalFec":9,"totalQuad":5,"totalQuint":0,"crossoverLevel":584,"bracketLevel":578,"footswitchLevel":661,"jackLevel":346,"sideswitchLevel":421,"doublestepLevel":619,"staminaLevel":365,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Twix","sex":"Male","profileImg":""},{"id":231,"membersId":175374,"dateAdded":"2023-03-19T00:35:10.000Z","lastUpdated":"2023-03-19T17:28:13.000Z","status":1,"totalPoints":142416,"rankingPoints":142416,"totalPass":21,"totalFc":8,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":531,"bracketLevel":618,"footswitchLevel":688,"jackLevel":742,"sideswitchLevel":943,"doublestepLevel":639,"staminaLevel":467,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LordLui","sex":"Unspecified","profileImg":""},{"id":352,"membersId":146716,"dateAdded":"2023-03-19T14:35:19.000Z","lastUpdated":"2023-03-19T18:05:31.000Z","status":1,"totalPoints":141857,"rankingPoints":141857,"totalPass":6,"totalFc":7,"totalFec":3,"totalQuad":9,"totalQuint":0,"crossoverLevel":736,"bracketLevel":1047,"footswitchLevel":994,"jackLevel":312,"sideswitchLevel":1087,"doublestepLevel":470,"staminaLevel":319,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TadofTony","sex":"Male","profileImg":""},{"id":78,"membersId":174707,"dateAdded":"2023-03-18T21:50:22.000Z","lastUpdated":"2023-03-19T18:28:55.000Z","status":1,"totalPoints":141234,"rankingPoints":141234,"totalPass":28,"totalFc":32,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":1185,"bracketLevel":411,"footswitchLevel":795,"jackLevel":216,"sideswitchLevel":232,"doublestepLevel":956,"staminaLevel":123,"isBuddy":false,"preferences":"{\"discordId\":\"antifun#6584\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"antifun","sex":"Unspecified","profileImg":"https://i.imgur.com/YkgPNB2.png"},{"id":16,"membersId":174632,"dateAdded":"2023-03-18T21:48:45.000Z","lastUpdated":"2023-03-19T04:43:03.000Z","status":1,"totalPoints":140768,"rankingPoints":140768,"totalPass":34,"totalFc":15,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":977,"bracketLevel":484,"footswitchLevel":773,"jackLevel":714,"sideswitchLevel":810,"doublestepLevel":1018,"staminaLevel":172,"isBuddy":false,"preferences":"{\"discordId\":\"177013#8525\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SunkissEnjoyer","sex":"Unspecified","profileImg":"https://i.imgur.com/2YNygb4.png"},{"id":25,"membersId":172893,"dateAdded":"2023-03-18T21:48:52.000Z","lastUpdated":"2023-03-19T01:54:21.000Z","status":1,"totalPoints":132885,"rankingPoints":132885,"totalPass":19,"totalFc":6,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":577,"bracketLevel":1036,"footswitchLevel":910,"jackLevel":628,"sideswitchLevel":345,"doublestepLevel":731,"staminaLevel":391,"isBuddy":false,"preferences":"{\"discordId\":\"Smalls#9101\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Smalls","sex":"Male","profileImg":"https://i.imgur.com/RDuvnsC.jpg"},{"id":76,"membersId":87476,"dateAdded":"2023-03-18T21:50:19.000Z","lastUpdated":"2023-03-19T18:29:15.000Z","status":1,"totalPoints":127372,"rankingPoints":127372,"totalPass":2,"totalFc":7,"totalFec":6,"totalQuad":8,"totalQuint":1,"crossoverLevel":604,"bracketLevel":809,"footswitchLevel":704,"jackLevel":239,"sideswitchLevel":811,"doublestepLevel":452,"staminaLevel":405,"isBuddy":false,"preferences":"{\"discordId\":\"dimo#0420\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dimo","sex":"Male","profileImg":"https://imgur.com/4T9VibU.png"},{"id":29,"membersId":35701,"dateAdded":"2023-03-18T21:48:54.000Z","lastUpdated":"2023-03-19T15:11:25.000Z","status":1,"totalPoints":125323,"rankingPoints":125323,"totalPass":8,"totalFc":2,"totalFec":10,"totalQuad":11,"totalQuint":0,"crossoverLevel":628,"bracketLevel":422,"footswitchLevel":601,"jackLevel":298,"sideswitchLevel":433,"doublestepLevel":559,"staminaLevel":398,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lolipo","sex":"Female","profileImg":"https://imgur.com/VEubW0D.jpg"},{"id":65,"membersId":173296,"dateAdded":"2023-03-18T21:49:51.000Z","lastUpdated":"2023-03-19T06:31:56.000Z","status":1,"totalPoints":115713,"rankingPoints":115713,"totalPass":17,"totalFc":4,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":359,"bracketLevel":822,"footswitchLevel":584,"jackLevel":367,"sideswitchLevel":167,"doublestepLevel":397,"staminaLevel":452,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"IcyCold","sex":"Male","profileImg":""},{"id":89,"membersId":66785,"dateAdded":"2023-03-18T21:51:12.000Z","lastUpdated":"2023-03-19T18:20:55.000Z","status":1,"totalPoints":115284,"rankingPoints":115284,"totalPass":15,"totalFc":4,"totalFec":13,"totalQuad":0,"totalQuint":0,"crossoverLevel":625,"bracketLevel":781,"footswitchLevel":518,"jackLevel":376,"sideswitchLevel":101,"doublestepLevel":606,"staminaLevel":306,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Ralph Caffery","sex":"Male","profileImg":""},{"id":217,"membersId":37977,"dateAdded":"2023-03-19T00:11:23.000Z","lastUpdated":"2023-03-19T04:48:00.000Z","status":1,"totalPoints":112061,"rankingPoints":112061,"totalPass":8,"totalFc":10,"totalFec":19,"totalQuad":1,"totalQuint":0,"crossoverLevel":920,"bracketLevel":552,"footswitchLevel":519,"jackLevel":288,"sideswitchLevel":142,"doublestepLevel":418,"staminaLevel":93,"isBuddy":false,"preferences":"{\"discordId\":\"Valex#8095\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Valex","sex":"Male","profileImg":"https://i.imgur.com/OkpuTKw.jpg"},{"id":228,"membersId":66726,"dateAdded":"2023-03-19T00:32:24.000Z","lastUpdated":"2023-03-19T05:43:35.000Z","status":1,"totalPoints":111086,"rankingPoints":111086,"totalPass":14,"totalFc":14,"totalFec":9,"totalQuad":1,"totalQuint":0,"crossoverLevel":765,"bracketLevel":180,"footswitchLevel":466,"jackLevel":262,"sideswitchLevel":438,"doublestepLevel":442,"staminaLevel":143,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zeipher_Hawk","sex":"Male","profileImg":"https://img.pokemondb.net/sprites/home/shiny/1x/shuckle.png"},{"id":121,"membersId":173301,"dateAdded":"2023-03-18T21:58:47.000Z","lastUpdated":"2023-03-19T00:59:41.000Z","status":1,"totalPoints":111023,"rankingPoints":111023,"totalPass":15,"totalFc":4,"totalFec":2,"totalQuad":1,"totalQuint":0,"crossoverLevel":216,"bracketLevel":637,"footswitchLevel":532,"jackLevel":375,"sideswitchLevel":231,"doublestepLevel":303,"staminaLevel":662,"isBuddy":false,"preferences":"{\"discordId\":\"Chabala#4798\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Chabala","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/706313433422757888/960710993426661376/20190925_213154.jpg"},{"id":70,"membersId":173636,"dateAdded":"2023-03-18T21:49:56.000Z","lastUpdated":"2023-03-19T06:45:07.000Z","status":1,"totalPoints":109601,"rankingPoints":109601,"totalPass":13,"totalFc":1,"totalFec":4,"totalQuad":8,"totalQuint":0,"crossoverLevel":606,"bracketLevel":559,"footswitchLevel":758,"jackLevel":307,"sideswitchLevel":105,"doublestepLevel":556,"staminaLevel":275,"isBuddy":false,"preferences":"{\"discordId\":\"sarbackergaming#8250\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ZSL","sex":"Male","profileImg":"https://i.imgur.com/NvPX4bC.png"},{"id":314,"membersId":165524,"dateAdded":"2023-03-19T05:33:33.000Z","lastUpdated":"2023-03-19T09:21:35.000Z","status":1,"totalPoints":107521,"rankingPoints":107521,"totalPass":21,"totalFc":5,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":538,"bracketLevel":651,"footswitchLevel":333,"jackLevel":542,"sideswitchLevel":688,"doublestepLevel":365,"staminaLevel":236,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"COLLETnm7","sex":"Male","profileImg":"https://i.gyazo.com/be29cf05362aae1c603e7f39b3b9192c.png"},{"id":126,"membersId":173876,"dateAdded":"2023-03-18T22:00:50.000Z","lastUpdated":"2023-03-19T01:09:01.000Z","status":1,"totalPoints":106325,"rankingPoints":106325,"totalPass":37,"totalFc":7,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":960,"bracketLevel":94,"footswitchLevel":419,"jackLevel":306,"sideswitchLevel":502,"doublestepLevel":637,"staminaLevel":252,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sigonasr2","sex":"Male","profileImg":"https://en.gravatar.com/userimage/3612777/b9992e90331c1fa71a3479f5b3d02b41.png"},{"id":169,"membersId":127780,"dateAdded":"2023-03-18T22:33:53.000Z","lastUpdated":"2023-03-19T02:25:18.000Z","status":1,"totalPoints":105248,"rankingPoints":105248,"totalPass":25,"totalFc":5,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":240,"bracketLevel":65,"footswitchLevel":123,"jackLevel":56,"sideswitchLevel":234,"doublestepLevel":184,"staminaLevel":1269,"isBuddy":false,"preferences":"{\"discordId\":\"zoodles#2685\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Hamaon","sex":"Female","profileImg":"https://66.media.tumblr.com/a586c1c2635be3c2863b904b689d6bc6/tumblr_pvwcak806k1x3sogho4_250.png"},{"id":145,"membersId":145083,"dateAdded":"2023-03-18T22:13:54.000Z","lastUpdated":"2023-03-19T18:04:24.000Z","status":1,"totalPoints":104320,"rankingPoints":104320,"totalPass":18,"totalFc":6,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":542,"bracketLevel":313,"footswitchLevel":281,"jackLevel":398,"sideswitchLevel":485,"doublestepLevel":519,"staminaLevel":336,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LOLWUT","sex":"Male","profileImg":"https://i.imgur.com/LZQ5yoW.png"},{"id":3,"membersId":66246,"dateAdded":"2023-03-16T20:38:45.000Z","lastUpdated":"2023-03-19T05:27:05.000Z","status":1,"totalPoints":101161,"rankingPoints":101161,"totalPass":13,"totalFc":10,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":80,"bracketLevel":97,"footswitchLevel":171,"jackLevel":49,"sideswitchLevel":0,"doublestepLevel":103,"staminaLevel":1290,"isBuddy":false,"preferences":"{\"discordId\":\"Zankoku#4444\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zankoku","sex":"Male","profileImg":"http://sugoifactory.moe/things/dopparle5.png"},{"id":151,"membersId":145128,"dateAdded":"2023-03-18T22:17:00.000Z","lastUpdated":"2023-03-19T02:42:26.000Z","status":1,"totalPoints":100911,"rankingPoints":100911,"totalPass":17,"totalFc":6,"totalFec":4,"totalQuad":1,"totalQuint":0,"crossoverLevel":541,"bracketLevel":288,"footswitchLevel":718,"jackLevel":231,"sideswitchLevel":497,"doublestepLevel":598,"staminaLevel":276,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"H8EVRYTHNG","sex":"Male","profileImg":""},{"id":80,"membersId":66662,"dateAdded":"2023-03-18T21:50:33.000Z","lastUpdated":"2023-03-19T12:59:49.000Z","status":1,"totalPoints":99148,"rankingPoints":99148,"totalPass":33,"totalFc":0,"totalFec":8,"totalQuad":1,"totalQuint":0,"crossoverLevel":636,"bracketLevel":421,"footswitchLevel":542,"jackLevel":401,"sideswitchLevel":62,"doublestepLevel":756,"staminaLevel":59,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"itgaz","sex":"Male","profileImg":"https://media.tenor.com/images/65d3642f6d4b6cd2c0508f8b1b152f68/tenor.gif"},{"id":94,"membersId":5314,"dateAdded":"2023-03-18T21:52:01.000Z","lastUpdated":"2023-03-19T15:50:33.000Z","status":1,"totalPoints":99139,"rankingPoints":99139,"totalPass":7,"totalFc":7,"totalFec":6,"totalQuad":2,"totalQuint":0,"crossoverLevel":519,"bracketLevel":458,"footswitchLevel":426,"jackLevel":494,"sideswitchLevel":43,"doublestepLevel":358,"staminaLevel":333,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MrMeatloaf","sex":"Male","profileImg":"https://i.imgur.com/Ye5e236.jpg"},{"id":268,"membersId":7886,"dateAdded":"2023-03-19T01:58:08.000Z","lastUpdated":"2023-03-19T04:31:06.000Z","status":1,"totalPoints":98787,"rankingPoints":98787,"totalPass":13,"totalFc":4,"totalFec":7,"totalQuad":1,"totalQuint":0,"crossoverLevel":403,"bracketLevel":392,"footswitchLevel":366,"jackLevel":315,"sideswitchLevel":77,"doublestepLevel":194,"staminaLevel":380,"isBuddy":false,"preferences":"{\"discordId\":\"Zarzob#0001\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zarzob","sex":"Male","profileImg":"https://i.imgur.com/IbJlXCl.png"},{"id":233,"membersId":84583,"dateAdded":"2023-03-19T00:36:20.000Z","lastUpdated":"2023-03-19T15:37:31.000Z","status":1,"totalPoints":98753,"rankingPoints":98753,"totalPass":11,"totalFc":17,"totalFec":19,"totalQuad":0,"totalQuint":0,"crossoverLevel":978,"bracketLevel":251,"footswitchLevel":409,"jackLevel":166,"sideswitchLevel":287,"doublestepLevel":749,"staminaLevel":75,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lugea","sex":"Male","profileImg":"https://i.ibb.co/SRVLdQQ/bruno.png"},{"id":140,"membersId":174935,"dateAdded":"2023-03-18T22:09:53.000Z","lastUpdated":"2023-03-19T18:29:27.000Z","status":1,"totalPoints":97602,"rankingPoints":97602,"totalPass":18,"totalFc":11,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":605,"bracketLevel":151,"footswitchLevel":405,"jackLevel":134,"sideswitchLevel":182,"doublestepLevel":817,"staminaLevel":130,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"reset_itg","sex":"Unspecified","profileImg":""},{"id":226,"membersId":130786,"dateAdded":"2023-03-19T00:25:53.000Z","lastUpdated":"2023-03-19T02:54:48.000Z","status":1,"totalPoints":95141,"rankingPoints":95141,"totalPass":29,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":448,"bracketLevel":324,"footswitchLevel":389,"jackLevel":350,"sideswitchLevel":134,"doublestepLevel":317,"staminaLevel":282,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nuki","sex":"Unspecified","profileImg":""},{"id":46,"membersId":66587,"dateAdded":"2023-03-18T21:49:02.000Z","lastUpdated":"2023-03-19T00:39:11.000Z","status":1,"totalPoints":90786,"rankingPoints":90786,"totalPass":20,"totalFc":14,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":428,"bracketLevel":428,"footswitchLevel":378,"jackLevel":471,"sideswitchLevel":146,"doublestepLevel":427,"staminaLevel":269,"isBuddy":false,"preferences":"{\"discordId\":\"Lotarr#0466\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lotarr","sex":"Male","profileImg":"https://i.imgur.com/Z3lMRla.png"},{"id":41,"membersId":163426,"dateAdded":"2023-03-18T21:49:01.000Z","lastUpdated":"2023-03-19T00:52:50.000Z","status":1,"totalPoints":89990,"rankingPoints":89990,"totalPass":25,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":475,"bracketLevel":187,"footswitchLevel":603,"jackLevel":165,"sideswitchLevel":1416,"doublestepLevel":329,"staminaLevel":229,"isBuddy":false,"preferences":"{\"discordId\":\"GWen#2607\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"GWen","sex":"Male","profileImg":"https://i.imgur.com/7xdu36E.png"},{"id":63,"membersId":173182,"dateAdded":"2023-03-18T21:49:50.000Z","lastUpdated":"2023-03-18T23:43:51.000Z","status":1,"totalPoints":89771,"rankingPoints":89771,"totalPass":9,"totalFc":11,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":376,"bracketLevel":940,"footswitchLevel":521,"jackLevel":398,"sideswitchLevel":523,"doublestepLevel":344,"staminaLevel":164,"isBuddy":false,"preferences":"{\"discordId\":\"DDDAAA#5914\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DDDAAA","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/250042733303955467/941867594590322718/fernandey.png"},{"id":135,"membersId":66778,"dateAdded":"2023-03-18T22:04:30.000Z","lastUpdated":"2023-03-19T14:41:32.000Z","status":1,"totalPoints":88930,"rankingPoints":88930,"totalPass":4,"totalFc":3,"totalFec":11,"totalQuad":17,"totalQuint":0,"crossoverLevel":746,"bracketLevel":168,"footswitchLevel":575,"jackLevel":194,"sideswitchLevel":273,"doublestepLevel":528,"staminaLevel":111,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Shpadoinkle","sex":"Female","profileImg":""},{"id":193,"membersId":173050,"dateAdded":"2023-03-18T23:03:16.000Z","lastUpdated":"2023-03-19T01:42:15.000Z","status":1,"totalPoints":87542,"rankingPoints":87542,"totalPass":12,"totalFc":5,"totalFec":8,"totalQuad":1,"totalQuint":0,"crossoverLevel":423,"bracketLevel":528,"footswitchLevel":443,"jackLevel":141,"sideswitchLevel":143,"doublestepLevel":334,"staminaLevel":342,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Endymion360","sex":"Male","profileImg":"https://i.imgur.com/wvZXXWE.jpg"},{"id":17,"membersId":173058,"dateAdded":"2023-03-18T21:48:46.000Z","lastUpdated":"2023-03-19T02:01:33.000Z","status":1,"totalPoints":87116,"rankingPoints":87116,"totalPass":5,"totalFc":5,"totalFec":7,"totalQuad":7,"totalQuint":0,"crossoverLevel":665,"bracketLevel":293,"footswitchLevel":349,"jackLevel":302,"sideswitchLevel":31,"doublestepLevel":459,"staminaLevel":213,"isBuddy":false,"preferences":"{\"discordId\":\"Formless#8660\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Girth Brooks","sex":"Male","profileImg":"https://i.imgur.com/6DHh2Ra.png"},{"id":10,"membersId":129740,"dateAdded":"2023-03-18T21:48:29.000Z","lastUpdated":"2023-03-19T10:44:25.000Z","status":1,"totalPoints":84095,"rankingPoints":84095,"totalPass":46,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":670,"bracketLevel":154,"footswitchLevel":419,"jackLevel":226,"sideswitchLevel":102,"doublestepLevel":437,"staminaLevel":67,"isBuddy":false,"preferences":"{\"discordId\":\"TENKO#5796\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TENKO","sex":"Unspecified","profileImg":"https://i.imgur.com/qTNKsr2.png"},{"id":55,"membersId":134219,"dateAdded":"2023-03-18T21:49:10.000Z","lastUpdated":"2023-03-19T05:10:56.000Z","status":1,"totalPoints":83393,"rankingPoints":83393,"totalPass":12,"totalFc":2,"totalFec":5,"totalQuad":1,"totalQuint":0,"crossoverLevel":268,"bracketLevel":443,"footswitchLevel":414,"jackLevel":229,"sideswitchLevel":224,"doublestepLevel":138,"staminaLevel":258,"isBuddy":false,"preferences":"{\"discordId\":\"Zarinah#9770\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ZarinahBBM","sex":"Female","profileImg":"https://i.ibb.co/0f7Rrg3/My-home.png"},{"id":222,"membersId":166764,"dateAdded":"2023-03-19T00:14:39.000Z","lastUpdated":"2023-03-19T01:44:22.000Z","status":1,"totalPoints":81882,"rankingPoints":81882,"totalPass":24,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":580,"bracketLevel":488,"footswitchLevel":515,"jackLevel":165,"sideswitchLevel":326,"doublestepLevel":398,"staminaLevel":208,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"kadef","sex":"Male","profileImg":""},{"id":27,"membersId":154965,"dateAdded":"2023-03-18T21:48:54.000Z","lastUpdated":"2023-03-19T03:37:45.000Z","status":1,"totalPoints":79578,"rankingPoints":79578,"totalPass":17,"totalFc":5,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":670,"bracketLevel":342,"footswitchLevel":468,"jackLevel":589,"sideswitchLevel":768,"doublestepLevel":442,"staminaLevel":158,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Gpop","sex":"Male","profileImg":""},{"id":139,"membersId":3306,"dateAdded":"2023-03-18T22:07:50.000Z","lastUpdated":"2023-03-19T18:29:16.000Z","status":1,"totalPoints":79184,"rankingPoints":79184,"totalPass":10,"totalFc":0,"totalFec":11,"totalQuad":2,"totalQuint":0,"crossoverLevel":414,"bracketLevel":346,"footswitchLevel":368,"jackLevel":403,"sideswitchLevel":0,"doublestepLevel":460,"staminaLevel":91,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ElPapaCosmico","sex":"Male","profileImg":"https://i.pinimg.com/236x/3e/01/73/3e0173d36ceed20727f4724b71d2961e--rilakkuma-kitty.jpg"},{"id":173,"membersId":66558,"dateAdded":"2023-03-18T22:36:44.000Z","lastUpdated":"2023-03-19T02:30:38.000Z","status":1,"totalPoints":79109,"rankingPoints":79109,"totalPass":12,"totalFc":8,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":312,"bracketLevel":121,"footswitchLevel":386,"jackLevel":179,"sideswitchLevel":940,"doublestepLevel":150,"staminaLevel":559,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"xiaowuc1","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/680561230892630067/990419215724974080/sukuna.jpg"},{"id":340,"membersId":66753,"dateAdded":"2023-03-19T11:56:50.000Z","lastUpdated":"2023-03-19T16:32:16.000Z","status":1,"totalPoints":79007,"rankingPoints":79007,"totalPass":24,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":359,"bracketLevel":412,"footswitchLevel":266,"jackLevel":394,"sideswitchLevel":344,"doublestepLevel":363,"staminaLevel":247,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PkGam","sex":"Male","profileImg":"https://i.ibb.co/RDMrkmb/pkgam-icon-250.png"},{"id":127,"membersId":171721,"dateAdded":"2023-03-18T22:01:35.000Z","lastUpdated":"2023-03-19T18:27:15.000Z","status":1,"totalPoints":78597,"rankingPoints":78597,"totalPass":9,"totalFc":2,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":278,"bracketLevel":368,"footswitchLevel":293,"jackLevel":168,"sideswitchLevel":290,"doublestepLevel":367,"staminaLevel":275,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Higgy","sex":"Male","profileImg":""},{"id":49,"membersId":172895,"dateAdded":"2023-03-18T21:49:06.000Z","lastUpdated":"2023-03-19T02:57:43.000Z","status":1,"totalPoints":77242,"rankingPoints":77242,"totalPass":19,"totalFc":17,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":698,"bracketLevel":286,"footswitchLevel":277,"jackLevel":298,"sideswitchLevel":135,"doublestepLevel":271,"staminaLevel":31,"isBuddy":false,"preferences":"{\"discordId\":\"Sekii#8008\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sekiirei","sex":"Female","profileImg":"https://i.gyazo.com/a0e21eb4239c5139544515656668c7c5.png"},{"id":148,"membersId":135061,"dateAdded":"2023-03-18T22:14:07.000Z","lastUpdated":"2023-03-19T01:55:53.000Z","status":1,"totalPoints":76834,"rankingPoints":76834,"totalPass":18,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":66,"bracketLevel":190,"footswitchLevel":126,"jackLevel":114,"sideswitchLevel":0,"doublestepLevel":42,"staminaLevel":759,"isBuddy":false,"preferences":"{\"discordId\":\"airplane#8871\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"airplane","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/749406224365387837/987950518754238505/195-00.png"},{"id":34,"membersId":62987,"dateAdded":"2023-03-18T21:48:58.000Z","lastUpdated":"2023-03-18T23:39:37.000Z","status":1,"totalPoints":73647,"rankingPoints":73647,"totalPass":1,"totalFc":3,"totalFec":5,"totalQuad":7,"totalQuint":0,"crossoverLevel":286,"bracketLevel":449,"footswitchLevel":343,"jackLevel":220,"sideswitchLevel":307,"doublestepLevel":435,"staminaLevel":85,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"iamsimo4life","sex":"Male","profileImg":"https://i.postimg.cc/wjfwxj6Q/iris-3.jpg"},{"id":36,"membersId":127813,"dateAdded":"2023-03-18T21:48:59.000Z","lastUpdated":"2023-03-19T04:05:22.000Z","status":1,"totalPoints":70850,"rankingPoints":70850,"totalPass":10,"totalFc":8,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":283,"bracketLevel":546,"footswitchLevel":486,"jackLevel":273,"sideswitchLevel":486,"doublestepLevel":192,"staminaLevel":115,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"RakkiiCB","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/924755977067171940/986492744136556554/Untitled-1.png"},{"id":53,"membersId":173267,"dateAdded":"2023-03-18T21:49:07.000Z","lastUpdated":"2023-03-19T02:02:33.000Z","status":1,"totalPoints":69984,"rankingPoints":69984,"totalPass":8,"totalFc":4,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":317,"bracketLevel":327,"footswitchLevel":468,"jackLevel":515,"sideswitchLevel":115,"doublestepLevel":596,"staminaLevel":92,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CERiNG","sex":"Unspecified","profileImg":"https://i.imgur.com/7XZZDsY.png"},{"id":185,"membersId":256,"dateAdded":"2023-03-18T22:49:44.000Z","lastUpdated":"2023-03-19T17:05:44.000Z","status":1,"totalPoints":69877,"rankingPoints":69877,"totalPass":12,"totalFc":6,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":406,"bracketLevel":173,"footswitchLevel":193,"jackLevel":206,"sideswitchLevel":82,"doublestepLevel":266,"staminaLevel":145,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DanPeriod","sex":"Male","profileImg":"https://i.ibb.co/2Sh9tbx/danderpborder.png"},{"id":6,"membersId":4362,"dateAdded":"2023-03-17T05:35:44.000Z","lastUpdated":"2023-03-19T18:26:15.000Z","status":1,"totalPoints":69363,"rankingPoints":69363,"totalPass":3,"totalFc":0,"totalFec":8,"totalQuad":7,"totalQuint":0,"crossoverLevel":428,"bracketLevel":315,"footswitchLevel":552,"jackLevel":79,"sideswitchLevel":69,"doublestepLevel":115,"staminaLevel":82,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"VKIM","sex":"Male","profileImg":""},{"id":37,"membersId":173251,"dateAdded":"2023-03-18T21:49:00.000Z","lastUpdated":"2023-03-19T03:48:05.000Z","status":1,"totalPoints":68401,"rankingPoints":68401,"totalPass":17,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":347,"bracketLevel":335,"footswitchLevel":519,"jackLevel":465,"sideswitchLevel":164,"doublestepLevel":421,"staminaLevel":145,"isBuddy":false,"preferences":"{\"discordId\":\"sorae#7138\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sorae","sex":"Unspecified","profileImg":"https://i.imgur.com/cJEaR4t.png"},{"id":356,"membersId":173228,"dateAdded":"2023-03-19T15:33:53.000Z","lastUpdated":"2023-03-19T17:07:56.000Z","status":1,"totalPoints":68104,"rankingPoints":68104,"totalPass":15,"totalFc":8,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":456,"bracketLevel":213,"footswitchLevel":419,"jackLevel":315,"sideswitchLevel":208,"doublestepLevel":254,"staminaLevel":61,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"warriorddr","sex":"Male","profileImg":""},{"id":85,"membersId":174617,"dateAdded":"2023-03-18T21:50:59.000Z","lastUpdated":"2023-03-19T00:52:54.000Z","status":1,"totalPoints":68081,"rankingPoints":68081,"totalPass":9,"totalFc":9,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":427,"bracketLevel":147,"footswitchLevel":350,"jackLevel":252,"sideswitchLevel":245,"doublestepLevel":501,"staminaLevel":71,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ForkySpoon","sex":"Male","profileImg":""},{"id":279,"membersId":75846,"dateAdded":"2023-03-19T02:46:25.000Z","lastUpdated":"2023-03-19T05:02:57.000Z","status":1,"totalPoints":66768,"rankingPoints":66768,"totalPass":13,"totalFc":16,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":448,"bracketLevel":62,"footswitchLevel":187,"jackLevel":143,"sideswitchLevel":0,"doublestepLevel":279,"staminaLevel":20,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Rarily","sex":"Female","profileImg":"https://img.pokemondb.net/sprites/home/shiny/1x/shaymin-land.png"},{"id":249,"membersId":173305,"dateAdded":"2023-03-19T01:12:08.000Z","lastUpdated":"2023-03-19T18:29:00.000Z","status":1,"totalPoints":66662,"rankingPoints":66662,"totalPass":10,"totalFc":4,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":267,"bracketLevel":189,"footswitchLevel":391,"jackLevel":194,"sideswitchLevel":390,"doublestepLevel":349,"staminaLevel":232,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Maxximus","sex":"Male","profileImg":"https://tinypic.host/images/2022/07/23/20220722_2041002.jpg"},{"id":54,"membersId":128890,"dateAdded":"2023-03-18T21:49:07.000Z","lastUpdated":"2023-03-19T01:17:48.000Z","status":1,"totalPoints":66283,"rankingPoints":66283,"totalPass":12,"totalFc":7,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":694,"bracketLevel":121,"footswitchLevel":332,"jackLevel":172,"sideswitchLevel":286,"doublestepLevel":667,"staminaLevel":30,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Coneja","sex":"Female","profileImg":"https://i.imgur.com/7OyrT96.png"},{"id":347,"membersId":134767,"dateAdded":"2023-03-19T13:30:42.000Z","lastUpdated":"2023-03-19T16:15:13.000Z","status":1,"totalPoints":66185,"rankingPoints":66185,"totalPass":21,"totalFc":21,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":762,"bracketLevel":178,"footswitchLevel":273,"jackLevel":101,"sideswitchLevel":0,"doublestepLevel":512,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"NaoHikari","sex":"Male","profileImg":"https://i.imgur.com/vuu78zs.png"},{"id":21,"membersId":128047,"dateAdded":"2023-03-18T21:48:49.000Z","lastUpdated":"2023-03-19T01:55:22.000Z","status":1,"totalPoints":65535,"rankingPoints":65535,"totalPass":4,"totalFc":1,"totalFec":9,"totalQuad":1,"totalQuint":0,"crossoverLevel":431,"bracketLevel":508,"footswitchLevel":448,"jackLevel":415,"sideswitchLevel":194,"doublestepLevel":421,"staminaLevel":171,"isBuddy":false,"preferences":"{\"discordId\":\"tak#7483\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Talkion","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/598009719453384716/990351215835627560/tak200.png"},{"id":124,"membersId":128002,"dateAdded":"2023-03-18T21:59:44.000Z","lastUpdated":"2023-03-18T23:53:47.000Z","status":1,"totalPoints":64871,"rankingPoints":64871,"totalPass":1,"totalFc":8,"totalFec":8,"totalQuad":6,"totalQuint":0,"crossoverLevel":604,"bracketLevel":249,"footswitchLevel":259,"jackLevel":254,"sideswitchLevel":444,"doublestepLevel":425,"staminaLevel":70,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MoistBruh","sex":"Male","profileImg":"https://i.pinimg.com/originals/49/d6/ca/49d6caf0bd9760b8d709fe8193b413df.jpg"},{"id":73,"membersId":76562,"dateAdded":"2023-03-18T21:50:10.000Z","lastUpdated":"2023-03-19T15:58:28.000Z","status":1,"totalPoints":64457,"rankingPoints":64457,"totalPass":11,"totalFc":8,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":470,"bracketLevel":256,"footswitchLevel":272,"jackLevel":181,"sideswitchLevel":244,"doublestepLevel":401,"staminaLevel":99,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"robin_","sex":"Male","profileImg":""},{"id":125,"membersId":147886,"dateAdded":"2023-03-18T22:00:45.000Z","lastUpdated":"2023-03-19T00:54:39.000Z","status":1,"totalPoints":61870,"rankingPoints":61870,"totalPass":2,"totalFc":8,"totalFec":2,"totalQuad":1,"totalQuint":0,"crossoverLevel":238,"bracketLevel":248,"footswitchLevel":352,"jackLevel":323,"sideswitchLevel":256,"doublestepLevel":378,"staminaLevel":275,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Slowest","sex":"Unspecified","profileImg":""},{"id":371,"membersId":173145,"dateAdded":"2023-03-19T17:02:51.000Z","lastUpdated":"2023-03-19T18:28:55.000Z","status":1,"totalPoints":58256,"rankingPoints":58256,"totalPass":8,"totalFc":6,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":300,"bracketLevel":243,"footswitchLevel":218,"jackLevel":139,"sideswitchLevel":113,"doublestepLevel":371,"staminaLevel":70,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"miklowcic","sex":"Male","profileImg":"https://i.imgur.com/CXKK11f.jpg"},{"id":61,"membersId":174010,"dateAdded":"2023-03-18T21:49:40.000Z","lastUpdated":"2023-03-19T12:45:12.000Z","status":1,"totalPoints":56943,"rankingPoints":56943,"totalPass":24,"totalFc":7,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":398,"bracketLevel":52,"footswitchLevel":207,"jackLevel":143,"sideswitchLevel":20,"doublestepLevel":257,"staminaLevel":60,"isBuddy":false,"preferences":"{\"discordId\":\"zibson#4140\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"zibson","sex":"Unspecified","profileImg":""},{"id":90,"membersId":66443,"dateAdded":"2023-03-18T21:51:24.000Z","lastUpdated":"2023-03-19T00:51:53.000Z","status":1,"totalPoints":54891,"rankingPoints":54891,"totalPass":6,"totalFc":3,"totalFec":13,"totalQuad":1,"totalQuint":0,"crossoverLevel":535,"bracketLevel":72,"footswitchLevel":312,"jackLevel":126,"sideswitchLevel":115,"doublestepLevel":561,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"limitin","sex":"Male","profileImg":""},{"id":246,"membersId":173137,"dateAdded":"2023-03-19T01:00:25.000Z","lastUpdated":"2023-03-19T10:12:00.000Z","status":1,"totalPoints":53813,"rankingPoints":53813,"totalPass":5,"totalFc":5,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":489,"bracketLevel":241,"footswitchLevel":233,"jackLevel":271,"sideswitchLevel":22,"doublestepLevel":238,"staminaLevel":132,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Floms","sex":"Male","profileImg":""},{"id":330,"membersId":173319,"dateAdded":"2023-03-19T10:01:20.000Z","lastUpdated":"2023-03-19T17:49:06.000Z","status":1,"totalPoints":53490,"rankingPoints":53490,"totalPass":15,"totalFc":5,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":349,"bracketLevel":223,"footswitchLevel":392,"jackLevel":161,"sideswitchLevel":477,"doublestepLevel":111,"staminaLevel":52,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"D0omsday","sex":"Male","profileImg":""},{"id":113,"membersId":4819,"dateAdded":"2023-03-18T21:55:29.000Z","lastUpdated":"2023-03-19T13:18:03.000Z","status":1,"totalPoints":53357,"rankingPoints":53357,"totalPass":11,"totalFc":3,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":512,"bracketLevel":96,"footswitchLevel":349,"jackLevel":82,"sideswitchLevel":234,"doublestepLevel":188,"staminaLevel":71,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Renbrandt","sex":"Male","profileImg":"https://i.imgur.com/WPPQI0D.png"},{"id":247,"membersId":173037,"dateAdded":"2023-03-19T01:06:17.000Z","lastUpdated":"2023-03-19T04:22:59.000Z","status":1,"totalPoints":52991,"rankingPoints":52991,"totalPass":4,"totalFc":0,"totalFec":9,"totalQuad":5,"totalQuint":0,"crossoverLevel":296,"bracketLevel":458,"footswitchLevel":276,"jackLevel":138,"sideswitchLevel":60,"doublestepLevel":327,"staminaLevel":55,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Fanatik25","sex":"Male","profileImg":"https://cdn.discordapp.com/avatars/415354956346949632/2b58a95153add52b12d7cfa6ed6a565a.png"},{"id":355,"membersId":173142,"dateAdded":"2023-03-19T15:16:09.000Z","lastUpdated":"2023-03-19T16:19:13.000Z","status":1,"totalPoints":52933,"rankingPoints":52933,"totalPass":6,"totalFc":1,"totalFec":3,"totalQuad":1,"totalQuint":0,"crossoverLevel":181,"bracketLevel":235,"footswitchLevel":171,"jackLevel":44,"sideswitchLevel":44,"doublestepLevel":184,"staminaLevel":200,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Yung ButtCoin","sex":"Male","profileImg":""},{"id":97,"membersId":173118,"dateAdded":"2023-03-18T21:52:44.000Z","lastUpdated":"2023-03-19T18:21:52.000Z","status":1,"totalPoints":52754,"rankingPoints":52754,"totalPass":4,"totalFc":4,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":499,"bracketLevel":198,"footswitchLevel":445,"jackLevel":39,"sideswitchLevel":123,"doublestepLevel":414,"staminaLevel":93,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"HellKiteChaos","sex":"Male","profileImg":"https://i.imgur.com/ebA93n3.png"},{"id":11,"membersId":173184,"dateAdded":"2023-03-18T21:48:30.000Z","lastUpdated":"2023-03-19T02:57:44.000Z","status":1,"totalPoints":51546,"rankingPoints":51546,"totalPass":30,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":358,"bracketLevel":100,"footswitchLevel":275,"jackLevel":100,"sideswitchLevel":61,"doublestepLevel":336,"staminaLevel":51,"isBuddy":false,"preferences":"{\"discordId\":\"Maybell Eigenhart (& co.) 🌻#4859\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Maybell Eigenhart","sex":"Female","profileImg":"https://i.imgur.com/uZKJzLL.png"},{"id":274,"membersId":142757,"dateAdded":"2023-03-19T02:31:13.000Z","lastUpdated":"2023-03-19T06:41:52.000Z","status":1,"totalPoints":47324,"rankingPoints":47324,"totalPass":18,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":134,"bracketLevel":221,"footswitchLevel":195,"jackLevel":125,"sideswitchLevel":112,"doublestepLevel":128,"staminaLevel":154,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Rudeshadow","sex":"Unspecified","profileImg":"https://cdn.discordapp.com/attachments/957781689067769917/957783160312193085/kronii_avatar.png"},{"id":158,"membersId":4290,"dateAdded":"2023-03-18T22:23:23.000Z","lastUpdated":"2023-03-19T17:05:03.000Z","status":1,"totalPoints":47290,"rankingPoints":47290,"totalPass":12,"totalFc":7,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":334,"bracketLevel":161,"footswitchLevel":202,"jackLevel":135,"sideswitchLevel":239,"doublestepLevel":148,"staminaLevel":53,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ROBIJO","sex":"Male","profileImg":""},{"id":150,"membersId":173105,"dateAdded":"2023-03-18T22:15:52.000Z","lastUpdated":"2023-03-19T04:57:18.000Z","status":1,"totalPoints":45876,"rankingPoints":45876,"totalPass":7,"totalFc":8,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":296,"bracketLevel":139,"footswitchLevel":289,"jackLevel":220,"sideswitchLevel":152,"doublestepLevel":514,"staminaLevel":29,"isBuddy":false,"preferences":"{\"discordId\":\"Losermanwins#0088\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TheManwich","sex":"Male","profileImg":"https://i.imgur.com/yeHbdpC.png"},{"id":351,"membersId":173315,"dateAdded":"2023-03-19T14:23:32.000Z","lastUpdated":"2023-03-19T16:28:56.000Z","status":1,"totalPoints":44907,"rankingPoints":44907,"totalPass":18,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":268,"bracketLevel":425,"footswitchLevel":302,"jackLevel":147,"sideswitchLevel":104,"doublestepLevel":205,"staminaLevel":34,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"vintogigue","sex":"Unspecified","profileImg":""},{"id":294,"membersId":345,"dateAdded":"2023-03-19T03:45:05.000Z","lastUpdated":"2023-03-19T05:43:59.000Z","status":1,"totalPoints":43463,"rankingPoints":43463,"totalPass":6,"totalFc":2,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":236,"bracketLevel":166,"footswitchLevel":207,"jackLevel":87,"sideswitchLevel":61,"doublestepLevel":48,"staminaLevel":163,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kaze","sex":"Male","profileImg":""},{"id":248,"membersId":175368,"dateAdded":"2023-03-19T01:07:36.000Z","lastUpdated":"2023-03-19T04:02:39.000Z","status":1,"totalPoints":42739,"rankingPoints":42739,"totalPass":10,"totalFc":5,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":436,"bracketLevel":58,"footswitchLevel":128,"jackLevel":4,"sideswitchLevel":21,"doublestepLevel":212,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"KINDLADY","sex":"Unspecified","profileImg":"https://www.simpleimageresizer.com/_uploads/photos/af86e21c/IMG_3911_250x250.jpg"},{"id":86,"membersId":76988,"dateAdded":"2023-03-18T21:51:01.000Z","lastUpdated":"2023-03-19T18:30:14.000Z","status":1,"totalPoints":41418,"rankingPoints":41418,"totalPass":11,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":316,"bracketLevel":206,"footswitchLevel":259,"jackLevel":132,"sideswitchLevel":343,"doublestepLevel":217,"staminaLevel":76,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"1ug1a","sex":"Unspecified","profileImg":"https://media.discordapp.net/attachments/615272349335420968/850073257960931388/hm_icon_Custom_2.png"},{"id":257,"membersId":173285,"dateAdded":"2023-03-19T01:39:17.000Z","lastUpdated":"2023-03-19T03:58:21.000Z","status":1,"totalPoints":41330,"rankingPoints":41330,"totalPass":8,"totalFc":2,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":195,"bracketLevel":66,"footswitchLevel":92,"jackLevel":76,"sideswitchLevel":79,"doublestepLevel":172,"staminaLevel":85,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"pogjamie","sex":"Unspecified","profileImg":"https://i.imgur.com/Gc1UYNf.png"},{"id":156,"membersId":3761,"dateAdded":"2023-03-18T22:21:55.000Z","lastUpdated":"2023-03-18T23:35:24.000Z","status":1,"totalPoints":39077,"rankingPoints":39077,"totalPass":1,"totalFc":3,"totalFec":1,"totalQuad":3,"totalQuint":0,"crossoverLevel":185,"bracketLevel":349,"footswitchLevel":202,"jackLevel":57,"sideswitchLevel":0,"doublestepLevel":219,"staminaLevel":27,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BBLON","sex":"Male","profileImg":"https://i.imgur.com/u3fOa37.png"},{"id":235,"membersId":174904,"dateAdded":"2023-03-19T00:43:20.000Z","lastUpdated":"2023-03-19T02:16:40.000Z","status":1,"totalPoints":38609,"rankingPoints":38609,"totalPass":9,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":226,"bracketLevel":113,"footswitchLevel":124,"jackLevel":136,"sideswitchLevel":87,"doublestepLevel":94,"staminaLevel":179,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Choden","sex":"Unspecified","profileImg":""},{"id":100,"membersId":175227,"dateAdded":"2023-03-18T21:53:20.000Z","lastUpdated":"2023-03-19T00:18:41.000Z","status":1,"totalPoints":36441,"rankingPoints":36441,"totalPass":8,"totalFc":7,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":177,"bracketLevel":89,"footswitchLevel":151,"jackLevel":48,"sideswitchLevel":0,"doublestepLevel":233,"staminaLevel":24,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"yoonjelly","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/940655461886206012/1082481090436022282/pfp_250x250.png"},{"id":259,"membersId":133783,"dateAdded":"2023-03-19T01:40:35.000Z","lastUpdated":"2023-03-19T18:03:31.000Z","status":1,"totalPoints":35127,"rankingPoints":35127,"totalPass":6,"totalFc":3,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":343,"bracketLevel":69,"footswitchLevel":180,"jackLevel":73,"sideswitchLevel":0,"doublestepLevel":100,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Viper","sex":"Female","profileImg":"https://i.imgur.com/riy3PxR.png"},{"id":45,"membersId":175355,"dateAdded":"2023-03-18T21:49:02.000Z","lastUpdated":"2023-03-19T18:30:57.000Z","status":1,"totalPoints":35028,"rankingPoints":35028,"totalPass":10,"totalFc":7,"totalFec":12,"totalQuad":0,"totalQuint":0,"crossoverLevel":540,"bracketLevel":34,"footswitchLevel":92,"jackLevel":27,"sideswitchLevel":0,"doublestepLevel":237,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":\"RootReducer#5914\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"RootReducer","sex":"Male","profileImg":""},{"id":214,"membersId":160185,"dateAdded":"2023-03-18T23:56:42.000Z","lastUpdated":"2023-03-19T01:05:50.000Z","status":1,"totalPoints":33327,"rankingPoints":33327,"totalPass":7,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":250,"bracketLevel":116,"footswitchLevel":87,"jackLevel":66,"sideswitchLevel":92,"doublestepLevel":222,"staminaLevel":22,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Nichard","sex":"Male","profileImg":""},{"id":83,"membersId":136928,"dateAdded":"2023-03-18T21:50:47.000Z","lastUpdated":"2023-03-18T23:00:48.000Z","status":1,"totalPoints":33245,"rankingPoints":33245,"totalPass":7,"totalFc":2,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":276,"bracketLevel":205,"footswitchLevel":184,"jackLevel":113,"sideswitchLevel":0,"doublestepLevel":331,"staminaLevel":53,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Daikyi","sex":"Male","profileImg":"https://puu.sh/J6z9c/a9edbb3013.png"},{"id":323,"membersId":1932,"dateAdded":"2023-03-19T07:13:42.000Z","lastUpdated":"2023-03-19T08:28:12.000Z","status":1,"totalPoints":32916,"rankingPoints":32916,"totalPass":13,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":134,"bracketLevel":63,"footswitchLevel":52,"jackLevel":36,"sideswitchLevel":0,"doublestepLevel":183,"staminaLevel":163,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"flip","sex":"Male","profileImg":"https://i.imgur.com/hNWIhQX.png"},{"id":77,"membersId":173043,"dateAdded":"2023-03-18T21:50:20.000Z","lastUpdated":"2023-03-19T18:28:36.000Z","status":1,"totalPoints":32761,"rankingPoints":32761,"totalPass":1,"totalFc":4,"totalFec":6,"totalQuad":1,"totalQuint":0,"crossoverLevel":275,"bracketLevel":118,"footswitchLevel":144,"jackLevel":147,"sideswitchLevel":83,"doublestepLevel":335,"staminaLevel":41,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"XjojoX99","sex":"Male","profileImg":""},{"id":2,"membersId":65671,"dateAdded":"2023-03-15T03:01:39.000Z","lastUpdated":"2023-03-19T03:17:02.000Z","status":1,"totalPoints":32227,"rankingPoints":32227,"totalPass":2,"totalFc":0,"totalFec":5,"totalQuad":1,"totalQuint":0,"crossoverLevel":182,"bracketLevel":120,"footswitchLevel":78,"jackLevel":5,"sideswitchLevel":0,"doublestepLevel":276,"staminaLevel":42,"isBuddy":false,"preferences":"{\"discordId\":\"Vincent#4923\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"VincentITG","sex":"Male","profileImg":"https://i.imgur.com/ijai2iI.png"},{"id":272,"membersId":173223,"dateAdded":"2023-03-19T02:28:47.000Z","lastUpdated":"2023-03-19T07:22:45.000Z","status":1,"totalPoints":31784,"rankingPoints":31784,"totalPass":10,"totalFc":0,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":310,"bracketLevel":70,"footswitchLevel":233,"jackLevel":45,"sideswitchLevel":0,"doublestepLevel":422,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Koso","sex":"Male","profileImg":"https://i.imgur.com/Vy3wGll.png"},{"id":118,"membersId":174634,"dateAdded":"2023-03-18T21:57:42.000Z","lastUpdated":"2023-03-18T23:24:41.000Z","status":1,"totalPoints":31379,"rankingPoints":31379,"totalPass":11,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":145,"bracketLevel":211,"footswitchLevel":235,"jackLevel":126,"sideswitchLevel":93,"doublestepLevel":293,"staminaLevel":12,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Sapphron","sex":"Male","profileImg":""},{"id":365,"membersId":165752,"dateAdded":"2023-03-19T16:22:47.000Z","lastUpdated":"2023-03-19T18:31:19.000Z","status":1,"totalPoints":30839,"rankingPoints":30839,"totalPass":8,"totalFc":3,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":276,"bracketLevel":97,"footswitchLevel":173,"jackLevel":39,"sideswitchLevel":41,"doublestepLevel":184,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zui","sex":"Male","profileImg":"https://i.ibb.co/nwG0Yb1/aaegt.png"},{"id":115,"membersId":62430,"dateAdded":"2023-03-18T21:56:35.000Z","lastUpdated":"2023-03-19T15:45:40.000Z","status":1,"totalPoints":30345,"rankingPoints":30345,"totalPass":4,"totalFc":2,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":115,"bracketLevel":201,"footswitchLevel":152,"jackLevel":75,"sideswitchLevel":46,"doublestepLevel":93,"staminaLevel":97,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ManeMan08","sex":"Male","profileImg":"https://i.imgur.com/Gq7wyHQ.png"},{"id":170,"membersId":134773,"dateAdded":"2023-03-18T22:35:27.000Z","lastUpdated":"2023-03-19T04:14:36.000Z","status":1,"totalPoints":29848,"rankingPoints":29848,"totalPass":3,"totalFc":14,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":346,"bracketLevel":11,"footswitchLevel":156,"jackLevel":14,"sideswitchLevel":260,"doublestepLevel":90,"staminaLevel":61,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dlim","sex":"Male","profileImg":"https://i.imgur.com/JcxLonM.png"},{"id":101,"membersId":6314,"dateAdded":"2023-03-18T21:53:24.000Z","lastUpdated":"2023-03-19T02:46:59.000Z","status":1,"totalPoints":29660,"rankingPoints":29660,"totalPass":4,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":65,"bracketLevel":201,"footswitchLevel":250,"jackLevel":38,"sideswitchLevel":39,"doublestepLevel":88,"staminaLevel":53,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Franksoua","sex":"Male","profileImg":"https://media.discordapp.net/attachments/274289525314945024/857105532452077608/unknown.png"},{"id":144,"membersId":2380,"dateAdded":"2023-03-18T22:12:42.000Z","lastUpdated":"2023-03-19T00:50:28.000Z","status":1,"totalPoints":28371,"rankingPoints":28371,"totalPass":5,"totalFc":0,"totalFec":3,"totalQuad":3,"totalQuint":0,"crossoverLevel":158,"bracketLevel":250,"footswitchLevel":203,"jackLevel":105,"sideswitchLevel":0,"doublestepLevel":18,"staminaLevel":43,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PinkDad","sex":"Male","profileImg":"https://i.imgur.com/MP3H9bu.jpg"},{"id":67,"membersId":165906,"dateAdded":"2023-03-18T21:49:54.000Z","lastUpdated":"2023-03-19T15:09:10.000Z","status":1,"totalPoints":27932,"rankingPoints":27932,"totalPass":21,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":293,"bracketLevel":119,"footswitchLevel":127,"jackLevel":48,"sideswitchLevel":25,"doublestepLevel":146,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":\"joshhead#5985\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"joshhead","sex":"Unspecified","profileImg":""},{"id":359,"membersId":174873,"dateAdded":"2023-03-19T15:50:29.000Z","lastUpdated":"2023-03-19T17:00:43.000Z","status":1,"totalPoints":26735,"rankingPoints":26735,"totalPass":6,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":75,"bracketLevel":207,"footswitchLevel":275,"jackLevel":203,"sideswitchLevel":130,"doublestepLevel":171,"staminaLevel":43,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"undrscore","sex":"Male","profileImg":"https://i.imgur.com/EOG7g9B.png"},{"id":307,"membersId":174829,"dateAdded":"2023-03-19T04:58:16.000Z","lastUpdated":"2023-03-19T10:44:47.000Z","status":1,"totalPoints":26430,"rankingPoints":26430,"totalPass":6,"totalFc":5,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":414,"bracketLevel":52,"footswitchLevel":153,"jackLevel":36,"sideswitchLevel":17,"doublestepLevel":49,"staminaLevel":16,"isBuddy":false,"preferences":"{\"discordId\":\"Oscar#9001\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"pogscar","sex":"Male","profileImg":""},{"id":225,"membersId":66661,"dateAdded":"2023-03-19T00:24:59.000Z","lastUpdated":"2023-03-19T01:18:41.000Z","status":1,"totalPoints":25409,"rankingPoints":25409,"totalPass":4,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":56,"bracketLevel":139,"footswitchLevel":125,"jackLevel":14,"sideswitchLevel":201,"doublestepLevel":25,"staminaLevel":60,"isBuddy":false,"preferences":"{\"discordId\":\"Cairo'Nairo#0673\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"jeshusha1","sex":"Male","profileImg":"https://i.imgur.com/Jg5gtfR.png"},{"id":146,"membersId":66627,"dateAdded":"2023-03-18T22:14:05.000Z","lastUpdated":"2023-03-19T18:28:23.000Z","status":1,"totalPoints":24880,"rankingPoints":24880,"totalPass":0,"totalFc":1,"totalFec":7,"totalQuad":12,"totalQuint":0,"crossoverLevel":496,"bracketLevel":12,"footswitchLevel":67,"jackLevel":34,"sideswitchLevel":0,"doublestepLevel":185,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Stardust","sex":"Male","profileImg":""},{"id":9,"membersId":173420,"dateAdded":"2023-03-18T21:48:27.000Z","lastUpdated":"2023-03-19T02:10:50.000Z","status":1,"totalPoints":23791,"rankingPoints":23791,"totalPass":10,"totalFc":27,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":398,"bracketLevel":24,"footswitchLevel":131,"jackLevel":19,"sideswitchLevel":0,"doublestepLevel":120,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"Martin#6291\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"slowunsteady","sex":"Unspecified","profileImg":"https://i.imgur.com/7VkeuP9.png"},{"id":157,"membersId":42011,"dateAdded":"2023-03-18T22:22:10.000Z","lastUpdated":"2023-03-19T17:34:07.000Z","status":1,"totalPoints":21798,"rankingPoints":21798,"totalPass":12,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":162,"bracketLevel":28,"footswitchLevel":139,"jackLevel":12,"sideswitchLevel":109,"doublestepLevel":79,"staminaLevel":26,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zlew","sex":"Male","profileImg":"https://i.imgur.com/THdpsEY.png"},{"id":283,"membersId":66610,"dateAdded":"2023-03-19T02:58:26.000Z","lastUpdated":"2023-03-19T03:45:41.000Z","status":1,"totalPoints":21201,"rankingPoints":21201,"totalPass":6,"totalFc":2,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":182,"bracketLevel":158,"footswitchLevel":83,"jackLevel":81,"sideswitchLevel":0,"doublestepLevel":31,"staminaLevel":6,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"FabSab44","sex":"Female","profileImg":"https://i.ibb.co/pJB1krQ/spike4-4.jpg"},{"id":285,"membersId":124527,"dateAdded":"2023-03-19T03:05:57.000Z","lastUpdated":"2023-03-19T16:51:30.000Z","status":1,"totalPoints":20738,"rankingPoints":20738,"totalPass":1,"totalFc":4,"totalFec":6,"totalQuad":6,"totalQuint":0,"crossoverLevel":471,"bracketLevel":12,"footswitchLevel":67,"jackLevel":35,"sideswitchLevel":0,"doublestepLevel":185,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Silver Fox","sex":"Male","profileImg":"https://i.imgur.com/qb0irJQ.png"},{"id":95,"membersId":175276,"dateAdded":"2023-03-18T21:52:31.000Z","lastUpdated":"2023-03-18T22:25:22.000Z","status":1,"totalPoints":19770,"rankingPoints":19770,"totalPass":2,"totalFc":1,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":89,"bracketLevel":1,"footswitchLevel":44,"jackLevel":15,"sideswitchLevel":0,"doublestepLevel":59,"staminaLevel":8,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"teekmn","sex":"Unspecified","profileImg":"https://cdn-live.warthunder.com/uploads/9c/ba20ec0674301f31323c1790d35c030fe45ab0/1415940983851.jpg"},{"id":309,"membersId":173298,"dateAdded":"2023-03-19T05:12:27.000Z","lastUpdated":"2023-03-19T06:00:09.000Z","status":1,"totalPoints":18827,"rankingPoints":18827,"totalPass":9,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":238,"bracketLevel":72,"footswitchLevel":112,"jackLevel":18,"sideswitchLevel":0,"doublestepLevel":141,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JuiKuen","sex":"Male","profileImg":""},{"id":299,"membersId":173861,"dateAdded":"2023-03-19T04:11:48.000Z","lastUpdated":"2023-03-19T05:52:30.000Z","status":1,"totalPoints":18796,"rankingPoints":18796,"totalPass":6,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":88,"bracketLevel":73,"footswitchLevel":165,"jackLevel":108,"sideswitchLevel":243,"doublestepLevel":90,"staminaLevel":55,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Hidden","sex":"Unspecified","profileImg":""},{"id":239,"membersId":127868,"dateAdded":"2023-03-19T00:45:46.000Z","lastUpdated":"2023-03-19T05:23:54.000Z","status":1,"totalPoints":18685,"rankingPoints":18685,"totalPass":7,"totalFc":7,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":317,"bracketLevel":10,"footswitchLevel":65,"jackLevel":14,"sideswitchLevel":0,"doublestepLevel":20,"staminaLevel":8,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"chroma","sex":"Female","profileImg":""},{"id":44,"membersId":173683,"dateAdded":"2023-03-18T21:49:02.000Z","lastUpdated":"2023-03-19T03:41:57.000Z","status":1,"totalPoints":18673,"rankingPoints":18673,"totalPass":8,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":342,"bracketLevel":27,"footswitchLevel":73,"jackLevel":36,"sideswitchLevel":78,"doublestepLevel":133,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TakuMii","sex":"Male","profileImg":"https://avatars.akamai.steamstatic.com/24803bdf9d1ac613cc536d28d0e72d48101d63a7_full.jpg"},{"id":237,"membersId":165884,"dateAdded":"2023-03-19T00:45:18.000Z","lastUpdated":"2023-03-19T01:39:48.000Z","status":1,"totalPoints":18613,"rankingPoints":18613,"totalPass":4,"totalFc":0,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":130,"bracketLevel":99,"footswitchLevel":105,"jackLevel":33,"sideswitchLevel":44,"doublestepLevel":120,"staminaLevel":44,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Aldarole","sex":"Male","profileImg":"https://sportslogohistory.com/wp-content/uploads/2017/12/new_york_knicks_1947-1964.png"},{"id":317,"membersId":165605,"dateAdded":"2023-03-19T06:40:42.000Z","lastUpdated":"2023-03-19T09:45:51.000Z","status":1,"totalPoints":18600,"rankingPoints":18600,"totalPass":2,"totalFc":0,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":39,"bracketLevel":51,"footswitchLevel":150,"jackLevel":0,"sideswitchLevel":65,"doublestepLevel":85,"staminaLevel":10,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Freis","sex":"Male","profileImg":""},{"id":22,"membersId":173546,"dateAdded":"2023-03-18T21:48:49.000Z","lastUpdated":"2023-03-19T11:15:32.000Z","status":1,"totalPoints":17027,"rankingPoints":17027,"totalPass":9,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":166,"bracketLevel":60,"footswitchLevel":153,"jackLevel":62,"sideswitchLevel":0,"doublestepLevel":182,"staminaLevel":20,"isBuddy":false,"preferences":"{\"discordId\":\"Piols#6625\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Piols","sex":"Male","profileImg":""},{"id":210,"membersId":127797,"dateAdded":"2023-03-18T23:45:55.000Z","lastUpdated":"2023-03-19T03:24:58.000Z","status":1,"totalPoints":16607,"rankingPoints":16607,"totalPass":4,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":50,"bracketLevel":76,"footswitchLevel":160,"jackLevel":29,"sideswitchLevel":16,"doublestepLevel":40,"staminaLevel":65,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dancingmaractus","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/704364807155089498/952378600886272020/maractus.png"},{"id":321,"membersId":175218,"dateAdded":"2023-03-19T07:08:13.000Z","lastUpdated":"2023-03-19T18:30:33.000Z","status":1,"totalPoints":15754,"rankingPoints":15754,"totalPass":7,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":113,"bracketLevel":14,"footswitchLevel":10,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":117,"staminaLevel":15,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zivie87","sex":"Male","profileImg":""},{"id":62,"membersId":165750,"dateAdded":"2023-03-18T21:49:46.000Z","lastUpdated":"2023-03-19T12:29:39.000Z","status":1,"totalPoints":14800,"rankingPoints":14800,"totalPass":12,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":134,"bracketLevel":15,"footswitchLevel":111,"jackLevel":13,"sideswitchLevel":0,"doublestepLevel":129,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Mayflower","sex":"Unspecified","profileImg":"https://mayf.pink/files/groove.jpg"},{"id":241,"membersId":172941,"dateAdded":"2023-03-19T00:49:32.000Z","lastUpdated":"2023-03-19T01:58:17.000Z","status":1,"totalPoints":14386,"rankingPoints":14386,"totalPass":5,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":97,"bracketLevel":86,"footswitchLevel":93,"jackLevel":6,"sideswitchLevel":27,"doublestepLevel":141,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Bag Man","sex":"Male","profileImg":"https://remywiki.com/images/thumb/d/d4/Bag.png/200px-Bag.png"},{"id":28,"membersId":77862,"dateAdded":"2023-03-18T21:48:54.000Z","lastUpdated":"2023-03-18T22:04:22.000Z","status":1,"totalPoints":14328,"rankingPoints":14328,"totalPass":2,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":11,"bracketLevel":193,"footswitchLevel":105,"jackLevel":92,"sideswitchLevel":0,"doublestepLevel":170,"staminaLevel":46,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JeffreyATW","sex":"Male","profileImg":"https://jeffreyatw.com/static/images/atw-tfti-250.png"},{"id":350,"membersId":130553,"dateAdded":"2023-03-19T14:13:28.000Z","lastUpdated":"2023-03-19T18:29:11.000Z","status":1,"totalPoints":14181,"rankingPoints":14181,"totalPass":3,"totalFc":3,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":297,"bracketLevel":11,"footswitchLevel":56,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":84,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"NinjaNabi","sex":"Female","profileImg":"https://i.ibb.co/ykdXrTt/nabiderpwithborder.png"},{"id":5,"membersId":173384,"dateAdded":"2023-03-16T21:50:13.000Z","lastUpdated":"2023-03-19T00:11:03.000Z","status":1,"totalPoints":13906,"rankingPoints":13906,"totalPass":0,"totalFc":2,"totalFec":1,"totalQuad":3,"totalQuint":0,"crossoverLevel":188,"bracketLevel":4,"footswitchLevel":22,"jackLevel":64,"sideswitchLevel":0,"doublestepLevel":53,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Hiten","sex":"Male","profileImg":"https://i.imgur.com/TRRmDiz.png"},{"id":180,"membersId":128724,"dateAdded":"2023-03-18T22:43:47.000Z","lastUpdated":"2023-03-19T00:25:28.000Z","status":1,"totalPoints":12932,"rankingPoints":12932,"totalPass":3,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":33,"bracketLevel":150,"footswitchLevel":73,"jackLevel":125,"sideswitchLevel":0,"doublestepLevel":11,"staminaLevel":35,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LFK","sex":"Unspecified","profileImg":"https://i.imgur.com/mCnGAVc.png"},{"id":281,"membersId":175376,"dateAdded":"2023-03-19T02:50:59.000Z","lastUpdated":"2023-03-19T03:41:58.000Z","status":1,"totalPoints":12090,"rankingPoints":12090,"totalPass":9,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":219,"bracketLevel":9,"footswitchLevel":26,"jackLevel":16,"sideswitchLevel":0,"doublestepLevel":14,"staminaLevel":8,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"bxrru","sex":"Unspecified","profileImg":""},{"id":60,"membersId":173320,"dateAdded":"2023-03-18T21:49:36.000Z","lastUpdated":"2023-03-19T07:01:46.000Z","status":1,"totalPoints":11957,"rankingPoints":11957,"totalPass":1,"totalFc":2,"totalFec":4,"totalQuad":1,"totalQuint":0,"crossoverLevel":152,"bracketLevel":0,"footswitchLevel":17,"jackLevel":10,"sideswitchLevel":0,"doublestepLevel":209,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"L4viR","sex":"Male","profileImg":""},{"id":51,"membersId":4062,"dateAdded":"2023-03-18T21:49:07.000Z","lastUpdated":"2023-03-19T15:29:33.000Z","status":1,"totalPoints":11810,"rankingPoints":11810,"totalPass":2,"totalFc":0,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":77,"bracketLevel":16,"footswitchLevel":37,"jackLevel":212,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PkRynker","sex":"Male","profileImg":""},{"id":96,"membersId":173453,"dateAdded":"2023-03-18T21:52:39.000Z","lastUpdated":"2023-03-19T18:28:19.000Z","status":1,"totalPoints":11415,"rankingPoints":11415,"totalPass":2,"totalFc":6,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":304,"bracketLevel":9,"footswitchLevel":29,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":32,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kikoia","sex":"Female","profileImg":"https://i.imgur.com/KCsbDb7.png"},{"id":91,"membersId":173007,"dateAdded":"2023-03-18T21:51:29.000Z","lastUpdated":"2023-03-18T23:02:57.000Z","status":1,"totalPoints":11048,"rankingPoints":11048,"totalPass":0,"totalFc":0,"totalFec":6,"totalQuad":3,"totalQuint":0,"crossoverLevel":262,"bracketLevel":12,"footswitchLevel":38,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":84,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"kodensa#3582\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"kodensa","sex":"Female","profileImg":"https://cdn.discordapp.com/attachments/902652921890611254/1086771021857697812/a.jpg"},{"id":261,"membersId":175353,"dateAdded":"2023-03-19T01:45:09.000Z","lastUpdated":"2023-03-19T02:24:01.000Z","status":1,"totalPoints":10617,"rankingPoints":10617,"totalPass":16,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":178,"bracketLevel":0,"footswitchLevel":21,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":18,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"meecheezink","sex":"Female","profileImg":""},{"id":197,"membersId":165854,"dateAdded":"2023-03-18T23:08:53.000Z","lastUpdated":"2023-03-19T00:20:53.000Z","status":1,"totalPoints":9764,"rankingPoints":9764,"totalPass":9,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":181,"bracketLevel":6,"footswitchLevel":38,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":3,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Nazrininator","sex":"Male","profileImg":""},{"id":251,"membersId":175221,"dateAdded":"2023-03-19T01:23:20.000Z","lastUpdated":"2023-03-19T10:47:06.000Z","status":1,"totalPoints":9180,"rankingPoints":9180,"totalPass":16,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":192,"bracketLevel":5,"footswitchLevel":29,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":59,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"atticusgg","sex":"Unspecified","profileImg":""},{"id":75,"membersId":173399,"dateAdded":"2023-03-18T21:50:18.000Z","lastUpdated":"2023-03-19T00:35:46.000Z","status":1,"totalPoints":8950,"rankingPoints":8950,"totalPass":1,"totalFc":8,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":169,"bracketLevel":0,"footswitchLevel":23,"jackLevel":41,"sideswitchLevel":0,"doublestepLevel":67,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DJEmbrace","sex":"Unspecified","profileImg":""},{"id":195,"membersId":75729,"dateAdded":"2023-03-18T23:05:34.000Z","lastUpdated":"2023-03-19T16:26:45.000Z","status":1,"totalPoints":8917,"rankingPoints":8917,"totalPass":14,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":115,"bracketLevel":0,"footswitchLevel":29,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":54,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"help","sex":"Male","profileImg":"https://i.imgur.com/AKnOujq.jpg"},{"id":192,"membersId":127823,"dateAdded":"2023-03-18T23:02:21.000Z","lastUpdated":"2023-03-19T02:20:39.000Z","status":1,"totalPoints":8118,"rankingPoints":8118,"totalPass":3,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":82,"bracketLevel":2,"footswitchLevel":52,"jackLevel":26,"sideswitchLevel":0,"doublestepLevel":7,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":\"Fresca#7450\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JONBUDDY","sex":"Male","profileImg":"https://i.imgur.com/7K4gyoz.png"},{"id":59,"membersId":173651,"dateAdded":"2023-03-18T21:49:33.000Z","lastUpdated":"2023-03-19T17:23:29.000Z","status":1,"totalPoints":7251,"rankingPoints":7251,"totalPass":5,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":26,"bracketLevel":0,"footswitchLevel":44,"jackLevel":41,"sideswitchLevel":0,"doublestepLevel":70,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zydra","sex":"Female","profileImg":"https://cdn.discordapp.com/attachments/750387080932229212/977307823811747880/250250zy.png"},{"id":47,"membersId":174173,"dateAdded":"2023-03-18T21:49:03.000Z","lastUpdated":"2023-03-19T18:18:50.000Z","status":1,"totalPoints":6916,"rankingPoints":6916,"totalPass":10,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":35,"bracketLevel":0,"footswitchLevel":62,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lillyvideogames","sex":"Unspecified","profileImg":"https://cdn.discordapp.com/attachments/910836877647577109/1087038719334289550/aoko-pfp-smol.png"},{"id":168,"membersId":163585,"dateAdded":"2023-03-18T22:32:25.000Z","lastUpdated":"2023-03-19T00:30:19.000Z","status":1,"totalPoints":6879,"rankingPoints":6879,"totalPass":0,"totalFc":0,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":41,"bracketLevel":0,"footswitchLevel":97,"jackLevel":40,"sideswitchLevel":0,"doublestepLevel":39,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MegaSphere","sex":"Male","profileImg":"https://i.imgur.com/p34Ni8n.png"},{"id":322,"membersId":124751,"dateAdded":"2023-03-19T07:13:03.000Z","lastUpdated":"2023-03-19T08:56:43.000Z","status":1,"totalPoints":6077,"rankingPoints":6077,"totalPass":1,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":113,"bracketLevel":0,"footswitchLevel":15,"jackLevel":0,"sideswitchLevel":21,"doublestepLevel":35,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dashark","sex":"Male","profileImg":"https://i.imgur.com/GDN5TxQ.jpg"},{"id":134,"membersId":75805,"dateAdded":"2023-03-18T22:04:19.000Z","lastUpdated":"2023-03-19T18:30:22.000Z","status":1,"totalPoints":5666,"rankingPoints":5666,"totalPass":1,"totalFc":1,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":169,"bracketLevel":11,"footswitchLevel":28,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Accioskullar","sex":"Male","profileImg":""},{"id":374,"membersId":174568,"dateAdded":"2023-03-19T17:22:09.000Z","lastUpdated":"2023-03-19T18:29:13.000Z","status":1,"totalPoints":5587,"rankingPoints":5587,"totalPass":1,"totalFc":0,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":81,"bracketLevel":0,"footswitchLevel":33,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":3,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JellySlosh","sex":"Male","profileImg":""},{"id":316,"membersId":175383,"dateAdded":"2023-03-19T06:19:29.000Z","lastUpdated":"2023-03-19T08:28:52.000Z","status":1,"totalPoints":5480,"rankingPoints":5480,"totalPass":7,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":105,"bracketLevel":12,"footswitchLevel":13,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":23,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DenryuRider","sex":"Male","profileImg":""},{"id":342,"membersId":175360,"dateAdded":"2023-03-19T12:13:12.000Z","lastUpdated":"2023-03-19T14:45:49.000Z","status":1,"totalPoints":5200,"rankingPoints":5200,"totalPass":7,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":20,"bracketLevel":0,"footswitchLevel":68,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":5,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Goode","sex":"Male","profileImg":""},{"id":306,"membersId":175382,"dateAdded":"2023-03-19T04:43:52.000Z","lastUpdated":"2023-03-19T05:22:16.000Z","status":1,"totalPoints":4615,"rankingPoints":4615,"totalPass":2,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":32,"bracketLevel":0,"footswitchLevel":3,"jackLevel":31,"sideswitchLevel":0,"doublestepLevel":31,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"KATERINA","sex":"Female","profileImg":""},{"id":172,"membersId":173110,"dateAdded":"2023-03-18T22:35:55.000Z","lastUpdated":"2023-03-18T22:55:38.000Z","status":1,"totalPoints":4436,"rankingPoints":4436,"totalPass":0,"totalFc":0,"totalFec":0,"totalQuad":2,"totalQuint":0,"crossoverLevel":59,"bracketLevel":0,"footswitchLevel":4,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":26,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Shane_ITG_","sex":"Unspecified","profileImg":"https://i.imgur.com/px8JzPD.png"},{"id":244,"membersId":109985,"dateAdded":"2023-03-19T00:54:29.000Z","lastUpdated":"2023-03-19T18:04:39.000Z","status":1,"totalPoints":4423,"rankingPoints":4423,"totalPass":6,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":104,"bracketLevel":5,"footswitchLevel":14,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"soler98012","sex":"Unspecified","profileImg":""},{"id":104,"membersId":2600,"dateAdded":"2023-03-18T21:53:35.000Z","lastUpdated":"2023-03-18T22:13:23.000Z","status":1,"totalPoints":4342,"rankingPoints":4342,"totalPass":1,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":110,"bracketLevel":12,"footswitchLevel":55,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DRON","sex":"Male","profileImg":"https://i.imgur.com/ezVfWhH.png"},{"id":280,"membersId":173125,"dateAdded":"2023-03-19T02:48:37.000Z","lastUpdated":"2023-03-19T04:00:12.000Z","status":1,"totalPoints":4033,"rankingPoints":4033,"totalPass":0,"totalFc":0,"totalFec":0,"totalQuad":3,"totalQuint":0,"crossoverLevel":122,"bracketLevel":12,"footswitchLevel":30,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MajorOfMusic","sex":"Male","profileImg":""},{"id":369,"membersId":66714,"dateAdded":"2023-03-19T16:37:55.000Z","lastUpdated":"2023-03-19T17:17:42.000Z","status":1,"totalPoints":4019,"rankingPoints":4019,"totalPass":7,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":76,"bracketLevel":0,"footswitchLevel":6,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":41,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lunal3blanc","sex":"Female","profileImg":""},{"id":318,"membersId":127775,"dateAdded":"2023-03-19T06:41:30.000Z","lastUpdated":"2023-03-19T08:14:17.000Z","status":1,"totalPoints":3772,"rankingPoints":3772,"totalPass":2,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":31,"bracketLevel":1,"footswitchLevel":0,"jackLevel":4,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nv","sex":"Male","profileImg":"https://i.imgur.com/4z5tNia.png"},{"id":242,"membersId":7558,"dateAdded":"2023-03-19T00:50:18.000Z","lastUpdated":"2023-03-19T18:29:48.000Z","status":1,"totalPoints":3501,"rankingPoints":3501,"totalPass":0,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":88,"bracketLevel":0,"footswitchLevel":26,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PanStyle","sex":"Male","profileImg":""},{"id":245,"membersId":169204,"dateAdded":"2023-03-19T00:58:23.000Z","lastUpdated":"2023-03-19T04:01:43.000Z","status":1,"totalPoints":3226,"rankingPoints":3226,"totalPass":0,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":0,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"takatzu48","sex":"Male","profileImg":""},{"id":143,"membersId":66673,"dateAdded":"2023-03-18T22:10:43.000Z","lastUpdated":"2023-03-18T23:34:09.000Z","status":1,"totalPoints":3059,"rankingPoints":3059,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":9,"bracketLevel":0,"footswitchLevel":12,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":114,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"Chief Skittles#1789\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"ChiefSkittles","sex":"Male","profileImg":"https://i.imgur.com/s5sMjf4.png"},{"id":218,"membersId":165796,"dateAdded":"2023-03-19T00:11:42.000Z","lastUpdated":"2023-03-19T04:00:31.000Z","status":1,"totalPoints":2927,"rankingPoints":2927,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":14,"bracketLevel":0,"footswitchLevel":39,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":6,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Caji123","sex":"Male","profileImg":""},{"id":71,"membersId":173056,"dateAdded":"2023-03-18T21:50:00.000Z","lastUpdated":"2023-03-18T23:00:38.000Z","status":1,"totalPoints":2909,"rankingPoints":2909,"totalPass":4,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":80,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":67,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Braeden","sex":"Male","profileImg":""},{"id":224,"membersId":173438,"dateAdded":"2023-03-19T00:18:20.000Z","lastUpdated":"2023-03-19T01:26:31.000Z","status":1,"totalPoints":2599,"rankingPoints":2599,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":1,"totalQuint":0,"crossoverLevel":120,"bracketLevel":12,"footswitchLevel":29,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nauebp","sex":"Male","profileImg":""},{"id":368,"membersId":175389,"dateAdded":"2023-03-19T16:33:48.000Z","lastUpdated":"2023-03-19T18:16:52.000Z","status":1,"totalPoints":2555,"rankingPoints":2555,"totalPass":0,"totalFc":0,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":102,"bracketLevel":0,"footswitchLevel":8,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"patj","sex":"Male","profileImg":""},{"id":179,"membersId":175367,"dateAdded":"2023-03-18T22:41:58.000Z","lastUpdated":"2023-03-19T01:50:09.000Z","status":1,"totalPoints":2296,"rankingPoints":2296,"totalPass":2,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":48,"bracketLevel":0,"footswitchLevel":18,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Rufus","sex":"Male","profileImg":""},{"id":8,"membersId":167028,"dateAdded":"2023-03-18T21:48:25.000Z","lastUpdated":"2023-03-19T02:53:13.000Z","status":1,"totalPoints":1761,"rankingPoints":1761,"totalPass":2,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":81,"bracketLevel":8,"footswitchLevel":21,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"eightbitderp","sex":"Male","profileImg":"https://i.imgur.com/YAKidX4.png"},{"id":378,"membersId":175058,"dateAdded":"2023-03-19T17:30:42.000Z","lastUpdated":"2023-03-19T17:50:10.000Z","status":1,"totalPoints":1381,"rankingPoints":1381,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1,"bracketLevel":2,"footswitchLevel":6,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Nino","sex":"Male","profileImg":"https://i.ibb.co/bQHGCm5/Avatar.png"},{"id":386,"membersId":982,"dateAdded":"2023-03-19T17:50:20.000Z","lastUpdated":"2023-03-19T18:22:33.000Z","status":1,"totalPoints":1338,"rankingPoints":1338,"totalPass":0,"totalFc":0,"totalFec":0,"totalQuad":1,"totalQuint":0,"crossoverLevel":62,"bracketLevel":12,"footswitchLevel":25,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"andy457","sex":"Male","profileImg":""},{"id":133,"membersId":173658,"dateAdded":"2023-03-18T22:03:54.000Z","lastUpdated":"2023-03-18T22:14:23.000Z","status":1,"totalPoints":1332,"rankingPoints":1332,"totalPass":2,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":45,"bracketLevel":0,"footswitchLevel":2,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"false_parallax","sex":"Female","profileImg":""},{"id":24,"membersId":163331,"dateAdded":"2023-03-18T21:48:52.000Z","lastUpdated":"2023-03-18T21:52:51.000Z","status":1,"totalPoints":1083,"rankingPoints":1083,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":6,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":74,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Azirixx","sex":"Male","profileImg":"https://i.ibb.co/pKqM0s4/azi-Cool-GS.png"},{"id":232,"membersId":2910,"dateAdded":"2023-03-19T00:35:39.000Z","lastUpdated":"2023-03-19T18:20:59.000Z","status":1,"totalPoints":1044,"rankingPoints":1044,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":25,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Vagabond","sex":"Male","profileImg":"https://www.personality-database.com/profile_images/152769.png"},{"id":377,"membersId":173589,"dateAdded":"2023-03-19T17:30:07.000Z","lastUpdated":"2023-03-19T18:20:05.000Z","status":1,"totalPoints":1028,"rankingPoints":1028,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":7,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"bader","sex":"Male","profileImg":""},{"id":74,"membersId":173087,"dateAdded":"2023-03-18T21:50:14.000Z","lastUpdated":"2023-03-18T23:03:11.000Z","status":1,"totalPoints":959,"rankingPoints":959,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":44,"bracketLevel":8,"footswitchLevel":18,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Gr00txD","sex":"Male","profileImg":"https://pbs.twimg.com/profile_images/1026379676476956672/rxMbgeMF_400x400.jpg"},{"id":84,"membersId":129655,"dateAdded":"2023-03-18T21:50:54.000Z","lastUpdated":"2023-03-18T22:59:28.000Z","status":1,"totalPoints":902,"rankingPoints":902,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":41,"bracketLevel":0,"footswitchLevel":3,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Hunter","sex":"Male","profileImg":"https://i.imgur.com/H2aLLZ3.png"},{"id":131,"membersId":173502,"dateAdded":"2023-03-18T22:03:14.000Z","lastUpdated":"2023-03-19T01:03:02.000Z","status":1,"totalPoints":890,"rankingPoints":890,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":41,"bracketLevel":0,"footswitchLevel":3,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Salsa","sex":"Female","profileImg":""},{"id":264,"membersId":175371,"dateAdded":"2023-03-19T01:47:19.000Z","lastUpdated":"2023-03-19T01:50:10.000Z","status":1,"totalPoints":587,"rankingPoints":587,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1,"bracketLevel":0,"footswitchLevel":10,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Cool Brick","sex":"Male","profileImg":""}],"rivalMembersIds":[]}}
\ No newline at end of file
diff --git a/server/files/leaderboardinfo b/server/files/leaderboardinfo
new file mode 100644
index 0000000..b227124
--- /dev/null
+++ b/server/files/leaderboardinfo
@@ -0,0 +1 @@
+{"success":true,"message":"","data":{"leaderboard":[{"id":320,"membersId":1062,"dateAdded":"2023-03-19T07:01:01.000Z","lastUpdated":"2023-05-05T00:00:05.000Z","status":1,"totalPoints":1397742,"rankingPoints":584699,"totalPass":21,"totalFc":10,"totalFec":71,"totalQuad":124,"totalQuint":16,"crossoverLevel":5302,"bracketLevel":6879,"footswitchLevel":5878,"jackLevel":6449,"sideswitchLevel":6935,"doublestepLevel":6024,"staminaLevel":6351,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"iamchris4life","sex":"Male","profileImg":""},{"id":398,"membersId":2643,"dateAdded":"2023-03-19T19:02:10.000Z","lastUpdated":"2023-04-29T21:01:06.000Z","status":1,"totalPoints":1580636,"rankingPoints":575990,"totalPass":47,"totalFc":16,"totalFec":131,"totalQuad":85,"totalQuint":2,"crossoverLevel":6315,"bracketLevel":7821,"footswitchLevel":6860,"jackLevel":7448,"sideswitchLevel":7132,"doublestepLevel":6996,"staminaLevel":6971,"isBuddy":false,"preferences":"{\"discordId\":\"ChunkChunka#1023\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Chunka","sex":"Male","profileImg":""},{"id":167,"membersId":935,"dateAdded":"2023-03-18T22:30:49.000Z","lastUpdated":"2023-05-06T14:36:45.000Z","status":1,"totalPoints":1352777,"rankingPoints":574898,"totalPass":64,"totalFc":25,"totalFec":103,"totalQuad":38,"totalQuint":0,"crossoverLevel":4734,"bracketLevel":6563,"footswitchLevel":5447,"jackLevel":5667,"sideswitchLevel":6785,"doublestepLevel":5371,"staminaLevel":6810,"isBuddy":false,"preferences":"{\"discordId\":\"Maxx#7891\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Maxx-Storm","sex":"Male","profileImg":""},{"id":76,"membersId":87476,"dateAdded":"2023-03-18T21:50:19.000Z","lastUpdated":"2023-05-06T01:35:41.000Z","status":1,"totalPoints":2070149,"rankingPoints":565163,"totalPass":52,"totalFc":52,"totalFec":68,"totalQuad":212,"totalQuint":29,"crossoverLevel":9549,"bracketLevel":9411,"footswitchLevel":9468,"jackLevel":9420,"sideswitchLevel":9684,"doublestepLevel":9529,"staminaLevel":7447,"isBuddy":true,"preferences":"{\"discordId\":\"dimo#0420\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"quintin tarandimo","sex":"Male","profileImg":"https://imgur.com/4T9VibU.png"},{"id":12,"membersId":133006,"dateAdded":"2023-03-18T21:48:36.000Z","lastUpdated":"2023-05-06T02:22:54.000Z","status":1,"totalPoints":1896671,"rankingPoints":564258,"totalPass":9,"totalFc":70,"totalFec":258,"totalQuad":53,"totalQuint":1,"crossoverLevel":8582,"bracketLevel":8449,"footswitchLevel":8421,"jackLevel":8876,"sideswitchLevel":8555,"doublestepLevel":8861,"staminaLevel":8136,"isBuddy":true,"preferences":"{\"discordId\":\"ChanceR#2908\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Chance R.","sex":"Male","profileImg":""},{"id":43,"membersId":6284,"dateAdded":"2023-03-18T21:49:02.000Z","lastUpdated":"2023-05-04T22:26:52.000Z","status":1,"totalPoints":1564644,"rankingPoints":559273,"totalPass":84,"totalFc":36,"totalFec":97,"totalQuad":61,"totalQuint":0,"crossoverLevel":6353,"bracketLevel":7742,"footswitchLevel":7256,"jackLevel":7879,"sideswitchLevel":8300,"doublestepLevel":6862,"staminaLevel":6083,"isBuddy":false,"preferences":"{\"discordId\":\"leoncbrunson#1079\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Twix","sex":"Male","profileImg":""},{"id":51,"membersId":4062,"dateAdded":"2023-03-18T21:49:07.000Z","lastUpdated":"2023-05-06T02:45:58.000Z","status":1,"totalPoints":1430143,"rankingPoints":557140,"totalPass":88,"totalFc":50,"totalFec":101,"totalQuad":38,"totalQuint":0,"crossoverLevel":5017,"bracketLevel":7191,"footswitchLevel":6278,"jackLevel":7273,"sideswitchLevel":7102,"doublestepLevel":5525,"staminaLevel":7087,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Rynker","sex":"Male","profileImg":""},{"id":352,"membersId":146716,"dateAdded":"2023-03-19T14:35:19.000Z","lastUpdated":"2023-04-23T22:58:02.000Z","status":1,"totalPoints":1437977,"rankingPoints":542605,"totalPass":92,"totalFc":44,"totalFec":71,"totalQuad":54,"totalQuint":0,"crossoverLevel":6009,"bracketLevel":8000,"footswitchLevel":7439,"jackLevel":7320,"sideswitchLevel":8271,"doublestepLevel":6947,"staminaLevel":4566,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Mitt Romney","sex":"Male","profileImg":""},{"id":42,"membersId":147890,"dateAdded":"2023-03-18T21:49:01.000Z","lastUpdated":"2023-05-06T18:09:27.000Z","status":1,"totalPoints":1829495,"rankingPoints":533487,"totalPass":184,"totalFc":78,"totalFec":137,"totalQuad":9,"totalQuint":0,"crossoverLevel":8477,"bracketLevel":8823,"footswitchLevel":8740,"jackLevel":8431,"sideswitchLevel":8844,"doublestepLevel":8659,"staminaLevel":6344,"isBuddy":true,"preferences":"{\"discordId\":\"cmmf#8747\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Matt Silver","sex":"Unspecified","profileImg":"https://i.imgur.com/XWuHg9J.png"},{"id":6,"membersId":4362,"dateAdded":"2023-03-17T05:35:44.000Z","lastUpdated":"2023-05-06T19:52:44.000Z","status":1,"totalPoints":1490023,"rankingPoints":531953,"totalPass":117,"totalFc":44,"totalFec":54,"totalQuad":68,"totalQuint":10,"crossoverLevel":5992,"bracketLevel":7354,"footswitchLevel":6715,"jackLevel":7104,"sideswitchLevel":7569,"doublestepLevel":6837,"staminaLevel":6105,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TLotRP by J.R.R. Talkion","sex":"Male","profileImg":"https://i.imgur.com/szMNZZr.jpg"},{"id":21,"membersId":128047,"dateAdded":"2023-03-18T21:48:49.000Z","lastUpdated":"2023-05-07T01:54:15.000Z","status":1,"totalPoints":1624106,"rankingPoints":523870,"totalPass":97,"totalFc":61,"totalFec":120,"totalQuad":40,"totalQuint":0,"crossoverLevel":7580,"bracketLevel":8213,"footswitchLevel":8144,"jackLevel":8246,"sideswitchLevel":8720,"doublestepLevel":8148,"staminaLevel":4529,"isBuddy":false,"preferences":"{\"discordId\":\"tak#7483\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Rynken","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/598009719453384716/990351215835627560/tak200.png"},{"id":57,"membersId":58407,"dateAdded":"2023-03-18T21:49:19.000Z","lastUpdated":"2023-05-04T17:58:49.000Z","status":1,"totalPoints":1572684,"rankingPoints":523465,"totalPass":142,"totalFc":47,"totalFec":60,"totalQuad":74,"totalQuint":0,"crossoverLevel":6598,"bracketLevel":7299,"footswitchLevel":6872,"jackLevel":6381,"sideswitchLevel":7068,"doublestepLevel":6771,"staminaLevel":6982,"isBuddy":false,"preferences":"{\"discordId\":\"pochoitg#4891\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Pocho","sex":"Male","profileImg":"https://c.tenor.com/qFiVMJ7kDGwAAAAM/catjam.gif"},{"id":34,"membersId":62987,"dateAdded":"2023-03-18T21:48:58.000Z","lastUpdated":"2023-05-06T23:48:59.000Z","status":1,"totalPoints":1783975,"rankingPoints":514118,"totalPass":126,"totalFc":57,"totalFec":109,"totalQuad":101,"totalQuint":16,"crossoverLevel":8591,"bracketLevel":8468,"footswitchLevel":8651,"jackLevel":8553,"sideswitchLevel":9003,"doublestepLevel":8365,"staminaLevel":5447,"isBuddy":false,"preferences":"{\"discordId\":\"sighmoe#5684\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Jimmy Butler","sex":"Male","profileImg":"https://i.postimg.cc/wjfwxj6Q/iris-3.jpg"},{"id":161,"membersId":128535,"dateAdded":"2023-03-18T22:25:38.000Z","lastUpdated":"2023-05-06T04:07:08.000Z","status":1,"totalPoints":1864251,"rankingPoints":513023,"totalPass":166,"totalFc":68,"totalFec":153,"totalQuad":17,"totalQuint":0,"crossoverLevel":8726,"bracketLevel":8334,"footswitchLevel":8558,"jackLevel":8366,"sideswitchLevel":8897,"doublestepLevel":8675,"staminaLevel":6769,"isBuddy":false,"preferences":"{\"discordId\":\"Ritz#7358\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Ritz","sex":"Male","profileImg":"https://i.imgur.com/iwmsWIc.png"},{"id":29,"membersId":35701,"dateAdded":"2023-03-18T21:48:54.000Z","lastUpdated":"2023-05-05T22:48:04.000Z","status":1,"totalPoints":1507812,"rankingPoints":511501,"totalPass":156,"totalFc":24,"totalFec":79,"totalQuad":60,"totalQuint":3,"crossoverLevel":6921,"bracketLevel":6890,"footswitchLevel":7082,"jackLevel":5705,"sideswitchLevel":7974,"doublestepLevel":6747,"staminaLevel":5424,"isBuddy":false,"preferences":"{\"discordId\":\"lolipo#2695\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lolipo","sex":"Female","profileImg":"https://imgur.com/VEubW0D.jpg"},{"id":13,"membersId":7457,"dateAdded":"2023-03-18T21:48:42.000Z","lastUpdated":"2023-05-06T22:18:28.000Z","status":1,"totalPoints":1113626,"rankingPoints":510601,"totalPass":85,"totalFc":43,"totalFec":73,"totalQuad":6,"totalQuint":0,"crossoverLevel":3565,"bracketLevel":5029,"footswitchLevel":4071,"jackLevel":5652,"sideswitchLevel":2977,"doublestepLevel":4220,"staminaLevel":6715,"isBuddy":false,"preferences":"{\"discordId\":\"Bran#1685\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Krushrpants","sex":"Male","profileImg":""},{"id":101,"membersId":6314,"dateAdded":"2023-03-18T21:53:24.000Z","lastUpdated":"2023-05-06T04:25:11.000Z","status":1,"totalPoints":1228788,"rankingPoints":502987,"totalPass":136,"totalFc":53,"totalFec":49,"totalQuad":19,"totalQuint":0,"crossoverLevel":4591,"bracketLevel":6022,"footswitchLevel":5105,"jackLevel":6166,"sideswitchLevel":4550,"doublestepLevel":5332,"staminaLevel":5104,"isBuddy":false,"preferences":"{\"discordId\":\"frankoice#5517\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Franksoua","sex":"Male","profileImg":"https://media.discordapp.net/attachments/274289525314945024/857105532452077608/unknown.png"},{"id":622,"membersId":8181,"dateAdded":"2023-03-21T22:41:00.000Z","lastUpdated":"2023-04-28T03:30:18.000Z","status":1,"totalPoints":919176,"rankingPoints":501523,"totalPass":54,"totalFc":38,"totalFec":65,"totalQuad":13,"totalQuint":0,"crossoverLevel":3129,"bracketLevel":4758,"footswitchLevel":4954,"jackLevel":3151,"sideswitchLevel":3910,"doublestepLevel":4324,"staminaLevel":2778,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"baraka","sex":"Male","profileImg":""},{"id":116,"membersId":7385,"dateAdded":"2023-03-18T21:56:54.000Z","lastUpdated":"2023-05-04T00:11:22.000Z","status":1,"totalPoints":1907211,"rankingPoints":500691,"totalPass":152,"totalFc":84,"totalFec":158,"totalQuad":54,"totalQuint":0,"crossoverLevel":8669,"bracketLevel":8493,"footswitchLevel":8632,"jackLevel":8401,"sideswitchLevel":8802,"doublestepLevel":8628,"staminaLevel":8028,"isBuddy":true,"preferences":"{\"discordId\":\"RainbowXynn#3637\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Xynn","sex":"Male","profileImg":"https://i.imgur.com/mbdst0K.jpg"},{"id":187,"membersId":7737,"dateAdded":"2023-03-18T22:53:48.000Z","lastUpdated":"2023-05-02T02:53:01.000Z","status":1,"totalPoints":1458010,"rankingPoints":500130,"totalPass":153,"totalFc":84,"totalFec":71,"totalQuad":3,"totalQuint":0,"crossoverLevel":5398,"bracketLevel":7160,"footswitchLevel":6701,"jackLevel":7126,"sideswitchLevel":7534,"doublestepLevel":6156,"staminaLevel":6647,"isBuddy":true,"preferences":"{\"discordId\":\"LemmingOnTheRun#7482\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DF.LemmingOnTheRun","sex":"Male","profileImg":""},{"id":48,"membersId":173699,"dateAdded":"2023-03-18T21:49:06.000Z","lastUpdated":"2023-05-06T21:15:36.000Z","status":1,"totalPoints":1425728,"rankingPoints":495765,"totalPass":137,"totalFc":91,"totalFec":108,"totalQuad":10,"totalQuint":0,"crossoverLevel":6345,"bracketLevel":7109,"footswitchLevel":6750,"jackLevel":6098,"sideswitchLevel":6824,"doublestepLevel":6453,"staminaLevel":6391,"isBuddy":true,"preferences":"{\"discordId\":\"[7] Disco Pop\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"erictran0","sex":"Male","profileImg":""},{"id":278,"membersId":172977,"dateAdded":"2023-03-19T02:42:39.000Z","lastUpdated":"2023-05-06T23:31:07.000Z","status":1,"totalPoints":1195081,"rankingPoints":491970,"totalPass":90,"totalFc":38,"totalFec":59,"totalQuad":35,"totalQuint":0,"crossoverLevel":4715,"bracketLevel":5823,"footswitchLevel":5739,"jackLevel":6651,"sideswitchLevel":6977,"doublestepLevel":5433,"staminaLevel":5069,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"marqqq","sex":"Male","profileImg":""},{"id":121,"membersId":173301,"dateAdded":"2023-03-18T21:58:47.000Z","lastUpdated":"2023-05-05T22:09:10.000Z","status":1,"totalPoints":1426524,"rankingPoints":491844,"totalPass":143,"totalFc":82,"totalFec":71,"totalQuad":11,"totalQuint":0,"crossoverLevel":5725,"bracketLevel":6801,"footswitchLevel":6179,"jackLevel":6166,"sideswitchLevel":6791,"doublestepLevel":6507,"staminaLevel":6195,"isBuddy":false,"preferences":"{\"discordId\":\"Chabala#4798\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Chabala","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/706313433422757888/960710993426661376/20190925_213154.jpg"},{"id":240,"membersId":30618,"dateAdded":"2023-03-19T00:45:49.000Z","lastUpdated":"2023-05-06T18:36:54.000Z","status":1,"totalPoints":1042912,"rankingPoints":489897,"totalPass":67,"totalFc":50,"totalFec":57,"totalQuad":19,"totalQuint":0,"crossoverLevel":3755,"bracketLevel":3805,"footswitchLevel":4626,"jackLevel":5368,"sideswitchLevel":6745,"doublestepLevel":4604,"staminaLevel":3956,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"D4RK","sex":"Male","profileImg":""},{"id":2,"membersId":65671,"dateAdded":"2023-03-15T03:01:39.000Z","lastUpdated":"2023-05-06T22:57:32.000Z","status":1,"totalPoints":1606620,"rankingPoints":487916,"totalPass":147,"totalFc":64,"totalFec":92,"totalQuad":29,"totalQuint":0,"crossoverLevel":7248,"bracketLevel":7476,"footswitchLevel":7303,"jackLevel":7595,"sideswitchLevel":8030,"doublestepLevel":7461,"staminaLevel":5228,"isBuddy":true,"preferences":"{\"discordId\":\"Vincent#4923\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"VincentITG","sex":"Male","profileImg":"https://i.imgur.com/ijai2iI.png"},{"id":479,"membersId":3610,"dateAdded":"2023-03-20T04:49:47.000Z","lastUpdated":"2023-05-04T04:09:54.000Z","status":1,"totalPoints":1447442,"rankingPoints":486307,"totalPass":169,"totalFc":59,"totalFec":50,"totalQuad":18,"totalQuint":0,"crossoverLevel":5570,"bracketLevel":6666,"footswitchLevel":6042,"jackLevel":6792,"sideswitchLevel":6301,"doublestepLevel":6124,"staminaLevel":6064,"isBuddy":false,"preferences":"{\"discordId\":\"leishen#0001\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LEISHEN.","sex":"Unspecified","profileImg":"https://i.imgur.com/2IxlcLr.png"},{"id":254,"membersId":173047,"dateAdded":"2023-03-19T01:29:15.000Z","lastUpdated":"2023-05-04T02:50:03.000Z","status":1,"totalPoints":1313445,"rankingPoints":485262,"totalPass":138,"totalFc":58,"totalFec":73,"totalQuad":7,"totalQuint":0,"crossoverLevel":5784,"bracketLevel":7062,"footswitchLevel":6739,"jackLevel":7056,"sideswitchLevel":7179,"doublestepLevel":6558,"staminaLevel":4433,"isBuddy":true,"preferences":"{\"discordId\":\"nvanleerdrums#8936\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nvanleerdrums","sex":"Male","profileImg":"https://i.imgur.com/wA4Bxoy.jpg"},{"id":287,"membersId":66352,"dateAdded":"2023-03-19T03:16:34.000Z","lastUpdated":"2023-05-06T01:16:01.000Z","status":1,"totalPoints":1487468,"rankingPoints":484800,"totalPass":167,"totalFc":47,"totalFec":68,"totalQuad":11,"totalQuint":0,"crossoverLevel":5763,"bracketLevel":6871,"footswitchLevel":6626,"jackLevel":6411,"sideswitchLevel":5476,"doublestepLevel":7031,"staminaLevel":5677,"isBuddy":false,"preferences":"{\"discordId\":\"Zae#9916\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ChatITG","sex":"Male","profileImg":""},{"id":98,"membersId":7843,"dateAdded":"2023-03-18T21:52:50.000Z","lastUpdated":"2023-04-18T03:54:20.000Z","status":1,"totalPoints":975515,"rankingPoints":484029,"totalPass":91,"totalFc":15,"totalFec":45,"totalQuad":43,"totalQuint":1,"crossoverLevel":3736,"bracketLevel":3145,"footswitchLevel":4355,"jackLevel":4910,"sideswitchLevel":6163,"doublestepLevel":3903,"staminaLevel":5045,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kigha","sex":"Female","profileImg":""},{"id":632,"membersId":6118,"dateAdded":"2023-03-22T02:06:56.000Z","lastUpdated":"2023-05-06T04:40:52.000Z","status":1,"totalPoints":1201319,"rankingPoints":482185,"totalPass":124,"totalFc":56,"totalFec":44,"totalQuad":30,"totalQuint":0,"crossoverLevel":5012,"bracketLevel":5817,"footswitchLevel":5809,"jackLevel":5037,"sideswitchLevel":6456,"doublestepLevel":5526,"staminaLevel":4815,"isBuddy":false,"preferences":"{\"discordId\":\"Yoney#7189\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Keekee","sex":"Male","profileImg":"https://i.imgur.com/X0Z7sty.png"},{"id":215,"membersId":4306,"dateAdded":"2023-03-19T00:05:12.000Z","lastUpdated":"2023-05-07T04:08:52.000Z","status":1,"totalPoints":1044493,"rankingPoints":481449,"totalPass":62,"totalFc":20,"totalFec":66,"totalQuad":53,"totalQuint":4,"crossoverLevel":4556,"bracketLevel":4068,"footswitchLevel":4745,"jackLevel":2970,"sideswitchLevel":3732,"doublestepLevel":4967,"staminaLevel":3319,"isBuddy":false,"preferences":"{\"discordId\":\"FLASHitude#0077\",\"decentsEnabled\":true,\"wayOffsEnabled\":false}","name":"FLASHitude","sex":"Male","profileImg":""},{"id":494,"membersId":4989,"dateAdded":"2023-03-20T14:06:43.000Z","lastUpdated":"2023-05-04T19:59:11.000Z","status":1,"totalPoints":1217670,"rankingPoints":475963,"totalPass":98,"totalFc":42,"totalFec":81,"totalQuad":36,"totalQuint":0,"crossoverLevel":5561,"bracketLevel":5735,"footswitchLevel":5655,"jackLevel":4849,"sideswitchLevel":6817,"doublestepLevel":6064,"staminaLevel":4125,"isBuddy":false,"preferences":"{\"discordId\":\"NinjafarOh#4894\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Jafar","sex":"Male","profileImg":"https://i.imgur.com/oljwk7w.jpg"},{"id":270,"membersId":173210,"dateAdded":"2023-03-19T02:08:33.000Z","lastUpdated":"2023-05-05T01:55:20.000Z","status":1,"totalPoints":962245,"rankingPoints":469908,"totalPass":84,"totalFc":35,"totalFec":52,"totalQuad":8,"totalQuint":0,"crossoverLevel":2654,"bracketLevel":3538,"footswitchLevel":4038,"jackLevel":5184,"sideswitchLevel":3922,"doublestepLevel":3331,"staminaLevel":4427,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SebaZzZz","sex":"Male","profileImg":""},{"id":109,"membersId":175125,"dateAdded":"2023-03-18T21:54:52.000Z","lastUpdated":"2023-05-06T19:59:06.000Z","status":1,"totalPoints":1384447,"rankingPoints":469286,"totalPass":112,"totalFc":84,"totalFec":52,"totalQuad":31,"totalQuint":0,"crossoverLevel":5971,"bracketLevel":6425,"footswitchLevel":6620,"jackLevel":6558,"sideswitchLevel":7069,"doublestepLevel":6502,"staminaLevel":4670,"isBuddy":false,"preferences":"{\"discordId\":\"mixmasta#3733\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mixmasta","sex":"Male","profileImg":""},{"id":433,"membersId":129083,"dateAdded":"2023-03-19T22:25:32.000Z","lastUpdated":"2023-05-04T17:39:12.000Z","status":1,"totalPoints":1007915,"rankingPoints":468855,"totalPass":111,"totalFc":49,"totalFec":44,"totalQuad":0,"totalQuint":0,"crossoverLevel":3395,"bracketLevel":5489,"footswitchLevel":4679,"jackLevel":2962,"sideswitchLevel":3169,"doublestepLevel":4818,"staminaLevel":4273,"isBuddy":false,"preferences":"{\"discordId\":\"Cyx#4614\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Cyx","sex":"Male","profileImg":"https://www.serebii.net/swordshield/pokemon/831.png"},{"id":124,"membersId":128002,"dateAdded":"2023-03-18T21:59:44.000Z","lastUpdated":"2023-05-04T05:04:42.000Z","status":1,"totalPoints":1493020,"rankingPoints":465468,"totalPass":169,"totalFc":71,"totalFec":63,"totalQuad":13,"totalQuint":0,"crossoverLevel":6317,"bracketLevel":7440,"footswitchLevel":7080,"jackLevel":7119,"sideswitchLevel":7938,"doublestepLevel":6790,"staminaLevel":5092,"isBuddy":true,"preferences":"{\"discordId\":\"MoistBruh#4304\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BrotherMoist","sex":"Male","profileImg":"https://i.pinimg.com/originals/49/d6/ca/49d6caf0bd9760b8d709fe8193b413df.jpg"},{"id":408,"membersId":77690,"dateAdded":"2023-03-19T19:52:50.000Z","lastUpdated":"2023-05-05T21:41:01.000Z","status":1,"totalPoints":1319694,"rankingPoints":464698,"totalPass":150,"totalFc":57,"totalFec":75,"totalQuad":17,"totalQuint":0,"crossoverLevel":5876,"bracketLevel":6505,"footswitchLevel":6100,"jackLevel":6435,"sideswitchLevel":6437,"doublestepLevel":6331,"staminaLevel":4151,"isBuddy":true,"preferences":"{\"discordId\":\"AkemiTCG#0268\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Griever","sex":"Male","profileImg":""},{"id":317,"membersId":165605,"dateAdded":"2023-03-19T06:40:42.000Z","lastUpdated":"2023-05-06T11:25:07.000Z","status":1,"totalPoints":1102545,"rankingPoints":464185,"totalPass":135,"totalFc":29,"totalFec":48,"totalQuad":13,"totalQuint":0,"crossoverLevel":4890,"bracketLevel":5858,"footswitchLevel":5493,"jackLevel":4915,"sideswitchLevel":6897,"doublestepLevel":5291,"staminaLevel":3738,"isBuddy":false,"preferences":"{\"discordId\":\"Freis#2663\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Freis","sex":"Male","profileImg":"https://i.ibb.co/vhDs7Gv/rsz-yysanbim-400x400.jpg"},{"id":762,"membersId":4102,"dateAdded":"2023-03-25T02:12:29.000Z","lastUpdated":"2023-05-07T01:30:43.000Z","status":1,"totalPoints":1136635,"rankingPoints":461989,"totalPass":104,"totalFc":39,"totalFec":72,"totalQuad":14,"totalQuint":0,"crossoverLevel":4860,"bracketLevel":4368,"footswitchLevel":4889,"jackLevel":5567,"sideswitchLevel":4414,"doublestepLevel":6080,"staminaLevel":3485,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Paranoia Boi","sex":"Male","profileImg":""},{"id":672,"membersId":175234,"dateAdded":"2023-03-22T22:34:49.000Z","lastUpdated":"2023-05-06T19:00:59.000Z","status":1,"totalPoints":1260373,"rankingPoints":461849,"totalPass":160,"totalFc":57,"totalFec":31,"totalQuad":3,"totalQuint":0,"crossoverLevel":4102,"bracketLevel":6571,"footswitchLevel":6067,"jackLevel":4353,"sideswitchLevel":6606,"doublestepLevel":5365,"staminaLevel":5097,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"R3N3","sex":"Male","profileImg":""},{"id":168,"membersId":163585,"dateAdded":"2023-03-18T22:32:25.000Z","lastUpdated":"2023-04-23T20:30:02.000Z","status":1,"totalPoints":1077262,"rankingPoints":460486,"totalPass":135,"totalFc":49,"totalFec":56,"totalQuad":11,"totalQuint":0,"crossoverLevel":4073,"bracketLevel":5267,"footswitchLevel":4339,"jackLevel":5142,"sideswitchLevel":4772,"doublestepLevel":4439,"staminaLevel":6332,"isBuddy":false,"preferences":"{\"discordId\":\"MegaSphere#3753\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MegaSphere","sex":"Male","profileImg":"https://i.imgur.com/p34Ni8n.png"},{"id":620,"membersId":36049,"dateAdded":"2023-03-21T22:07:22.000Z","lastUpdated":"2023-04-22T22:39:44.000Z","status":1,"totalPoints":688218,"rankingPoints":458782,"totalPass":46,"totalFc":18,"totalFec":38,"totalQuad":28,"totalQuint":1,"crossoverLevel":3243,"bracketLevel":2336,"footswitchLevel":2978,"jackLevel":2123,"sideswitchLevel":3232,"doublestepLevel":2822,"staminaLevel":2044,"isBuddy":false,"preferences":"{\"discordId\":\"Sudzi781#9768\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sudzi781","sex":"Male","profileImg":""},{"id":366,"membersId":4730,"dateAdded":"2023-03-19T16:26:31.000Z","lastUpdated":"2023-05-06T02:53:47.000Z","status":1,"totalPoints":1044642,"rankingPoints":458668,"totalPass":141,"totalFc":15,"totalFec":29,"totalQuad":20,"totalQuint":0,"crossoverLevel":3144,"bracketLevel":4873,"footswitchLevel":4305,"jackLevel":3023,"sideswitchLevel":3397,"doublestepLevel":4595,"staminaLevel":4666,"isBuddy":false,"preferences":"{\"discordId\":\"Darkstar#7543\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Darkstar","sex":"Male","profileImg":""},{"id":183,"membersId":66647,"dateAdded":"2023-03-18T22:47:55.000Z","lastUpdated":"2023-05-06T01:38:02.000Z","status":1,"totalPoints":1499096,"rankingPoints":457624,"totalPass":211,"totalFc":57,"totalFec":87,"totalQuad":5,"totalQuint":0,"crossoverLevel":7389,"bracketLevel":5085,"footswitchLevel":6386,"jackLevel":6098,"sideswitchLevel":6736,"doublestepLevel":6425,"staminaLevel":5913,"isBuddy":false,"preferences":"{\"discordId\":\"Yani#7658\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Yani","sex":"Male","profileImg":"https://i.ibb.co/ZHqXpxB/Pride-kitty-250x250.png"},{"id":184,"membersId":44806,"dateAdded":"2023-03-18T22:48:42.000Z","lastUpdated":"2023-05-06T20:41:52.000Z","status":1,"totalPoints":1177455,"rankingPoints":454560,"totalPass":179,"totalFc":22,"totalFec":40,"totalQuad":14,"totalQuint":0,"crossoverLevel":5350,"bracketLevel":6092,"footswitchLevel":5723,"jackLevel":6061,"sideswitchLevel":5625,"doublestepLevel":6000,"staminaLevel":2998,"isBuddy":false,"preferences":"{\"discordId\":\"Captain Carbon#8473\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dick Kickem","sex":"Male","profileImg":"https://avatars.akamai.steamstatic.com/bdbbc5dce4f051d7c19cc0570416d82274777f43_full.jpg"},{"id":81,"membersId":165733,"dateAdded":"2023-03-18T21:50:44.000Z","lastUpdated":"2023-05-03T06:43:17.000Z","status":1,"totalPoints":1323054,"rankingPoints":451868,"totalPass":160,"totalFc":55,"totalFec":62,"totalQuad":17,"totalQuint":0,"crossoverLevel":5397,"bracketLevel":6069,"footswitchLevel":5964,"jackLevel":5370,"sideswitchLevel":5798,"doublestepLevel":5859,"staminaLevel":5881,"isBuddy":false,"preferences":"{\"discordId\":\"Squeens#7493\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Squeens","sex":"Male","profileImg":"https://i.ibb.co/KxZMTP9/bruh.png"},{"id":127,"membersId":171721,"dateAdded":"2023-03-18T22:01:35.000Z","lastUpdated":"2023-05-06T15:26:14.000Z","status":1,"totalPoints":1283360,"rankingPoints":447941,"totalPass":149,"totalFc":38,"totalFec":70,"totalQuad":10,"totalQuint":0,"crossoverLevel":5289,"bracketLevel":4410,"footswitchLevel":5420,"jackLevel":6472,"sideswitchLevel":5968,"doublestepLevel":5805,"staminaLevel":5005,"isBuddy":false,"preferences":"{\"discordId\":\"Higgy300#6970\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Higgy","sex":"Male","profileImg":""},{"id":466,"membersId":8349,"dateAdded":"2023-03-20T02:27:26.000Z","lastUpdated":"2023-05-07T06:52:56.000Z","status":1,"totalPoints":1023612,"rankingPoints":443958,"totalPass":151,"totalFc":26,"totalFec":29,"totalQuad":0,"totalQuint":0,"crossoverLevel":4020,"bracketLevel":5199,"footswitchLevel":4622,"jackLevel":4997,"sideswitchLevel":5778,"doublestepLevel":4950,"staminaLevel":3877,"isBuddy":false,"preferences":"{\"discordId\":\"Janus5k#0821\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Janus5k","sex":"Male","profileImg":"https://cdn.discordapp.com/emojis/376731874573287428.png"},{"id":735,"membersId":6069,"dateAdded":"2023-03-24T17:05:36.000Z","lastUpdated":"2023-05-06T10:55:36.000Z","status":1,"totalPoints":980817,"rankingPoints":443505,"totalPass":95,"totalFc":36,"totalFec":73,"totalQuad":9,"totalQuint":0,"crossoverLevel":3228,"bracketLevel":5656,"footswitchLevel":4801,"jackLevel":2963,"sideswitchLevel":3216,"doublestepLevel":4941,"staminaLevel":4112,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"NBCrescendo","sex":"Male","profileImg":"https://i.imgur.com/PttodhM.png"},{"id":175,"membersId":66431,"dateAdded":"2023-03-18T22:38:00.000Z","lastUpdated":"2023-05-06T19:13:42.000Z","status":1,"totalPoints":1333423,"rankingPoints":441474,"totalPass":103,"totalFc":52,"totalFec":68,"totalQuad":93,"totalQuint":2,"crossoverLevel":7143,"bracketLevel":6193,"footswitchLevel":6540,"jackLevel":5163,"sideswitchLevel":6218,"doublestepLevel":6627,"staminaLevel":2951,"isBuddy":false,"preferences":"{\"discordId\":\"Berserker#2387\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Berserker","sex":"Male","profileImg":"https://i.imgur.com/QPfP2Mp.png"},{"id":581,"membersId":6289,"dateAdded":"2023-03-21T04:37:55.000Z","lastUpdated":"2023-05-03T14:01:18.000Z","status":1,"totalPoints":1526509,"rankingPoints":438897,"totalPass":148,"totalFc":96,"totalFec":108,"totalQuad":5,"totalQuint":0,"crossoverLevel":7554,"bracketLevel":7175,"footswitchLevel":7428,"jackLevel":7257,"sideswitchLevel":6900,"doublestepLevel":7524,"staminaLevel":3895,"isBuddy":false,"preferences":"{\"discordId\":\"Adaridan#6453\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Adaridan","sex":"Male","profileImg":""},{"id":357,"membersId":175167,"dateAdded":"2023-03-19T15:35:17.000Z","lastUpdated":"2023-05-01T22:27:42.000Z","status":1,"totalPoints":689179,"rankingPoints":437772,"totalPass":65,"totalFc":33,"totalFec":31,"totalQuad":8,"totalQuint":0,"crossoverLevel":2312,"bracketLevel":3015,"footswitchLevel":3071,"jackLevel":1574,"sideswitchLevel":2180,"doublestepLevel":2738,"staminaLevel":3194,"isBuddy":false,"preferences":"{\"discordId\":\"killuastep#4046\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"killuastep","sex":"Unspecified","profileImg":"https://i.imgur.com/6RlYaxc.png"},{"id":4,"membersId":66784,"dateAdded":"2023-03-16T20:55:06.000Z","lastUpdated":"2023-05-04T21:19:48.000Z","status":1,"totalPoints":1075778,"rankingPoints":434904,"totalPass":115,"totalFc":3,"totalFec":39,"totalQuad":105,"totalQuint":2,"crossoverLevel":5867,"bracketLevel":5678,"footswitchLevel":5628,"jackLevel":3452,"sideswitchLevel":6475,"doublestepLevel":5925,"staminaLevel":1870,"isBuddy":false,"preferences":"{\"discordId\":\"TommyDoesntMiss#3265\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TommyDoesntMiss","sex":"Male","profileImg":"https://i.imgur.com/cHGZBz5.jpg"},{"id":245,"membersId":169204,"dateAdded":"2023-03-19T00:58:23.000Z","lastUpdated":"2023-05-06T04:57:35.000Z","status":1,"totalPoints":870839,"rankingPoints":434622,"totalPass":114,"totalFc":42,"totalFec":26,"totalQuad":0,"totalQuint":0,"crossoverLevel":2562,"bracketLevel":4917,"footswitchLevel":3864,"jackLevel":4788,"sideswitchLevel":3008,"doublestepLevel":3800,"staminaLevel":4322,"isBuddy":false,"preferences":"{\"discordId\":\"mako#2931\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"takatzu48","sex":"Male","profileImg":""},{"id":308,"membersId":241,"dateAdded":"2023-03-19T05:12:21.000Z","lastUpdated":"2023-04-30T05:16:02.000Z","status":1,"totalPoints":1542032,"rankingPoints":430490,"totalPass":211,"totalFc":91,"totalFec":101,"totalQuad":6,"totalQuint":0,"crossoverLevel":8027,"bracketLevel":7036,"footswitchLevel":7330,"jackLevel":7315,"sideswitchLevel":7746,"doublestepLevel":7537,"staminaLevel":3855,"isBuddy":false,"preferences":"{\"discordId\":\"Eleftheria#2716\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Eleftheria","sex":"Male","profileImg":"https://i.imgur.com/Bq3TtwU.png"},{"id":17,"membersId":173058,"dateAdded":"2023-03-18T21:48:46.000Z","lastUpdated":"2023-05-04T20:51:39.000Z","status":1,"totalPoints":1450747,"rankingPoints":430305,"totalPass":159,"totalFc":34,"totalFec":56,"totalQuad":101,"totalQuint":0,"crossoverLevel":7595,"bracketLevel":6292,"footswitchLevel":6791,"jackLevel":7171,"sideswitchLevel":6517,"doublestepLevel":7220,"staminaLevel":3870,"isBuddy":false,"preferences":"{\"discordId\":\"Formless#8660\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Girth Brooks","sex":"Male","profileImg":"https://i.imgur.com/6DHh2Ra.png"},{"id":104,"membersId":2600,"dateAdded":"2023-03-18T21:53:35.000Z","lastUpdated":"2023-05-05T23:35:58.000Z","status":1,"totalPoints":1390268,"rankingPoints":428378,"totalPass":193,"totalFc":69,"totalFec":42,"totalQuad":6,"totalQuint":0,"crossoverLevel":6474,"bracketLevel":6684,"footswitchLevel":6870,"jackLevel":6966,"sideswitchLevel":7558,"doublestepLevel":6686,"staminaLevel":4026,"isBuddy":false,"preferences":"{\"discordId\":\"A Real Dog#3825\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DRON","sex":"Male","profileImg":"https://i.imgur.com/ezVfWhH.png"},{"id":207,"membersId":66532,"dateAdded":"2023-03-18T23:41:41.000Z","lastUpdated":"2023-05-05T03:06:39.000Z","status":1,"totalPoints":820951,"rankingPoints":427514,"totalPass":82,"totalFc":64,"totalFec":33,"totalQuad":4,"totalQuint":0,"crossoverLevel":3754,"bracketLevel":3911,"footswitchLevel":3898,"jackLevel":3486,"sideswitchLevel":4126,"doublestepLevel":4013,"staminaLevel":2364,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Alex C. Rock","sex":"Male","profileImg":""},{"id":112,"membersId":5362,"dateAdded":"2023-03-18T21:55:20.000Z","lastUpdated":"2023-05-03T23:45:47.000Z","status":1,"totalPoints":1368204,"rankingPoints":426177,"totalPass":154,"totalFc":52,"totalFec":105,"totalQuad":24,"totalQuint":0,"crossoverLevel":7141,"bracketLevel":6452,"footswitchLevel":7109,"jackLevel":6035,"sideswitchLevel":6871,"doublestepLevel":7005,"staminaLevel":3077,"isBuddy":false,"preferences":"{\"discordId\":\"Halogen-#2605\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Halogen-","sex":"Male","profileImg":"https://i.imgur.com/3hpYn84.jpg"},{"id":896,"membersId":127939,"dateAdded":"2023-03-29T07:47:01.000Z","lastUpdated":"2023-05-06T07:21:44.000Z","status":1,"totalPoints":817944,"rankingPoints":425853,"totalPass":91,"totalFc":29,"totalFec":55,"totalQuad":0,"totalQuint":0,"crossoverLevel":3277,"bracketLevel":4901,"footswitchLevel":4075,"jackLevel":4217,"sideswitchLevel":4046,"doublestepLevel":4399,"staminaLevel":2979,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"in","sex":"Unspecified","profileImg":"https://cdn.discordapp.com/attachments/479797320419115029/987922197295276042/revuestarlightpfps.png"},{"id":65,"membersId":173296,"dateAdded":"2023-03-18T21:49:51.000Z","lastUpdated":"2023-05-03T03:59:08.000Z","status":1,"totalPoints":1401056,"rankingPoints":421766,"totalPass":185,"totalFc":108,"totalFec":81,"totalQuad":1,"totalQuint":0,"crossoverLevel":6262,"bracketLevel":6366,"footswitchLevel":6218,"jackLevel":6218,"sideswitchLevel":6558,"doublestepLevel":6533,"staminaLevel":5424,"isBuddy":false,"preferences":"{\"discordId\":\"Icy#9253\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"IcyCold","sex":"Male","profileImg":"https://i.ibb.co/T2nN016/5143b8640817d8f48120b4c0ec913556726e495e-full.jpg"},{"id":77,"membersId":173043,"dateAdded":"2023-03-18T21:50:20.000Z","lastUpdated":"2023-05-05T02:44:24.000Z","status":1,"totalPoints":1109261,"rankingPoints":421712,"totalPass":124,"totalFc":45,"totalFec":67,"totalQuad":24,"totalQuint":0,"crossoverLevel":5722,"bracketLevel":5682,"footswitchLevel":5554,"jackLevel":3692,"sideswitchLevel":6869,"doublestepLevel":5056,"staminaLevel":3310,"isBuddy":false,"preferences":"{\"discordId\":\"XjojoX99#2048\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"XjojoX","sex":"Male","profileImg":"https://i.imgur.com/ufkIJAl.png"},{"id":303,"membersId":143647,"dateAdded":"2023-03-19T04:33:51.000Z","lastUpdated":"2023-05-07T02:40:43.000Z","status":1,"totalPoints":1546525,"rankingPoints":421545,"totalPass":200,"totalFc":50,"totalFec":126,"totalQuad":9,"totalQuint":0,"crossoverLevel":7816,"bracketLevel":6594,"footswitchLevel":7240,"jackLevel":7201,"sideswitchLevel":7412,"doublestepLevel":7429,"staminaLevel":4187,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"gulu","sex":"Male","profileImg":""},{"id":644,"membersId":169031,"dateAdded":"2023-03-22T05:44:28.000Z","lastUpdated":"2023-05-07T03:49:48.000Z","status":1,"totalPoints":1157912,"rankingPoints":420821,"totalPass":141,"totalFc":61,"totalFec":77,"totalQuad":15,"totalQuint":0,"crossoverLevel":5878,"bracketLevel":4487,"footswitchLevel":5561,"jackLevel":3923,"sideswitchLevel":5417,"doublestepLevel":5368,"staminaLevel":3699,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"!_Stepen_co_! :v","sex":"Male","profileImg":""},{"id":674,"membersId":175350,"dateAdded":"2023-03-22T22:58:36.000Z","lastUpdated":"2023-05-05T21:03:30.000Z","status":1,"totalPoints":687479,"rankingPoints":419458,"totalPass":55,"totalFc":37,"totalFec":46,"totalQuad":3,"totalQuint":0,"crossoverLevel":3131,"bracketLevel":2962,"footswitchLevel":3848,"jackLevel":1706,"sideswitchLevel":3534,"doublestepLevel":3165,"staminaLevel":1742,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ChickenTendies","sex":"Unspecified","profileImg":""},{"id":814,"membersId":7550,"dateAdded":"2023-03-26T02:39:01.000Z","lastUpdated":"2023-05-07T00:16:46.000Z","status":1,"totalPoints":999662,"rankingPoints":417059,"totalPass":121,"totalFc":55,"totalFec":43,"totalQuad":16,"totalQuint":0,"crossoverLevel":4328,"bracketLevel":2952,"footswitchLevel":3601,"jackLevel":2608,"sideswitchLevel":2710,"doublestepLevel":4460,"staminaLevel":4790,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mrCLICKman","sex":"Male","profileImg":""},{"id":549,"membersId":6261,"dateAdded":"2023-03-20T22:09:02.000Z","lastUpdated":"2023-05-06T01:29:56.000Z","status":1,"totalPoints":952104,"rankingPoints":414393,"totalPass":104,"totalFc":45,"totalFec":49,"totalQuad":13,"totalQuint":0,"crossoverLevel":4062,"bracketLevel":3171,"footswitchLevel":4428,"jackLevel":3278,"sideswitchLevel":5401,"doublestepLevel":3912,"staminaLevel":3690,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Shi0-X","sex":"Male","profileImg":"https://i.giphy.com/media/okLCopqw6ElCDnIhuS/200w.gif"},{"id":108,"membersId":173215,"dateAdded":"2023-03-18T21:54:27.000Z","lastUpdated":"2023-04-30T18:38:12.000Z","status":1,"totalPoints":813706,"rankingPoints":413370,"totalPass":140,"totalFc":19,"totalFec":22,"totalQuad":4,"totalQuint":0,"crossoverLevel":3162,"bracketLevel":3723,"footswitchLevel":3417,"jackLevel":3736,"sideswitchLevel":2337,"doublestepLevel":3666,"staminaLevel":2964,"isBuddy":false,"preferences":"{\"discordId\":\"bogo#3604\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"bogo","sex":"Unspecified","profileImg":""},{"id":1187,"membersId":175354,"dateAdded":"2023-04-22T17:11:12.000Z","lastUpdated":"2023-05-06T19:05:56.000Z","status":1,"totalPoints":566256,"rankingPoints":412474,"totalPass":33,"totalFc":29,"totalFec":45,"totalQuad":8,"totalQuint":0,"crossoverLevel":2739,"bracketLevel":2043,"footswitchLevel":3295,"jackLevel":1677,"sideswitchLevel":3390,"doublestepLevel":2919,"staminaLevel":1220,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Bud Light Enjoyer","sex":"Female","profileImg":""},{"id":217,"membersId":37977,"dateAdded":"2023-03-19T00:11:23.000Z","lastUpdated":"2023-05-04T23:38:10.000Z","status":1,"totalPoints":1478500,"rankingPoints":411746,"totalPass":158,"totalFc":110,"totalFec":103,"totalQuad":3,"totalQuint":0,"crossoverLevel":7598,"bracketLevel":6925,"footswitchLevel":7111,"jackLevel":6788,"sideswitchLevel":7278,"doublestepLevel":7301,"staminaLevel":3916,"isBuddy":false,"preferences":"{\"discordId\":\"Valex#8095\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Valex","sex":"Male","profileImg":"https://i.imgur.com/OkpuTKw.jpg"},{"id":238,"membersId":2114,"dateAdded":"2023-03-19T00:45:45.000Z","lastUpdated":"2023-05-04T22:02:10.000Z","status":1,"totalPoints":661431,"rankingPoints":410940,"totalPass":118,"totalFc":16,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":2282,"bracketLevel":3110,"footswitchLevel":3174,"jackLevel":2277,"sideswitchLevel":3956,"doublestepLevel":2599,"staminaLevel":2669,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Beremy","sex":"Male","profileImg":"https://pa1.narvii.com/5988/15ecd73be90b2c8f267921821e0cb0c566615e93_128.gif"},{"id":395,"membersId":165743,"dateAdded":"2023-03-19T18:49:14.000Z","lastUpdated":"2023-05-05T02:20:33.000Z","status":1,"totalPoints":1248750,"rankingPoints":410909,"totalPass":179,"totalFc":67,"totalFec":43,"totalQuad":2,"totalQuint":0,"crossoverLevel":6043,"bracketLevel":5637,"footswitchLevel":6253,"jackLevel":6412,"sideswitchLevel":6406,"doublestepLevel":6256,"staminaLevel":3299,"isBuddy":true,"preferences":"{\"discordId\":\"trescal#1752\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"trescal","sex":"Male","profileImg":"https://i.imgur.com/x08ICKt.png"},{"id":94,"membersId":5314,"dateAdded":"2023-03-18T21:52:01.000Z","lastUpdated":"2023-05-06T14:01:28.000Z","status":1,"totalPoints":1308790,"rankingPoints":410816,"totalPass":148,"totalFc":69,"totalFec":65,"totalQuad":13,"totalQuint":0,"crossoverLevel":5961,"bracketLevel":6014,"footswitchLevel":6148,"jackLevel":6558,"sideswitchLevel":6279,"doublestepLevel":6289,"staminaLevel":3710,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MrMeatloaf","sex":"Male","profileImg":"https://i.imgur.com/Ye5e236.jpg"},{"id":53,"membersId":173267,"dateAdded":"2023-03-18T21:49:07.000Z","lastUpdated":"2023-05-06T04:03:08.000Z","status":1,"totalPoints":1307242,"rankingPoints":409702,"totalPass":179,"totalFc":54,"totalFec":91,"totalQuad":7,"totalQuint":0,"crossoverLevel":6326,"bracketLevel":6227,"footswitchLevel":6403,"jackLevel":6110,"sideswitchLevel":5255,"doublestepLevel":6828,"staminaLevel":3404,"isBuddy":false,"preferences":"{\"discordId\":\"CERiNG#0282\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CERiNG","sex":"Unspecified","profileImg":"https://i.imgur.com/7XZZDsY.png"},{"id":135,"membersId":66778,"dateAdded":"2023-03-18T22:04:30.000Z","lastUpdated":"2023-05-06T15:33:59.000Z","status":1,"totalPoints":930865,"rankingPoints":407995,"totalPass":75,"totalFc":35,"totalFec":40,"totalQuad":88,"totalQuint":2,"crossoverLevel":5369,"bracketLevel":3029,"footswitchLevel":4628,"jackLevel":2165,"sideswitchLevel":4507,"doublestepLevel":4452,"staminaLevel":2324,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Shpadoinkle","sex":"Female","profileImg":""},{"id":432,"membersId":132471,"dateAdded":"2023-03-19T22:19:42.000Z","lastUpdated":"2023-04-30T11:11:35.000Z","status":1,"totalPoints":1311207,"rankingPoints":407114,"totalPass":218,"totalFc":50,"totalFec":35,"totalQuad":0,"totalQuint":0,"crossoverLevel":5138,"bracketLevel":6295,"footswitchLevel":6061,"jackLevel":5368,"sideswitchLevel":6052,"doublestepLevel":5641,"staminaLevel":5073,"isBuddy":false,"preferences":"{\"discordId\":\"neyoru#3460\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"neyoru","sex":"Male","profileImg":""},{"id":23,"membersId":132528,"dateAdded":"2023-03-18T21:48:51.000Z","lastUpdated":"2023-05-02T03:32:21.000Z","status":1,"totalPoints":1359396,"rankingPoints":406704,"totalPass":201,"totalFc":52,"totalFec":100,"totalQuad":1,"totalQuint":0,"crossoverLevel":7110,"bracketLevel":6556,"footswitchLevel":6737,"jackLevel":6714,"sideswitchLevel":6800,"doublestepLevel":6740,"staminaLevel":3224,"isBuddy":false,"preferences":"{\"discordId\":\"palace#6947\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"palacebeast","sex":"Male","profileImg":"https://i.imgur.com/1i4BqR0.png"},{"id":280,"membersId":173125,"dateAdded":"2023-03-19T02:48:37.000Z","lastUpdated":"2023-05-04T22:38:56.000Z","status":1,"totalPoints":918933,"rankingPoints":405569,"totalPass":54,"totalFc":37,"totalFec":63,"totalQuad":88,"totalQuint":0,"crossoverLevel":5549,"bracketLevel":3382,"footswitchLevel":4641,"jackLevel":2937,"sideswitchLevel":4208,"doublestepLevel":4940,"staminaLevel":1728,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lux Aurumque","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/798031312349823030/1088961762730201168/flying.png"},{"id":268,"membersId":7886,"dateAdded":"2023-03-19T01:58:08.000Z","lastUpdated":"2023-04-30T07:27:01.000Z","status":1,"totalPoints":1596006,"rankingPoints":404851,"totalPass":236,"totalFc":59,"totalFec":107,"totalQuad":18,"totalQuint":0,"crossoverLevel":7658,"bracketLevel":7062,"footswitchLevel":7208,"jackLevel":6868,"sideswitchLevel":7250,"doublestepLevel":7566,"staminaLevel":5317,"isBuddy":true,"preferences":"{\"discordId\":\"Zarzob#0001\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zarzob","sex":"Male","profileImg":"https://i.imgur.com/IbJlXCl.png"},{"id":125,"membersId":147886,"dateAdded":"2023-03-18T22:00:45.000Z","lastUpdated":"2023-04-23T03:05:19.000Z","status":1,"totalPoints":708408,"rankingPoints":404843,"totalPass":76,"totalFc":54,"totalFec":29,"totalQuad":7,"totalQuint":0,"crossoverLevel":2795,"bracketLevel":2475,"footswitchLevel":2967,"jackLevel":2233,"sideswitchLevel":2759,"doublestepLevel":2980,"staminaLevel":2671,"isBuddy":false,"preferences":"{\"discordId\":\"slowest#6798\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Slowest","sex":"Unspecified","profileImg":""},{"id":143,"membersId":66673,"dateAdded":"2023-03-18T22:10:43.000Z","lastUpdated":"2023-05-06T16:10:16.000Z","status":1,"totalPoints":647814,"rankingPoints":403488,"totalPass":90,"totalFc":24,"totalFec":25,"totalQuad":1,"totalQuint":0,"crossoverLevel":2106,"bracketLevel":2453,"footswitchLevel":2549,"jackLevel":3403,"sideswitchLevel":3288,"doublestepLevel":2345,"staminaLevel":2755,"isBuddy":false,"preferences":"{\"discordId\":\"Chief Skittles#1789\",\"decentsEnabled\":true,\"wayOffsEnabled\":false}","name":"ChiefSkittles","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/916109510790221886/1091130185371353118/pfp.png"},{"id":196,"membersId":35405,"dateAdded":"2023-03-18T23:05:54.000Z","lastUpdated":"2023-05-06T07:00:55.000Z","status":1,"totalPoints":1023911,"rankingPoints":403235,"totalPass":32,"totalFc":78,"totalFec":90,"totalQuad":58,"totalQuint":10,"crossoverLevel":6485,"bracketLevel":4040,"footswitchLevel":5160,"jackLevel":4430,"sideswitchLevel":5279,"doublestepLevel":5465,"staminaLevel":1968,"isBuddy":false,"preferences":"{\"discordId\":\"KIO#0133\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"VERTEX KIO","sex":"Male","profileImg":"https://i.postimg.cc/DfWZGz2w/ITL.jpg"},{"id":156,"membersId":3761,"dateAdded":"2023-03-18T22:21:55.000Z","lastUpdated":"2023-05-05T23:27:46.000Z","status":1,"totalPoints":582407,"rankingPoints":403136,"totalPass":44,"totalFc":14,"totalFec":33,"totalQuad":39,"totalQuint":1,"crossoverLevel":2931,"bracketLevel":3776,"footswitchLevel":3802,"jackLevel":1681,"sideswitchLevel":3179,"doublestepLevel":4187,"staminaLevel":845,"isBuddy":false,"preferences":"{\"discordId\":\"BB-LON#0282\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BBLON","sex":"Male","profileImg":"https://i.imgur.com/u3fOa37.png"},{"id":948,"membersId":6703,"dateAdded":"2023-04-01T07:31:33.000Z","lastUpdated":"2023-04-29T09:37:31.000Z","status":1,"totalPoints":810817,"rankingPoints":402697,"totalPass":96,"totalFc":30,"totalFec":39,"totalQuad":9,"totalQuint":0,"crossoverLevel":3464,"bracketLevel":3150,"footswitchLevel":3903,"jackLevel":2124,"sideswitchLevel":3208,"doublestepLevel":3724,"staminaLevel":2190,"isBuddy":false,"preferences":"{\"discordId\":\"Mekki#5095\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Mekki","sex":"Female","profileImg":"https://i.imgur.com/nXMHnlM.jpg"},{"id":416,"membersId":170950,"dateAdded":"2023-03-19T20:30:17.000Z","lastUpdated":"2023-05-06T22:40:11.000Z","status":1,"totalPoints":1241877,"rankingPoints":402061,"totalPass":166,"totalFc":67,"totalFec":59,"totalQuad":8,"totalQuint":0,"crossoverLevel":6308,"bracketLevel":5662,"footswitchLevel":6440,"jackLevel":6457,"sideswitchLevel":7067,"doublestepLevel":6681,"staminaLevel":2967,"isBuddy":false,"preferences":"{\"discordId\":\"oknap#5399\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"oknap","sex":"Male","profileImg":""},{"id":336,"membersId":33573,"dateAdded":"2023-03-19T11:05:08.000Z","lastUpdated":"2023-05-06T23:36:52.000Z","status":1,"totalPoints":1455018,"rankingPoints":401703,"totalPass":175,"totalFc":46,"totalFec":97,"totalQuad":47,"totalQuint":0,"crossoverLevel":7563,"bracketLevel":5879,"footswitchLevel":6550,"jackLevel":6599,"sideswitchLevel":6478,"doublestepLevel":7139,"staminaLevel":4052,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"anisakis","sex":"Male","profileImg":""},{"id":363,"membersId":280,"dateAdded":"2023-03-19T16:13:09.000Z","lastUpdated":"2023-05-07T03:10:07.000Z","status":1,"totalPoints":1453386,"rankingPoints":400304,"totalPass":186,"totalFc":34,"totalFec":52,"totalQuad":91,"totalQuint":0,"crossoverLevel":7817,"bracketLevel":6086,"footswitchLevel":6697,"jackLevel":6799,"sideswitchLevel":7139,"doublestepLevel":7300,"staminaLevel":3623,"isBuddy":false,"preferences":"{\"discordId\":\"Faker13#9399\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Faker13","sex":"Male","profileImg":"https://i.imgur.com/krDDjC3.jpg"},{"id":371,"membersId":173145,"dateAdded":"2023-03-19T17:02:51.000Z","lastUpdated":"2023-04-27T00:09:49.000Z","status":1,"totalPoints":1493472,"rankingPoints":399354,"totalPass":234,"totalFc":53,"totalFec":91,"totalQuad":4,"totalQuint":0,"crossoverLevel":7717,"bracketLevel":6861,"footswitchLevel":7229,"jackLevel":6643,"sideswitchLevel":7371,"doublestepLevel":7461,"staminaLevel":3808,"isBuddy":false,"preferences":"{\"discordId\":\"miklowcic#0416\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"miklowcic","sex":"Male","profileImg":"https://i.imgur.com/CXKK11f.jpg"},{"id":110,"membersId":173359,"dateAdded":"2023-03-18T21:54:58.000Z","lastUpdated":"2023-05-04T22:45:52.000Z","status":1,"totalPoints":1511662,"rankingPoints":395953,"totalPass":187,"totalFc":103,"totalFec":92,"totalQuad":23,"totalQuint":0,"crossoverLevel":7522,"bracketLevel":6606,"footswitchLevel":6860,"jackLevel":7143,"sideswitchLevel":6237,"doublestepLevel":7378,"staminaLevel":4558,"isBuddy":false,"preferences":"{\"discordId\":\"phixious#5640\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"xancara","sex":"Male","profileImg":""},{"id":427,"membersId":62,"dateAdded":"2023-03-19T21:42:25.000Z","lastUpdated":"2023-05-05T03:07:20.000Z","status":1,"totalPoints":900345,"rankingPoints":394614,"totalPass":134,"totalFc":43,"totalFec":19,"totalQuad":3,"totalQuint":0,"crossoverLevel":3038,"bracketLevel":3691,"footswitchLevel":4118,"jackLevel":4760,"sideswitchLevel":3606,"doublestepLevel":4000,"staminaLevel":3676,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JJK","sex":"Male","profileImg":"https://i.ibb.co/fCcH4Jx/jjk.png"},{"id":213,"membersId":4021,"dateAdded":"2023-03-18T23:54:13.000Z","lastUpdated":"2023-05-06T16:26:48.000Z","status":1,"totalPoints":1098059,"rankingPoints":394421,"totalPass":155,"totalFc":38,"totalFec":66,"totalQuad":17,"totalQuint":0,"crossoverLevel":5601,"bracketLevel":5677,"footswitchLevel":5623,"jackLevel":4741,"sideswitchLevel":5351,"doublestepLevel":5249,"staminaLevel":2505,"isBuddy":false,"preferences":"{\"discordId\":\"Highflyer#2114\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Highflyer","sex":"Male","profileImg":"https://media.discordapp.net/attachments/759754788505255937/852307537805967420/highfl10pogAC.png"},{"id":162,"membersId":49444,"dateAdded":"2023-03-18T22:26:42.000Z","lastUpdated":"2023-05-04T22:18:44.000Z","status":1,"totalPoints":1136406,"rankingPoints":394036,"totalPass":186,"totalFc":69,"totalFec":44,"totalQuad":1,"totalQuint":0,"crossoverLevel":4938,"bracketLevel":4097,"footswitchLevel":4527,"jackLevel":5354,"sideswitchLevel":4542,"doublestepLevel":4735,"staminaLevel":4651,"isBuddy":false,"preferences":"{\"discordId\":\"Freyja#4407\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"freyja","sex":"Female","profileImg":"https://i.ibb.co/26cb2XQ/Dbecdqk-151620b8-331a-42eb-9211-5d4798282726.jpg"},{"id":139,"membersId":3306,"dateAdded":"2023-03-18T22:07:50.000Z","lastUpdated":"2023-05-06T02:25:15.000Z","status":1,"totalPoints":683703,"rankingPoints":393983,"totalPass":87,"totalFc":12,"totalFec":55,"totalQuad":10,"totalQuint":0,"crossoverLevel":2523,"bracketLevel":2562,"footswitchLevel":2821,"jackLevel":2102,"sideswitchLevel":1535,"doublestepLevel":2903,"staminaLevel":2087,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ElPapaCosmico","sex":"Male","profileImg":"https://i.pinimg.com/236x/3e/01/73/3e0173d36ceed20727f4724b71d2961e--rilakkuma-kitty.jpg"},{"id":319,"membersId":173419,"dateAdded":"2023-03-19T06:43:39.000Z","lastUpdated":"2023-04-27T07:27:41.000Z","status":1,"totalPoints":1030163,"rankingPoints":393828,"totalPass":177,"totalFc":38,"totalFec":24,"totalQuad":2,"totalQuint":0,"crossoverLevel":4498,"bracketLevel":4189,"footswitchLevel":4464,"jackLevel":4876,"sideswitchLevel":4667,"doublestepLevel":4551,"staminaLevel":3767,"isBuddy":true,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Desklamp","sex":"Male","profileImg":""},{"id":548,"membersId":128704,"dateAdded":"2023-03-20T22:05:59.000Z","lastUpdated":"2023-05-06T22:03:11.000Z","status":1,"totalPoints":1413936,"rankingPoints":392614,"totalPass":197,"totalFc":138,"totalFec":55,"totalQuad":0,"totalQuint":0,"crossoverLevel":7105,"bracketLevel":6665,"footswitchLevel":6753,"jackLevel":5859,"sideswitchLevel":6756,"doublestepLevel":7019,"staminaLevel":3884,"isBuddy":false,"preferences":"{\"discordId\":\"wrsw#0132\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"wrsw","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/955883714523594834/1088447719426760785/gs.png"},{"id":117,"membersId":173409,"dateAdded":"2023-03-18T21:57:22.000Z","lastUpdated":"2023-05-07T00:50:08.000Z","status":1,"totalPoints":1355293,"rankingPoints":392370,"totalPass":234,"totalFc":73,"totalFec":33,"totalQuad":9,"totalQuint":0,"crossoverLevel":6622,"bracketLevel":6005,"footswitchLevel":6185,"jackLevel":6377,"sideswitchLevel":7207,"doublestepLevel":6481,"staminaLevel":4163,"isBuddy":false,"preferences":"{\"discordId\":\"FuriousD#6477\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Furious_Dan","sex":"Male","profileImg":"https://i.ibb.co/2Mm9bgM/kos-transparent-small.png"},{"id":639,"membersId":77372,"dateAdded":"2023-03-22T04:25:50.000Z","lastUpdated":"2023-05-05T03:23:07.000Z","status":1,"totalPoints":867395,"rankingPoints":392025,"totalPass":180,"totalFc":22,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":3372,"bracketLevel":4929,"footswitchLevel":4168,"jackLevel":4960,"sideswitchLevel":4966,"doublestepLevel":4257,"staminaLevel":2900,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"aeubanks","sex":"Unspecified","profileImg":""},{"id":718,"membersId":173119,"dateAdded":"2023-03-24T01:56:51.000Z","lastUpdated":"2023-05-07T03:02:42.000Z","status":1,"totalPoints":932261,"rankingPoints":390664,"totalPass":127,"totalFc":51,"totalFec":44,"totalQuad":2,"totalQuint":0,"crossoverLevel":3943,"bracketLevel":4421,"footswitchLevel":4340,"jackLevel":3493,"sideswitchLevel":4404,"doublestepLevel":4651,"staminaLevel":2886,"isBuddy":false,"preferences":"{\"discordId\":\"Kenji#8255\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Rui Hachimura","sex":"Male","profileImg":""},{"id":304,"membersId":165777,"dateAdded":"2023-03-19T04:37:17.000Z","lastUpdated":"2023-05-07T03:36:00.000Z","status":1,"totalPoints":1085521,"rankingPoints":390505,"totalPass":179,"totalFc":48,"totalFec":37,"totalQuad":1,"totalQuint":0,"crossoverLevel":5005,"bracketLevel":4790,"footswitchLevel":4912,"jackLevel":5850,"sideswitchLevel":4985,"doublestepLevel":5315,"staminaLevel":3253,"isBuddy":false,"preferences":"{\"discordId\":\"Meatyguy#5343\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Meatyguy","sex":"Male","profileImg":"https://www.flashflashrevolution.com/vbz/customavatars/avatar1035057_10.gif"},{"id":728,"membersId":173441,"dateAdded":"2023-03-24T12:42:25.000Z","lastUpdated":"2023-05-07T03:06:30.000Z","status":1,"totalPoints":1156954,"rankingPoints":390284,"totalPass":179,"totalFc":53,"totalFec":40,"totalQuad":39,"totalQuint":1,"crossoverLevel":5970,"bracketLevel":4940,"footswitchLevel":5546,"jackLevel":3740,"sideswitchLevel":5201,"doublestepLevel":5502,"staminaLevel":2923,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Esteban_Bayona","sex":"Male","profileImg":"https://i.postimg.cc/6Qp1xZrP/Dise-o-sin-t-tulo.jpg"},{"id":102,"membersId":1087,"dateAdded":"2023-03-18T21:53:27.000Z","lastUpdated":"2023-04-24T02:12:47.000Z","status":1,"totalPoints":588566,"rankingPoints":390169,"totalPass":123,"totalFc":7,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":2220,"bracketLevel":2744,"footswitchLevel":2278,"jackLevel":3663,"sideswitchLevel":2662,"doublestepLevel":2771,"staminaLevel":2647,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CLINTBEASTWOOD","sex":"Male","profileImg":"https://i.imgur.com/y6NtHkN.png"},{"id":282,"membersId":167704,"dateAdded":"2023-03-19T02:56:02.000Z","lastUpdated":"2023-05-06T01:02:37.000Z","status":1,"totalPoints":986595,"rankingPoints":389873,"totalPass":89,"totalFc":55,"totalFec":67,"totalQuad":52,"totalQuint":0,"crossoverLevel":5846,"bracketLevel":3076,"footswitchLevel":4609,"jackLevel":3208,"sideswitchLevel":5093,"doublestepLevel":4916,"staminaLevel":2223,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MegamanFknX","sex":"Male","profileImg":"https://i1.sndcdn.com/artworks-H4Rkyy5HygqBFyzQ-XbLumA-t240x240.jpg"},{"id":28,"membersId":77862,"dateAdded":"2023-03-18T21:48:54.000Z","lastUpdated":"2023-05-07T00:41:56.000Z","status":1,"totalPoints":1146389,"rankingPoints":389779,"totalPass":185,"totalFc":63,"totalFec":33,"totalQuad":2,"totalQuint":0,"crossoverLevel":4442,"bracketLevel":5561,"footswitchLevel":5582,"jackLevel":5632,"sideswitchLevel":4661,"doublestepLevel":5631,"staminaLevel":3416,"isBuddy":false,"preferences":"{\"discordId\":\"JeffreyATW#8645\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JeffreyATW","sex":"Male","profileImg":"https://jeffreyatw.com/static/images/profile-wink-250.png"},{"id":216,"membersId":133806,"dateAdded":"2023-03-19T00:10:53.000Z","lastUpdated":"2023-05-07T03:47:30.000Z","status":1,"totalPoints":1250891,"rankingPoints":389639,"totalPass":172,"totalFc":71,"totalFec":97,"totalQuad":2,"totalQuint":0,"crossoverLevel":6500,"bracketLevel":4794,"footswitchLevel":6066,"jackLevel":5670,"sideswitchLevel":6824,"doublestepLevel":6272,"staminaLevel":3074,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PUYO","sex":"Unspecified","profileImg":"https://live.staticflickr.com/65535/51260131445_d6c068ca6e_m.jpg"},{"id":70,"membersId":173636,"dateAdded":"2023-03-18T21:49:56.000Z","lastUpdated":"2023-05-05T04:29:37.000Z","status":1,"totalPoints":650673,"rankingPoints":388002,"totalPass":69,"totalFc":10,"totalFec":35,"totalQuad":48,"totalQuint":0,"crossoverLevel":3649,"bracketLevel":1987,"footswitchLevel":3070,"jackLevel":1963,"sideswitchLevel":2531,"doublestepLevel":3346,"staminaLevel":1429,"isBuddy":false,"preferences":"{\"discordId\":\"sarbackergaming#8250\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ZSL","sex":"Male","profileImg":"https://i.imgur.com/NvPX4bC.png"},{"id":976,"membersId":471,"dateAdded":"2023-04-02T19:21:59.000Z","lastUpdated":"2023-04-25T00:00:45.000Z","status":1,"totalPoints":696487,"rankingPoints":387585,"totalPass":70,"totalFc":44,"totalFec":34,"totalQuad":17,"totalQuint":0,"crossoverLevel":3017,"bracketLevel":1789,"footswitchLevel":2398,"jackLevel":4094,"sideswitchLevel":2430,"doublestepLevel":2899,"staminaLevel":2603,"isBuddy":false,"preferences":"{\"discordId\":\"kay0ss#6339\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"kay0ss","sex":"Male","profileImg":""},{"id":63,"membersId":173182,"dateAdded":"2023-03-18T21:49:50.000Z","lastUpdated":"2023-04-27T14:32:54.000Z","status":1,"totalPoints":1279445,"rankingPoints":385954,"totalPass":193,"totalFc":124,"totalFec":38,"totalQuad":0,"totalQuint":0,"crossoverLevel":6831,"bracketLevel":6145,"footswitchLevel":6525,"jackLevel":4816,"sideswitchLevel":6858,"doublestepLevel":6493,"staminaLevel":3058,"isBuddy":false,"preferences":"{\"discordId\":\"DDDAAA#5914\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DDDAAA","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/250042733303955467/941867594590322718/fernandey.png"},{"id":89,"membersId":66785,"dateAdded":"2023-03-18T21:51:12.000Z","lastUpdated":"2023-05-06T01:00:17.000Z","status":1,"totalPoints":1059311,"rankingPoints":385116,"totalPass":137,"totalFc":53,"totalFec":97,"totalQuad":0,"totalQuint":0,"crossoverLevel":5596,"bracketLevel":4275,"footswitchLevel":5372,"jackLevel":3492,"sideswitchLevel":4427,"doublestepLevel":5716,"staminaLevel":2361,"isBuddy":false,"preferences":"{\"discordId\":\"Ralph#6196\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Ralph Caffery","sex":"Male","profileImg":""},{"id":857,"membersId":172954,"dateAdded":"2023-03-27T20:00:21.000Z","lastUpdated":"2023-05-06T00:19:03.000Z","status":1,"totalPoints":948686,"rankingPoints":384622,"totalPass":59,"totalFc":71,"totalFec":110,"totalQuad":19,"totalQuint":0,"crossoverLevel":5884,"bracketLevel":3404,"footswitchLevel":4831,"jackLevel":3646,"sideswitchLevel":4836,"doublestepLevel":4981,"staminaLevel":1873,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"copas","sex":"Male","profileImg":""},{"id":382,"membersId":3778,"dateAdded":"2023-03-19T17:38:41.000Z","lastUpdated":"2023-05-05T06:49:07.000Z","status":1,"totalPoints":730334,"rankingPoints":382522,"totalPass":69,"totalFc":41,"totalFec":73,"totalQuad":5,"totalQuint":0,"crossoverLevel":4444,"bracketLevel":2530,"footswitchLevel":3742,"jackLevel":1733,"sideswitchLevel":3740,"doublestepLevel":4310,"staminaLevel":1483,"isBuddy":false,"preferences":"{\"discordId\":\"s!cK b0y#7276\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Andisheh","sex":"Male","profileImg":""},{"id":401,"membersId":132280,"dateAdded":"2023-03-19T19:14:00.000Z","lastUpdated":"2023-05-04T00:52:22.000Z","status":1,"totalPoints":752673,"rankingPoints":382144,"totalPass":121,"totalFc":42,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":3228,"bracketLevel":4313,"footswitchLevel":3680,"jackLevel":3935,"sideswitchLevel":4020,"doublestepLevel":3582,"staminaLevel":2367,"isBuddy":false,"preferences":"{\"discordId\":\"Fingy#7439\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Fingy","sex":"Male","profileImg":""},{"id":25,"membersId":172893,"dateAdded":"2023-03-18T21:48:52.000Z","lastUpdated":"2023-05-07T00:54:10.000Z","status":1,"totalPoints":1343667,"rankingPoints":380609,"totalPass":189,"totalFc":101,"totalFec":69,"totalQuad":0,"totalQuint":0,"crossoverLevel":5888,"bracketLevel":6183,"footswitchLevel":6248,"jackLevel":6407,"sideswitchLevel":5501,"doublestepLevel":6246,"staminaLevel":4313,"isBuddy":false,"preferences":"{\"discordId\":\"Smalls#9101\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Smalls","sex":"Male","profileImg":"https://i.imgur.com/RDuvnsC.jpg"},{"id":55,"membersId":134219,"dateAdded":"2023-03-18T21:49:10.000Z","lastUpdated":"2023-05-05T04:31:17.000Z","status":1,"totalPoints":867474,"rankingPoints":380112,"totalPass":125,"totalFc":24,"totalFec":46,"totalQuad":17,"totalQuint":0,"crossoverLevel":4101,"bracketLevel":4278,"footswitchLevel":4224,"jackLevel":2659,"sideswitchLevel":3261,"doublestepLevel":3848,"staminaLevel":1874,"isBuddy":false,"preferences":"{\"discordId\":\"Zarinah#9770\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ZarinahBBM","sex":"Female","profileImg":"https://i.ibb.co/0f7Rrg3/My-home.png"},{"id":258,"membersId":173291,"dateAdded":"2023-03-19T01:39:56.000Z","lastUpdated":"2023-05-05T15:04:05.000Z","status":1,"totalPoints":467173,"rankingPoints":379591,"totalPass":58,"totalFc":27,"totalFec":26,"totalQuad":1,"totalQuint":0,"crossoverLevel":1631,"bracketLevel":1775,"footswitchLevel":2229,"jackLevel":1382,"sideswitchLevel":1315,"doublestepLevel":1836,"staminaLevel":1974,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Daz4","sex":"Unspecified","profileImg":""},{"id":556,"membersId":82300,"dateAdded":"2023-03-20T23:03:06.000Z","lastUpdated":"2023-05-05T00:31:00.000Z","status":1,"totalPoints":784524,"rankingPoints":378968,"totalPass":89,"totalFc":25,"totalFec":78,"totalQuad":26,"totalQuint":0,"crossoverLevel":4805,"bracketLevel":3139,"footswitchLevel":4394,"jackLevel":2671,"sideswitchLevel":4903,"doublestepLevel":4603,"staminaLevel":1615,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"itsjusowl","sex":"Male","profileImg":""},{"id":1,"membersId":50287,"dateAdded":"2023-03-15T03:01:38.000Z","lastUpdated":"2023-04-29T03:14:34.000Z","status":1,"totalPoints":949910,"rankingPoints":378662,"totalPass":146,"totalFc":38,"totalFec":51,"totalQuad":10,"totalQuint":0,"crossoverLevel":4600,"bracketLevel":3715,"footswitchLevel":4297,"jackLevel":4479,"sideswitchLevel":4865,"doublestepLevel":4227,"staminaLevel":3354,"isBuddy":true,"preferences":"{\"discordId\":\"teejusb#1921\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"teejusb","sex":"Male","profileImg":"https://i.imgur.com/thVD6Fe.png"},{"id":399,"membersId":7693,"dateAdded":"2023-03-19T19:03:23.000Z","lastUpdated":"2023-04-15T23:09:18.000Z","status":1,"totalPoints":381346,"rankingPoints":378337,"totalPass":27,"totalFc":19,"totalFec":23,"totalQuad":7,"totalQuint":0,"crossoverLevel":1395,"bracketLevel":1746,"footswitchLevel":1772,"jackLevel":608,"sideswitchLevel":1144,"doublestepLevel":1748,"staminaLevel":1416,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"El_Tarma","sex":"Male","profileImg":""},{"id":36,"membersId":127813,"dateAdded":"2023-03-18T21:48:59.000Z","lastUpdated":"2023-05-07T05:55:07.000Z","status":1,"totalPoints":872409,"rankingPoints":377390,"totalPass":114,"totalFc":54,"totalFec":42,"totalQuad":0,"totalQuint":0,"crossoverLevel":3844,"bracketLevel":5149,"footswitchLevel":4580,"jackLevel":3840,"sideswitchLevel":4953,"doublestepLevel":4776,"staminaLevel":2070,"isBuddy":false,"preferences":"{\"discordId\":\"RakkiiCB#3661\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"RakkiiCB","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/924755977067171940/986492744136556554/Untitled-1.png"},{"id":193,"membersId":173050,"dateAdded":"2023-03-18T23:03:16.000Z","lastUpdated":"2023-05-05T00:03:12.000Z","status":1,"totalPoints":853339,"rankingPoints":377000,"totalPass":132,"totalFc":51,"totalFec":23,"totalQuad":4,"totalQuint":0,"crossoverLevel":3478,"bracketLevel":3533,"footswitchLevel":3992,"jackLevel":2396,"sideswitchLevel":4308,"doublestepLevel":3018,"staminaLevel":3621,"isBuddy":false,"preferences":"{\"discordId\":\"Endymion48#5825\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"EndymionCL","sex":"Male","profileImg":"https://i.imgur.com/wvZXXWE.jpg"},{"id":256,"membersId":163474,"dateAdded":"2023-03-19T01:37:47.000Z","lastUpdated":"2023-04-30T10:25:07.000Z","status":1,"totalPoints":1202159,"rankingPoints":375230,"totalPass":168,"totalFc":75,"totalFec":80,"totalQuad":0,"totalQuint":0,"crossoverLevel":6614,"bracketLevel":5116,"footswitchLevel":5895,"jackLevel":4989,"sideswitchLevel":6137,"doublestepLevel":6047,"staminaLevel":2968,"isBuddy":false,"preferences":"{\"discordId\":\"babyzionov#7209\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"babyzionov","sex":"Unspecified","profileImg":""},{"id":929,"membersId":173196,"dateAdded":"2023-03-30T23:50:10.000Z","lastUpdated":"2023-05-07T02:13:35.000Z","status":1,"totalPoints":558358,"rankingPoints":375219,"totalPass":23,"totalFc":24,"totalFec":72,"totalQuad":20,"totalQuint":0,"crossoverLevel":3026,"bracketLevel":2380,"footswitchLevel":2817,"jackLevel":2816,"sideswitchLevel":2255,"doublestepLevel":2457,"staminaLevel":1150,"isBuddy":false,"preferences":"{\"discordId\":\"MIKO491#2751\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MIKO491","sex":"Male","profileImg":""},{"id":33,"membersId":61697,"dateAdded":"2023-03-18T21:48:57.000Z","lastUpdated":"2023-05-05T03:13:49.000Z","status":1,"totalPoints":861783,"rankingPoints":375176,"totalPass":128,"totalFc":42,"totalFec":56,"totalQuad":1,"totalQuint":0,"crossoverLevel":4534,"bracketLevel":3457,"footswitchLevel":4278,"jackLevel":2655,"sideswitchLevel":3608,"doublestepLevel":3749,"staminaLevel":2388,"isBuddy":false,"preferences":"{\"discordId\":\"Blizzrdball#3098\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Blizzrdball","sex":"Male","profileImg":"https://i.imgur.com/wgt2mm0.png"},{"id":140,"membersId":174935,"dateAdded":"2023-03-18T22:09:53.000Z","lastUpdated":"2023-05-04T03:53:41.000Z","status":1,"totalPoints":1299992,"rankingPoints":375005,"totalPass":221,"totalFc":81,"totalFec":38,"totalQuad":1,"totalQuint":0,"crossoverLevel":5929,"bracketLevel":4872,"footswitchLevel":5339,"jackLevel":5401,"sideswitchLevel":4252,"doublestepLevel":6273,"staminaLevel":4753,"isBuddy":false,"preferences":"{\"discordId\":\"reset#7763\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"reset_itg","sex":"Unspecified","profileImg":""},{"id":699,"membersId":66664,"dateAdded":"2023-03-23T14:43:51.000Z","lastUpdated":"2023-05-04T17:37:04.000Z","status":1,"totalPoints":1258221,"rankingPoints":374687,"totalPass":304,"totalFc":22,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":4723,"bracketLevel":5018,"footswitchLevel":5350,"jackLevel":5878,"sideswitchLevel":6069,"doublestepLevel":5222,"staminaLevel":5638,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ZoG-","sex":"Male","profileImg":"https://i.imgur.com/JdcCnQ3.png"},{"id":263,"membersId":173094,"dateAdded":"2023-03-19T01:46:03.000Z","lastUpdated":"2023-05-06T17:45:29.000Z","status":1,"totalPoints":577033,"rankingPoints":374367,"totalPass":78,"totalFc":34,"totalFec":30,"totalQuad":12,"totalQuint":0,"crossoverLevel":2949,"bracketLevel":3245,"footswitchLevel":3537,"jackLevel":1268,"sideswitchLevel":3003,"doublestepLevel":2920,"staminaLevel":1145,"isBuddy":false,"preferences":"{\"discordId\":\"sk8s#0001\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SPUGDDR","sex":"Male","profileImg":"https://imgur.com/IGpZvyr.gif"},{"id":190,"membersId":129254,"dateAdded":"2023-03-18T22:58:13.000Z","lastUpdated":"2023-04-30T22:15:12.000Z","status":1,"totalPoints":888222,"rankingPoints":371958,"totalPass":163,"totalFc":43,"totalFec":36,"totalQuad":3,"totalQuint":0,"crossoverLevel":4280,"bracketLevel":3076,"footswitchLevel":3603,"jackLevel":3965,"sideswitchLevel":3690,"doublestepLevel":3520,"staminaLevel":3430,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ddrneel","sex":"Male","profileImg":""},{"id":482,"membersId":147676,"dateAdded":"2023-03-20T05:38:15.000Z","lastUpdated":"2023-05-07T03:14:34.000Z","status":1,"totalPoints":919864,"rankingPoints":370986,"totalPass":154,"totalFc":61,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":4016,"bracketLevel":4733,"footswitchLevel":4269,"jackLevel":5263,"sideswitchLevel":4952,"doublestepLevel":4294,"staminaLevel":2437,"isBuddy":false,"preferences":"{\"discordId\":\"Eesa#8435\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Eesa","sex":"Female","profileImg":""},{"id":260,"membersId":128275,"dateAdded":"2023-03-19T01:44:30.000Z","lastUpdated":"2023-05-05T01:20:23.000Z","status":1,"totalPoints":792050,"rankingPoints":369502,"totalPass":151,"totalFc":28,"totalFec":20,"totalQuad":0,"totalQuint":0,"crossoverLevel":4060,"bracketLevel":3868,"footswitchLevel":4035,"jackLevel":2553,"sideswitchLevel":5496,"doublestepLevel":4503,"staminaLevel":1656,"isBuddy":false,"preferences":"{\"discordId\":\"CarterTheQ#4442\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CarterTheQ","sex":"Male","profileImg":"https://i.imgur.com/LZmDP2t.png"},{"id":246,"membersId":173137,"dateAdded":"2023-03-19T01:00:25.000Z","lastUpdated":"2023-04-30T11:43:37.000Z","status":1,"totalPoints":922974,"rankingPoints":369191,"totalPass":115,"totalFc":51,"totalFec":79,"totalQuad":3,"totalQuint":0,"crossoverLevel":4945,"bracketLevel":3511,"footswitchLevel":4430,"jackLevel":2837,"sideswitchLevel":5281,"doublestepLevel":4134,"staminaLevel":2331,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Floms","sex":"Male","profileImg":""},{"id":26,"membersId":173788,"dateAdded":"2023-03-18T21:48:53.000Z","lastUpdated":"2023-05-06T01:06:26.000Z","status":1,"totalPoints":1015226,"rankingPoints":369073,"totalPass":219,"totalFc":30,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":3971,"bracketLevel":4759,"footswitchLevel":4787,"jackLevel":3651,"sideswitchLevel":3829,"doublestepLevel":4474,"staminaLevel":3875,"isBuddy":false,"preferences":"{\"discordId\":\"Jace#9339\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Discography Population 7","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/591703651496493088/1095063531134660740/goldstar_stretch.png"},{"id":155,"membersId":31959,"dateAdded":"2023-03-18T22:20:55.000Z","lastUpdated":"2023-05-04T03:46:10.000Z","status":1,"totalPoints":724017,"rankingPoints":367931,"totalPass":104,"totalFc":32,"totalFec":44,"totalQuad":3,"totalQuint":0,"crossoverLevel":3450,"bracketLevel":3408,"footswitchLevel":4208,"jackLevel":3438,"sideswitchLevel":4524,"doublestepLevel":4161,"staminaLevel":1704,"isBuddy":false,"preferences":"{\"discordId\":\"Dickey#7576\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dickey","sex":"Male","profileImg":"https://i.imgur.com/vT0yV77.png"},{"id":249,"membersId":173305,"dateAdded":"2023-03-19T01:12:08.000Z","lastUpdated":"2023-05-06T23:13:02.000Z","status":1,"totalPoints":750507,"rankingPoints":367786,"totalPass":123,"totalFc":51,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":2983,"bracketLevel":3200,"footswitchLevel":3500,"jackLevel":4516,"sideswitchLevel":4730,"doublestepLevel":3638,"staminaLevel":3079,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Maxximus","sex":"Male","profileImg":"https://tinypic.host/images/2022/07/23/20220722_2041002.jpg"},{"id":40,"membersId":128698,"dateAdded":"2023-03-18T21:49:00.000Z","lastUpdated":"2023-05-04T18:31:47.000Z","status":1,"totalPoints":1113512,"rankingPoints":365971,"totalPass":182,"totalFc":88,"totalFec":36,"totalQuad":0,"totalQuint":0,"crossoverLevel":4583,"bracketLevel":5777,"footswitchLevel":5667,"jackLevel":5586,"sideswitchLevel":5785,"doublestepLevel":5452,"staminaLevel":3545,"isBuddy":false,"preferences":"{\"discordId\":\"Exschwasion#5968\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Exschwasion","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/210350948055384064/957716217093820446/b.png"},{"id":180,"membersId":128724,"dateAdded":"2023-03-18T22:43:47.000Z","lastUpdated":"2023-05-06T22:21:17.000Z","status":1,"totalPoints":806951,"rankingPoints":365163,"totalPass":154,"totalFc":34,"totalFec":26,"totalQuad":2,"totalQuint":0,"crossoverLevel":3517,"bracketLevel":3418,"footswitchLevel":3354,"jackLevel":4824,"sideswitchLevel":3595,"doublestepLevel":3557,"staminaLevel":2700,"isBuddy":false,"preferences":"{\"discordId\":\"LFK#0512\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"(11) Howie Nguyen","sex":"Unspecified","profileImg":"https://i.imgur.com/mCnGAVc.png"},{"id":314,"membersId":165524,"dateAdded":"2023-03-19T05:33:33.000Z","lastUpdated":"2023-05-06T10:34:38.000Z","status":1,"totalPoints":996418,"rankingPoints":363700,"totalPass":181,"totalFc":62,"totalFec":32,"totalQuad":0,"totalQuint":0,"crossoverLevel":4973,"bracketLevel":3561,"footswitchLevel":4263,"jackLevel":5303,"sideswitchLevel":5023,"doublestepLevel":4719,"staminaLevel":3588,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"COLLETnm7","sex":"Male","profileImg":"https://i.gyazo.com/be29cf05362aae1c603e7f39b3b9192c.png"},{"id":322,"membersId":124751,"dateAdded":"2023-03-19T07:13:03.000Z","lastUpdated":"2023-05-01T05:20:46.000Z","status":1,"totalPoints":861353,"rankingPoints":362618,"totalPass":117,"totalFc":45,"totalFec":55,"totalQuad":0,"totalQuint":0,"crossoverLevel":3470,"bracketLevel":2640,"footswitchLevel":3494,"jackLevel":3272,"sideswitchLevel":2998,"doublestepLevel":3661,"staminaLevel":3332,"isBuddy":false,"preferences":"{\"discordId\":\"dashark#9053\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"the penis monster ","sex":"Male","profileImg":"https://i.imgur.com/GDN5TxQ.jpg"},{"id":627,"membersId":139333,"dateAdded":"2023-03-22T00:40:46.000Z","lastUpdated":"2023-05-05T05:11:44.000Z","status":1,"totalPoints":955813,"rankingPoints":360813,"totalPass":156,"totalFc":36,"totalFec":52,"totalQuad":4,"totalQuint":0,"crossoverLevel":4696,"bracketLevel":4426,"footswitchLevel":4487,"jackLevel":3463,"sideswitchLevel":4676,"doublestepLevel":4737,"staminaLevel":2362,"isBuddy":false,"preferences":"{\"discordId\":\"sumikk0#2825\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sumikk0","sex":"Female","profileImg":"https://i.imgur.com/SPtxMtA.png"},{"id":386,"membersId":982,"dateAdded":"2023-03-19T17:50:20.000Z","lastUpdated":"2023-05-04T23:43:09.000Z","status":1,"totalPoints":595757,"rankingPoints":360171,"totalPass":74,"totalFc":25,"totalFec":36,"totalQuad":17,"totalQuint":0,"crossoverLevel":2954,"bracketLevel":2126,"footswitchLevel":2732,"jackLevel":1988,"sideswitchLevel":2542,"doublestepLevel":2437,"staminaLevel":1038,"isBuddy":false,"preferences":"{\"discordId\":\"andy457#9598\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"andy457","sex":"Male","profileImg":"https://i.imgur.com/QVNeoe8.png"},{"id":994,"membersId":193,"dateAdded":"2023-04-03T22:17:18.000Z","lastUpdated":"2023-05-05T00:11:00.000Z","status":1,"totalPoints":451489,"rankingPoints":357753,"totalPass":65,"totalFc":16,"totalFec":19,"totalQuad":11,"totalQuint":0,"crossoverLevel":2363,"bracketLevel":1792,"footswitchLevel":2226,"jackLevel":1197,"sideswitchLevel":1334,"doublestepLevel":2433,"staminaLevel":1048,"isBuddy":false,"preferences":"{\"discordId\":\"rogerclark#1998\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"rogerclark","sex":"Male","profileImg":""},{"id":615,"membersId":165532,"dateAdded":"2023-03-21T21:42:45.000Z","lastUpdated":"2023-05-04T05:21:59.000Z","status":1,"totalPoints":1289109,"rankingPoints":357392,"totalPass":212,"totalFc":100,"totalFec":60,"totalQuad":1,"totalQuint":0,"crossoverLevel":6591,"bracketLevel":5122,"footswitchLevel":5671,"jackLevel":5753,"sideswitchLevel":5326,"doublestepLevel":6127,"staminaLevel":4201,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DdRDan","sex":"Male","profileImg":""},{"id":538,"membersId":174758,"dateAdded":"2023-03-20T20:42:02.000Z","lastUpdated":"2023-05-06T21:05:15.000Z","status":1,"totalPoints":753628,"rankingPoints":356126,"totalPass":146,"totalFc":28,"totalFec":14,"totalQuad":1,"totalQuint":0,"crossoverLevel":3410,"bracketLevel":2928,"footswitchLevel":3439,"jackLevel":2520,"sideswitchLevel":4846,"doublestepLevel":3290,"staminaLevel":2672,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Miu","sex":"Female","profileImg":"https://i.ibb.co/yR0q6Qw/foto.jpg"},{"id":367,"membersId":66554,"dateAdded":"2023-03-19T16:27:29.000Z","lastUpdated":"2023-05-07T02:25:37.000Z","status":1,"totalPoints":678499,"rankingPoints":355802,"totalPass":101,"totalFc":32,"totalFec":38,"totalQuad":5,"totalQuint":0,"crossoverLevel":2717,"bracketLevel":2472,"footswitchLevel":2957,"jackLevel":2092,"sideswitchLevel":2487,"doublestepLevel":3052,"staminaLevel":2185,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Hey Bud","sex":"Male","profileImg":"https://img.ifunny.co/images/88d9f390249ceee6364a5444e9d5d339418608fa12ef05619e3864de272ed3de_1.gif"},{"id":862,"membersId":173422,"dateAdded":"2023-03-27T22:51:51.000Z","lastUpdated":"2023-05-03T02:13:51.000Z","status":1,"totalPoints":644752,"rankingPoints":355541,"totalPass":114,"totalFc":21,"totalFec":26,"totalQuad":4,"totalQuint":0,"crossoverLevel":3330,"bracketLevel":2717,"footswitchLevel":2641,"jackLevel":1907,"sideswitchLevel":3031,"doublestepLevel":2978,"staminaLevel":1596,"isBuddy":false,"preferences":"{\"discordId\":\"Sonny#0655\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Sonny","sex":"Male","profileImg":""},{"id":151,"membersId":145128,"dateAdded":"2023-03-18T22:17:00.000Z","lastUpdated":"2023-05-06T20:20:02.000Z","status":1,"totalPoints":827610,"rankingPoints":354352,"totalPass":147,"totalFc":38,"totalFec":49,"totalQuad":7,"totalQuint":0,"crossoverLevel":4050,"bracketLevel":3181,"footswitchLevel":4296,"jackLevel":2585,"sideswitchLevel":4685,"doublestepLevel":3589,"staminaLevel":1991,"isBuddy":false,"preferences":"{\"discordId\":\"caffiend#4604\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"H8EVRYTHNG","sex":"Male","profileImg":""},{"id":428,"membersId":112184,"dateAdded":"2023-03-19T21:44:07.000Z","lastUpdated":"2023-05-03T21:03:11.000Z","status":1,"totalPoints":1094023,"rankingPoints":353284,"totalPass":198,"totalFc":75,"totalFec":37,"totalQuad":1,"totalQuint":0,"crossoverLevel":5150,"bracketLevel":5001,"footswitchLevel":5142,"jackLevel":4989,"sideswitchLevel":5097,"doublestepLevel":5272,"staminaLevel":2891,"isBuddy":false,"preferences":"{\"discordId\":\"thedarklordtim#6982\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"tim","sex":"Male","profileImg":"https://i.ibb.co/nbDz4tS/ava.png"},{"id":147,"membersId":175365,"dateAdded":"2023-03-18T22:14:07.000Z","lastUpdated":"2023-05-05T22:38:40.000Z","status":1,"totalPoints":862460,"rankingPoints":353253,"totalPass":172,"totalFc":42,"totalFec":13,"totalQuad":0,"totalQuint":0,"crossoverLevel":3819,"bracketLevel":4505,"footswitchLevel":4887,"jackLevel":4090,"sideswitchLevel":5632,"doublestepLevel":4438,"staminaLevel":2147,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"midtown","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/942950694648971294/1095118164616024084/mako_pfp_smol.png"},{"id":210,"membersId":127797,"dateAdded":"2023-03-18T23:45:55.000Z","lastUpdated":"2023-05-04T00:12:07.000Z","status":1,"totalPoints":598299,"rankingPoints":351221,"totalPass":98,"totalFc":38,"totalFec":12,"totalQuad":0,"totalQuint":0,"crossoverLevel":2031,"bracketLevel":4731,"footswitchLevel":3561,"jackLevel":3720,"sideswitchLevel":2275,"doublestepLevel":3645,"staminaLevel":1508,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dancingmaractus","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/704364807155089498/952378600886272020/maractus.png"},{"id":768,"membersId":127827,"dateAdded":"2023-03-25T05:09:38.000Z","lastUpdated":"2023-05-01T14:43:16.000Z","status":1,"totalPoints":804926,"rankingPoints":348550,"totalPass":98,"totalFc":79,"totalFec":60,"totalQuad":0,"totalQuint":0,"crossoverLevel":4628,"bracketLevel":2623,"footswitchLevel":3879,"jackLevel":2880,"sideswitchLevel":3859,"doublestepLevel":3643,"staminaLevel":1981,"isBuddy":false,"preferences":"{\"discordId\":\"01010101110101001010000101001001#6471\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SPVLABS","sex":"Male","profileImg":""},{"id":338,"membersId":36569,"dateAdded":"2023-03-19T11:51:05.000Z","lastUpdated":"2023-05-06T19:14:07.000Z","status":1,"totalPoints":985469,"rankingPoints":348443,"totalPass":114,"totalFc":114,"totalFec":65,"totalQuad":0,"totalQuint":0,"crossoverLevel":5069,"bracketLevel":3315,"footswitchLevel":4381,"jackLevel":4209,"sideswitchLevel":3394,"doublestepLevel":4447,"staminaLevel":2824,"isBuddy":false,"preferences":"{\"discordId\":\"Sirex#1748\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sirex","sex":"Male","profileImg":"https://cdn.discordapp.com/avatars/1005522661826367538/bee3a5c7d1c0f08c5ee6fd7ff4c5ec5d.png"},{"id":171,"membersId":75542,"dateAdded":"2023-03-18T22:35:33.000Z","lastUpdated":"2023-05-05T07:52:34.000Z","status":1,"totalPoints":509146,"rankingPoints":347551,"totalPass":117,"totalFc":13,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":2095,"bracketLevel":1894,"footswitchLevel":2255,"jackLevel":1550,"sideswitchLevel":1316,"doublestepLevel":2174,"staminaLevel":2668,"isBuddy":true,"preferences":"{\"discordId\":\"lucdar#1664\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lucdar","sex":"Male","profileImg":"https://media.discordapp.net/attachments/667070772862255134/865298278470647828/scaled_pfp.png"},{"id":115,"membersId":62430,"dateAdded":"2023-03-18T21:56:35.000Z","lastUpdated":"2023-05-06T16:26:47.000Z","status":1,"totalPoints":850673,"rankingPoints":347187,"totalPass":148,"totalFc":43,"totalFec":28,"totalQuad":2,"totalQuint":0,"crossoverLevel":4454,"bracketLevel":4738,"footswitchLevel":4613,"jackLevel":3511,"sideswitchLevel":4786,"doublestepLevel":4541,"staminaLevel":1531,"isBuddy":true,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ManeMan08","sex":"Male","profileImg":"https://i.imgur.com/Gq7wyHQ.png"},{"id":3,"membersId":66246,"dateAdded":"2023-03-16T20:38:45.000Z","lastUpdated":"2023-05-07T02:04:45.000Z","status":1,"totalPoints":1330647,"rankingPoints":346563,"totalPass":242,"totalFc":97,"totalFec":39,"totalQuad":7,"totalQuint":0,"crossoverLevel":6193,"bracketLevel":5568,"footswitchLevel":5805,"jackLevel":5457,"sideswitchLevel":5346,"doublestepLevel":6089,"staminaLevel":4590,"isBuddy":true,"preferences":"{\"discordId\":\"Zankoku#4444\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Zankoku","sex":"Male","profileImg":"http://sugoifactory.moe/things/dopparle5.png"},{"id":90,"membersId":66443,"dateAdded":"2023-03-18T21:51:24.000Z","lastUpdated":"2023-05-05T04:02:09.000Z","status":1,"totalPoints":1165249,"rankingPoints":346055,"totalPass":213,"totalFc":34,"totalFec":70,"totalQuad":22,"totalQuint":0,"crossoverLevel":6547,"bracketLevel":4280,"footswitchLevel":5291,"jackLevel":5679,"sideswitchLevel":5365,"doublestepLevel":5709,"staminaLevel":2718,"isBuddy":true,"preferences":"{\"discordId\":\"limitin#6969\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"limitin","sex":"Male","profileImg":""},{"id":597,"membersId":175422,"dateAdded":"2023-03-21T15:26:07.000Z","lastUpdated":"2023-05-07T03:36:27.000Z","status":1,"totalPoints":753477,"rankingPoints":345451,"totalPass":141,"totalFc":40,"totalFec":30,"totalQuad":3,"totalQuint":0,"crossoverLevel":3000,"bracketLevel":3053,"footswitchLevel":3317,"jackLevel":2074,"sideswitchLevel":2554,"doublestepLevel":2676,"staminaLevel":2591,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Pattmalka","sex":"Unspecified","profileImg":""},{"id":619,"membersId":128847,"dateAdded":"2023-03-21T22:04:20.000Z","lastUpdated":"2023-05-02T08:35:57.000Z","status":1,"totalPoints":912791,"rankingPoints":344019,"totalPass":171,"totalFc":49,"totalFec":24,"totalQuad":0,"totalQuint":0,"crossoverLevel":4708,"bracketLevel":4277,"footswitchLevel":4473,"jackLevel":4278,"sideswitchLevel":4693,"doublestepLevel":4238,"staminaLevel":2337,"isBuddy":false,"preferences":"{\"discordId\":\"LaplaceFox#0222\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LaplaceFox","sex":"Unspecified","profileImg":"https://i.imgur.com/ggvyJC3.png"},{"id":377,"membersId":173589,"dateAdded":"2023-03-19T17:30:07.000Z","lastUpdated":"2023-05-07T00:49:11.000Z","status":1,"totalPoints":857358,"rankingPoints":343447,"totalPass":166,"totalFc":29,"totalFec":41,"totalQuad":0,"totalQuint":0,"crossoverLevel":4611,"bracketLevel":3484,"footswitchLevel":4325,"jackLevel":3427,"sideswitchLevel":4050,"doublestepLevel":3962,"staminaLevel":1747,"isBuddy":false,"preferences":"{\"discordId\":\"Bader#1343\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"bader","sex":"Male","profileImg":""},{"id":225,"membersId":66661,"dateAdded":"2023-03-19T00:24:59.000Z","lastUpdated":"2023-05-06T21:58:23.000Z","status":1,"totalPoints":663282,"rankingPoints":343215,"totalPass":112,"totalFc":38,"totalFec":21,"totalQuad":1,"totalQuint":0,"crossoverLevel":2081,"bracketLevel":2702,"footswitchLevel":2603,"jackLevel":1760,"sideswitchLevel":1637,"doublestepLevel":2081,"staminaLevel":3043,"isBuddy":false,"preferences":"{\"discordId\":\"Cairo'Nairo#0673\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"jeshusha1","sex":"Male","profileImg":"https://i.imgur.com/Jg5gtfR.png"},{"id":111,"membersId":354,"dateAdded":"2023-03-18T21:55:17.000Z","lastUpdated":"2023-05-04T04:13:24.000Z","status":1,"totalPoints":549799,"rankingPoints":342553,"totalPass":69,"totalFc":35,"totalFec":41,"totalQuad":6,"totalQuint":0,"crossoverLevel":3150,"bracketLevel":3039,"footswitchLevel":2683,"jackLevel":1459,"sideswitchLevel":1857,"doublestepLevel":2822,"staminaLevel":1360,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Mau","sex":"Male","profileImg":"https://i.ibb.co/qkC10m7/Avatar.png"},{"id":91,"membersId":173007,"dateAdded":"2023-03-18T21:51:29.000Z","lastUpdated":"2023-04-19T04:16:10.000Z","status":1,"totalPoints":1119732,"rankingPoints":342019,"totalPass":233,"totalFc":39,"totalFec":52,"totalQuad":6,"totalQuint":0,"crossoverLevel":6229,"bracketLevel":3359,"footswitchLevel":5016,"jackLevel":5028,"sideswitchLevel":5829,"doublestepLevel":5389,"staminaLevel":3493,"isBuddy":false,"preferences":"{\"discordId\":\"kodensa#3582\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"kodensa","sex":"Female","profileImg":"https://cdn.discordapp.com/attachments/902652921890611254/1086771021857697812/a.jpg"},{"id":146,"membersId":66627,"dateAdded":"2023-03-18T22:14:05.000Z","lastUpdated":"2023-05-05T21:36:30.000Z","status":1,"totalPoints":856419,"rankingPoints":341156,"totalPass":132,"totalFc":10,"totalFec":62,"totalQuad":48,"totalQuint":0,"crossoverLevel":5386,"bracketLevel":2584,"footswitchLevel":4314,"jackLevel":4653,"sideswitchLevel":4773,"doublestepLevel":4514,"staminaLevel":1525,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Stardust","sex":"Male","profileImg":""},{"id":68,"membersId":173716,"dateAdded":"2023-03-18T21:49:55.000Z","lastUpdated":"2023-05-05T18:07:45.000Z","status":1,"totalPoints":960366,"rankingPoints":340149,"totalPass":146,"totalFc":34,"totalFec":77,"totalQuad":23,"totalQuint":0,"crossoverLevel":5851,"bracketLevel":2834,"footswitchLevel":4517,"jackLevel":3263,"sideswitchLevel":5099,"doublestepLevel":4805,"staminaLevel":2529,"isBuddy":false,"preferences":"{\"discordId\":\"Andeh#8735\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Andeh","sex":"Unspecified","profileImg":"https://en.gravatar.com/userimage/210064376/fa835516b3cc4009674e2b2ba017e085.jpg"},{"id":603,"membersId":128840,"dateAdded":"2023-03-21T18:18:09.000Z","lastUpdated":"2023-05-04T22:40:05.000Z","status":1,"totalPoints":908627,"rankingPoints":338991,"totalPass":231,"totalFc":31,"totalFec":21,"totalQuad":0,"totalQuint":0,"crossoverLevel":4918,"bracketLevel":3413,"footswitchLevel":4191,"jackLevel":3182,"sideswitchLevel":3220,"doublestepLevel":4373,"staminaLevel":2107,"isBuddy":false,"preferences":"{\"discordId\":\"Inversionsx#2220\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Jhennyinthecup ","sex":"Male","profileImg":""},{"id":231,"membersId":175374,"dateAdded":"2023-03-19T00:35:10.000Z","lastUpdated":"2023-03-26T03:38:15.000Z","status":1,"totalPoints":406994,"rankingPoints":338266,"totalPass":62,"totalFc":22,"totalFec":19,"totalQuad":0,"totalQuint":0,"crossoverLevel":2052,"bracketLevel":1476,"footswitchLevel":2320,"jackLevel":3733,"sideswitchLevel":3871,"doublestepLevel":1720,"staminaLevel":1381,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LordLui","sex":"Unspecified","profileImg":""},{"id":441,"membersId":173334,"dateAdded":"2023-03-19T23:37:07.000Z","lastUpdated":"2023-05-07T06:39:39.000Z","status":1,"totalPoints":572629,"rankingPoints":338099,"totalPass":98,"totalFc":21,"totalFec":28,"totalQuad":0,"totalQuint":0,"crossoverLevel":2817,"bracketLevel":2286,"footswitchLevel":2647,"jackLevel":1811,"sideswitchLevel":2468,"doublestepLevel":2820,"staminaLevel":1388,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sidopolis","sex":"Male","profileImg":""},{"id":806,"membersId":4681,"dateAdded":"2023-03-25T23:13:35.000Z","lastUpdated":"2023-05-06T17:45:07.000Z","status":1,"totalPoints":1146321,"rankingPoints":337328,"totalPass":211,"totalFc":64,"totalFec":52,"totalQuad":9,"totalQuint":0,"crossoverLevel":6381,"bracketLevel":3570,"footswitchLevel":5138,"jackLevel":5473,"sideswitchLevel":5361,"doublestepLevel":5569,"staminaLevel":2973,"isBuddy":false,"preferences":"{\"discordId\":\"zexyu#0001\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Fatherhood Enjoyer","sex":"Male","profileImg":"https://i.imgur.com/P3cCABH.png"},{"id":384,"membersId":1232,"dateAdded":"2023-03-19T17:46:51.000Z","lastUpdated":"2023-05-03T00:55:58.000Z","status":1,"totalPoints":453701,"rankingPoints":336954,"totalPass":64,"totalFc":9,"totalFec":46,"totalQuad":10,"totalQuint":0,"crossoverLevel":2624,"bracketLevel":1522,"footswitchLevel":2162,"jackLevel":1172,"sideswitchLevel":2037,"doublestepLevel":2132,"staminaLevel":981,"isBuddy":false,"preferences":"{\"discordId\":\"mute#1126\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mute","sex":"Male","profileImg":"https://i.imgur.com/yWF6cdr.jpg"},{"id":686,"membersId":165856,"dateAdded":"2023-03-23T00:27:33.000Z","lastUpdated":"2023-05-05T05:02:44.000Z","status":1,"totalPoints":757310,"rankingPoints":336580,"totalPass":166,"totalFc":30,"totalFec":13,"totalQuad":0,"totalQuint":0,"crossoverLevel":3340,"bracketLevel":2097,"footswitchLevel":2880,"jackLevel":2290,"sideswitchLevel":2895,"doublestepLevel":2811,"staminaLevel":2302,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"housesan","sex":"Male","profileImg":"https://i.imgur.com/AhrKz2q.png"},{"id":982,"membersId":173175,"dateAdded":"2023-04-02T22:02:55.000Z","lastUpdated":"2023-05-04T00:05:04.000Z","status":1,"totalPoints":941313,"rankingPoints":334083,"totalPass":175,"totalFc":81,"totalFec":18,"totalQuad":0,"totalQuint":0,"crossoverLevel":4210,"bracketLevel":3761,"footswitchLevel":4574,"jackLevel":3237,"sideswitchLevel":3717,"doublestepLevel":5063,"staminaLevel":2303,"isBuddy":false,"preferences":"{\"discordId\":\"Fireblaster#3815\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Fireblaster","sex":"Male","profileImg":""},{"id":247,"membersId":173037,"dateAdded":"2023-03-19T01:06:17.000Z","lastUpdated":"2023-05-01T02:58:28.000Z","status":1,"totalPoints":594589,"rankingPoints":333856,"totalPass":78,"totalFc":27,"totalFec":50,"totalQuad":14,"totalQuint":0,"crossoverLevel":2847,"bracketLevel":2499,"footswitchLevel":3021,"jackLevel":2036,"sideswitchLevel":2272,"doublestepLevel":3106,"staminaLevel":1100,"isBuddy":false,"preferences":"{\"discordId\":\"Fanatik25#0025\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Fanatik25","sex":"Male","profileImg":"https://cdn.discordapp.com/avatars/415354956346949632/2b58a95153add52b12d7cfa6ed6a565a.png"},{"id":465,"membersId":1777,"dateAdded":"2023-03-20T02:11:18.000Z","lastUpdated":"2023-04-24T04:14:59.000Z","status":1,"totalPoints":571540,"rankingPoints":333813,"totalPass":58,"totalFc":0,"totalFec":67,"totalQuad":51,"totalQuint":0,"crossoverLevel":3320,"bracketLevel":1157,"footswitchLevel":2517,"jackLevel":1398,"sideswitchLevel":1926,"doublestepLevel":2320,"staminaLevel":1331,"isBuddy":false,"preferences":"{\"discordId\":\"brooksy#2138\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"kyle ward","sex":"Male","profileImg":"https://i.imgur.com/0KGsEPa.png"},{"id":85,"membersId":174617,"dateAdded":"2023-03-18T21:50:59.000Z","lastUpdated":"2023-05-06T22:36:13.000Z","status":1,"totalPoints":653229,"rankingPoints":333734,"totalPass":116,"totalFc":37,"totalFec":25,"totalQuad":0,"totalQuint":0,"crossoverLevel":3461,"bracketLevel":3110,"footswitchLevel":3403,"jackLevel":1967,"sideswitchLevel":3973,"doublestepLevel":3032,"staminaLevel":2103,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zuchini","sex":"Male","profileImg":""},{"id":272,"membersId":173223,"dateAdded":"2023-03-19T02:28:47.000Z","lastUpdated":"2023-05-07T06:55:30.000Z","status":1,"totalPoints":754685,"rankingPoints":332278,"totalPass":142,"totalFc":32,"totalFec":40,"totalQuad":11,"totalQuint":0,"crossoverLevel":4501,"bracketLevel":3256,"footswitchLevel":3864,"jackLevel":2742,"sideswitchLevel":3065,"doublestepLevel":4023,"staminaLevel":1449,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Koso","sex":"Male","profileImg":"https://i.imgur.com/Vy3wGll.png"},{"id":114,"membersId":173653,"dateAdded":"2023-03-18T21:56:22.000Z","lastUpdated":"2023-05-01T18:09:22.000Z","status":1,"totalPoints":551000,"rankingPoints":332215,"totalPass":93,"totalFc":25,"totalFec":34,"totalQuad":1,"totalQuint":0,"crossoverLevel":2910,"bracketLevel":1676,"footswitchLevel":2861,"jackLevel":4059,"sideswitchLevel":2768,"doublestepLevel":2847,"staminaLevel":1254,"isBuddy":false,"preferences":"{\"discordId\":\"valgrind#2281\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"valgrind","sex":"Unspecified","profileImg":""},{"id":141,"membersId":132162,"dateAdded":"2023-03-18T22:10:21.000Z","lastUpdated":"2023-05-01T01:57:46.000Z","status":1,"totalPoints":1220596,"rankingPoints":332200,"totalPass":236,"totalFc":49,"totalFec":79,"totalQuad":1,"totalQuint":0,"crossoverLevel":6428,"bracketLevel":5468,"footswitchLevel":5620,"jackLevel":4996,"sideswitchLevel":5404,"doublestepLevel":5910,"staminaLevel":3108,"isBuddy":false,"preferences":"{\"discordId\":\"Arkitev#3765\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Arki","sex":"Male","profileImg":"https://i.imgur.com/VXCOGOa.png"},{"id":52,"membersId":165504,"dateAdded":"2023-03-18T21:49:07.000Z","lastUpdated":"2023-05-05T22:52:46.000Z","status":1,"totalPoints":662881,"rankingPoints":331208,"totalPass":161,"totalFc":18,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":2658,"bracketLevel":3410,"footswitchLevel":3281,"jackLevel":2968,"sideswitchLevel":3717,"doublestepLevel":3134,"staminaLevel":2322,"isBuddy":false,"preferences":"{\"discordId\":\"Hydreigos#5497\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"_Temeraire","sex":"Unspecified","profileImg":""},{"id":651,"membersId":75801,"dateAdded":"2023-03-22T15:14:56.000Z","lastUpdated":"2023-05-06T15:14:58.000Z","status":1,"totalPoints":826344,"rankingPoints":330938,"totalPass":164,"totalFc":56,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":3124,"bracketLevel":3404,"footswitchLevel":3871,"jackLevel":3375,"sideswitchLevel":4260,"doublestepLevel":3778,"staminaLevel":3443,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"aryla","sex":"Male","profileImg":""},{"id":37,"membersId":173251,"dateAdded":"2023-03-18T21:49:00.000Z","lastUpdated":"2023-05-07T03:49:03.000Z","status":1,"totalPoints":565870,"rankingPoints":329778,"totalPass":133,"totalFc":19,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":2389,"bracketLevel":3043,"footswitchLevel":3158,"jackLevel":2726,"sideswitchLevel":2912,"doublestepLevel":3233,"staminaLevel":1251,"isBuddy":false,"preferences":"{\"discordId\":\"sorae#7138\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sorae","sex":"Unspecified","profileImg":"https://i.imgur.com/cJEaR4t.png"},{"id":267,"membersId":50564,"dateAdded":"2023-03-19T01:57:43.000Z","lastUpdated":"2023-05-05T02:28:01.000Z","status":1,"totalPoints":669312,"rankingPoints":329662,"totalPass":122,"totalFc":29,"totalFec":27,"totalQuad":9,"totalQuint":0,"crossoverLevel":3014,"bracketLevel":2532,"footswitchLevel":3013,"jackLevel":2304,"sideswitchLevel":2359,"doublestepLevel":3176,"staminaLevel":1610,"isBuddy":false,"preferences":"{\"discordId\":\"GuyAllen#6784\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Nate","sex":"Male","profileImg":"https://cdn-icons-png.flaticon.com/128/6854/6854468.png"},{"id":97,"membersId":173118,"dateAdded":"2023-03-18T21:52:44.000Z","lastUpdated":"2023-05-05T15:11:44.000Z","status":1,"totalPoints":782056,"rankingPoints":328775,"totalPass":115,"totalFc":53,"totalFec":73,"totalQuad":2,"totalQuint":0,"crossoverLevel":4972,"bracketLevel":3258,"footswitchLevel":4074,"jackLevel":2893,"sideswitchLevel":4072,"doublestepLevel":4647,"staminaLevel":1239,"isBuddy":false,"preferences":"{\"discordId\":\"HellKiteChaos#8559\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"HellKiteChaos","sex":"Male","profileImg":"https://i.imgur.com/7f4bj4X.jpg"},{"id":84,"membersId":129655,"dateAdded":"2023-03-18T21:50:54.000Z","lastUpdated":"2023-04-27T01:00:51.000Z","status":1,"totalPoints":694237,"rankingPoints":328573,"totalPass":123,"totalFc":34,"totalFec":53,"totalQuad":4,"totalQuint":0,"crossoverLevel":3842,"bracketLevel":1877,"footswitchLevel":3490,"jackLevel":2896,"sideswitchLevel":3704,"doublestepLevel":3797,"staminaLevel":1600,"isBuddy":true,"preferences":"{\"discordId\":\"Hunter#1289\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"XMOD Enjoyer","sex":"Male","profileImg":"https://i.imgur.com/H2aLLZ3.png"},{"id":524,"membersId":40013,"dateAdded":"2023-03-20T19:02:20.000Z","lastUpdated":"2023-05-05T02:50:17.000Z","status":1,"totalPoints":347611,"rankingPoints":327500,"totalPass":66,"totalFc":13,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":1073,"bracketLevel":1435,"footswitchLevel":1611,"jackLevel":963,"sideswitchLevel":1200,"doublestepLevel":1206,"staminaLevel":1488,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"takumiAE86","sex":"Male","profileImg":""},{"id":285,"membersId":124527,"dateAdded":"2023-03-19T03:05:57.000Z","lastUpdated":"2023-05-04T10:23:43.000Z","status":1,"totalPoints":966368,"rankingPoints":327476,"totalPass":167,"totalFc":44,"totalFec":40,"totalQuad":41,"totalQuint":3,"crossoverLevel":5584,"bracketLevel":3600,"footswitchLevel":4718,"jackLevel":3325,"sideswitchLevel":3892,"doublestepLevel":4943,"staminaLevel":2171,"isBuddy":false,"preferences":"{\"discordId\":\"silverfox88vr#3717\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Silver Fox","sex":"Male","profileImg":"https://i.imgur.com/BfMlWOd.png"},{"id":507,"membersId":148381,"dateAdded":"2023-03-20T15:56:32.000Z","lastUpdated":"2023-05-03T19:47:05.000Z","status":1,"totalPoints":771410,"rankingPoints":326622,"totalPass":143,"totalFc":64,"totalFec":23,"totalQuad":1,"totalQuint":0,"crossoverLevel":3929,"bracketLevel":3985,"footswitchLevel":3585,"jackLevel":3874,"sideswitchLevel":3866,"doublestepLevel":3850,"staminaLevel":2056,"isBuddy":false,"preferences":"{\"discordId\":\"kidcrab#1158\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"kidcrab","sex":"Male","profileImg":""},{"id":458,"membersId":175403,"dateAdded":"2023-03-20T01:43:40.000Z","lastUpdated":"2023-05-06T20:07:55.000Z","status":1,"totalPoints":645481,"rankingPoints":326538,"totalPass":117,"totalFc":10,"totalFec":70,"totalQuad":3,"totalQuint":0,"crossoverLevel":4001,"bracketLevel":1920,"footswitchLevel":2842,"jackLevel":2026,"sideswitchLevel":2139,"doublestepLevel":3687,"staminaLevel":1279,"isBuddy":false,"preferences":"{\"discordId\":\"OrangeToaster#5768\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Breebs","sex":"Male","profileImg":""},{"id":1219,"membersId":5242,"dateAdded":"2023-04-26T14:51:53.000Z","lastUpdated":"2023-05-05T08:05:28.000Z","status":1,"totalPoints":498127,"rankingPoints":325386,"totalPass":99,"totalFc":17,"totalFec":12,"totalQuad":0,"totalQuint":0,"crossoverLevel":2167,"bracketLevel":1929,"footswitchLevel":2198,"jackLevel":2403,"sideswitchLevel":2724,"doublestepLevel":2130,"staminaLevel":1262,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"arx","sex":"Male","profileImg":""},{"id":228,"membersId":66726,"dateAdded":"2023-03-19T00:32:24.000Z","lastUpdated":"2023-04-30T23:38:07.000Z","status":1,"totalPoints":440432,"rankingPoints":324240,"totalPass":67,"totalFc":28,"totalFec":31,"totalQuad":1,"totalQuint":0,"crossoverLevel":2561,"bracketLevel":1930,"footswitchLevel":1682,"jackLevel":1444,"sideswitchLevel":1703,"doublestepLevel":1968,"staminaLevel":1357,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zeipher_Hawk","sex":"Male","profileImg":"https://img.pokemondb.net/sprites/home/shiny/1x/shuckle.png"},{"id":136,"membersId":66304,"dateAdded":"2023-03-18T22:05:57.000Z","lastUpdated":"2023-05-07T06:39:47.000Z","status":1,"totalPoints":322645,"rankingPoints":322645,"totalPass":18,"totalFc":5,"totalFec":43,"totalQuad":5,"totalQuint":0,"crossoverLevel":1519,"bracketLevel":1623,"footswitchLevel":1664,"jackLevel":1856,"sideswitchLevel":2367,"doublestepLevel":1792,"staminaLevel":497,"isBuddy":true,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ATB","sex":"Male","profileImg":""},{"id":276,"membersId":4946,"dateAdded":"2023-03-19T02:40:51.000Z","lastUpdated":"2023-05-05T18:00:31.000Z","status":1,"totalPoints":1063152,"rankingPoints":321980,"totalPass":176,"totalFc":73,"totalFec":66,"totalQuad":23,"totalQuint":0,"crossoverLevel":6092,"bracketLevel":3914,"footswitchLevel":4945,"jackLevel":4424,"sideswitchLevel":5084,"doublestepLevel":5310,"staminaLevel":2597,"isBuddy":false,"preferences":"{\"discordId\":\"Lisek#7821\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lisek","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/765758657316388886/965675216690888704/fox2.png"},{"id":186,"membersId":173322,"dateAdded":"2023-03-18T22:50:14.000Z","lastUpdated":"2023-05-06T21:05:13.000Z","status":1,"totalPoints":694699,"rankingPoints":321831,"totalPass":153,"totalFc":34,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":3073,"bracketLevel":2952,"footswitchLevel":3193,"jackLevel":3149,"sideswitchLevel":2927,"doublestepLevel":3143,"staminaLevel":1802,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CK89REY","sex":"Unspecified","profileImg":""},{"id":95,"membersId":175276,"dateAdded":"2023-03-18T21:52:31.000Z","lastUpdated":"2023-05-05T23:15:59.000Z","status":1,"totalPoints":595199,"rankingPoints":320912,"totalPass":85,"totalFc":52,"totalFec":35,"totalQuad":3,"totalQuint":0,"crossoverLevel":3624,"bracketLevel":2082,"footswitchLevel":2910,"jackLevel":2405,"sideswitchLevel":2773,"doublestepLevel":2991,"staminaLevel":990,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"teekmn","sex":"Unspecified","profileImg":"https://cdn-live.warthunder.com/uploads/9c/ba20ec0674301f31323c1790d35c030fe45ab0/1415940983851.jpg"},{"id":356,"membersId":173228,"dateAdded":"2023-03-19T15:33:53.000Z","lastUpdated":"2023-05-03T15:47:14.000Z","status":1,"totalPoints":713215,"rankingPoints":320894,"totalPass":139,"totalFc":45,"totalFec":20,"totalQuad":15,"totalQuint":0,"crossoverLevel":4320,"bracketLevel":2316,"footswitchLevel":3318,"jackLevel":2721,"sideswitchLevel":3498,"doublestepLevel":3065,"staminaLevel":1849,"isBuddy":false,"preferences":"{\"discordId\":\"warriorddr#2803\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"warriorddr","sex":"Male","profileImg":"https://s6.aconvert.com/convert/p3r68-cdx67/tkjjv-evgit.jpg"},{"id":16,"membersId":174632,"dateAdded":"2023-03-18T21:48:45.000Z","lastUpdated":"2023-05-07T03:09:58.000Z","status":1,"totalPoints":756587,"rankingPoints":320595,"totalPass":152,"totalFc":72,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":3779,"bracketLevel":3809,"footswitchLevel":3962,"jackLevel":2563,"sideswitchLevel":3717,"doublestepLevel":3829,"staminaLevel":1654,"isBuddy":true,"preferences":"{\"discordId\":\"177013#8525\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SunkissEnjoyer","sex":"Unspecified","profileImg":"https://i.imgur.com/2YNygb4.png"},{"id":392,"membersId":128893,"dateAdded":"2023-03-19T18:23:36.000Z","lastUpdated":"2023-05-06T00:24:56.000Z","status":1,"totalPoints":712356,"rankingPoints":320338,"totalPass":121,"totalFc":58,"totalFec":42,"totalQuad":6,"totalQuint":0,"crossoverLevel":4826,"bracketLevel":2473,"footswitchLevel":3697,"jackLevel":2541,"sideswitchLevel":3352,"doublestepLevel":3972,"staminaLevel":929,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Quesadilla","sex":"Unspecified","profileImg":""},{"id":671,"membersId":66545,"dateAdded":"2023-03-22T22:06:43.000Z","lastUpdated":"2023-05-05T12:29:24.000Z","status":1,"totalPoints":547221,"rankingPoints":319862,"totalPass":124,"totalFc":27,"totalFec":11,"totalQuad":0,"totalQuint":0,"crossoverLevel":2302,"bracketLevel":1304,"footswitchLevel":1827,"jackLevel":1295,"sideswitchLevel":1240,"doublestepLevel":2208,"staminaLevel":2742,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"skateinmars","sex":"Male","profileImg":"http://groovestats.com/SRPG3/img/relics/baguette.png"},{"id":345,"membersId":66703,"dateAdded":"2023-03-19T13:01:06.000Z","lastUpdated":"2023-04-23T15:31:33.000Z","status":1,"totalPoints":552562,"rankingPoints":318139,"totalPass":104,"totalFc":28,"totalFec":17,"totalQuad":2,"totalQuint":0,"crossoverLevel":2803,"bracketLevel":1437,"footswitchLevel":2409,"jackLevel":1807,"sideswitchLevel":2118,"doublestepLevel":2354,"staminaLevel":1669,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Alhe","sex":"Male","profileImg":""},{"id":423,"membersId":175397,"dateAdded":"2023-03-19T21:12:31.000Z","lastUpdated":"2023-05-02T23:57:14.000Z","status":1,"totalPoints":380189,"rankingPoints":316609,"totalPass":41,"totalFc":22,"totalFec":45,"totalQuad":9,"totalQuint":0,"crossoverLevel":2389,"bracketLevel":1822,"footswitchLevel":2057,"jackLevel":1305,"sideswitchLevel":919,"doublestepLevel":1950,"staminaLevel":812,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"pani","sex":"Unspecified","profileImg":""},{"id":142,"membersId":175363,"dateAdded":"2023-03-18T22:10:39.000Z","lastUpdated":"2023-05-06T06:00:30.000Z","status":1,"totalPoints":593390,"rankingPoints":315605,"totalPass":93,"totalFc":41,"totalFec":29,"totalQuad":0,"totalQuint":0,"crossoverLevel":2984,"bracketLevel":2218,"footswitchLevel":3035,"jackLevel":3612,"sideswitchLevel":4126,"doublestepLevel":2841,"staminaLevel":1671,"isBuddy":false,"preferences":"{\"discordId\":\"crazy54311#0552\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Idontevenknowyou!","sex":"Male","profileImg":""},{"id":185,"membersId":256,"dateAdded":"2023-03-18T22:49:44.000Z","lastUpdated":"2023-04-22T19:36:52.000Z","status":1,"totalPoints":558037,"rankingPoints":314305,"totalPass":113,"totalFc":27,"totalFec":31,"totalQuad":0,"totalQuint":0,"crossoverLevel":2770,"bracketLevel":1613,"footswitchLevel":1875,"jackLevel":1620,"sideswitchLevel":1411,"doublestepLevel":1970,"staminaLevel":2718,"isBuddy":false,"preferences":"{\"discordId\":\"DanPeriod#0677\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DanPeriod","sex":"Male","profileImg":"https://i.ibb.co/2Sh9tbx/danderpborder.png"},{"id":1048,"membersId":170859,"dateAdded":"2023-04-07T17:03:35.000Z","lastUpdated":"2023-05-07T00:47:45.000Z","status":1,"totalPoints":786483,"rankingPoints":313411,"totalPass":128,"totalFc":81,"totalFec":58,"totalQuad":0,"totalQuint":0,"crossoverLevel":4791,"bracketLevel":3442,"footswitchLevel":4194,"jackLevel":3303,"sideswitchLevel":4508,"doublestepLevel":4498,"staminaLevel":1326,"isBuddy":false,"preferences":"{\"discordId\":\"null_expression#1367\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"a kangaroo","sex":"Unspecified","profileImg":"https://i.imgur.com/ivAQ4Kx.png"},{"id":170,"membersId":134773,"dateAdded":"2023-03-18T22:35:27.000Z","lastUpdated":"2023-05-06T03:50:38.000Z","status":1,"totalPoints":918720,"rankingPoints":311805,"totalPass":200,"totalFc":71,"totalFec":27,"totalQuad":0,"totalQuint":0,"crossoverLevel":4870,"bracketLevel":3535,"footswitchLevel":4243,"jackLevel":2952,"sideswitchLevel":4938,"doublestepLevel":4351,"staminaLevel":2827,"isBuddy":true,"preferences":"{\"discordId\":\"dlim#8705\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dlim","sex":"Male","profileImg":"https://i.imgur.com/JcxLonM.png"},{"id":152,"membersId":165653,"dateAdded":"2023-03-18T22:18:28.000Z","lastUpdated":"2023-05-03T23:34:53.000Z","status":1,"totalPoints":709146,"rankingPoints":311755,"totalPass":179,"totalFc":55,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":4051,"bracketLevel":3225,"footswitchLevel":3553,"jackLevel":3198,"sideswitchLevel":4784,"doublestepLevel":3324,"staminaLevel":1598,"isBuddy":false,"preferences":"{\"discordId\":\"dekw#9999\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dekw","sex":"Male","profileImg":""},{"id":297,"membersId":131910,"dateAdded":"2023-03-19T04:06:09.000Z","lastUpdated":"2023-05-06T03:46:05.000Z","status":1,"totalPoints":704401,"rankingPoints":311512,"totalPass":151,"totalFc":31,"totalFec":28,"totalQuad":1,"totalQuint":0,"crossoverLevel":4140,"bracketLevel":2537,"footswitchLevel":3395,"jackLevel":2781,"sideswitchLevel":3805,"doublestepLevel":3615,"staminaLevel":1502,"isBuddy":false,"preferences":"{\"discordId\":\"Slimezilla4#4735\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"slime","sex":"Male","profileImg":""},{"id":365,"membersId":165752,"dateAdded":"2023-03-19T16:22:47.000Z","lastUpdated":"2023-05-06T17:51:44.000Z","status":1,"totalPoints":680877,"rankingPoints":310787,"totalPass":131,"totalFc":66,"totalFec":19,"totalQuad":0,"totalQuint":0,"crossoverLevel":3543,"bracketLevel":2335,"footswitchLevel":3319,"jackLevel":2301,"sideswitchLevel":3427,"doublestepLevel":3330,"staminaLevel":1593,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zui","sex":"Male","profileImg":"https://i.ibb.co/nwG0Yb1/aaegt.png"},{"id":24,"membersId":163331,"dateAdded":"2023-03-18T21:48:52.000Z","lastUpdated":"2023-04-09T21:09:04.000Z","status":1,"totalPoints":316650,"rankingPoints":310687,"totalPass":29,"totalFc":22,"totalFec":28,"totalQuad":0,"totalQuint":0,"crossoverLevel":1320,"bracketLevel":1027,"footswitchLevel":1657,"jackLevel":1551,"sideswitchLevel":2586,"doublestepLevel":1415,"staminaLevel":1041,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Vivek Sharma","sex":"Male","profileImg":"https://i.ibb.co/pKqM0s4/azi-Cool-GS.png"},{"id":46,"membersId":66587,"dateAdded":"2023-03-18T21:49:02.000Z","lastUpdated":"2023-05-02T22:52:47.000Z","status":1,"totalPoints":566743,"rankingPoints":310572,"totalPass":118,"totalFc":53,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":2136,"bracketLevel":1873,"footswitchLevel":1916,"jackLevel":2070,"sideswitchLevel":2136,"doublestepLevel":2192,"staminaLevel":2940,"isBuddy":false,"preferences":"{\"discordId\":\"Lotarr#0466\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lotarr","sex":"Male","profileImg":"https://i.imgur.com/Z3lMRla.png"},{"id":113,"membersId":4819,"dateAdded":"2023-03-18T21:55:29.000Z","lastUpdated":"2023-04-24T09:39:07.000Z","status":1,"totalPoints":637426,"rankingPoints":310387,"totalPass":121,"totalFc":36,"totalFec":21,"totalQuad":2,"totalQuint":0,"crossoverLevel":3253,"bracketLevel":1944,"footswitchLevel":2938,"jackLevel":2601,"sideswitchLevel":2348,"doublestepLevel":3285,"staminaLevel":1698,"isBuddy":false,"preferences":"{\"discordId\":\"Renbrandt#0196\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Renbrandt","sex":"Male","profileImg":"https://i.imgur.com/WPPQI0D.png"},{"id":1054,"membersId":128260,"dateAdded":"2023-04-07T22:28:34.000Z","lastUpdated":"2023-05-02T00:27:46.000Z","status":1,"totalPoints":412508,"rankingPoints":309641,"totalPass":83,"totalFc":14,"totalFec":14,"totalQuad":0,"totalQuint":0,"crossoverLevel":2340,"bracketLevel":1387,"footswitchLevel":2030,"jackLevel":1099,"sideswitchLevel":2258,"doublestepLevel":1615,"staminaLevel":937,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"nock","sex":"Male","profileImg":"https://pbs.twimg.com/profile_images/1647380032074170368/Zfj0peic_200x200.jpg"},{"id":1083,"membersId":127810,"dateAdded":"2023-04-10T06:25:17.000Z","lastUpdated":"2023-04-25T04:27:41.000Z","status":1,"totalPoints":336823,"rankingPoints":308685,"totalPass":55,"totalFc":10,"totalFec":18,"totalQuad":3,"totalQuint":0,"crossoverLevel":1355,"bracketLevel":1206,"footswitchLevel":930,"jackLevel":935,"sideswitchLevel":1095,"doublestepLevel":1053,"staminaLevel":930,"isBuddy":false,"preferences":"{\"discordId\":\"BigC#2526\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BigC","sex":"Male","profileImg":"https://i.imgur.com/t7icJqv.png"},{"id":83,"membersId":136928,"dateAdded":"2023-03-18T21:50:47.000Z","lastUpdated":"2023-05-04T21:06:41.000Z","status":1,"totalPoints":547334,"rankingPoints":308203,"totalPass":81,"totalFc":42,"totalFec":62,"totalQuad":0,"totalQuint":0,"crossoverLevel":3220,"bracketLevel":2056,"footswitchLevel":2859,"jackLevel":1970,"sideswitchLevel":2742,"doublestepLevel":2834,"staminaLevel":1029,"isBuddy":false,"preferences":"{\"discordId\":\"Daikyi#9838\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Daikyi","sex":"Male","profileImg":"https://puu.sh/J6z9c/a9edbb3013.png"},{"id":368,"membersId":175389,"dateAdded":"2023-03-19T16:33:48.000Z","lastUpdated":"2023-05-06T22:41:01.000Z","status":1,"totalPoints":655649,"rankingPoints":308118,"totalPass":91,"totalFc":31,"totalFec":79,"totalQuad":11,"totalQuint":0,"crossoverLevel":4527,"bracketLevel":1538,"footswitchLevel":3235,"jackLevel":2137,"sideswitchLevel":3438,"doublestepLevel":3559,"staminaLevel":915,"isBuddy":false,"preferences":"{\"discordId\":\"patj#2109\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"patj","sex":"Male","profileImg":""},{"id":598,"membersId":3983,"dateAdded":"2023-03-21T16:37:34.000Z","lastUpdated":"2023-05-07T03:04:08.000Z","status":1,"totalPoints":786676,"rankingPoints":307924,"totalPass":126,"totalFc":72,"totalFec":62,"totalQuad":2,"totalQuint":0,"crossoverLevel":4942,"bracketLevel":2588,"footswitchLevel":3728,"jackLevel":3187,"sideswitchLevel":3985,"doublestepLevel":4303,"staminaLevel":1481,"isBuddy":false,"preferences":"{\"discordId\":\"BigYama#1895\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BigYama","sex":"Male","profileImg":""},{"id":130,"membersId":165916,"dateAdded":"2023-03-18T22:03:10.000Z","lastUpdated":"2023-05-03T01:55:59.000Z","status":1,"totalPoints":501912,"rankingPoints":307584,"totalPass":63,"totalFc":44,"totalFec":50,"totalQuad":3,"totalQuint":0,"crossoverLevel":3208,"bracketLevel":1744,"footswitchLevel":2625,"jackLevel":1965,"sideswitchLevel":2557,"doublestepLevel":2738,"staminaLevel":781,"isBuddy":false,"preferences":"{\"discordId\":\"A Minty Dragon#7236\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"AMintyDragon","sex":"Male","profileImg":"https://i.imgur.com/CDhgBi0.png"},{"id":226,"membersId":130786,"dateAdded":"2023-03-19T00:25:53.000Z","lastUpdated":"2023-05-07T04:18:51.000Z","status":1,"totalPoints":567146,"rankingPoints":305843,"totalPass":146,"totalFc":14,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":2390,"bracketLevel":2273,"footswitchLevel":2474,"jackLevel":1927,"sideswitchLevel":2888,"doublestepLevel":2002,"staminaLevel":1674,"isBuddy":false,"preferences":"{\"discordId\":\"nuki#0563\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nuki","sex":"Unspecified","profileImg":""},{"id":447,"membersId":129649,"dateAdded":"2023-03-20T00:21:04.000Z","lastUpdated":"2023-05-04T22:59:50.000Z","status":1,"totalPoints":665482,"rankingPoints":305542,"totalPass":146,"totalFc":51,"totalFec":23,"totalQuad":1,"totalQuint":0,"crossoverLevel":4070,"bracketLevel":2699,"footswitchLevel":3105,"jackLevel":1884,"sideswitchLevel":3044,"doublestepLevel":3095,"staminaLevel":1405,"isBuddy":false,"preferences":"{\"discordId\":\"Haku#9599\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MY BRAND","sex":"Male","profileImg":"https://i.imgur.com/XoIlDSM.png"},{"id":1005,"membersId":149573,"dateAdded":"2023-04-04T04:12:21.000Z","lastUpdated":"2023-04-18T04:26:48.000Z","status":1,"totalPoints":305391,"rankingPoints":305391,"totalPass":59,"totalFc":9,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":1364,"bracketLevel":1314,"footswitchLevel":1304,"jackLevel":985,"sideswitchLevel":1619,"doublestepLevel":1203,"staminaLevel":850,"isBuddy":false,"preferences":"{\"discordId\":\"Vixel#3853\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Vixel","sex":"Female","profileImg":""},{"id":387,"membersId":173313,"dateAdded":"2023-03-19T17:53:59.000Z","lastUpdated":"2023-05-04T00:15:29.000Z","status":1,"totalPoints":368898,"rankingPoints":305348,"totalPass":44,"totalFc":19,"totalFec":37,"totalQuad":12,"totalQuint":0,"crossoverLevel":2120,"bracketLevel":1142,"footswitchLevel":1704,"jackLevel":1013,"sideswitchLevel":1300,"doublestepLevel":1685,"staminaLevel":672,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MarsBMC","sex":"Unspecified","profileImg":""},{"id":100,"membersId":175227,"dateAdded":"2023-03-18T21:53:20.000Z","lastUpdated":"2023-05-06T16:50:23.000Z","status":1,"totalPoints":724160,"rankingPoints":303831,"totalPass":178,"totalFc":37,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":2618,"bracketLevel":3014,"footswitchLevel":3358,"jackLevel":4120,"sideswitchLevel":3363,"doublestepLevel":2843,"staminaLevel":2383,"isBuddy":true,"preferences":"{\"discordId\":\"yoonjelly#8890\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"yoonjelly","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/940655461886206012/1082481090436022282/pfp_250x250.png"},{"id":792,"membersId":3631,"dateAdded":"2023-03-25T18:29:46.000Z","lastUpdated":"2023-05-05T19:38:54.000Z","status":1,"totalPoints":475807,"rankingPoints":303664,"totalPass":83,"totalFc":36,"totalFec":25,"totalQuad":6,"totalQuint":0,"crossoverLevel":2812,"bracketLevel":1444,"footswitchLevel":1936,"jackLevel":1112,"sideswitchLevel":1764,"doublestepLevel":1764,"staminaLevel":1504,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Steve_V","sex":"Male","profileImg":""},{"id":73,"membersId":76562,"dateAdded":"2023-03-18T21:50:10.000Z","lastUpdated":"2023-04-16T18:26:08.000Z","status":1,"totalPoints":636972,"rankingPoints":303311,"totalPass":75,"totalFc":17,"totalFec":114,"totalQuad":4,"totalQuint":0,"crossoverLevel":4102,"bracketLevel":1968,"footswitchLevel":2923,"jackLevel":1578,"sideswitchLevel":4002,"doublestepLevel":3026,"staminaLevel":1615,"isBuddy":false,"preferences":"{\"discordId\":\"robin_#6284\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"robin_","sex":"Male","profileImg":""},{"id":237,"membersId":165884,"dateAdded":"2023-03-19T00:45:18.000Z","lastUpdated":"2023-04-28T01:44:24.000Z","status":1,"totalPoints":730012,"rankingPoints":302493,"totalPass":183,"totalFc":37,"totalFec":31,"totalQuad":0,"totalQuint":0,"crossoverLevel":3765,"bracketLevel":2701,"footswitchLevel":3523,"jackLevel":2033,"sideswitchLevel":2996,"doublestepLevel":3818,"staminaLevel":2286,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Aldarole","sex":"Male","profileImg":"https://sportslogohistory.com/wp-content/uploads/2017/12/new_york_knicks_1947-1964.png"},{"id":241,"membersId":172941,"dateAdded":"2023-03-19T00:49:32.000Z","lastUpdated":"2023-04-30T01:08:16.000Z","status":1,"totalPoints":725629,"rankingPoints":302352,"totalPass":171,"totalFc":59,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":3419,"bracketLevel":3329,"footswitchLevel":3182,"jackLevel":4057,"sideswitchLevel":3594,"doublestepLevel":3420,"staminaLevel":2141,"isBuddy":true,"preferences":"{\"discordId\":\"NW360#9241\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Verified Bruh Moment","sex":"Male","profileImg":""},{"id":174,"membersId":172973,"dateAdded":"2023-03-18T22:37:17.000Z","lastUpdated":"2023-04-22T00:56:51.000Z","status":1,"totalPoints":458875,"rankingPoints":300633,"totalPass":39,"totalFc":20,"totalFec":55,"totalQuad":26,"totalQuint":0,"crossoverLevel":3516,"bracketLevel":1642,"footswitchLevel":2619,"jackLevel":2021,"sideswitchLevel":2813,"doublestepLevel":2771,"staminaLevel":393,"isBuddy":false,"preferences":"{\"discordId\":\"inglomi#8670\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"inglomi","sex":"Male","profileImg":""},{"id":579,"membersId":4940,"dateAdded":"2023-03-21T03:57:19.000Z","lastUpdated":"2023-05-02T13:21:35.000Z","status":1,"totalPoints":521075,"rankingPoints":300603,"totalPass":140,"totalFc":2,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":2720,"bracketLevel":1992,"footswitchLevel":2885,"jackLevel":2004,"sideswitchLevel":2302,"doublestepLevel":2708,"staminaLevel":990,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"hippotz","sex":"Unspecified","profileImg":""},{"id":18,"membersId":128363,"dateAdded":"2023-03-18T21:48:46.000Z","lastUpdated":"2023-05-06T02:55:15.000Z","status":1,"totalPoints":817890,"rankingPoints":300514,"totalPass":178,"totalFc":60,"totalFec":38,"totalQuad":2,"totalQuint":0,"crossoverLevel":5146,"bracketLevel":3901,"footswitchLevel":4266,"jackLevel":2828,"sideswitchLevel":4389,"doublestepLevel":4163,"staminaLevel":1469,"isBuddy":false,"preferences":"{\"discordId\":\"Kerpa#8924\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kerpa","sex":"Male","profileImg":"https://i.ibb.co/BTcfRGH/Avatar1.png"},{"id":5,"membersId":173384,"dateAdded":"2023-03-16T21:50:13.000Z","lastUpdated":"2023-05-01T03:34:59.000Z","status":1,"totalPoints":535923,"rankingPoints":300407,"totalPass":100,"totalFc":21,"totalFec":33,"totalQuad":7,"totalQuint":0,"crossoverLevel":3117,"bracketLevel":1546,"footswitchLevel":1980,"jackLevel":1384,"sideswitchLevel":2197,"doublestepLevel":2481,"staminaLevel":1156,"isBuddy":false,"preferences":"{\"discordId\":\"hitentrivedi#9252\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Hiten","sex":"Male","profileImg":"https://i.imgur.com/TRRmDiz.png"},{"id":547,"membersId":175413,"dateAdded":"2023-03-20T22:02:41.000Z","lastUpdated":"2023-04-28T22:36:30.000Z","status":1,"totalPoints":488983,"rankingPoints":300352,"totalPass":85,"totalFc":27,"totalFec":38,"totalQuad":5,"totalQuint":0,"crossoverLevel":3235,"bracketLevel":1148,"footswitchLevel":1900,"jackLevel":1293,"sideswitchLevel":1935,"doublestepLevel":1994,"staminaLevel":839,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PQQP","sex":"Unspecified","profileImg":""},{"id":145,"membersId":145083,"dateAdded":"2023-03-18T22:13:54.000Z","lastUpdated":"2023-05-06T01:59:06.000Z","status":1,"totalPoints":389975,"rankingPoints":300121,"totalPass":77,"totalFc":23,"totalFec":16,"totalQuad":1,"totalQuint":0,"crossoverLevel":1933,"bracketLevel":1534,"footswitchLevel":1475,"jackLevel":1396,"sideswitchLevel":1706,"doublestepLevel":1554,"staminaLevel":909,"isBuddy":false,"preferences":"{\"discordId\":\"LOLWUT??#8503\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LOLWUT","sex":"Male","profileImg":"https://i.imgur.com/LZQ5yoW.png"},{"id":253,"membersId":175378,"dateAdded":"2023-03-19T01:29:04.000Z","lastUpdated":"2023-05-04T22:11:54.000Z","status":1,"totalPoints":769466,"rankingPoints":300112,"totalPass":211,"totalFc":25,"totalFec":13,"totalQuad":0,"totalQuint":0,"crossoverLevel":3928,"bracketLevel":3197,"footswitchLevel":3753,"jackLevel":3445,"sideswitchLevel":4217,"doublestepLevel":4169,"staminaLevel":1675,"isBuddy":false,"preferences":"{\"discordId\":\"Fursty1896#9072\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Fursty1896","sex":"Male","profileImg":""},{"id":541,"membersId":173335,"dateAdded":"2023-03-20T21:00:53.000Z","lastUpdated":"2023-05-01T16:56:44.000Z","status":1,"totalPoints":302717,"rankingPoints":298328,"totalPass":34,"totalFc":11,"totalFec":22,"totalQuad":13,"totalQuint":0,"crossoverLevel":1464,"bracketLevel":1007,"footswitchLevel":1799,"jackLevel":921,"sideswitchLevel":1667,"doublestepLevel":1525,"staminaLevel":760,"isBuddy":false,"preferences":"{\"discordId\":\"VV#6611\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"VvITL","sex":"Female","profileImg":""},{"id":144,"membersId":2380,"dateAdded":"2023-03-18T22:12:42.000Z","lastUpdated":"2023-05-07T00:01:37.000Z","status":1,"totalPoints":550602,"rankingPoints":295728,"totalPass":119,"totalFc":28,"totalFec":21,"totalQuad":10,"totalQuint":0,"crossoverLevel":2443,"bracketLevel":3328,"footswitchLevel":2919,"jackLevel":1942,"sideswitchLevel":1989,"doublestepLevel":2567,"staminaLevel":912,"isBuddy":false,"preferences":"{\"discordId\":\"PinkDad#7882\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PinkDad","sex":"Male","profileImg":"https://i.imgur.com/MP3H9bu.jpg"},{"id":512,"membersId":2836,"dateAdded":"2023-03-20T17:21:26.000Z","lastUpdated":"2023-05-06T19:57:24.000Z","status":1,"totalPoints":688395,"rankingPoints":295131,"totalPass":126,"totalFc":35,"totalFec":41,"totalQuad":27,"totalQuint":0,"crossoverLevel":4695,"bracketLevel":2014,"footswitchLevel":3253,"jackLevel":2161,"sideswitchLevel":2805,"doublestepLevel":3669,"staminaLevel":1073,"isBuddy":false,"preferences":"{\"discordId\":\"Hina Hanta#4339\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Pushmataha","sex":"Male","profileImg":""},{"id":732,"membersId":175479,"dateAdded":"2023-03-24T16:17:30.000Z","lastUpdated":"2023-04-27T23:13:33.000Z","status":1,"totalPoints":426923,"rankingPoints":291637,"totalPass":72,"totalFc":24,"totalFec":48,"totalQuad":6,"totalQuint":0,"crossoverLevel":3594,"bracketLevel":946,"footswitchLevel":1900,"jackLevel":1122,"sideswitchLevel":1623,"doublestepLevel":2255,"staminaLevel":653,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ranatalus","sex":"Unspecified","profileImg":""},{"id":491,"membersId":80039,"dateAdded":"2023-03-20T12:55:17.000Z","lastUpdated":"2023-05-05T19:25:11.000Z","status":1,"totalPoints":530863,"rankingPoints":290543,"totalPass":133,"totalFc":17,"totalFec":19,"totalQuad":1,"totalQuint":0,"crossoverLevel":2754,"bracketLevel":1150,"footswitchLevel":2041,"jackLevel":1953,"sideswitchLevel":2515,"doublestepLevel":2161,"staminaLevel":1489,"isBuddy":false,"preferences":"{\"discordId\":\"zae#9916\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zaelyx","sex":"Female","profileImg":"https://i.imgur.com/Y5QcXJk.png"},{"id":661,"membersId":175448,"dateAdded":"2023-03-22T18:07:20.000Z","lastUpdated":"2023-05-03T17:04:07.000Z","status":1,"totalPoints":526168,"rankingPoints":290377,"totalPass":81,"totalFc":11,"totalFec":58,"totalQuad":27,"totalQuint":0,"crossoverLevel":3673,"bracketLevel":1496,"footswitchLevel":2506,"jackLevel":1460,"sideswitchLevel":1793,"doublestepLevel":2967,"staminaLevel":772,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CLK","sex":"Female","profileImg":""},{"id":45,"membersId":175355,"dateAdded":"2023-03-18T21:49:02.000Z","lastUpdated":"2023-05-06T21:26:27.000Z","status":1,"totalPoints":858744,"rankingPoints":290351,"totalPass":217,"totalFc":41,"totalFec":39,"totalQuad":0,"totalQuint":0,"crossoverLevel":5070,"bracketLevel":2999,"footswitchLevel":4018,"jackLevel":3689,"sideswitchLevel":4122,"doublestepLevel":4297,"staminaLevel":1797,"isBuddy":false,"preferences":"{\"discordId\":\"RootReducer#5914\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"RootReducer","sex":"Male","profileImg":""},{"id":472,"membersId":8482,"dateAdded":"2023-03-20T03:08:42.000Z","lastUpdated":"2023-05-02T03:17:00.000Z","status":1,"totalPoints":483939,"rankingPoints":289682,"totalPass":90,"totalFc":35,"totalFec":26,"totalQuad":2,"totalQuint":0,"crossoverLevel":2683,"bracketLevel":1660,"footswitchLevel":2064,"jackLevel":2026,"sideswitchLevel":1671,"doublestepLevel":2491,"staminaLevel":1567,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ddrulox","sex":"Male","profileImg":"https://media.tenor.com/PflbJ_OCFxQAAAAM/frog-pepe-the-frog.gif"},{"id":262,"membersId":173355,"dateAdded":"2023-03-19T01:45:54.000Z","lastUpdated":"2023-05-07T05:42:45.000Z","status":1,"totalPoints":463334,"rankingPoints":289014,"totalPass":49,"totalFc":27,"totalFec":63,"totalQuad":20,"totalQuint":0,"crossoverLevel":3248,"bracketLevel":1443,"footswitchLevel":2517,"jackLevel":1033,"sideswitchLevel":1548,"doublestepLevel":2654,"staminaLevel":619,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"wolfxalienware","sex":"Male","profileImg":""},{"id":886,"membersId":175568,"dateAdded":"2023-03-29T01:13:14.000Z","lastUpdated":"2023-04-28T19:24:21.000Z","status":1,"totalPoints":450677,"rankingPoints":288654,"totalPass":81,"totalFc":23,"totalFec":31,"totalQuad":4,"totalQuint":0,"crossoverLevel":2509,"bracketLevel":1973,"footswitchLevel":2404,"jackLevel":1322,"sideswitchLevel":2612,"doublestepLevel":2329,"staminaLevel":847,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Chris Benoit","sex":"Male","profileImg":""},{"id":60,"membersId":173320,"dateAdded":"2023-03-18T21:49:36.000Z","lastUpdated":"2023-05-06T23:52:50.000Z","status":1,"totalPoints":498573,"rankingPoints":287844,"totalPass":34,"totalFc":46,"totalFec":66,"totalQuad":22,"totalQuint":0,"crossoverLevel":3650,"bracketLevel":1596,"footswitchLevel":2824,"jackLevel":1246,"sideswitchLevel":2006,"doublestepLevel":3407,"staminaLevel":596,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"L4viR","sex":"Male","profileImg":""},{"id":1050,"membersId":175755,"dateAdded":"2023-04-07T19:19:01.000Z","lastUpdated":"2023-04-26T18:00:15.000Z","status":1,"totalPoints":354921,"rankingPoints":286193,"totalPass":52,"totalFc":23,"totalFec":44,"totalQuad":1,"totalQuint":0,"crossoverLevel":2271,"bracketLevel":1215,"footswitchLevel":1459,"jackLevel":947,"sideswitchLevel":885,"doublestepLevel":1590,"staminaLevel":986,"isBuddy":false,"preferences":"{\"discordId\":\"Joako\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Joako","sex":"Male","profileImg":""},{"id":515,"membersId":118191,"dateAdded":"2023-03-20T17:56:43.000Z","lastUpdated":"2023-05-06T18:29:53.000Z","status":1,"totalPoints":797723,"rankingPoints":286025,"totalPass":196,"totalFc":56,"totalFec":25,"totalQuad":0,"totalQuint":0,"crossoverLevel":4960,"bracketLevel":3211,"footswitchLevel":3999,"jackLevel":3359,"sideswitchLevel":4071,"doublestepLevel":4313,"staminaLevel":1492,"isBuddy":false,"preferences":"{\"discordId\":\"Zeo#0210\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Zeo","sex":"Male","profileImg":""},{"id":462,"membersId":173423,"dateAdded":"2023-03-20T01:58:40.000Z","lastUpdated":"2023-05-03T02:42:14.000Z","status":1,"totalPoints":469534,"rankingPoints":284790,"totalPass":78,"totalFc":39,"totalFec":42,"totalQuad":5,"totalQuint":0,"crossoverLevel":3103,"bracketLevel":1793,"footswitchLevel":2184,"jackLevel":1271,"sideswitchLevel":1540,"doublestepLevel":2958,"staminaLevel":628,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lilo Landa","sex":"Female","profileImg":""},{"id":381,"membersId":7632,"dateAdded":"2023-03-19T17:37:42.000Z","lastUpdated":"2023-05-06T00:50:54.000Z","status":1,"totalPoints":388144,"rankingPoints":284325,"totalPass":39,"totalFc":39,"totalFec":48,"totalQuad":7,"totalQuint":0,"crossoverLevel":2355,"bracketLevel":1561,"footswitchLevel":1926,"jackLevel":574,"sideswitchLevel":825,"doublestepLevel":2024,"staminaLevel":449,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"freddy15204","sex":"Male","profileImg":""},{"id":302,"membersId":2026,"dateAdded":"2023-03-19T04:32:57.000Z","lastUpdated":"2023-04-24T06:23:10.000Z","status":1,"totalPoints":283573,"rankingPoints":283573,"totalPass":56,"totalFc":3,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":739,"bracketLevel":1643,"footswitchLevel":1159,"jackLevel":835,"sideswitchLevel":595,"doublestepLevel":995,"staminaLevel":1094,"isBuddy":false,"preferences":"{\"discordId\":\"dxultimate#6390\",\"decentsEnabled\":true,\"wayOffsEnabled\":false}","name":"BarX","sex":"Male","profileImg":""},{"id":340,"membersId":66753,"dateAdded":"2023-03-19T11:56:50.000Z","lastUpdated":"2023-04-26T23:53:20.000Z","status":1,"totalPoints":605098,"rankingPoints":283344,"totalPass":197,"totalFc":22,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":2506,"bracketLevel":1782,"footswitchLevel":2106,"jackLevel":1926,"sideswitchLevel":1176,"doublestepLevel":2742,"staminaLevel":3295,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PkGam","sex":"Male","profileImg":"https://i.ibb.co/RDMrkmb/pkgam-icon-250.png"},{"id":149,"membersId":163899,"dateAdded":"2023-03-18T22:15:12.000Z","lastUpdated":"2023-04-30T18:01:54.000Z","status":1,"totalPoints":347381,"rankingPoints":283151,"totalPass":75,"totalFc":16,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":1311,"bracketLevel":1373,"footswitchLevel":1599,"jackLevel":1073,"sideswitchLevel":895,"doublestepLevel":965,"staminaLevel":893,"isBuddy":false,"preferences":"{\"discordId\":\"Tidek#4112\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Tidek","sex":"Male","profileImg":""},{"id":80,"membersId":66662,"dateAdded":"2023-03-18T21:50:33.000Z","lastUpdated":"2023-04-19T18:15:51.000Z","status":1,"totalPoints":415324,"rankingPoints":283141,"totalPass":95,"totalFc":0,"totalFec":44,"totalQuad":3,"totalQuint":0,"crossoverLevel":2050,"bracketLevel":1453,"footswitchLevel":1981,"jackLevel":939,"sideswitchLevel":500,"doublestepLevel":2277,"staminaLevel":1443,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"itgaz","sex":"Male","profileImg":"https://media.tenor.com/images/65d3642f6d4b6cd2c0508f8b1b152f68/tenor.gif"},{"id":527,"membersId":173316,"dateAdded":"2023-03-20T19:15:36.000Z","lastUpdated":"2023-04-26T02:16:31.000Z","status":1,"totalPoints":665280,"rankingPoints":281267,"totalPass":134,"totalFc":68,"totalFec":20,"totalQuad":0,"totalQuint":0,"crossoverLevel":4054,"bracketLevel":2241,"footswitchLevel":3542,"jackLevel":2778,"sideswitchLevel":4036,"doublestepLevel":3580,"staminaLevel":1147,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"putham","sex":"Unspecified","profileImg":""},{"id":450,"membersId":174818,"dateAdded":"2023-03-20T00:50:13.000Z","lastUpdated":"2023-05-06T00:01:22.000Z","status":1,"totalPoints":383403,"rankingPoints":281201,"totalPass":101,"totalFc":10,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":1790,"bracketLevel":1498,"footswitchLevel":1813,"jackLevel":1340,"sideswitchLevel":1691,"doublestepLevel":1504,"staminaLevel":901,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"eedeeq","sex":"Unspecified","profileImg":""},{"id":697,"membersId":134656,"dateAdded":"2023-03-23T12:09:51.000Z","lastUpdated":"2023-05-04T23:50:15.000Z","status":1,"totalPoints":683358,"rankingPoints":278757,"totalPass":142,"totalFc":75,"totalFec":27,"totalQuad":0,"totalQuint":0,"crossoverLevel":4434,"bracketLevel":2140,"footswitchLevel":3342,"jackLevel":2621,"sideswitchLevel":3425,"doublestepLevel":3490,"staminaLevel":1101,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"NDGO","sex":"Male","profileImg":"https://www.greenfoot.org/photo_attachments/0000/0415/ddr_left_arrow.png"},{"id":344,"membersId":7858,"dateAdded":"2023-03-19T12:26:20.000Z","lastUpdated":"2023-04-28T19:24:23.000Z","status":1,"totalPoints":601620,"rankingPoints":277875,"totalPass":121,"totalFc":37,"totalFec":59,"totalQuad":0,"totalQuint":0,"crossoverLevel":4080,"bracketLevel":1820,"footswitchLevel":2858,"jackLevel":2286,"sideswitchLevel":2736,"doublestepLevel":3173,"staminaLevel":936,"isBuddy":false,"preferences":"{\"discordId\":\"Mithos#0844\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"HegemonMithos","sex":"Male","profileImg":""},{"id":41,"membersId":163426,"dateAdded":"2023-03-18T21:49:01.000Z","lastUpdated":"2023-05-04T22:54:59.000Z","status":1,"totalPoints":637219,"rankingPoints":277687,"totalPass":161,"totalFc":39,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":3626,"bracketLevel":2449,"footswitchLevel":3385,"jackLevel":2699,"sideswitchLevel":3590,"doublestepLevel":3526,"staminaLevel":1032,"isBuddy":false,"preferences":"{\"discordId\":\"GWen#2607\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"GWen","sex":"Male","profileImg":"https://i.imgur.com/7xdu36E.png"},{"id":353,"membersId":145105,"dateAdded":"2023-03-19T14:55:07.000Z","lastUpdated":"2023-05-05T20:47:18.000Z","status":1,"totalPoints":806096,"rankingPoints":275480,"totalPass":200,"totalFc":72,"totalFec":20,"totalQuad":0,"totalQuint":0,"crossoverLevel":4875,"bracketLevel":2582,"footswitchLevel":3914,"jackLevel":3253,"sideswitchLevel":4141,"doublestepLevel":4036,"staminaLevel":1851,"isBuddy":false,"preferences":"{\"discordId\":\"trueblue410#0146\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"trueblue410","sex":"Male","profileImg":""},{"id":325,"membersId":7106,"dateAdded":"2023-03-19T08:34:52.000Z","lastUpdated":"2023-05-05T00:41:01.000Z","status":1,"totalPoints":392811,"rankingPoints":274198,"totalPass":45,"totalFc":16,"totalFec":24,"totalQuad":48,"totalQuint":7,"crossoverLevel":3188,"bracketLevel":1024,"footswitchLevel":1849,"jackLevel":1161,"sideswitchLevel":883,"doublestepLevel":2345,"staminaLevel":546,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"AngelR4vE","sex":"Male","profileImg":"https://i.imgur.com/VtIFlKK.png"},{"id":173,"membersId":66558,"dateAdded":"2023-03-18T22:36:44.000Z","lastUpdated":"2023-05-05T23:43:49.000Z","status":1,"totalPoints":550500,"rankingPoints":273243,"totalPass":90,"totalFc":69,"totalFec":43,"totalQuad":1,"totalQuint":0,"crossoverLevel":3871,"bracketLevel":1720,"footswitchLevel":2490,"jackLevel":2076,"sideswitchLevel":3378,"doublestepLevel":3218,"staminaLevel":1334,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"xiaowuc1","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/680561230892630067/990419215724974080/sukuna.jpg"},{"id":470,"membersId":129553,"dateAdded":"2023-03-20T02:58:23.000Z","lastUpdated":"2023-05-06T16:52:02.000Z","status":1,"totalPoints":323880,"rankingPoints":271116,"totalPass":70,"totalFc":18,"totalFec":11,"totalQuad":1,"totalQuint":0,"crossoverLevel":1829,"bracketLevel":1260,"footswitchLevel":1288,"jackLevel":628,"sideswitchLevel":823,"doublestepLevel":1896,"staminaLevel":420,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Navi02U","sex":"Male","profileImg":"https://i.ibb.co/FVwySFq/Navi-gs.png"},{"id":537,"membersId":66226,"dateAdded":"2023-03-20T20:31:33.000Z","lastUpdated":"2023-04-30T18:31:12.000Z","status":1,"totalPoints":270779,"rankingPoints":270779,"totalPass":47,"totalFc":18,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":1305,"bracketLevel":944,"footswitchLevel":1185,"jackLevel":875,"sideswitchLevel":744,"doublestepLevel":1342,"staminaLevel":447,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"C-lynn","sex":"Female","profileImg":"https://i.imgur.com/A6bPSwm.png"},{"id":1140,"membersId":66727,"dateAdded":"2023-04-16T06:01:30.000Z","lastUpdated":"2023-05-05T05:09:07.000Z","status":1,"totalPoints":270763,"rankingPoints":270763,"totalPass":25,"totalFc":17,"totalFec":14,"totalQuad":6,"totalQuint":0,"crossoverLevel":1189,"bracketLevel":1182,"footswitchLevel":1001,"jackLevel":550,"sideswitchLevel":1003,"doublestepLevel":994,"staminaLevel":771,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"HISA","sex":"Male","profileImg":""},{"id":78,"membersId":174707,"dateAdded":"2023-03-18T21:50:22.000Z","lastUpdated":"2023-05-06T17:13:27.000Z","status":1,"totalPoints":751942,"rankingPoints":270413,"totalPass":141,"totalFc":92,"totalFec":44,"totalQuad":0,"totalQuint":0,"crossoverLevel":4591,"bracketLevel":2923,"footswitchLevel":3769,"jackLevel":2938,"sideswitchLevel":3827,"doublestepLevel":3862,"staminaLevel":1361,"isBuddy":false,"preferences":"{\"discordId\":\"antifun#6584\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"antifun","sex":"Unspecified","profileImg":"https://i.imgur.com/YkgPNB2.png"},{"id":513,"membersId":6791,"dateAdded":"2023-03-20T17:47:47.000Z","lastUpdated":"2023-05-06T14:13:19.000Z","status":1,"totalPoints":373731,"rankingPoints":270195,"totalPass":79,"totalFc":15,"totalFec":32,"totalQuad":1,"totalQuint":0,"crossoverLevel":2337,"bracketLevel":1136,"footswitchLevel":1713,"jackLevel":1586,"sideswitchLevel":1621,"doublestepLevel":1674,"staminaLevel":1008,"isBuddy":false,"preferences":"{\"discordId\":\"Catzoo#9899\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Catz","sex":"Male","profileImg":"https://pbs.twimg.com/profile_images/1200168036/sqi6mi3.png"},{"id":120,"membersId":173369,"dateAdded":"2023-03-18T21:58:05.000Z","lastUpdated":"2023-05-06T02:42:13.000Z","status":1,"totalPoints":806471,"rankingPoints":269189,"totalPass":230,"totalFc":58,"totalFec":11,"totalQuad":0,"totalQuint":0,"crossoverLevel":4580,"bracketLevel":3052,"footswitchLevel":3834,"jackLevel":2899,"sideswitchLevel":3922,"doublestepLevel":3995,"staminaLevel":1887,"isBuddy":false,"preferences":"{\"discordId\":\"LuckJury#3580\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LuckJury","sex":"Male","profileImg":"https://pm1.narvii.com/6118/5f0476f592d86d4d106e6f5b07c240d181e8e358_128.jpg"},{"id":347,"membersId":134767,"dateAdded":"2023-03-19T13:30:42.000Z","lastUpdated":"2023-04-22T06:30:15.000Z","status":1,"totalPoints":657406,"rankingPoints":268864,"totalPass":187,"totalFc":42,"totalFec":15,"totalQuad":0,"totalQuint":0,"crossoverLevel":4352,"bracketLevel":2166,"footswitchLevel":3377,"jackLevel":2292,"sideswitchLevel":3385,"doublestepLevel":3423,"staminaLevel":1231,"isBuddy":false,"preferences":"{\"discordId\":\"Naota#8416\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"NaoHikari","sex":"Male","profileImg":"https://i.imgur.com/vuu78zs.png"},{"id":274,"membersId":142757,"dateAdded":"2023-03-19T02:31:13.000Z","lastUpdated":"2023-05-07T05:29:24.000Z","status":1,"totalPoints":355109,"rankingPoints":268807,"totalPass":121,"totalFc":8,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":1279,"bracketLevel":1136,"footswitchLevel":1258,"jackLevel":2104,"sideswitchLevel":2296,"doublestepLevel":1172,"staminaLevel":1947,"isBuddy":false,"preferences":"{\"discordId\":\"Rudeshadow#9012\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Rudeshadow","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/957781689067769917/957783160312193085/kronii_avatar.png"},{"id":27,"membersId":154965,"dateAdded":"2023-03-18T21:48:54.000Z","lastUpdated":"2023-04-25T03:36:20.000Z","status":1,"totalPoints":353064,"rankingPoints":268415,"totalPass":79,"totalFc":18,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":2256,"bracketLevel":1887,"footswitchLevel":2023,"jackLevel":2435,"sideswitchLevel":2565,"doublestepLevel":1650,"staminaLevel":804,"isBuddy":false,"preferences":"{\"discordId\":\"Gpop#2759\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Gpop","sex":"Male","profileImg":""},{"id":719,"membersId":134350,"dateAdded":"2023-03-24T02:08:45.000Z","lastUpdated":"2023-05-05T02:29:02.000Z","status":1,"totalPoints":478209,"rankingPoints":266475,"totalPass":122,"totalFc":27,"totalFec":13,"totalQuad":0,"totalQuint":0,"crossoverLevel":2899,"bracketLevel":1630,"footswitchLevel":2387,"jackLevel":1751,"sideswitchLevel":2380,"doublestepLevel":2188,"staminaLevel":687,"isBuddy":false,"preferences":"{\"discordId\":\"Kaos#2155\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"kaosddr","sex":"Male","profileImg":"https://live.staticflickr.com/65535/51218554758_5a3c461722_m.jpg"},{"id":105,"membersId":168067,"dateAdded":"2023-03-18T21:53:38.000Z","lastUpdated":"2023-05-06T13:03:52.000Z","status":1,"totalPoints":872773,"rankingPoints":265925,"totalPass":166,"totalFc":109,"totalFec":47,"totalQuad":0,"totalQuint":0,"crossoverLevel":4900,"bracketLevel":3862,"footswitchLevel":4271,"jackLevel":3063,"sideswitchLevel":4118,"doublestepLevel":4390,"staminaLevel":1733,"isBuddy":true,"preferences":"{\"discordId\":\"BreakfastPM#2615\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BreakfastPM","sex":"Male","profileImg":"https://i.ibb.co/xhdGjnY/Avatar-Small.jpg"},{"id":714,"membersId":173124,"dateAdded":"2023-03-24T00:46:07.000Z","lastUpdated":"2023-05-05T03:13:51.000Z","status":1,"totalPoints":413220,"rankingPoints":265445,"totalPass":110,"totalFc":39,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":2040,"bracketLevel":1506,"footswitchLevel":2218,"jackLevel":1098,"sideswitchLevel":1911,"doublestepLevel":1915,"staminaLevel":1078,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Frantalicious","sex":"Male","profileImg":""},{"id":259,"membersId":133783,"dateAdded":"2023-03-19T01:40:35.000Z","lastUpdated":"2023-04-28T16:48:57.000Z","status":1,"totalPoints":345509,"rankingPoints":265119,"totalPass":52,"totalFc":14,"totalFec":39,"totalQuad":5,"totalQuint":0,"crossoverLevel":2450,"bracketLevel":967,"footswitchLevel":1901,"jackLevel":944,"sideswitchLevel":1211,"doublestepLevel":2056,"staminaLevel":292,"isBuddy":false,"preferences":"{\"discordId\":\"Viper#7633\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Viper","sex":"Female","profileImg":"https://i.imgur.com/riy3PxR.png"},{"id":107,"membersId":165841,"dateAdded":"2023-03-18T21:54:25.000Z","lastUpdated":"2023-05-06T20:47:44.000Z","status":1,"totalPoints":340745,"rankingPoints":264103,"totalPass":86,"totalFc":22,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":1586,"bracketLevel":2002,"footswitchLevel":2004,"jackLevel":1226,"sideswitchLevel":1634,"doublestepLevel":2402,"staminaLevel":628,"isBuddy":false,"preferences":"{\"discordId\":\"mangoafterdawn#0901\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mangoafterdawn","sex":"Unspecified","profileImg":"https://cdn.discordapp.com/attachments/624856529568399372/850869659774484510/profile.png"},{"id":1112,"membersId":173971,"dateAdded":"2023-04-13T00:46:45.000Z","lastUpdated":"2023-05-05T01:11:12.000Z","status":1,"totalPoints":264085,"rankingPoints":264085,"totalPass":44,"totalFc":23,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":949,"bracketLevel":683,"footswitchLevel":1026,"jackLevel":699,"sideswitchLevel":1115,"doublestepLevel":735,"staminaLevel":973,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"yog sothoth","sex":"Male","profileImg":""},{"id":574,"membersId":172958,"dateAdded":"2023-03-21T02:48:37.000Z","lastUpdated":"2023-05-07T05:20:48.000Z","status":1,"totalPoints":642695,"rankingPoints":263807,"totalPass":180,"totalFc":48,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":3397,"bracketLevel":2240,"footswitchLevel":3007,"jackLevel":2535,"sideswitchLevel":3325,"doublestepLevel":3098,"staminaLevel":1924,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"!_Stapen_ca_! :v","sex":"Female","profileImg":""},{"id":785,"membersId":77437,"dateAdded":"2023-03-25T16:00:44.000Z","lastUpdated":"2023-05-06T16:03:41.000Z","status":1,"totalPoints":551928,"rankingPoints":263551,"totalPass":184,"totalFc":7,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1951,"bracketLevel":1578,"footswitchLevel":1990,"jackLevel":1279,"sideswitchLevel":2553,"doublestepLevel":1873,"staminaLevel":3111,"isBuddy":false,"preferences":"{\"discordId\":\"hk#4898\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"hk","sex":"Male","profileImg":"https://cdn.discordapp.com/avatars/363047905893810176/b2b8f3ab362a84338646577a473ee518.png"},{"id":577,"membersId":175418,"dateAdded":"2023-03-21T03:41:36.000Z","lastUpdated":"2023-05-01T18:20:36.000Z","status":1,"totalPoints":618570,"rankingPoints":263399,"totalPass":137,"totalFc":51,"totalFec":44,"totalQuad":0,"totalQuint":0,"crossoverLevel":3998,"bracketLevel":1843,"footswitchLevel":2775,"jackLevel":2440,"sideswitchLevel":2798,"doublestepLevel":3325,"staminaLevel":1204,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LaReinaDelSur","sex":"Unspecified","profileImg":"https://tinypic.host/images/2023/04/04/IMG_2597.th.gif"},{"id":332,"membersId":1090,"dateAdded":"2023-03-19T10:10:36.000Z","lastUpdated":"2023-05-06T14:15:12.000Z","status":1,"totalPoints":301195,"rankingPoints":263337,"totalPass":80,"totalFc":9,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":1638,"bracketLevel":1055,"footswitchLevel":1335,"jackLevel":1847,"sideswitchLevel":1716,"doublestepLevel":1282,"staminaLevel":594,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Jester","sex":"Male","profileImg":""},{"id":612,"membersId":66666,"dateAdded":"2023-03-21T20:25:32.000Z","lastUpdated":"2023-04-21T21:29:36.000Z","status":1,"totalPoints":365125,"rankingPoints":263301,"totalPass":80,"totalFc":29,"totalFec":15,"totalQuad":0,"totalQuint":0,"crossoverLevel":2387,"bracketLevel":1667,"footswitchLevel":1956,"jackLevel":1367,"sideswitchLevel":1534,"doublestepLevel":1971,"staminaLevel":618,"isBuddy":false,"preferences":"{\"discordId\":\"gato de plastico#1093\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"gatodeplastico","sex":"Male","profileImg":"https://i.imgur.com/bRLmquj.png"},{"id":877,"membersId":164145,"dateAdded":"2023-03-28T19:10:11.000Z","lastUpdated":"2023-05-05T21:09:06.000Z","status":1,"totalPoints":408649,"rankingPoints":263262,"totalPass":72,"totalFc":34,"totalFec":23,"totalQuad":3,"totalQuint":0,"crossoverLevel":2721,"bracketLevel":1079,"footswitchLevel":2053,"jackLevel":1351,"sideswitchLevel":2014,"doublestepLevel":2197,"staminaLevel":744,"isBuddy":false,"preferences":"{\"discordId\":\"Koizumi Chineko#9043\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Koizumi Chineko","sex":"Male","profileImg":"https://puu.sh/IZLO1/9c900b9234.jpg"},{"id":169,"membersId":127780,"dateAdded":"2023-03-18T22:33:53.000Z","lastUpdated":"2023-05-03T22:21:26.000Z","status":1,"totalPoints":338925,"rankingPoints":262460,"totalPass":89,"totalFc":18,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":1208,"bracketLevel":574,"footswitchLevel":629,"jackLevel":760,"sideswitchLevel":234,"doublestepLevel":897,"staminaLevel":2693,"isBuddy":false,"preferences":"{\"discordId\":\"zoodles#2685\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Hamaon","sex":"Female","profileImg":"https://66.media.tumblr.com/a586c1c2635be3c2863b904b689d6bc6/tumblr_pvwcak806k1x3sogho4_250.png"},{"id":235,"membersId":174904,"dateAdded":"2023-03-19T00:43:20.000Z","lastUpdated":"2023-05-07T04:16:35.000Z","status":1,"totalPoints":410596,"rankingPoints":262256,"totalPass":112,"totalFc":21,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":1893,"bracketLevel":1659,"footswitchLevel":1969,"jackLevel":1422,"sideswitchLevel":2162,"doublestepLevel":1751,"staminaLevel":1135,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Choden","sex":"Unspecified","profileImg":""},{"id":222,"membersId":166764,"dateAdded":"2023-03-19T00:14:39.000Z","lastUpdated":"2023-04-21T23:12:54.000Z","status":1,"totalPoints":344658,"rankingPoints":262072,"totalPass":91,"totalFc":18,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":1875,"bracketLevel":1435,"footswitchLevel":1776,"jackLevel":1257,"sideswitchLevel":1263,"doublestepLevel":1822,"staminaLevel":601,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"kadef","sex":"Male","profileImg":""},{"id":455,"membersId":170806,"dateAdded":"2023-03-20T01:25:45.000Z","lastUpdated":"2023-04-09T21:42:10.000Z","status":1,"totalPoints":297685,"rankingPoints":262065,"totalPass":66,"totalFc":18,"totalFec":21,"totalQuad":1,"totalQuint":0,"crossoverLevel":1670,"bracketLevel":795,"footswitchLevel":1226,"jackLevel":800,"sideswitchLevel":1017,"doublestepLevel":1424,"staminaLevel":587,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Yokamaa","sex":"Male","profileImg":"https://i.kym-cdn.com/photos/images/masonry/000/722/117/6ae.jpg"},{"id":134,"membersId":75805,"dateAdded":"2023-03-18T22:04:19.000Z","lastUpdated":"2023-05-01T23:56:37.000Z","status":1,"totalPoints":504673,"rankingPoints":262023,"totalPass":107,"totalFc":56,"totalFec":29,"totalQuad":1,"totalQuint":0,"crossoverLevel":3470,"bracketLevel":1675,"footswitchLevel":2339,"jackLevel":2080,"sideswitchLevel":2507,"doublestepLevel":2758,"staminaLevel":784,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Accioskullar","sex":"Male","profileImg":""},{"id":397,"membersId":173603,"dateAdded":"2023-03-19T18:58:21.000Z","lastUpdated":"2023-05-04T00:17:36.000Z","status":1,"totalPoints":374798,"rankingPoints":260982,"totalPass":50,"totalFc":32,"totalFec":51,"totalQuad":5,"totalQuint":0,"crossoverLevel":2854,"bracketLevel":1131,"footswitchLevel":2042,"jackLevel":1180,"sideswitchLevel":2149,"doublestepLevel":2478,"staminaLevel":309,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Stru","sex":"Male","profileImg":""},{"id":211,"membersId":175154,"dateAdded":"2023-03-18T23:47:03.000Z","lastUpdated":"2023-04-23T22:52:02.000Z","status":1,"totalPoints":350825,"rankingPoints":260708,"totalPass":95,"totalFc":14,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":1681,"bracketLevel":1300,"footswitchLevel":1785,"jackLevel":1061,"sideswitchLevel":1450,"doublestepLevel":1363,"staminaLevel":745,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Sonja","sex":"Female","profileImg":""},{"id":160,"membersId":175005,"dateAdded":"2023-03-18T22:24:36.000Z","lastUpdated":"2023-05-04T04:04:41.000Z","status":1,"totalPoints":438351,"rankingPoints":260222,"totalPass":106,"totalFc":40,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":2230,"bracketLevel":2246,"footswitchLevel":2519,"jackLevel":1511,"sideswitchLevel":1918,"doublestepLevel":2108,"staminaLevel":662,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Ricky","sex":"Male","profileImg":"https://i.imgur.com/xIjkLql.png"},{"id":189,"membersId":173373,"dateAdded":"2023-03-18T22:58:03.000Z","lastUpdated":"2023-05-06T23:44:47.000Z","status":1,"totalPoints":322557,"rankingPoints":258796,"totalPass":64,"totalFc":23,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":1908,"bracketLevel":1165,"footswitchLevel":1719,"jackLevel":695,"sideswitchLevel":1228,"doublestepLevel":1850,"staminaLevel":482,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Shmeagle!","sex":"Male","profileImg":""},{"id":991,"membersId":172864,"dateAdded":"2023-04-03T19:16:38.000Z","lastUpdated":"2023-05-03T14:11:21.000Z","status":1,"totalPoints":371306,"rankingPoints":258715,"totalPass":108,"totalFc":13,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":1460,"bracketLevel":1659,"footswitchLevel":1867,"jackLevel":1116,"sideswitchLevel":1356,"doublestepLevel":1372,"staminaLevel":1187,"isBuddy":false,"preferences":"{\"discordId\":\"Aryan#6366\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"1Aryan","sex":"Male","profileImg":""},{"id":689,"membersId":173415,"dateAdded":"2023-03-23T00:49:32.000Z","lastUpdated":"2023-05-04T01:58:13.000Z","status":1,"totalPoints":265857,"rankingPoints":257638,"totalPass":64,"totalFc":11,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":1261,"bracketLevel":1114,"footswitchLevel":1359,"jackLevel":956,"sideswitchLevel":1464,"doublestepLevel":1085,"staminaLevel":667,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Moosey","sex":"Unspecified","profileImg":"https://i.imgur.com/fZkE9Ld.png"},{"id":312,"membersId":165835,"dateAdded":"2023-03-19T05:32:57.000Z","lastUpdated":"2023-03-28T23:45:53.000Z","status":1,"totalPoints":274815,"rankingPoints":257470,"totalPass":58,"totalFc":26,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":664,"bracketLevel":691,"footswitchLevel":821,"jackLevel":890,"sideswitchLevel":293,"doublestepLevel":944,"staminaLevel":2095,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"callmisoko","sex":"Male","profileImg":"https://i.imgur.com/leaiZbb.jpg"},{"id":554,"membersId":175415,"dateAdded":"2023-03-20T22:35:18.000Z","lastUpdated":"2023-04-25T20:55:49.000Z","status":1,"totalPoints":545624,"rankingPoints":257381,"totalPass":162,"totalFc":30,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":3054,"bracketLevel":2128,"footswitchLevel":2331,"jackLevel":1562,"sideswitchLevel":2420,"doublestepLevel":2685,"staminaLevel":1343,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ODengals","sex":"Male","profileImg":""},{"id":288,"membersId":173461,"dateAdded":"2023-03-19T03:22:40.000Z","lastUpdated":"2023-05-04T22:17:00.000Z","status":1,"totalPoints":476964,"rankingPoints":256858,"totalPass":136,"totalFc":26,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":2693,"bracketLevel":1542,"footswitchLevel":2278,"jackLevel":1781,"sideswitchLevel":3058,"doublestepLevel":2065,"staminaLevel":989,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Treklock","sex":"Male","profileImg":""},{"id":298,"membersId":128187,"dateAdded":"2023-03-19T04:11:00.000Z","lastUpdated":"2023-05-04T23:59:24.000Z","status":1,"totalPoints":337051,"rankingPoints":256482,"totalPass":89,"totalFc":25,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":1962,"bracketLevel":1157,"footswitchLevel":1856,"jackLevel":1885,"sideswitchLevel":1025,"doublestepLevel":1649,"staminaLevel":893,"isBuddy":false,"preferences":"{\"discordId\":\"Lumi#0420\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lumi","sex":"Male","profileImg":"https://i.imgur.com/4hsL5s8.png"},{"id":453,"membersId":173333,"dateAdded":"2023-03-20T01:02:37.000Z","lastUpdated":"2023-05-07T05:57:10.000Z","status":1,"totalPoints":324442,"rankingPoints":255835,"totalPass":69,"totalFc":32,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":1241,"bracketLevel":1073,"footswitchLevel":1193,"jackLevel":1039,"sideswitchLevel":985,"doublestepLevel":1258,"staminaLevel":866,"isBuddy":false,"preferences":"{\"discordId\":\"Pasget#5973\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"pasgetti","sex":"Male","profileImg":""},{"id":269,"membersId":66720,"dateAdded":"2023-03-19T02:02:17.000Z","lastUpdated":"2023-05-03T22:20:16.000Z","status":1,"totalPoints":344319,"rankingPoints":254118,"totalPass":33,"totalFc":45,"totalFec":41,"totalQuad":5,"totalQuint":0,"crossoverLevel":2090,"bracketLevel":949,"footswitchLevel":1437,"jackLevel":1214,"sideswitchLevel":800,"doublestepLevel":1779,"staminaLevel":874,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dotso","sex":"Male","profileImg":"https://em-content.zobj.net/source/skype/289/check-mark_2714-fe0f.png"},{"id":523,"membersId":173554,"dateAdded":"2023-03-20T18:59:06.000Z","lastUpdated":"2023-05-05T22:19:55.000Z","status":1,"totalPoints":549363,"rankingPoints":253578,"totalPass":121,"totalFc":42,"totalFec":46,"totalQuad":0,"totalQuint":0,"crossoverLevel":3890,"bracketLevel":1841,"footswitchLevel":2634,"jackLevel":2400,"sideswitchLevel":2315,"doublestepLevel":3378,"staminaLevel":576,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SailorMoonElite","sex":"Male","profileImg":""},{"id":424,"membersId":127988,"dateAdded":"2023-03-19T21:15:10.000Z","lastUpdated":"2023-05-05T01:32:23.000Z","status":1,"totalPoints":301373,"rankingPoints":253564,"totalPass":87,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1346,"bracketLevel":1251,"footswitchLevel":1453,"jackLevel":1333,"sideswitchLevel":1057,"doublestepLevel":1620,"staminaLevel":662,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DJNidra","sex":"Male","profileImg":""},{"id":205,"membersId":175171,"dateAdded":"2023-03-18T23:29:37.000Z","lastUpdated":"2023-04-10T21:08:09.000Z","status":1,"totalPoints":457970,"rankingPoints":252500,"totalPass":108,"totalFc":20,"totalFec":40,"totalQuad":6,"totalQuint":0,"crossoverLevel":3661,"bracketLevel":1411,"footswitchLevel":2179,"jackLevel":1632,"sideswitchLevel":1626,"doublestepLevel":2875,"staminaLevel":401,"isBuddy":false,"preferences":"{\"discordId\":\"SenPi#0341\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SenPi","sex":"Male","profileImg":"https://i.imgur.com/L3J7vj6.png"},{"id":963,"membersId":173430,"dateAdded":"2023-04-01T22:09:34.000Z","lastUpdated":"2023-04-23T23:59:31.000Z","status":1,"totalPoints":283438,"rankingPoints":252265,"totalPass":75,"totalFc":16,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":1487,"bracketLevel":1063,"footswitchLevel":1278,"jackLevel":1247,"sideswitchLevel":939,"doublestepLevel":1224,"staminaLevel":679,"isBuddy":false,"preferences":"{\"discordId\":\"ahchurro111#5851\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ahchurro111","sex":"Male","profileImg":""},{"id":843,"membersId":173943,"dateAdded":"2023-03-26T22:41:59.000Z","lastUpdated":"2023-05-05T21:46:33.000Z","status":1,"totalPoints":251809,"rankingPoints":251809,"totalPass":62,"totalFc":3,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":599,"bracketLevel":486,"footswitchLevel":809,"jackLevel":646,"sideswitchLevel":424,"doublestepLevel":720,"staminaLevel":2127,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"HINATA-TCOL","sex":"Female","profileImg":""},{"id":415,"membersId":135314,"dateAdded":"2023-03-19T20:15:52.000Z","lastUpdated":"2023-05-03T23:36:35.000Z","status":1,"totalPoints":288456,"rankingPoints":251032,"totalPass":57,"totalFc":14,"totalFec":30,"totalQuad":1,"totalQuint":0,"crossoverLevel":1947,"bracketLevel":1132,"footswitchLevel":1410,"jackLevel":697,"sideswitchLevel":464,"doublestepLevel":1703,"staminaLevel":386,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Gumbygum","sex":"Male","profileImg":""},{"id":273,"membersId":173300,"dateAdded":"2023-03-19T02:31:03.000Z","lastUpdated":"2023-04-18T07:33:31.000Z","status":1,"totalPoints":300151,"rankingPoints":250918,"totalPass":65,"totalFc":35,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1478,"bracketLevel":2172,"footswitchLevel":1760,"jackLevel":1199,"sideswitchLevel":976,"doublestepLevel":1946,"staminaLevel":494,"isBuddy":false,"preferences":"{\"discordId\":\"Tetaes#8357\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Tetaes","sex":"Unspecified","profileImg":"https://cdn.discordapp.com/attachments/233076125968891917/1093542085048684636/image.png"},{"id":461,"membersId":175292,"dateAdded":"2023-03-20T01:56:14.000Z","lastUpdated":"2023-05-03T07:18:47.000Z","status":1,"totalPoints":372164,"rankingPoints":250398,"totalPass":106,"totalFc":16,"totalFec":18,"totalQuad":0,"totalQuint":0,"crossoverLevel":2373,"bracketLevel":817,"footswitchLevel":1587,"jackLevel":2835,"sideswitchLevel":1105,"doublestepLevel":2069,"staminaLevel":473,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Thotful","sex":"Male","profileImg":""},{"id":878,"membersId":175075,"dateAdded":"2023-03-28T19:35:43.000Z","lastUpdated":"2023-05-02T20:55:35.000Z","status":1,"totalPoints":452341,"rankingPoints":249070,"totalPass":92,"totalFc":14,"totalFec":59,"totalQuad":9,"totalQuint":0,"crossoverLevel":3704,"bracketLevel":1303,"footswitchLevel":2234,"jackLevel":1582,"sideswitchLevel":2085,"doublestepLevel":2987,"staminaLevel":358,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BigKnees","sex":"Male","profileImg":""},{"id":54,"membersId":128890,"dateAdded":"2023-03-18T21:49:07.000Z","lastUpdated":"2023-05-04T00:43:43.000Z","status":1,"totalPoints":531632,"rankingPoints":248708,"totalPass":134,"totalFc":34,"totalFec":30,"totalQuad":0,"totalQuint":0,"crossoverLevel":3411,"bracketLevel":2062,"footswitchLevel":2775,"jackLevel":1826,"sideswitchLevel":2830,"doublestepLevel":3061,"staminaLevel":664,"isBuddy":false,"preferences":"{\"discordId\":\"Coneja | Alexa#1449\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Coneja","sex":"Female","profileImg":"https://i.imgur.com/7OyrT96.png"},{"id":530,"membersId":173722,"dateAdded":"2023-03-20T19:27:08.000Z","lastUpdated":"2023-05-03T01:34:00.000Z","status":1,"totalPoints":549397,"rankingPoints":246678,"totalPass":137,"totalFc":61,"totalFec":18,"totalQuad":0,"totalQuint":0,"crossoverLevel":3722,"bracketLevel":2021,"footswitchLevel":2664,"jackLevel":2036,"sideswitchLevel":2847,"doublestepLevel":2805,"staminaLevel":707,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Jennergy","sex":"Female","profileImg":""},{"id":214,"membersId":160185,"dateAdded":"2023-03-18T23:56:42.000Z","lastUpdated":"2023-04-19T00:11:21.000Z","status":1,"totalPoints":266486,"rankingPoints":245822,"totalPass":59,"totalFc":14,"totalFec":14,"totalQuad":0,"totalQuint":0,"crossoverLevel":1544,"bracketLevel":505,"footswitchLevel":738,"jackLevel":872,"sideswitchLevel":826,"doublestepLevel":1268,"staminaLevel":688,"isBuddy":false,"preferences":"{\"discordId\":\"NICHARD#5675\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Nichard","sex":"Male","profileImg":""},{"id":407,"membersId":173559,"dateAdded":"2023-03-19T19:50:49.000Z","lastUpdated":"2023-04-25T19:14:29.000Z","status":1,"totalPoints":397850,"rankingPoints":243265,"totalPass":92,"totalFc":26,"totalFec":35,"totalQuad":0,"totalQuint":0,"crossoverLevel":2281,"bracketLevel":1133,"footswitchLevel":1720,"jackLevel":1122,"sideswitchLevel":2328,"doublestepLevel":1851,"staminaLevel":1183,"isBuddy":false,"preferences":"{\"discordId\":\"Beta#3921\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Beta","sex":"Female","profileImg":""},{"id":922,"membersId":173312,"dateAdded":"2023-03-30T16:19:22.000Z","lastUpdated":"2023-05-03T20:33:03.000Z","status":1,"totalPoints":448686,"rankingPoints":242913,"totalPass":154,"totalFc":14,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":2643,"bracketLevel":1809,"footswitchLevel":2400,"jackLevel":1977,"sideswitchLevel":2482,"doublestepLevel":2735,"staminaLevel":837,"isBuddy":false,"preferences":"{\"discordId\":\"DRILLBOT#4679\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"drillbot","sex":"Male","profileImg":"https://i.imgur.com/fwW1o6V.png"},{"id":573,"membersId":66553,"dateAdded":"2023-03-21T02:24:45.000Z","lastUpdated":"2023-04-25T01:48:55.000Z","status":1,"totalPoints":246934,"rankingPoints":242177,"totalPass":44,"totalFc":30,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":1392,"bracketLevel":996,"footswitchLevel":1206,"jackLevel":676,"sideswitchLevel":940,"doublestepLevel":1657,"staminaLevel":417,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Aura","sex":"Unspecified","profileImg":""},{"id":396,"membersId":23,"dateAdded":"2023-03-19T18:50:29.000Z","lastUpdated":"2023-05-03T22:57:00.000Z","status":1,"totalPoints":365778,"rankingPoints":242142,"totalPass":97,"totalFc":24,"totalFec":19,"totalQuad":0,"totalQuint":0,"crossoverLevel":2053,"bracketLevel":1098,"footswitchLevel":1434,"jackLevel":1429,"sideswitchLevel":728,"doublestepLevel":1983,"staminaLevel":753,"isBuddy":false,"preferences":"{\"discordId\":\"ninjafetus#9131\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ninjafetus","sex":"Male","profileImg":""},{"id":257,"membersId":173285,"dateAdded":"2023-03-19T01:39:17.000Z","lastUpdated":"2023-05-06T01:24:57.000Z","status":1,"totalPoints":241355,"rankingPoints":241355,"totalPass":54,"totalFc":10,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":1213,"bracketLevel":463,"footswitchLevel":1146,"jackLevel":681,"sideswitchLevel":1300,"doublestepLevel":695,"staminaLevel":470,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lumpky","sex":"Unspecified","profileImg":"https://i.imgur.com/Gc1UYNf.png"},{"id":355,"membersId":173142,"dateAdded":"2023-03-19T15:16:09.000Z","lastUpdated":"2023-03-31T02:20:21.000Z","status":1,"totalPoints":239605,"rankingPoints":239605,"totalPass":40,"totalFc":3,"totalFec":10,"totalQuad":4,"totalQuint":0,"crossoverLevel":1280,"bracketLevel":907,"footswitchLevel":1067,"jackLevel":601,"sideswitchLevel":968,"doublestepLevel":1331,"staminaLevel":484,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Yung ButtCoin","sex":"Male","profileImg":""},{"id":688,"membersId":173351,"dateAdded":"2023-03-23T00:44:55.000Z","lastUpdated":"2023-04-24T06:40:15.000Z","status":1,"totalPoints":343199,"rankingPoints":237594,"totalPass":52,"totalFc":27,"totalFec":55,"totalQuad":4,"totalQuint":0,"crossoverLevel":2940,"bracketLevel":951,"footswitchLevel":1657,"jackLevel":972,"sideswitchLevel":689,"doublestepLevel":2439,"staminaLevel":184,"isBuddy":false,"preferences":"{\"discordId\":\"Hamlette#3816\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Hamlette","sex":"Unspecified","profileImg":""},{"id":1096,"membersId":162988,"dateAdded":"2023-04-11T14:01:48.000Z","lastUpdated":"2023-04-20T00:47:01.000Z","status":1,"totalPoints":380949,"rankingPoints":237356,"totalPass":115,"totalFc":34,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":2324,"bracketLevel":1248,"footswitchLevel":1853,"jackLevel":1399,"sideswitchLevel":1920,"doublestepLevel":2366,"staminaLevel":602,"isBuddy":false,"preferences":"{\"discordId\":\"BootsMegamix#0352\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BootsMegamix","sex":"Male","profileImg":""},{"id":405,"membersId":5589,"dateAdded":"2023-03-19T19:47:22.000Z","lastUpdated":"2023-04-29T20:06:19.000Z","status":1,"totalPoints":283148,"rankingPoints":236575,"totalPass":53,"totalFc":37,"totalFec":17,"totalQuad":1,"totalQuint":0,"crossoverLevel":2327,"bracketLevel":715,"footswitchLevel":1145,"jackLevel":1103,"sideswitchLevel":845,"doublestepLevel":1604,"staminaLevel":362,"isBuddy":false,"preferences":"{\"discordId\":\"DJ_MHT#7619\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"djMHT","sex":"Male","profileImg":"https://i.imgur.com/6AVUI0u.jpg"},{"id":563,"membersId":173445,"dateAdded":"2023-03-20T23:45:12.000Z","lastUpdated":"2023-05-04T01:33:30.000Z","status":1,"totalPoints":295152,"rankingPoints":236111,"totalPass":65,"totalFc":24,"totalFec":20,"totalQuad":0,"totalQuint":0,"crossoverLevel":1966,"bracketLevel":686,"footswitchLevel":1341,"jackLevel":1001,"sideswitchLevel":1213,"doublestepLevel":1648,"staminaLevel":414,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"jiajiabinks","sex":"Unspecified","profileImg":""},{"id":868,"membersId":78677,"dateAdded":"2023-03-28T01:41:21.000Z","lastUpdated":"2023-05-06T23:06:15.000Z","status":1,"totalPoints":362233,"rankingPoints":234646,"totalPass":111,"totalFc":21,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":1843,"bracketLevel":879,"footswitchLevel":1304,"jackLevel":1159,"sideswitchLevel":964,"doublestepLevel":1931,"staminaLevel":1421,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"plasmaaa","sex":"Female","profileImg":"https://i.imgur.com/6ZqVvks.jpg"},{"id":243,"membersId":175377,"dateAdded":"2023-03-19T00:51:58.000Z","lastUpdated":"2023-05-01T06:17:14.000Z","status":1,"totalPoints":297490,"rankingPoints":234116,"totalPass":41,"totalFc":2,"totalFec":40,"totalQuad":33,"totalQuint":0,"crossoverLevel":2696,"bracketLevel":656,"footswitchLevel":1551,"jackLevel":989,"sideswitchLevel":1248,"doublestepLevel":1739,"staminaLevel":155,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Datwood","sex":"Male","profileImg":""},{"id":350,"membersId":130553,"dateAdded":"2023-03-19T14:13:28.000Z","lastUpdated":"2023-04-17T23:24:31.000Z","status":1,"totalPoints":448437,"rankingPoints":232217,"totalPass":139,"totalFc":20,"totalFec":24,"totalQuad":0,"totalQuint":0,"crossoverLevel":2791,"bracketLevel":1198,"footswitchLevel":1977,"jackLevel":1711,"sideswitchLevel":2013,"doublestepLevel":2284,"staminaLevel":1112,"isBuddy":false,"preferences":"{\"discordId\":\"Nabi#3897\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"NinjaNabi","sex":"Unspecified","profileImg":"https://i.ibb.co/ykdXrTt/nabiderpwithborder.png"},{"id":521,"membersId":173375,"dateAdded":"2023-03-20T18:38:13.000Z","lastUpdated":"2023-05-07T05:45:38.000Z","status":1,"totalPoints":382998,"rankingPoints":231487,"totalPass":95,"totalFc":14,"totalFec":49,"totalQuad":0,"totalQuint":0,"crossoverLevel":2808,"bracketLevel":1250,"footswitchLevel":1780,"jackLevel":1048,"sideswitchLevel":1439,"doublestepLevel":2017,"staminaLevel":461,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"luna2108","sex":"Female","profileImg":""},{"id":138,"membersId":132111,"dateAdded":"2023-03-18T22:07:14.000Z","lastUpdated":"2023-05-04T17:59:11.000Z","status":1,"totalPoints":370534,"rankingPoints":230735,"totalPass":104,"totalFc":31,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":1964,"bracketLevel":1154,"footswitchLevel":1757,"jackLevel":1169,"sideswitchLevel":2343,"doublestepLevel":1673,"staminaLevel":782,"isBuddy":false,"preferences":"{\"discordId\":\"Axor#3890\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Axor","sex":"Male","profileImg":"https://public.573573573.xyz/avatar-axor-250-gs-v1.png"},{"id":1105,"membersId":66234,"dateAdded":"2023-04-12T08:47:55.000Z","lastUpdated":"2023-04-30T10:53:08.000Z","status":1,"totalPoints":360965,"rankingPoints":230665,"totalPass":107,"totalFc":26,"totalFec":13,"totalQuad":0,"totalQuint":0,"crossoverLevel":2379,"bracketLevel":1328,"footswitchLevel":1898,"jackLevel":1601,"sideswitchLevel":1905,"doublestepLevel":2006,"staminaLevel":475,"isBuddy":false,"preferences":"{\"discordId\":\"corcaroli#6682\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"aweaver","sex":"Unspecified","profileImg":""},{"id":126,"membersId":173876,"dateAdded":"2023-03-18T22:00:50.000Z","lastUpdated":"2023-03-24T19:10:18.000Z","status":1,"totalPoints":335398,"rankingPoints":229155,"totalPass":108,"totalFc":14,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":1883,"bracketLevel":906,"footswitchLevel":1348,"jackLevel":1198,"sideswitchLevel":1383,"doublestepLevel":1481,"staminaLevel":895,"isBuddy":false,"preferences":"{\"discordId\":\"sigonasr2#7782\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sigonasr2","sex":"Male","profileImg":"https://en.gravatar.com/userimage/3612777/b9992e90331c1fa71a3479f5b3d02b41.png"},{"id":607,"membersId":172971,"dateAdded":"2023-03-21T20:00:27.000Z","lastUpdated":"2023-05-06T14:18:17.000Z","status":1,"totalPoints":321669,"rankingPoints":229092,"totalPass":90,"totalFc":30,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":1386,"bracketLevel":1556,"footswitchLevel":1864,"jackLevel":1161,"sideswitchLevel":1795,"doublestepLevel":1119,"staminaLevel":893,"isBuddy":false,"preferences":"{\"discordId\":\"Ravelan#8373\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Ravelan","sex":"Male","profileImg":""},{"id":1069,"membersId":175772,"dateAdded":"2023-04-09T10:56:41.000Z","lastUpdated":"2023-05-05T15:35:19.000Z","status":1,"totalPoints":437058,"rankingPoints":229021,"totalPass":132,"totalFc":39,"totalFec":18,"totalQuad":0,"totalQuint":0,"crossoverLevel":3048,"bracketLevel":872,"footswitchLevel":1933,"jackLevel":1520,"sideswitchLevel":1669,"doublestepLevel":2311,"staminaLevel":612,"isBuddy":false,"preferences":"{\"discordId\":\"djfipu#0001\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"djfipu","sex":"Male","profileImg":"https://i.imgur.com/VplwzxX.png"},{"id":279,"membersId":75846,"dateAdded":"2023-03-19T02:46:25.000Z","lastUpdated":"2023-05-06T23:08:00.000Z","status":1,"totalPoints":421456,"rankingPoints":228878,"totalPass":110,"totalFc":28,"totalFec":34,"totalQuad":0,"totalQuint":0,"crossoverLevel":2597,"bracketLevel":1157,"footswitchLevel":1644,"jackLevel":966,"sideswitchLevel":1857,"doublestepLevel":1903,"staminaLevel":763,"isBuddy":false,"preferences":"{\"discordId\":\"rarily#5911\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Rarily","sex":"Female","profileImg":"https://img.pokemondb.net/sprites/home/shiny/1x/shaymin-land.png"},{"id":223,"membersId":37863,"dateAdded":"2023-03-19T00:15:36.000Z","lastUpdated":"2023-05-05T20:31:31.000Z","status":1,"totalPoints":267678,"rankingPoints":228606,"totalPass":47,"totalFc":43,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":1678,"bracketLevel":823,"footswitchLevel":1281,"jackLevel":1195,"sideswitchLevel":2093,"doublestepLevel":1213,"staminaLevel":300,"isBuddy":false,"preferences":"{\"discordId\":\"TaroNuke#4012\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TaroNuke","sex":"Male","profileImg":""},{"id":9,"membersId":173420,"dateAdded":"2023-03-18T21:48:27.000Z","lastUpdated":"2023-05-06T23:46:40.000Z","status":1,"totalPoints":603525,"rankingPoints":227426,"totalPass":156,"totalFc":94,"totalFec":11,"totalQuad":0,"totalQuint":0,"crossoverLevel":3837,"bracketLevel":1592,"footswitchLevel":2766,"jackLevel":2327,"sideswitchLevel":3067,"doublestepLevel":3106,"staminaLevel":1097,"isBuddy":false,"preferences":"{\"discordId\":\"Martin#6291\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"slowunsteady","sex":"Unspecified","profileImg":"https://i.imgur.com/7VkeuP9.png"},{"id":15,"membersId":118539,"dateAdded":"2023-03-18T21:48:44.000Z","lastUpdated":"2023-05-04T00:17:45.000Z","status":1,"totalPoints":267667,"rankingPoints":227356,"totalPass":67,"totalFc":25,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":1560,"bracketLevel":1073,"footswitchLevel":1377,"jackLevel":886,"sideswitchLevel":1198,"doublestepLevel":923,"staminaLevel":425,"isBuddy":false,"preferences":"{\"discordId\":\"fastboy#1312\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"fastboy","sex":"Unspecified","profileImg":""},{"id":463,"membersId":175285,"dateAdded":"2023-03-20T02:00:58.000Z","lastUpdated":"2023-05-03T07:35:21.000Z","status":1,"totalPoints":264023,"rankingPoints":227310,"totalPass":73,"totalFc":13,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":1835,"bracketLevel":747,"footswitchLevel":1234,"jackLevel":523,"sideswitchLevel":678,"doublestepLevel":1148,"staminaLevel":327,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"hitswi","sex":"Female","profileImg":"https://pbs.twimg.com/profile_images/1628895416921260032/3VRl4sQ__200x200.jpg"},{"id":543,"membersId":66732,"dateAdded":"2023-03-20T21:09:10.000Z","lastUpdated":"2023-05-05T23:19:40.000Z","status":1,"totalPoints":333754,"rankingPoints":226997,"totalPass":92,"totalFc":29,"totalFec":11,"totalQuad":0,"totalQuint":0,"crossoverLevel":1947,"bracketLevel":1221,"footswitchLevel":1545,"jackLevel":1258,"sideswitchLevel":859,"doublestepLevel":2114,"staminaLevel":612,"isBuddy":false,"preferences":"{\"discordId\":\"Cxxxx#1478\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Cxxxx","sex":"Unspecified","profileImg":"https://cdn.discordapp.com/attachments/770511307966775306/773400266266902598/Cxxxx_Avatar.png"},{"id":323,"membersId":1932,"dateAdded":"2023-03-19T07:13:42.000Z","lastUpdated":"2023-04-28T09:12:56.000Z","status":1,"totalPoints":296894,"rankingPoints":225435,"totalPass":126,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":1333,"bracketLevel":1054,"footswitchLevel":1444,"jackLevel":1053,"sideswitchLevel":1322,"doublestepLevel":1539,"staminaLevel":745,"isBuddy":false,"preferences":"{\"discordId\":\"flip314#2079\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"flip","sex":"Male","profileImg":"https://i.imgur.com/hNWIhQX.png"},{"id":665,"membersId":172949,"dateAdded":"2023-03-22T18:42:16.000Z","lastUpdated":"2023-05-05T11:51:17.000Z","status":1,"totalPoints":285997,"rankingPoints":225313,"totalPass":1,"totalFc":8,"totalFec":94,"totalQuad":14,"totalQuint":0,"crossoverLevel":2693,"bracketLevel":605,"footswitchLevel":1500,"jackLevel":529,"sideswitchLevel":939,"doublestepLevel":1601,"staminaLevel":156,"isBuddy":false,"preferences":"{\"discordId\":\"topet2k12001#5211\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"topet","sex":"Male","profileImg":""},{"id":224,"membersId":173438,"dateAdded":"2023-03-19T00:18:20.000Z","lastUpdated":"2023-05-06T22:49:48.000Z","status":1,"totalPoints":286214,"rankingPoints":225293,"totalPass":45,"totalFc":34,"totalFec":30,"totalQuad":2,"totalQuint":0,"crossoverLevel":2643,"bracketLevel":708,"footswitchLevel":1375,"jackLevel":697,"sideswitchLevel":792,"doublestepLevel":2131,"staminaLevel":165,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nauebp","sex":"Male","profileImg":""},{"id":379,"membersId":173336,"dateAdded":"2023-03-19T17:32:41.000Z","lastUpdated":"2023-05-05T00:19:25.000Z","status":1,"totalPoints":345428,"rankingPoints":225178,"totalPass":75,"totalFc":55,"totalFec":18,"totalQuad":0,"totalQuint":0,"crossoverLevel":2890,"bracketLevel":1116,"footswitchLevel":1679,"jackLevel":1120,"sideswitchLevel":1267,"doublestepLevel":2303,"staminaLevel":284,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"stevesef","sex":"Unspecified","profileImg":""},{"id":431,"membersId":173130,"dateAdded":"2023-03-19T22:17:07.000Z","lastUpdated":"2023-05-05T04:52:22.000Z","status":1,"totalPoints":230370,"rankingPoints":223400,"totalPass":49,"totalFc":14,"totalFec":19,"totalQuad":0,"totalQuint":0,"crossoverLevel":1267,"bracketLevel":983,"footswitchLevel":1267,"jackLevel":562,"sideswitchLevel":1008,"doublestepLevel":1746,"staminaLevel":443,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Cheeze","sex":"Male","profileImg":""},{"id":542,"membersId":173366,"dateAdded":"2023-03-20T21:05:41.000Z","lastUpdated":"2023-04-17T23:41:04.000Z","status":1,"totalPoints":225625,"rankingPoints":221688,"totalPass":56,"totalFc":13,"totalFec":8,"totalQuad":4,"totalQuint":0,"crossoverLevel":1335,"bracketLevel":976,"footswitchLevel":1077,"jackLevel":1036,"sideswitchLevel":347,"doublestepLevel":1512,"staminaLevel":378,"isBuddy":false,"preferences":"{\"discordId\":\"cardmaster#3399\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Popplio","sex":"Unspecified","profileImg":""},{"id":154,"membersId":173304,"dateAdded":"2023-03-18T22:20:46.000Z","lastUpdated":"2023-05-06T16:22:31.000Z","status":1,"totalPoints":221481,"rankingPoints":221481,"totalPass":25,"totalFc":27,"totalFec":23,"totalQuad":0,"totalQuint":0,"crossoverLevel":1648,"bracketLevel":306,"footswitchLevel":809,"jackLevel":472,"sideswitchLevel":580,"doublestepLevel":1372,"staminaLevel":288,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"teri","sex":"Unspecified","profileImg":"https://i.gyazo.com/92492b24d72a216b1150f8328e74e053.gif"},{"id":505,"membersId":173104,"dateAdded":"2023-03-20T15:50:34.000Z","lastUpdated":"2023-04-20T01:53:10.000Z","status":1,"totalPoints":245944,"rankingPoints":221387,"totalPass":30,"totalFc":11,"totalFec":47,"totalQuad":8,"totalQuint":0,"crossoverLevel":2222,"bracketLevel":647,"footswitchLevel":1257,"jackLevel":570,"sideswitchLevel":593,"doublestepLevel":1440,"staminaLevel":249,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TaymanND","sex":"Unspecified","profileImg":""},{"id":457,"membersId":72041,"dateAdded":"2023-03-20T01:38:01.000Z","lastUpdated":"2023-05-04T23:31:31.000Z","status":1,"totalPoints":431309,"rankingPoints":221224,"totalPass":190,"totalFc":9,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":2137,"bracketLevel":1393,"footswitchLevel":1657,"jackLevel":1572,"sideswitchLevel":1471,"doublestepLevel":1997,"staminaLevel":1677,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DerpyPengu","sex":"Male","profileImg":""},{"id":1068,"membersId":175197,"dateAdded":"2023-04-09T05:50:00.000Z","lastUpdated":"2023-05-04T05:12:08.000Z","status":1,"totalPoints":267131,"rankingPoints":219454,"totalPass":79,"totalFc":13,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":1501,"bracketLevel":842,"footswitchLevel":1318,"jackLevel":816,"sideswitchLevel":878,"doublestepLevel":1611,"staminaLevel":387,"isBuddy":false,"preferences":"{\"discordId\":\"rickytickytavy#8081\",\"decentsEnabled\":true,\"wayOffsEnabled\":false}","name":"Derk","sex":"Unspecified","profileImg":""},{"id":202,"membersId":134389,"dateAdded":"2023-03-18T23:17:46.000Z","lastUpdated":"2023-04-27T02:21:53.000Z","status":1,"totalPoints":352541,"rankingPoints":219263,"totalPass":116,"totalFc":24,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":2146,"bracketLevel":1097,"footswitchLevel":1596,"jackLevel":892,"sideswitchLevel":1402,"doublestepLevel":1811,"staminaLevel":567,"isBuddy":false,"preferences":"{\"discordId\":\"mewmiu123#6969\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"angelXboy","sex":"Unspecified","profileImg":""},{"id":585,"membersId":173064,"dateAdded":"2023-03-21T06:50:33.000Z","lastUpdated":"2023-05-07T02:48:58.000Z","status":1,"totalPoints":419751,"rankingPoints":218794,"totalPass":124,"totalFc":57,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":3028,"bracketLevel":1399,"footswitchLevel":2135,"jackLevel":1392,"sideswitchLevel":1514,"doublestepLevel":2267,"staminaLevel":449,"isBuddy":false,"preferences":"{\"discordId\":\"bobapup#8084\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"bobayubi","sex":"Unspecified","profileImg":"https://cdn.discordapp.com/attachments/835358703766339644/1087957298871291904/1.png"},{"id":480,"membersId":81056,"dateAdded":"2023-03-20T04:50:23.000Z","lastUpdated":"2023-04-29T00:11:49.000Z","status":1,"totalPoints":240055,"rankingPoints":218100,"totalPass":20,"totalFc":18,"totalFec":29,"totalQuad":27,"totalQuint":0,"crossoverLevel":2014,"bracketLevel":715,"footswitchLevel":1168,"jackLevel":699,"sideswitchLevel":314,"doublestepLevel":1734,"staminaLevel":251,"isBuddy":false,"preferences":"{\"discordId\":\"Twans#2480\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Twans","sex":"Male","profileImg":""},{"id":488,"membersId":173629,"dateAdded":"2023-03-20T11:24:43.000Z","lastUpdated":"2023-05-05T11:06:21.000Z","status":1,"totalPoints":255804,"rankingPoints":217495,"totalPass":46,"totalFc":48,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":1942,"bracketLevel":820,"footswitchLevel":1207,"jackLevel":821,"sideswitchLevel":967,"doublestepLevel":1466,"staminaLevel":317,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"RamoDavi","sex":"Male","profileImg":""},{"id":636,"membersId":173391,"dateAdded":"2023-03-22T04:01:56.000Z","lastUpdated":"2023-05-06T19:46:37.000Z","status":1,"totalPoints":384660,"rankingPoints":217169,"totalPass":153,"totalFc":14,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":2138,"bracketLevel":1303,"footswitchLevel":1736,"jackLevel":1613,"sideswitchLevel":1418,"doublestepLevel":1948,"staminaLevel":837,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CompleteYoshi","sex":"Male","profileImg":"https://i.imgur.com/0tpcBsy.png"},{"id":38,"membersId":76052,"dateAdded":"2023-03-18T21:49:00.000Z","lastUpdated":"2023-05-05T01:05:32.000Z","status":1,"totalPoints":412951,"rankingPoints":217111,"totalPass":122,"totalFc":42,"totalFec":19,"totalQuad":0,"totalQuint":0,"crossoverLevel":3042,"bracketLevel":1242,"footswitchLevel":1870,"jackLevel":1419,"sideswitchLevel":1550,"doublestepLevel":2578,"staminaLevel":577,"isBuddy":false,"preferences":"{\"discordId\":\"MrTwinkles#1706\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MrTwinkles","sex":"Male","profileImg":"https://i.imgur.com/yNDAybO.jpg"},{"id":321,"membersId":175218,"dateAdded":"2023-03-19T07:08:13.000Z","lastUpdated":"2023-03-25T22:00:58.000Z","status":1,"totalPoints":277742,"rankingPoints":216772,"totalPass":99,"totalFc":9,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1444,"bracketLevel":1101,"footswitchLevel":1255,"jackLevel":864,"sideswitchLevel":1548,"doublestepLevel":1463,"staminaLevel":630,"isBuddy":false,"preferences":"{\"discordId\":\"Zivie#2560\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zivie87","sex":"Male","profileImg":""},{"id":693,"membersId":173013,"dateAdded":"2023-03-23T02:36:34.000Z","lastUpdated":"2023-05-02T21:40:52.000Z","status":1,"totalPoints":216327,"rankingPoints":216327,"totalPass":38,"totalFc":7,"totalFec":12,"totalQuad":10,"totalQuint":0,"crossoverLevel":1247,"bracketLevel":885,"footswitchLevel":1405,"jackLevel":402,"sideswitchLevel":1404,"doublestepLevel":1111,"staminaLevel":479,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"J13Rstyle","sex":"Unspecified","profileImg":""},{"id":1178,"membersId":175938,"dateAdded":"2023-04-21T17:11:09.000Z","lastUpdated":"2023-05-06T16:23:36.000Z","status":1,"totalPoints":263986,"rankingPoints":215905,"totalPass":45,"totalFc":43,"totalFec":25,"totalQuad":0,"totalQuint":0,"crossoverLevel":2052,"bracketLevel":1121,"footswitchLevel":1714,"jackLevel":749,"sideswitchLevel":1039,"doublestepLevel":1777,"staminaLevel":371,"isBuddy":false,"preferences":"{\"discordId\":\"Primo Victorian#9502\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PrimoVictorian","sex":"Male","profileImg":""},{"id":593,"membersId":73458,"dateAdded":"2023-03-21T14:39:54.000Z","lastUpdated":"2023-05-04T01:42:09.000Z","status":1,"totalPoints":251303,"rankingPoints":215623,"totalPass":82,"totalFc":11,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":1070,"bracketLevel":655,"footswitchLevel":1259,"jackLevel":527,"sideswitchLevel":816,"doublestepLevel":1238,"staminaLevel":1313,"isBuddy":false,"preferences":"{\"discordId\":\"Cozy#8123\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Cozy","sex":"Male","profileImg":"https://i.imgur.com/Ss71VnP.jpg"},{"id":590,"membersId":173571,"dateAdded":"2023-03-21T11:52:52.000Z","lastUpdated":"2023-04-10T07:33:54.000Z","status":1,"totalPoints":275209,"rankingPoints":215332,"totalPass":57,"totalFc":17,"totalFec":46,"totalQuad":0,"totalQuint":0,"crossoverLevel":2231,"bracketLevel":684,"footswitchLevel":1191,"jackLevel":622,"sideswitchLevel":681,"doublestepLevel":1863,"staminaLevel":226,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"KyokiShinsa","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/986205476356251649/988552408953155605/kyokilogo.png"},{"id":409,"membersId":173350,"dateAdded":"2023-03-19T20:01:52.000Z","lastUpdated":"2023-04-09T00:09:30.000Z","status":1,"totalPoints":354957,"rankingPoints":213918,"totalPass":89,"totalFc":18,"totalFec":41,"totalQuad":7,"totalQuint":0,"crossoverLevel":2972,"bracketLevel":922,"footswitchLevel":1734,"jackLevel":1120,"sideswitchLevel":900,"doublestepLevel":2234,"staminaLevel":290,"isBuddy":false,"preferences":"{\"discordId\":\"Dayani#1798\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dayani","sex":"Female","profileImg":""},{"id":440,"membersId":76910,"dateAdded":"2023-03-19T23:32:12.000Z","lastUpdated":"2023-05-05T22:46:19.000Z","status":1,"totalPoints":283971,"rankingPoints":213901,"totalPass":94,"totalFc":21,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":2384,"bracketLevel":865,"footswitchLevel":1424,"jackLevel":881,"sideswitchLevel":797,"doublestepLevel":1984,"staminaLevel":214,"isBuddy":false,"preferences":"{\"discordId\":\"din#0495\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"din","sex":"Male","profileImg":""},{"id":599,"membersId":173067,"dateAdded":"2023-03-21T17:21:39.000Z","lastUpdated":"2023-05-06T03:45:11.000Z","status":1,"totalPoints":248773,"rankingPoints":213783,"totalPass":37,"totalFc":18,"totalFec":26,"totalQuad":24,"totalQuint":0,"crossoverLevel":2253,"bracketLevel":383,"footswitchLevel":1025,"jackLevel":490,"sideswitchLevel":643,"doublestepLevel":1447,"staminaLevel":171,"isBuddy":false,"preferences":"{\"discordId\":\"PinkDino#0188\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Pink Dino","sex":"Male","profileImg":""},{"id":909,"membersId":173621,"dateAdded":"2023-03-29T22:28:39.000Z","lastUpdated":"2023-05-05T00:49:03.000Z","status":1,"totalPoints":213516,"rankingPoints":213516,"totalPass":50,"totalFc":16,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":1252,"bracketLevel":428,"footswitchLevel":778,"jackLevel":813,"sideswitchLevel":665,"doublestepLevel":1206,"staminaLevel":461,"isBuddy":false,"preferences":"{\"discordId\":\"Baderbandit#0444\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zbader","sex":"Male","profileImg":""},{"id":1064,"membersId":168218,"dateAdded":"2023-04-08T21:58:41.000Z","lastUpdated":"2023-05-04T04:53:32.000Z","status":1,"totalPoints":251141,"rankingPoints":210994,"totalPass":76,"totalFc":22,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":1776,"bracketLevel":276,"footswitchLevel":1255,"jackLevel":555,"sideswitchLevel":1256,"doublestepLevel":1021,"staminaLevel":404,"isBuddy":false,"preferences":"{\"discordId\":\"tiff tiff#1919\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"gudetama","sex":"Unspecified","profileImg":""},{"id":685,"membersId":175453,"dateAdded":"2023-03-23T00:23:58.000Z","lastUpdated":"2023-03-30T00:58:24.000Z","status":1,"totalPoints":210683,"rankingPoints":210683,"totalPass":31,"totalFc":7,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":661,"bracketLevel":1329,"footswitchLevel":895,"jackLevel":631,"sideswitchLevel":462,"doublestepLevel":733,"staminaLevel":821,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Another48","sex":"Male","profileImg":""},{"id":502,"membersId":167276,"dateAdded":"2023-03-20T15:22:04.000Z","lastUpdated":"2023-05-03T19:21:15.000Z","status":1,"totalPoints":250810,"rankingPoints":210673,"totalPass":92,"totalFc":7,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":1261,"bracketLevel":548,"footswitchLevel":910,"jackLevel":1016,"sideswitchLevel":886,"doublestepLevel":731,"staminaLevel":607,"isBuddy":false,"preferences":"{\"discordId\":\"Kroly#4140\",\"decentsEnabled\":true,\"wayOffsEnabled\":false}","name":"Ayaka","sex":"Male","profileImg":"https://puu.sh/HVN1P/30f6829f72.png"},{"id":987,"membersId":75962,"dateAdded":"2023-04-03T05:06:58.000Z","lastUpdated":"2023-05-03T05:00:31.000Z","status":1,"totalPoints":210602,"rankingPoints":210602,"totalPass":42,"totalFc":4,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":888,"bracketLevel":567,"footswitchLevel":829,"jackLevel":619,"sideswitchLevel":538,"doublestepLevel":757,"staminaLevel":430,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"jerryjurr","sex":"Male","profileImg":""},{"id":157,"membersId":42011,"dateAdded":"2023-03-18T22:22:10.000Z","lastUpdated":"2023-05-02T16:45:55.000Z","status":1,"totalPoints":307957,"rankingPoints":210270,"totalPass":100,"totalFc":38,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":2029,"bracketLevel":869,"footswitchLevel":1705,"jackLevel":1112,"sideswitchLevel":638,"doublestepLevel":1748,"staminaLevel":347,"isBuddy":false,"preferences":"{\"discordId\":\"Mr. Mary#1679\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zlew","sex":"Male","profileImg":"https://i.imgur.com/THdpsEY.png"},{"id":30,"membersId":173356,"dateAdded":"2023-03-18T21:48:55.000Z","lastUpdated":"2023-05-06T19:09:28.000Z","status":1,"totalPoints":476498,"rankingPoints":208630,"totalPass":161,"totalFc":65,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":3136,"bracketLevel":1412,"footswitchLevel":2281,"jackLevel":1665,"sideswitchLevel":2632,"doublestepLevel":2589,"staminaLevel":605,"isBuddy":false,"preferences":"{\"discordId\":\"NowhereDanceClub#8375\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"NOWHERE Dance Club","sex":"Male","profileImg":"https://i.ibb.co/R9xYwmd/groovestats-pfp2.png"},{"id":504,"membersId":98817,"dateAdded":"2023-03-20T15:48:47.000Z","lastUpdated":"2023-05-03T20:22:29.000Z","status":1,"totalPoints":207917,"rankingPoints":207917,"totalPass":11,"totalFc":13,"totalFec":19,"totalQuad":4,"totalQuint":0,"crossoverLevel":1073,"bracketLevel":696,"footswitchLevel":918,"jackLevel":1219,"sideswitchLevel":674,"doublestepLevel":1749,"staminaLevel":392,"isBuddy":false,"preferences":"{\"discordId\":\"miligram#0055\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"miligram","sex":"Male","profileImg":"https://i.imgur.com/j2xKUJo.jpg"},{"id":1145,"membersId":3203,"dateAdded":"2023-04-16T22:24:17.000Z","lastUpdated":"2023-05-06T02:24:25.000Z","status":1,"totalPoints":229057,"rankingPoints":207447,"totalPass":40,"totalFc":17,"totalFec":36,"totalQuad":1,"totalQuint":0,"crossoverLevel":1803,"bracketLevel":510,"footswitchLevel":1433,"jackLevel":414,"sideswitchLevel":1067,"doublestepLevel":1101,"staminaLevel":194,"isBuddy":false,"preferences":"{\"discordId\":\"typobox#0045\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"typobox","sex":"Male","profileImg":""},{"id":1132,"membersId":173306,"dateAdded":"2023-04-15T21:05:41.000Z","lastUpdated":"2023-05-01T18:52:39.000Z","status":1,"totalPoints":232947,"rankingPoints":207367,"totalPass":76,"totalFc":12,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":1291,"bracketLevel":773,"footswitchLevel":1242,"jackLevel":576,"sideswitchLevel":938,"doublestepLevel":1092,"staminaLevel":308,"isBuddy":false,"preferences":"{\"discordId\":\"ibu#8058\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ibuprofen","sex":"Male","profileImg":"https://i.imgur.com/VKeK4od.png"},{"id":380,"membersId":173317,"dateAdded":"2023-03-19T17:36:37.000Z","lastUpdated":"2023-05-01T23:01:53.000Z","status":1,"totalPoints":206286,"rankingPoints":206286,"totalPass":26,"totalFc":10,"totalFec":15,"totalQuad":7,"totalQuint":0,"crossoverLevel":1288,"bracketLevel":667,"footswitchLevel":1211,"jackLevel":304,"sideswitchLevel":1074,"doublestepLevel":1062,"staminaLevel":268,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CopperPuppy","sex":"Male","profileImg":""},{"id":694,"membersId":66487,"dateAdded":"2023-03-23T02:40:03.000Z","lastUpdated":"2023-04-30T15:46:17.000Z","status":1,"totalPoints":230856,"rankingPoints":206228,"totalPass":66,"totalFc":26,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":1698,"bracketLevel":719,"footswitchLevel":974,"jackLevel":444,"sideswitchLevel":755,"doublestepLevel":1276,"staminaLevel":399,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dominick.dechristofaro","sex":"Male","profileImg":""},{"id":50,"membersId":34196,"dateAdded":"2023-03-18T21:49:06.000Z","lastUpdated":"2023-04-01T21:38:15.000Z","status":1,"totalPoints":205717,"rankingPoints":205717,"totalPass":17,"totalFc":22,"totalFec":17,"totalQuad":0,"totalQuint":0,"crossoverLevel":716,"bracketLevel":622,"footswitchLevel":702,"jackLevel":1166,"sideswitchLevel":130,"doublestepLevel":917,"staminaLevel":352,"isBuddy":false,"preferences":"{\"discordId\":\"Telperion#4649\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"bit.ly/scobility-ITL2023","sex":"Male","profileImg":"https://i.imgur.com/HdfcfoV.png"},{"id":630,"membersId":173612,"dateAdded":"2023-03-22T01:10:43.000Z","lastUpdated":"2023-05-01T02:37:03.000Z","status":1,"totalPoints":205674,"rankingPoints":205674,"totalPass":26,"totalFc":13,"totalFec":6,"totalQuad":1,"totalQuint":0,"crossoverLevel":1177,"bracketLevel":704,"footswitchLevel":862,"jackLevel":375,"sideswitchLevel":1210,"doublestepLevel":680,"staminaLevel":431,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"speny","sex":"Unspecified","profileImg":""},{"id":499,"membersId":175051,"dateAdded":"2023-03-20T14:44:21.000Z","lastUpdated":"2023-04-24T13:05:44.000Z","status":1,"totalPoints":329675,"rankingPoints":202705,"totalPass":90,"totalFc":64,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":2597,"bracketLevel":1052,"footswitchLevel":1612,"jackLevel":1095,"sideswitchLevel":1193,"doublestepLevel":2081,"staminaLevel":296,"isBuddy":false,"preferences":"{\"discordId\":\"PSYQUO#8377\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"psyquo","sex":"Unspecified","profileImg":""},{"id":481,"membersId":173825,"dateAdded":"2023-03-20T05:06:21.000Z","lastUpdated":"2023-05-03T03:00:36.000Z","status":1,"totalPoints":314787,"rankingPoints":202682,"totalPass":91,"totalFc":32,"totalFec":24,"totalQuad":1,"totalQuint":0,"crossoverLevel":2376,"bracketLevel":646,"footswitchLevel":1486,"jackLevel":887,"sideswitchLevel":695,"doublestepLevel":1658,"staminaLevel":313,"isBuddy":false,"preferences":"{\"discordId\":\"Zenius#6583\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"xxzeniusxx","sex":"Male","profileImg":""},{"id":291,"membersId":52996,"dateAdded":"2023-03-19T03:35:48.000Z","lastUpdated":"2023-04-18T02:46:11.000Z","status":1,"totalPoints":201242,"rankingPoints":201242,"totalPass":46,"totalFc":16,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":807,"bracketLevel":210,"footswitchLevel":421,"jackLevel":633,"sideswitchLevel":545,"doublestepLevel":638,"staminaLevel":1324,"isBuddy":false,"preferences":"{\"discordId\":\"Paige#7414\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Paige","sex":"Female","profileImg":"https://www.moonkitty.net/sailor-moon-character-guide-sailor-jupiter.jpg"},{"id":99,"membersId":132032,"dateAdded":"2023-03-18T21:53:08.000Z","lastUpdated":"2023-04-06T13:30:19.000Z","status":1,"totalPoints":204934,"rankingPoints":200921,"totalPass":58,"totalFc":18,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":968,"bracketLevel":718,"footswitchLevel":1079,"jackLevel":490,"sideswitchLevel":569,"doublestepLevel":1051,"staminaLevel":982,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"tommoda","sex":"Male","profileImg":"https://iili.io/MJfrjn.png"},{"id":677,"membersId":174191,"dateAdded":"2023-03-22T23:10:36.000Z","lastUpdated":"2023-05-02T00:31:12.000Z","status":1,"totalPoints":262740,"rankingPoints":200661,"totalPass":74,"totalFc":31,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":1758,"bracketLevel":952,"footswitchLevel":1464,"jackLevel":1166,"sideswitchLevel":872,"doublestepLevel":1436,"staminaLevel":244,"isBuddy":false,"preferences":"{\"discordId\":\"Dautri#4857\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dautri","sex":"Male","profileImg":""},{"id":394,"membersId":175356,"dateAdded":"2023-03-19T18:41:02.000Z","lastUpdated":"2023-04-27T00:55:13.000Z","status":1,"totalPoints":243273,"rankingPoints":200156,"totalPass":33,"totalFc":24,"totalFec":52,"totalQuad":0,"totalQuint":0,"crossoverLevel":2348,"bracketLevel":583,"footswitchLevel":1231,"jackLevel":658,"sideswitchLevel":675,"doublestepLevel":1553,"staminaLevel":183,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SnowStorm","sex":"Male","profileImg":""},{"id":536,"membersId":173260,"dateAdded":"2023-03-20T19:50:27.000Z","lastUpdated":"2023-05-05T01:04:50.000Z","status":1,"totalPoints":215939,"rankingPoints":200124,"totalPass":64,"totalFc":13,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":821,"bracketLevel":908,"footswitchLevel":937,"jackLevel":968,"sideswitchLevel":661,"doublestepLevel":1268,"staminaLevel":226,"isBuddy":false,"preferences":"{\"discordId\":\"mr._peabody#0600\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Peabody!","sex":"Male","profileImg":""},{"id":61,"membersId":174010,"dateAdded":"2023-03-18T21:49:40.000Z","lastUpdated":"2023-05-05T14:03:00.000Z","status":1,"totalPoints":327067,"rankingPoints":199656,"totalPass":128,"totalFc":23,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":2485,"bracketLevel":473,"footswitchLevel":1503,"jackLevel":1068,"sideswitchLevel":1073,"doublestepLevel":1960,"staminaLevel":367,"isBuddy":false,"preferences":"{\"discordId\":\"zibson#4140\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"zibson","sex":"Male","profileImg":""},{"id":876,"membersId":66721,"dateAdded":"2023-03-28T18:45:27.000Z","lastUpdated":"2023-04-29T12:02:38.000Z","status":1,"totalPoints":198752,"rankingPoints":198752,"totalPass":53,"totalFc":7,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":791,"bracketLevel":333,"footswitchLevel":735,"jackLevel":947,"sideswitchLevel":307,"doublestepLevel":446,"staminaLevel":551,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ryany0","sex":"Male","profileImg":""},{"id":123,"membersId":173068,"dateAdded":"2023-03-18T21:59:33.000Z","lastUpdated":"2023-05-04T00:43:31.000Z","status":1,"totalPoints":324625,"rankingPoints":198350,"totalPass":97,"totalFc":46,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":2323,"bracketLevel":921,"footswitchLevel":1667,"jackLevel":1027,"sideswitchLevel":1934,"doublestepLevel":1820,"staminaLevel":429,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Gyzarus","sex":"Male","profileImg":"https://i.imgur.com/EjRFziQ.png"},{"id":219,"membersId":173474,"dateAdded":"2023-03-19T00:11:42.000Z","lastUpdated":"2023-04-30T23:25:54.000Z","status":1,"totalPoints":201912,"rankingPoints":198223,"totalPass":55,"totalFc":19,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":1162,"bracketLevel":473,"footswitchLevel":932,"jackLevel":549,"sideswitchLevel":628,"doublestepLevel":1029,"staminaLevel":443,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Wenn","sex":"Female","profileImg":""},{"id":1103,"membersId":174029,"dateAdded":"2023-04-12T06:31:01.000Z","lastUpdated":"2023-05-01T09:12:08.000Z","status":1,"totalPoints":248120,"rankingPoints":197510,"totalPass":44,"totalFc":34,"totalFec":34,"totalQuad":1,"totalQuint":0,"crossoverLevel":2518,"bracketLevel":472,"footswitchLevel":1127,"jackLevel":444,"sideswitchLevel":561,"doublestepLevel":1631,"staminaLevel":111,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SAN REMO","sex":"Male","profileImg":""},{"id":901,"membersId":174909,"dateAdded":"2023-03-29T15:34:26.000Z","lastUpdated":"2023-05-02T01:20:29.000Z","status":1,"totalPoints":214592,"rankingPoints":196616,"totalPass":69,"totalFc":15,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1429,"bracketLevel":59,"footswitchLevel":829,"jackLevel":806,"sideswitchLevel":782,"doublestepLevel":1396,"staminaLevel":264,"isBuddy":false,"preferences":"{\"discordId\":\"over_loadcode#5428\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"olc","sex":"Male","profileImg":"https://i.imgur.com/BK4MPT8.png"},{"id":425,"membersId":173077,"dateAdded":"2023-03-19T21:17:32.000Z","lastUpdated":"2023-05-04T00:41:34.000Z","status":1,"totalPoints":271374,"rankingPoints":195939,"totalPass":69,"totalFc":18,"totalFec":39,"totalQuad":0,"totalQuint":0,"crossoverLevel":2012,"bracketLevel":775,"footswitchLevel":1268,"jackLevel":660,"sideswitchLevel":866,"doublestepLevel":1490,"staminaLevel":236,"isBuddy":false,"preferences":"{\"discordId\":\"Layna Grey#0539\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"STARLONG","sex":"Female","profileImg":""},{"id":695,"membersId":4887,"dateAdded":"2023-03-23T04:57:13.000Z","lastUpdated":"2023-04-26T13:15:56.000Z","status":1,"totalPoints":195899,"rankingPoints":195899,"totalPass":50,"totalFc":11,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":1059,"bracketLevel":756,"footswitchLevel":976,"jackLevel":546,"sideswitchLevel":591,"doublestepLevel":1332,"staminaLevel":321,"isBuddy":false,"preferences":"{\"discordId\":\"JayNeko#5497\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JayNeko","sex":"Male","profileImg":""},{"id":351,"membersId":173315,"dateAdded":"2023-03-19T14:23:32.000Z","lastUpdated":"2023-04-30T20:56:43.000Z","status":1,"totalPoints":308508,"rankingPoints":194580,"totalPass":131,"totalFc":20,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1638,"bracketLevel":1157,"footswitchLevel":1533,"jackLevel":898,"sideswitchLevel":1170,"doublestepLevel":1366,"staminaLevel":490,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"vintogigue","sex":"Unspecified","profileImg":""},{"id":793,"membersId":175518,"dateAdded":"2023-03-25T18:36:12.000Z","lastUpdated":"2023-04-30T19:15:18.000Z","status":1,"totalPoints":193994,"rankingPoints":193994,"totalPass":61,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":1155,"bracketLevel":865,"footswitchLevel":1230,"jackLevel":665,"sideswitchLevel":1227,"doublestepLevel":822,"staminaLevel":345,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ProjectileComet","sex":"Unspecified","profileImg":""},{"id":713,"membersId":175467,"dateAdded":"2023-03-24T00:37:21.000Z","lastUpdated":"2023-05-06T04:10:08.000Z","status":1,"totalPoints":193801,"rankingPoints":193801,"totalPass":40,"totalFc":9,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":817,"bracketLevel":931,"footswitchLevel":878,"jackLevel":574,"sideswitchLevel":536,"doublestepLevel":945,"staminaLevel":378,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"bles48","sex":"Male","profileImg":""},{"id":1254,"membersId":175904,"dateAdded":"2023-04-30T16:14:21.000Z","lastUpdated":"2023-05-06T17:58:11.000Z","status":1,"totalPoints":193652,"rankingPoints":193652,"totalPass":40,"totalFc":16,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":1393,"bracketLevel":435,"footswitchLevel":476,"jackLevel":507,"sideswitchLevel":490,"doublestepLevel":1154,"staminaLevel":413,"isBuddy":false,"preferences":"{\"discordId\":\"Matthew (LIGHTW8)#0378\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LIGHTW8","sex":"Male","profileImg":""},{"id":1200,"membersId":173427,"dateAdded":"2023-04-23T21:17:11.000Z","lastUpdated":"2023-05-01T15:06:59.000Z","status":1,"totalPoints":212797,"rankingPoints":192895,"totalPass":43,"totalFc":32,"totalFec":20,"totalQuad":0,"totalQuint":0,"crossoverLevel":1737,"bracketLevel":229,"footswitchLevel":1049,"jackLevel":529,"sideswitchLevel":1018,"doublestepLevel":1464,"staminaLevel":168,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Mingeh","sex":"Male","profileImg":""},{"id":827,"membersId":175512,"dateAdded":"2023-03-26T18:45:31.000Z","lastUpdated":"2023-05-06T23:59:33.000Z","status":1,"totalPoints":346061,"rankingPoints":192635,"totalPass":115,"totalFc":42,"totalFec":12,"totalQuad":0,"totalQuint":0,"crossoverLevel":2773,"bracketLevel":828,"footswitchLevel":1496,"jackLevel":1136,"sideswitchLevel":968,"doublestepLevel":2182,"staminaLevel":397,"isBuddy":false,"preferences":"{\"discordId\":\"Galvanix#7170\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"X!!","sex":"Unspecified","profileImg":""},{"id":795,"membersId":175519,"dateAdded":"2023-03-25T19:00:31.000Z","lastUpdated":"2023-05-06T22:25:51.000Z","status":1,"totalPoints":210120,"rankingPoints":192170,"totalPass":72,"totalFc":13,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":1376,"bracketLevel":735,"footswitchLevel":1018,"jackLevel":865,"sideswitchLevel":757,"doublestepLevel":1002,"staminaLevel":190,"isBuddy":false,"preferences":"{\"discordId\":\"rustbelt#2311\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BigDoomsday","sex":"Unspecified","profileImg":""},{"id":69,"membersId":173053,"dateAdded":"2023-03-18T21:49:56.000Z","lastUpdated":"2023-05-06T11:40:15.000Z","status":1,"totalPoints":298331,"rankingPoints":191957,"totalPass":101,"totalFc":39,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":2558,"bracketLevel":581,"footswitchLevel":1359,"jackLevel":849,"sideswitchLevel":783,"doublestepLevel":2076,"staminaLevel":199,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"andr","sex":"Male","profileImg":"https://i.imgur.com/WBR07HP.png"},{"id":158,"membersId":4290,"dateAdded":"2023-03-18T22:23:23.000Z","lastUpdated":"2023-05-01T15:07:36.000Z","status":1,"totalPoints":202384,"rankingPoints":191725,"totalPass":54,"totalFc":20,"totalFec":12,"totalQuad":0,"totalQuint":0,"crossoverLevel":1370,"bracketLevel":729,"footswitchLevel":857,"jackLevel":582,"sideswitchLevel":658,"doublestepLevel":1033,"staminaLevel":215,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ROBIJO","sex":"Male","profileImg":""},{"id":559,"membersId":174280,"dateAdded":"2023-03-20T23:22:08.000Z","lastUpdated":"2023-05-03T04:07:16.000Z","status":1,"totalPoints":232763,"rankingPoints":190843,"totalPass":91,"totalFc":10,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":1517,"bracketLevel":587,"footswitchLevel":1068,"jackLevel":544,"sideswitchLevel":1162,"doublestepLevel":1341,"staminaLevel":264,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Falty No Bar","sex":"Male","profileImg":""},{"id":483,"membersId":175406,"dateAdded":"2023-03-20T06:56:09.000Z","lastUpdated":"2023-05-06T08:32:53.000Z","status":1,"totalPoints":409425,"rankingPoints":189975,"totalPass":137,"totalFc":75,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":2781,"bracketLevel":1343,"footswitchLevel":1893,"jackLevel":1491,"sideswitchLevel":1450,"doublestepLevel":2100,"staminaLevel":551,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"HeavyModeYT","sex":"Male","profileImg":""},{"id":582,"membersId":173411,"dateAdded":"2023-03-21T05:14:41.000Z","lastUpdated":"2023-05-04T04:25:55.000Z","status":1,"totalPoints":189333,"rankingPoints":189333,"totalPass":49,"totalFc":11,"totalFec":12,"totalQuad":0,"totalQuint":0,"crossoverLevel":1099,"bracketLevel":559,"footswitchLevel":1003,"jackLevel":450,"sideswitchLevel":666,"doublestepLevel":773,"staminaLevel":416,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ladymolii","sex":"Female","profileImg":"https://i.imgur.com/MIhkyHn.png"},{"id":855,"membersId":162522,"dateAdded":"2023-03-27T14:48:45.000Z","lastUpdated":"2023-05-04T13:21:00.000Z","status":1,"totalPoints":296386,"rankingPoints":189142,"totalPass":153,"totalFc":11,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1830,"bracketLevel":687,"footswitchLevel":1211,"jackLevel":958,"sideswitchLevel":598,"doublestepLevel":1300,"staminaLevel":638,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"XFN","sex":"Male","profileImg":""},{"id":315,"membersId":108801,"dateAdded":"2023-03-19T05:34:28.000Z","lastUpdated":"2023-05-06T19:13:19.000Z","status":1,"totalPoints":189062,"rankingPoints":189062,"totalPass":61,"totalFc":9,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":923,"bracketLevel":700,"footswitchLevel":850,"jackLevel":796,"sideswitchLevel":883,"doublestepLevel":755,"staminaLevel":463,"isBuddy":false,"preferences":"{\"discordId\":\"Mango#3286\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Mango","sex":"Female","profileImg":"https://cdn.discordapp.com/attachments/186564849986306049/730111105170407584/bubblecat.png"},{"id":802,"membersId":175522,"dateAdded":"2023-03-25T22:52:00.000Z","lastUpdated":"2023-05-06T23:59:03.000Z","status":1,"totalPoints":266048,"rankingPoints":188964,"totalPass":96,"totalFc":26,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":2117,"bracketLevel":671,"footswitchLevel":1325,"jackLevel":938,"sideswitchLevel":1044,"doublestepLevel":1641,"staminaLevel":217,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Jagc","sex":"Female","profileImg":""},{"id":358,"membersId":103169,"dateAdded":"2023-03-19T15:41:02.000Z","lastUpdated":"2023-05-05T03:34:56.000Z","status":1,"totalPoints":214161,"rankingPoints":188552,"totalPass":35,"totalFc":26,"totalFec":37,"totalQuad":1,"totalQuint":0,"crossoverLevel":1862,"bracketLevel":603,"footswitchLevel":1054,"jackLevel":708,"sideswitchLevel":378,"doublestepLevel":1456,"staminaLevel":148,"isBuddy":false,"preferences":"{\"discordId\":\"thomas_grover#1727\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nabulator","sex":"Unspecified","profileImg":"https://nabulator.com/favicon.png"},{"id":177,"membersId":173476,"dateAdded":"2023-03-18T22:40:35.000Z","lastUpdated":"2023-05-07T04:34:28.000Z","status":1,"totalPoints":382659,"rankingPoints":187544,"totalPass":166,"totalFc":37,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":2504,"bracketLevel":1089,"footswitchLevel":1719,"jackLevel":1303,"sideswitchLevel":1404,"doublestepLevel":1957,"staminaLevel":697,"isBuddy":false,"preferences":"{\"discordId\":\"Hewhoamareismyself#9711\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Hewhoamareismyself","sex":"Male","profileImg":"https://i.imgur.com/n135fGw.png"},{"id":31,"membersId":75808,"dateAdded":"2023-03-18T21:48:56.000Z","lastUpdated":"2023-05-05T21:07:52.000Z","status":1,"totalPoints":272936,"rankingPoints":187508,"totalPass":109,"totalFc":12,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":1828,"bracketLevel":983,"footswitchLevel":1448,"jackLevel":1037,"sideswitchLevel":1138,"doublestepLevel":1825,"staminaLevel":289,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"plight","sex":"Unspecified","profileImg":"https://media.discordapp.net/attachments/735878663643463731/957330508684091412/11.png"},{"id":758,"membersId":175166,"dateAdded":"2023-03-25T01:43:59.000Z","lastUpdated":"2023-04-13T23:34:55.000Z","status":1,"totalPoints":232400,"rankingPoints":187101,"totalPass":80,"totalFc":23,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":1921,"bracketLevel":568,"footswitchLevel":978,"jackLevel":492,"sideswitchLevel":747,"doublestepLevel":1432,"staminaLevel":150,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Sydia","sex":"Unspecified","profileImg":""},{"id":658,"membersId":75719,"dateAdded":"2023-03-22T17:04:17.000Z","lastUpdated":"2023-05-03T17:53:16.000Z","status":1,"totalPoints":218634,"rankingPoints":186144,"totalPass":86,"totalFc":12,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":950,"bracketLevel":605,"footswitchLevel":916,"jackLevel":457,"sideswitchLevel":561,"doublestepLevel":925,"staminaLevel":1189,"isBuddy":false,"preferences":"{\"discordId\":\"hegza#4088\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"hegza","sex":"Unspecified","profileImg":""},{"id":1021,"membersId":175703,"dateAdded":"2023-04-05T05:47:24.000Z","lastUpdated":"2023-05-01T20:40:26.000Z","status":1,"totalPoints":185657,"rankingPoints":185657,"totalPass":26,"totalFc":15,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":771,"bracketLevel":1273,"footswitchLevel":1078,"jackLevel":592,"sideswitchLevel":486,"doublestepLevel":919,"staminaLevel":533,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"p0x","sex":"Unspecified","profileImg":""},{"id":362,"membersId":175388,"dateAdded":"2023-03-19T16:07:48.000Z","lastUpdated":"2023-05-05T20:57:09.000Z","status":1,"totalPoints":253278,"rankingPoints":183890,"totalPass":65,"totalFc":27,"totalFec":32,"totalQuad":0,"totalQuint":0,"crossoverLevel":2335,"bracketLevel":373,"footswitchLevel":762,"jackLevel":843,"sideswitchLevel":591,"doublestepLevel":1512,"staminaLevel":253,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Landius","sex":"Male","profileImg":""},{"id":657,"membersId":173817,"dateAdded":"2023-03-22T17:04:09.000Z","lastUpdated":"2023-05-06T17:09:01.000Z","status":1,"totalPoints":356673,"rankingPoints":183414,"totalPass":180,"totalFc":13,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1970,"bracketLevel":1043,"footswitchLevel":1497,"jackLevel":1251,"sideswitchLevel":1376,"doublestepLevel":1468,"staminaLevel":1037,"isBuddy":false,"preferences":"{\"discordId\":\"Hasse#6805\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Hasse","sex":"Unspecified","profileImg":""},{"id":1227,"membersId":75742,"dateAdded":"2023-04-27T03:04:30.000Z","lastUpdated":"2023-05-05T07:53:13.000Z","status":1,"totalPoints":204498,"rankingPoints":180680,"totalPass":53,"totalFc":31,"totalFec":15,"totalQuad":0,"totalQuint":0,"crossoverLevel":1594,"bracketLevel":416,"footswitchLevel":797,"jackLevel":455,"sideswitchLevel":761,"doublestepLevel":1041,"staminaLevel":140,"isBuddy":false,"preferences":"{\"discordId\":\"Zepherino#4766\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Zepherino","sex":"Male","profileImg":""},{"id":248,"membersId":175368,"dateAdded":"2023-03-19T01:07:36.000Z","lastUpdated":"2023-04-30T04:03:39.000Z","status":1,"totalPoints":180021,"rankingPoints":180021,"totalPass":44,"totalFc":10,"totalFec":19,"totalQuad":1,"totalQuint":0,"crossoverLevel":1335,"bracketLevel":368,"footswitchLevel":804,"jackLevel":383,"sideswitchLevel":435,"doublestepLevel":997,"staminaLevel":76,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"KINDLADY","sex":"Unspecified","profileImg":""},{"id":659,"membersId":1981,"dateAdded":"2023-03-22T17:36:56.000Z","lastUpdated":"2023-04-19T03:27:46.000Z","status":1,"totalPoints":232224,"rankingPoints":179880,"totalPass":88,"totalFc":15,"totalFec":15,"totalQuad":0,"totalQuint":0,"crossoverLevel":1856,"bracketLevel":484,"footswitchLevel":952,"jackLevel":689,"sideswitchLevel":485,"doublestepLevel":1285,"staminaLevel":259,"isBuddy":false,"preferences":"{\"discordId\":\"GospelEXE#1989\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"GospelEXE","sex":"Male","profileImg":""},{"id":887,"membersId":175572,"dateAdded":"2023-03-29T01:17:19.000Z","lastUpdated":"2023-04-21T22:15:59.000Z","status":1,"totalPoints":179560,"rankingPoints":179560,"totalPass":26,"totalFc":11,"totalFec":20,"totalQuad":0,"totalQuint":0,"crossoverLevel":1176,"bracketLevel":428,"footswitchLevel":437,"jackLevel":723,"sideswitchLevel":522,"doublestepLevel":943,"staminaLevel":249,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"rkataoka","sex":"Unspecified","profileImg":""},{"id":602,"membersId":173081,"dateAdded":"2023-03-21T18:07:44.000Z","lastUpdated":"2023-05-04T20:18:03.000Z","status":1,"totalPoints":178769,"rankingPoints":178769,"totalPass":40,"totalFc":7,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":986,"bracketLevel":774,"footswitchLevel":854,"jackLevel":766,"sideswitchLevel":330,"doublestepLevel":863,"staminaLevel":487,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sessu","sex":"Male","profileImg":"https://cdn.discordapp.com/avatars/278701244216901633/5f87f703a96dcb66c2fe513031c4b1ad.jpg"},{"id":552,"membersId":174972,"dateAdded":"2023-03-20T22:27:07.000Z","lastUpdated":"2023-05-02T03:43:11.000Z","status":1,"totalPoints":178686,"rankingPoints":178686,"totalPass":46,"totalFc":19,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":971,"bracketLevel":551,"footswitchLevel":648,"jackLevel":218,"sideswitchLevel":559,"doublestepLevel":1086,"staminaLevel":629,"isBuddy":true,"preferences":"{\"discordId\":\"AlexCilantro#5506\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"AlexCilantro","sex":"Male","profileImg":""},{"id":776,"membersId":55445,"dateAdded":"2023-03-25T12:52:56.000Z","lastUpdated":"2023-05-04T18:56:07.000Z","status":1,"totalPoints":226993,"rankingPoints":178592,"totalPass":65,"totalFc":54,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1734,"bracketLevel":486,"footswitchLevel":964,"jackLevel":706,"sideswitchLevel":652,"doublestepLevel":1147,"staminaLevel":581,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"NekoMithos","sex":"Unspecified","profileImg":"https://i.gyazo.com/a4d5a11d1b56019297a7c655d78b6cde.png"},{"id":218,"membersId":165796,"dateAdded":"2023-03-19T00:11:42.000Z","lastUpdated":"2023-05-05T23:08:16.000Z","status":1,"totalPoints":178044,"rankingPoints":178044,"totalPass":12,"totalFc":4,"totalFec":14,"totalQuad":1,"totalQuint":0,"crossoverLevel":231,"bracketLevel":534,"footswitchLevel":477,"jackLevel":252,"sideswitchLevel":355,"doublestepLevel":176,"staminaLevel":1927,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Caji123","sex":"Male","profileImg":""},{"id":445,"membersId":173907,"dateAdded":"2023-03-20T00:07:09.000Z","lastUpdated":"2023-05-06T23:59:04.000Z","status":1,"totalPoints":258535,"rankingPoints":177926,"totalPass":103,"totalFc":28,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":2237,"bracketLevel":678,"footswitchLevel":1290,"jackLevel":848,"sideswitchLevel":959,"doublestepLevel":1520,"staminaLevel":175,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Tuto","sex":"Male","profileImg":""},{"id":517,"membersId":78689,"dateAdded":"2023-03-20T18:18:42.000Z","lastUpdated":"2023-05-02T00:29:45.000Z","status":1,"totalPoints":177547,"rankingPoints":177547,"totalPass":15,"totalFc":9,"totalFec":26,"totalQuad":8,"totalQuint":0,"crossoverLevel":1123,"bracketLevel":680,"footswitchLevel":664,"jackLevel":432,"sideswitchLevel":509,"doublestepLevel":1537,"staminaLevel":190,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Darkuo ","sex":"Male","profileImg":""},{"id":62,"membersId":165750,"dateAdded":"2023-03-18T21:49:46.000Z","lastUpdated":"2023-05-03T19:37:37.000Z","status":1,"totalPoints":346624,"rankingPoints":176856,"totalPass":171,"totalFc":13,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":2333,"bracketLevel":1148,"footswitchLevel":1756,"jackLevel":1301,"sideswitchLevel":1703,"doublestepLevel":1881,"staminaLevel":429,"isBuddy":false,"preferences":"{\"discordId\":\"Mayflower#4000\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Sex","sex":"Unspecified","profileImg":"https://mayf.pink/image.png"},{"id":847,"membersId":175544,"dateAdded":"2023-03-27T00:20:39.000Z","lastUpdated":"2023-04-24T01:43:45.000Z","status":1,"totalPoints":175595,"rankingPoints":175595,"totalPass":27,"totalFc":13,"totalFec":8,"totalQuad":1,"totalQuint":0,"crossoverLevel":977,"bracketLevel":432,"footswitchLevel":899,"jackLevel":1043,"sideswitchLevel":1121,"doublestepLevel":755,"staminaLevel":393,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"piguy314159","sex":"Male","profileImg":""},{"id":560,"membersId":66704,"dateAdded":"2023-03-20T23:26:21.000Z","lastUpdated":"2023-04-25T23:46:43.000Z","status":1,"totalPoints":175575,"rankingPoints":175575,"totalPass":22,"totalFc":7,"totalFec":9,"totalQuad":2,"totalQuint":0,"crossoverLevel":775,"bracketLevel":549,"footswitchLevel":981,"jackLevel":385,"sideswitchLevel":1049,"doublestepLevel":953,"staminaLevel":377,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"FideLin","sex":"Male","profileImg":""},{"id":1052,"membersId":175757,"dateAdded":"2023-04-07T20:32:01.000Z","lastUpdated":"2023-05-06T22:33:02.000Z","status":1,"totalPoints":173991,"rankingPoints":173991,"totalPass":36,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":562,"bracketLevel":716,"footswitchLevel":732,"jackLevel":429,"sideswitchLevel":549,"doublestepLevel":803,"staminaLevel":731,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kriss","sex":"Male","profileImg":""},{"id":568,"membersId":175417,"dateAdded":"2023-03-21T01:05:21.000Z","lastUpdated":"2023-05-06T01:34:52.000Z","status":1,"totalPoints":292113,"rankingPoints":173885,"totalPass":156,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":2065,"bracketLevel":722,"footswitchLevel":1337,"jackLevel":1061,"sideswitchLevel":829,"doublestepLevel":1583,"staminaLevel":374,"isBuddy":false,"preferences":"{\"discordId\":\"Sexy Mustard#5987\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sexymustard","sex":"Male","profileImg":"https://i.imgur.com/s3XUfaH.png"},{"id":86,"membersId":76988,"dateAdded":"2023-03-18T21:51:01.000Z","lastUpdated":"2023-04-22T19:39:06.000Z","status":1,"totalPoints":173855,"rankingPoints":173855,"totalPass":48,"totalFc":14,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":1152,"bracketLevel":757,"footswitchLevel":1278,"jackLevel":731,"sideswitchLevel":1667,"doublestepLevel":907,"staminaLevel":286,"isBuddy":false,"preferences":"{\"discordId\":\"lugi#4362\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"1ug1a","sex":"Unspecified","profileImg":"https://media.discordapp.net/attachments/615272349335420968/850073257960931388/hm_icon_Custom_2.png"},{"id":159,"membersId":134541,"dateAdded":"2023-03-18T22:24:02.000Z","lastUpdated":"2023-04-20T00:15:10.000Z","status":1,"totalPoints":187056,"rankingPoints":173677,"totalPass":68,"totalFc":23,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1320,"bracketLevel":609,"footswitchLevel":977,"jackLevel":633,"sideswitchLevel":1078,"doublestepLevel":811,"staminaLevel":166,"isBuddy":false,"preferences":"{\"discordId\":\"DJPandaga#9320\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DJPandaga","sex":"Male","profileImg":"https://i.imgur.com/UOYlyEB.png"},{"id":72,"membersId":160,"dateAdded":"2023-03-18T21:50:08.000Z","lastUpdated":"2023-05-02T04:23:22.000Z","status":1,"totalPoints":212965,"rankingPoints":172484,"totalPass":85,"totalFc":21,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":1439,"bracketLevel":554,"footswitchLevel":1022,"jackLevel":650,"sideswitchLevel":512,"doublestepLevel":1335,"staminaLevel":143,"isBuddy":false,"preferences":"{\"discordId\":\"Dexor#0747\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dexor","sex":"Male","profileImg":""},{"id":313,"membersId":173150,"dateAdded":"2023-03-19T05:33:32.000Z","lastUpdated":"2023-05-04T00:46:01.000Z","status":1,"totalPoints":269556,"rankingPoints":172186,"totalPass":143,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1865,"bracketLevel":402,"footswitchLevel":1129,"jackLevel":878,"sideswitchLevel":1130,"doublestepLevel":1469,"staminaLevel":459,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sage of flowers","sex":"Unspecified","profileImg":"https://media.discordapp.net/attachments/1002155956639109143/1086980785908760706/gs.png"},{"id":1073,"membersId":135709,"dateAdded":"2023-04-09T19:40:59.000Z","lastUpdated":"2023-05-02T05:18:27.000Z","status":1,"totalPoints":238391,"rankingPoints":171531,"totalPass":51,"totalFc":82,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1780,"bracketLevel":737,"footswitchLevel":1035,"jackLevel":664,"sideswitchLevel":581,"doublestepLevel":1422,"staminaLevel":226,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Sbuxsurg","sex":"Male","profileImg":""},{"id":456,"membersId":175283,"dateAdded":"2023-03-20T01:35:39.000Z","lastUpdated":"2023-04-29T04:18:38.000Z","status":1,"totalPoints":180173,"rankingPoints":171372,"totalPass":27,"totalFc":21,"totalFec":45,"totalQuad":1,"totalQuint":0,"crossoverLevel":1437,"bracketLevel":426,"footswitchLevel":795,"jackLevel":911,"sideswitchLevel":660,"doublestepLevel":1123,"staminaLevel":161,"isBuddy":false,"preferences":"{\"discordId\":\"ArrowsmithBA3!#0907\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ArrowsmithWordWizardBA3","sex":"Male","profileImg":""},{"id":525,"membersId":3090,"dateAdded":"2023-03-20T19:13:43.000Z","lastUpdated":"2023-04-21T01:51:42.000Z","status":1,"totalPoints":187308,"rankingPoints":170859,"totalPass":27,"totalFc":22,"totalFec":38,"totalQuad":3,"totalQuint":0,"crossoverLevel":2076,"bracketLevel":216,"footswitchLevel":696,"jackLevel":388,"sideswitchLevel":149,"doublestepLevel":1119,"staminaLevel":38,"isBuddy":false,"preferences":"{\"discordId\":\"m0n0lyth#6936\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"HF230","sex":"Male","profileImg":""},{"id":903,"membersId":175565,"dateAdded":"2023-03-29T18:57:34.000Z","lastUpdated":"2023-05-07T04:48:10.000Z","status":1,"totalPoints":230872,"rankingPoints":170643,"totalPass":80,"totalFc":54,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":1852,"bracketLevel":592,"footswitchLevel":950,"jackLevel":773,"sideswitchLevel":628,"doublestepLevel":1568,"staminaLevel":267,"isBuddy":false,"preferences":"{\"discordId\":\"QTurtle#1482\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"QTurtle","sex":"Female","profileImg":""},{"id":306,"membersId":175382,"dateAdded":"2023-03-19T04:43:52.000Z","lastUpdated":"2023-05-01T22:51:46.000Z","status":1,"totalPoints":187673,"rankingPoints":170268,"totalPass":55,"totalFc":29,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":1536,"bracketLevel":395,"footswitchLevel":863,"jackLevel":407,"sideswitchLevel":172,"doublestepLevel":928,"staminaLevel":243,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"UPI","sex":"Female","profileImg":""},{"id":1009,"membersId":175697,"dateAdded":"2023-04-04T16:57:28.000Z","lastUpdated":"2023-05-06T17:39:43.000Z","status":1,"totalPoints":208804,"rankingPoints":169859,"totalPass":74,"totalFc":36,"totalFec":14,"totalQuad":0,"totalQuint":0,"crossoverLevel":1673,"bracketLevel":467,"footswitchLevel":827,"jackLevel":337,"sideswitchLevel":176,"doublestepLevel":1341,"staminaLevel":240,"isBuddy":false,"preferences":"{\"discordId\":\"F10W#5769\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"F10W","sex":"Male","profileImg":""},{"id":1107,"membersId":173467,"dateAdded":"2023-04-12T18:51:44.000Z","lastUpdated":"2023-04-28T22:41:12.000Z","status":1,"totalPoints":169859,"rankingPoints":169859,"totalPass":61,"totalFc":8,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":961,"bracketLevel":206,"footswitchLevel":912,"jackLevel":897,"sideswitchLevel":410,"doublestepLevel":1090,"staminaLevel":225,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Okepa Makoi","sex":"Unspecified","profileImg":""},{"id":11,"membersId":173184,"dateAdded":"2023-03-18T21:48:30.000Z","lastUpdated":"2023-05-06T21:05:42.000Z","status":1,"totalPoints":200613,"rankingPoints":169556,"totalPass":96,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1089,"bracketLevel":469,"footswitchLevel":1051,"jackLevel":929,"sideswitchLevel":591,"doublestepLevel":1202,"staminaLevel":365,"isBuddy":false,"preferences":"{\"discordId\":\"Maybell Eigenhart (& co.) 🌻#4859\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Maybell Eigenhart","sex":"Female","profileImg":"https://i.imgur.com/uZKJzLL.png"},{"id":519,"membersId":6555,"dateAdded":"2023-03-20T18:31:37.000Z","lastUpdated":"2023-03-23T00:38:20.000Z","status":1,"totalPoints":169255,"rankingPoints":169255,"totalPass":45,"totalFc":3,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":1024,"bracketLevel":504,"footswitchLevel":898,"jackLevel":375,"sideswitchLevel":685,"doublestepLevel":911,"staminaLevel":169,"isBuddy":false,"preferences":"{\"discordId\":\"werdwerdus#2020\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"werdwerdus","sex":"Male","profileImg":""},{"id":176,"membersId":94669,"dateAdded":"2023-03-18T22:38:33.000Z","lastUpdated":"2023-05-01T01:34:34.000Z","status":1,"totalPoints":168994,"rankingPoints":168994,"totalPass":22,"totalFc":3,"totalFec":12,"totalQuad":11,"totalQuint":0,"crossoverLevel":867,"bracketLevel":603,"footswitchLevel":894,"jackLevel":176,"sideswitchLevel":406,"doublestepLevel":1012,"staminaLevel":252,"isBuddy":false,"preferences":"{\"discordId\":\"pimentaw#3615\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Pimentaw","sex":"Male","profileImg":""},{"id":1168,"membersId":175905,"dateAdded":"2023-04-19T22:07:06.000Z","lastUpdated":"2023-05-06T00:34:28.000Z","status":1,"totalPoints":168412,"rankingPoints":168412,"totalPass":29,"totalFc":15,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":962,"bracketLevel":390,"footswitchLevel":802,"jackLevel":858,"sideswitchLevel":1021,"doublestepLevel":797,"staminaLevel":343,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ultrabosh64","sex":"Male","profileImg":""},{"id":824,"membersId":175537,"dateAdded":"2023-03-26T16:23:37.000Z","lastUpdated":"2023-04-23T17:29:44.000Z","status":1,"totalPoints":178144,"rankingPoints":168302,"totalPass":62,"totalFc":21,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":1304,"bracketLevel":274,"footswitchLevel":726,"jackLevel":671,"sideswitchLevel":301,"doublestepLevel":1201,"staminaLevel":152,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lorena","sex":"Female","profileImg":""},{"id":575,"membersId":155296,"dateAdded":"2023-03-21T03:13:28.000Z","lastUpdated":"2023-04-22T14:58:13.000Z","status":1,"totalPoints":194562,"rankingPoints":168262,"totalPass":63,"totalFc":27,"totalFec":11,"totalQuad":0,"totalQuint":0,"crossoverLevel":1611,"bracketLevel":517,"footswitchLevel":1061,"jackLevel":553,"sideswitchLevel":369,"doublestepLevel":1275,"staminaLevel":108,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lafv54","sex":"Male","profileImg":""},{"id":757,"membersId":173342,"dateAdded":"2023-03-25T01:39:43.000Z","lastUpdated":"2023-05-06T01:00:54.000Z","status":1,"totalPoints":178401,"rankingPoints":167104,"totalPass":23,"totalFc":25,"totalFec":28,"totalQuad":10,"totalQuint":0,"crossoverLevel":1894,"bracketLevel":268,"footswitchLevel":943,"jackLevel":130,"sideswitchLevel":522,"doublestepLevel":1176,"staminaLevel":54,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"N30S","sex":"Male","profileImg":""},{"id":96,"membersId":173453,"dateAdded":"2023-03-18T21:52:39.000Z","lastUpdated":"2023-05-05T20:08:20.000Z","status":1,"totalPoints":217201,"rankingPoints":166743,"totalPass":54,"totalFc":51,"totalFec":14,"totalQuad":0,"totalQuint":0,"crossoverLevel":2128,"bracketLevel":322,"footswitchLevel":1053,"jackLevel":670,"sideswitchLevel":339,"doublestepLevel":1391,"staminaLevel":108,"isBuddy":false,"preferences":"{\"discordId\":\"Kikoia#3996\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kikoia","sex":"Female","profileImg":"https://i.imgur.com/KCsbDb7.png"},{"id":209,"membersId":174860,"dateAdded":"2023-03-18T23:43:53.000Z","lastUpdated":"2023-05-05T00:20:54.000Z","status":1,"totalPoints":331573,"rankingPoints":166432,"totalPass":159,"totalFc":37,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":2384,"bracketLevel":1006,"footswitchLevel":1440,"jackLevel":1155,"sideswitchLevel":1260,"doublestepLevel":1900,"staminaLevel":375,"isBuddy":false,"preferences":"{\"discordId\":\"Adamskull#7852\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Adamskull","sex":"Male","profileImg":"https://i.imgur.com/f0Wo8t6.png"},{"id":766,"membersId":66295,"dateAdded":"2023-03-25T04:46:04.000Z","lastUpdated":"2023-04-14T23:38:49.000Z","status":1,"totalPoints":166197,"rankingPoints":166197,"totalPass":16,"totalFc":7,"totalFec":9,"totalQuad":2,"totalQuint":0,"crossoverLevel":792,"bracketLevel":770,"footswitchLevel":1048,"jackLevel":629,"sideswitchLevel":762,"doublestepLevel":929,"staminaLevel":355,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Liam","sex":"Male","profileImg":""},{"id":535,"membersId":175135,"dateAdded":"2023-03-20T19:42:56.000Z","lastUpdated":"2023-05-07T01:30:51.000Z","status":1,"totalPoints":168752,"rankingPoints":165503,"totalPass":48,"totalFc":21,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":1114,"bracketLevel":312,"footswitchLevel":739,"jackLevel":379,"sideswitchLevel":492,"doublestepLevel":1050,"staminaLevel":395,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ToastyPenguin","sex":"Male","profileImg":""},{"id":712,"membersId":173179,"dateAdded":"2023-03-24T00:17:12.000Z","lastUpdated":"2023-04-23T17:29:45.000Z","status":1,"totalPoints":195690,"rankingPoints":165480,"totalPass":87,"totalFc":14,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1216,"bracketLevel":399,"footswitchLevel":855,"jackLevel":757,"sideswitchLevel":527,"doublestepLevel":1191,"staminaLevel":258,"isBuddy":false,"preferences":"{\"discordId\":\"frondal#8937\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Frondal","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/955183583037886474/1104599622640488559/pip.png"},{"id":22,"membersId":173546,"dateAdded":"2023-03-18T21:48:49.000Z","lastUpdated":"2023-05-06T18:22:15.000Z","status":1,"totalPoints":242761,"rankingPoints":165197,"totalPass":103,"totalFc":26,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":1772,"bracketLevel":915,"footswitchLevel":1301,"jackLevel":833,"sideswitchLevel":866,"doublestepLevel":1539,"staminaLevel":284,"isBuddy":false,"preferences":"{\"discordId\":\"Piols#6625\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Piols","sex":"Male","profileImg":"https://i.imgur.com/qIFAoGo.png"},{"id":331,"membersId":75645,"dateAdded":"2023-03-19T10:06:03.000Z","lastUpdated":"2023-05-06T16:06:56.000Z","status":1,"totalPoints":163344,"rankingPoints":163344,"totalPass":25,"totalFc":13,"totalFec":15,"totalQuad":0,"totalQuint":0,"crossoverLevel":848,"bracketLevel":926,"footswitchLevel":764,"jackLevel":413,"sideswitchLevel":293,"doublestepLevel":473,"staminaLevel":545,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"byron","sex":"Male","profileImg":"https://sil.fyi/content/files/dp-128.png"},{"id":861,"membersId":173097,"dateAdded":"2023-03-27T22:50:07.000Z","lastUpdated":"2023-05-06T16:23:59.000Z","status":1,"totalPoints":233159,"rankingPoints":162721,"totalPass":118,"totalFc":21,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1688,"bracketLevel":362,"footswitchLevel":960,"jackLevel":537,"sideswitchLevel":468,"doublestepLevel":1310,"staminaLevel":467,"isBuddy":false,"preferences":"{\"discordId\":\"Ambisinister#1823\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Ambisinister","sex":"Male","profileImg":"https://pbs.twimg.com/profile_images/624587741448110080/CUVQMsjP_400x400.png"},{"id":621,"membersId":175430,"dateAdded":"2023-03-21T22:22:59.000Z","lastUpdated":"2023-05-06T02:10:30.000Z","status":1,"totalPoints":216341,"rankingPoints":162460,"totalPass":101,"totalFc":13,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1473,"bracketLevel":388,"footswitchLevel":781,"jackLevel":801,"sideswitchLevel":628,"doublestepLevel":1221,"staminaLevel":249,"isBuddy":false,"preferences":"{\"discordId\":\"Unpronounceable#7667\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Unpronounceable","sex":"Male","profileImg":""},{"id":419,"membersId":175268,"dateAdded":"2023-03-19T20:43:46.000Z","lastUpdated":"2023-04-30T20:23:42.000Z","status":1,"totalPoints":162147,"rankingPoints":162147,"totalPass":32,"totalFc":12,"totalFec":8,"totalQuad":1,"totalQuint":0,"crossoverLevel":1091,"bracketLevel":456,"footswitchLevel":509,"jackLevel":624,"sideswitchLevel":800,"doublestepLevel":515,"staminaLevel":273,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Litter*","sex":"Unspecified","profileImg":""},{"id":722,"membersId":163400,"dateAdded":"2023-03-24T02:55:40.000Z","lastUpdated":"2023-04-30T02:59:34.000Z","status":1,"totalPoints":162103,"rankingPoints":162103,"totalPass":33,"totalFc":1,"totalFec":3,"totalQuad":2,"totalQuint":0,"crossoverLevel":447,"bracketLevel":653,"footswitchLevel":477,"jackLevel":582,"sideswitchLevel":328,"doublestepLevel":356,"staminaLevel":1131,"isBuddy":true,"preferences":"{\"discordId\":null,\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"t3a","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/635721838139408388/850201977832603708/Avatar-small.png"},{"id":153,"membersId":31568,"dateAdded":"2023-03-18T22:18:57.000Z","lastUpdated":"2023-05-06T22:48:17.000Z","status":1,"totalPoints":178987,"rankingPoints":162089,"totalPass":54,"totalFc":33,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":1479,"bracketLevel":510,"footswitchLevel":614,"jackLevel":275,"sideswitchLevel":232,"doublestepLevel":1309,"staminaLevel":82,"isBuddy":true,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"xapa","sex":"Male","profileImg":""},{"id":7,"membersId":173229,"dateAdded":"2023-03-18T21:48:21.000Z","lastUpdated":"2023-04-17T03:40:53.000Z","status":1,"totalPoints":160502,"rankingPoints":160502,"totalPass":29,"totalFc":10,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":440,"bracketLevel":1458,"footswitchLevel":868,"jackLevel":790,"sideswitchLevel":604,"doublestepLevel":993,"staminaLevel":288,"isBuddy":false,"preferences":"{\"discordId\":\"bkirz#0001\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"bkirz","sex":"Male","profileImg":""},{"id":403,"membersId":175395,"dateAdded":"2023-03-19T19:39:46.000Z","lastUpdated":"2023-04-21T20:40:17.000Z","status":1,"totalPoints":160430,"rankingPoints":160430,"totalPass":53,"totalFc":18,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":1060,"bracketLevel":397,"footswitchLevel":541,"jackLevel":517,"sideswitchLevel":215,"doublestepLevel":587,"staminaLevel":373,"isBuddy":false,"preferences":"{\"discordId\":\"bap#9999\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"bap","sex":"Male","profileImg":""},{"id":1066,"membersId":66688,"dateAdded":"2023-04-09T00:44:19.000Z","lastUpdated":"2023-04-21T21:46:15.000Z","status":1,"totalPoints":159469,"rankingPoints":159469,"totalPass":8,"totalFc":5,"totalFec":16,"totalQuad":2,"totalQuint":0,"crossoverLevel":418,"bracketLevel":926,"footswitchLevel":674,"jackLevel":571,"sideswitchLevel":460,"doublestepLevel":595,"staminaLevel":419,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"FRNKODEV","sex":"Male","profileImg":""},{"id":808,"membersId":175525,"dateAdded":"2023-03-25T23:35:01.000Z","lastUpdated":"2023-05-05T01:06:45.000Z","status":1,"totalPoints":226707,"rankingPoints":158924,"totalPass":71,"totalFc":48,"totalFec":11,"totalQuad":0,"totalQuint":0,"crossoverLevel":2109,"bracketLevel":443,"footswitchLevel":928,"jackLevel":706,"sideswitchLevel":551,"doublestepLevel":1389,"staminaLevel":133,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Ohbi","sex":"Female","profileImg":""},{"id":1114,"membersId":175819,"dateAdded":"2023-04-13T01:29:33.000Z","lastUpdated":"2023-05-04T04:23:31.000Z","status":1,"totalPoints":157920,"rankingPoints":157920,"totalPass":40,"totalFc":11,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":1550,"bracketLevel":351,"footswitchLevel":716,"jackLevel":344,"sideswitchLevel":1034,"doublestepLevel":1146,"staminaLevel":168,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"KonnorLetterBee","sex":"Unspecified","profileImg":""},{"id":234,"membersId":175375,"dateAdded":"2023-03-19T00:39:48.000Z","lastUpdated":"2023-05-02T01:44:09.000Z","status":1,"totalPoints":156296,"rankingPoints":156296,"totalPass":55,"totalFc":6,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":926,"bracketLevel":487,"footswitchLevel":552,"jackLevel":714,"sideswitchLevel":756,"doublestepLevel":809,"staminaLevel":310,"isBuddy":false,"preferences":"{\"discordId\":\"PizzaLovers007#0931\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PizzaLovers007","sex":"Male","profileImg":""},{"id":59,"membersId":173651,"dateAdded":"2023-03-18T21:49:33.000Z","lastUpdated":"2023-04-19T15:44:22.000Z","status":1,"totalPoints":224144,"rankingPoints":156072,"totalPass":136,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1611,"bracketLevel":761,"footswitchLevel":1237,"jackLevel":574,"sideswitchLevel":933,"doublestepLevel":1148,"staminaLevel":174,"isBuddy":false,"preferences":"{\"discordId\":\"Zydra#7489\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zydra","sex":"Female","profileImg":"https://cdn.discordapp.com/attachments/750387080932229212/1088857461374595205/zy250.png"},{"id":981,"membersId":76290,"dateAdded":"2023-04-02T21:54:52.000Z","lastUpdated":"2023-05-03T21:56:57.000Z","status":1,"totalPoints":189234,"rankingPoints":155915,"totalPass":61,"totalFc":30,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":1977,"bracketLevel":281,"footswitchLevel":868,"jackLevel":352,"sideswitchLevel":429,"doublestepLevel":1366,"staminaLevel":50,"isBuddy":false,"preferences":"{\"discordId\":\"KawaiiFrijole#1337\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Brat","sex":"Female","profileImg":"https://i.imgur.com/UacEahP.png"},{"id":327,"membersId":173035,"dateAdded":"2023-03-19T09:08:34.000Z","lastUpdated":"2023-04-17T20:35:19.000Z","status":1,"totalPoints":171038,"rankingPoints":155342,"totalPass":38,"totalFc":17,"totalFec":33,"totalQuad":2,"totalQuint":0,"crossoverLevel":1647,"bracketLevel":312,"footswitchLevel":813,"jackLevel":444,"sideswitchLevel":65,"doublestepLevel":1051,"staminaLevel":34,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Jkurs","sex":"Male","profileImg":"https://i.imgur.com/ATSlqP1.png"},{"id":1253,"membersId":132158,"dateAdded":"2023-04-30T15:21:43.000Z","lastUpdated":"2023-05-04T18:12:33.000Z","status":1,"totalPoints":155836,"rankingPoints":155075,"totalPass":53,"totalFc":20,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":1066,"bracketLevel":446,"footswitchLevel":759,"jackLevel":346,"sideswitchLevel":513,"doublestepLevel":870,"staminaLevel":244,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kuboxxxxx","sex":"Male","profileImg":""},{"id":964,"membersId":4793,"dateAdded":"2023-04-01T22:20:44.000Z","lastUpdated":"2023-05-07T01:11:30.000Z","status":1,"totalPoints":153444,"rankingPoints":153444,"totalPass":37,"totalFc":5,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":905,"bracketLevel":459,"footswitchLevel":548,"jackLevel":515,"sideswitchLevel":878,"doublestepLevel":624,"staminaLevel":397,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TheTruck","sex":"Male","profileImg":""},{"id":119,"membersId":173211,"dateAdded":"2023-03-18T21:57:44.000Z","lastUpdated":"2023-05-07T02:21:04.000Z","status":1,"totalPoints":243176,"rankingPoints":153146,"totalPass":112,"totalFc":40,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1909,"bracketLevel":827,"footswitchLevel":1295,"jackLevel":679,"sideswitchLevel":904,"doublestepLevel":1642,"staminaLevel":186,"isBuddy":false,"preferences":"{\"discordId\":\"som1sezhi#6695\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"som1sezhi","sex":"Unspecified","profileImg":""},{"id":860,"membersId":168269,"dateAdded":"2023-03-27T21:25:53.000Z","lastUpdated":"2023-05-03T03:38:32.000Z","status":1,"totalPoints":152250,"rankingPoints":152250,"totalPass":20,"totalFc":9,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":795,"bracketLevel":920,"footswitchLevel":790,"jackLevel":525,"sideswitchLevel":289,"doublestepLevel":631,"staminaLevel":522,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Santiii","sex":"Male","profileImg":""},{"id":772,"membersId":175501,"dateAdded":"2023-03-25T09:21:38.000Z","lastUpdated":"2023-05-02T09:10:03.000Z","status":1,"totalPoints":168716,"rankingPoints":152220,"totalPass":76,"totalFc":17,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1214,"bracketLevel":335,"footswitchLevel":856,"jackLevel":254,"sideswitchLevel":907,"doublestepLevel":896,"staminaLevel":368,"isBuddy":false,"preferences":"{\"discordId\":\"DisGuy#4461\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DisGuy","sex":"Male","profileImg":""},{"id":451,"membersId":175402,"dateAdded":"2023-03-20T00:56:09.000Z","lastUpdated":"2023-05-05T22:15:13.000Z","status":1,"totalPoints":170040,"rankingPoints":151666,"totalPass":92,"totalFc":8,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1250,"bracketLevel":286,"footswitchLevel":815,"jackLevel":402,"sideswitchLevel":408,"doublestepLevel":1120,"staminaLevel":189,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BandiCat","sex":"Unspecified","profileImg":""},{"id":526,"membersId":175032,"dateAdded":"2023-03-20T19:15:10.000Z","lastUpdated":"2023-04-27T06:35:44.000Z","status":1,"totalPoints":165894,"rankingPoints":151420,"totalPass":81,"totalFc":10,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1194,"bracketLevel":426,"footswitchLevel":618,"jackLevel":532,"sideswitchLevel":716,"doublestepLevel":1356,"staminaLevel":119,"isBuddy":false,"preferences":"{\"discordId\":\"Siren#3333\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Siren","sex":"Unspecified","profileImg":"https://s2.narvii.com/image/mcvcwod4qoi3yxmx3ybsgm4nqutpwaxx_128.jpg"},{"id":503,"membersId":173358,"dateAdded":"2023-03-20T15:33:23.000Z","lastUpdated":"2023-04-19T17:57:32.000Z","status":1,"totalPoints":177086,"rankingPoints":150060,"totalPass":79,"totalFc":21,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1323,"bracketLevel":452,"footswitchLevel":961,"jackLevel":508,"sideswitchLevel":492,"doublestepLevel":928,"staminaLevel":116,"isBuddy":false,"preferences":"{\"discordId\":\"pumpuli#0050\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"pumpuli","sex":"Unspecified","profileImg":""},{"id":67,"membersId":165906,"dateAdded":"2023-03-18T21:49:54.000Z","lastUpdated":"2023-05-06T02:32:34.000Z","status":1,"totalPoints":224238,"rankingPoints":150028,"totalPass":102,"totalFc":39,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1841,"bracketLevel":691,"footswitchLevel":1017,"jackLevel":553,"sideswitchLevel":539,"doublestepLevel":1476,"staminaLevel":167,"isBuddy":false,"preferences":"{\"discordId\":\"joshhead#5985\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"joshhead","sex":"Unspecified","profileImg":""},{"id":328,"membersId":173321,"dateAdded":"2023-03-19T09:31:02.000Z","lastUpdated":"2023-05-05T14:01:51.000Z","status":1,"totalPoints":149537,"rankingPoints":149537,"totalPass":54,"totalFc":6,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":1050,"bracketLevel":481,"footswitchLevel":952,"jackLevel":488,"sideswitchLevel":592,"doublestepLevel":944,"staminaLevel":101,"isBuddy":false,"preferences":"{\"discordId\":\"Peli#2519\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Peli","sex":"Male","profileImg":""},{"id":744,"membersId":175486,"dateAdded":"2023-03-24T21:16:25.000Z","lastUpdated":"2023-05-05T23:46:07.000Z","status":1,"totalPoints":148808,"rankingPoints":148808,"totalPass":36,"totalFc":6,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":835,"bracketLevel":532,"footswitchLevel":870,"jackLevel":634,"sideswitchLevel":703,"doublestepLevel":709,"staminaLevel":222,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"EDJI","sex":"Male","profileImg":""},{"id":999,"membersId":175681,"dateAdded":"2023-04-04T00:33:55.000Z","lastUpdated":"2023-05-04T03:06:53.000Z","status":1,"totalPoints":216583,"rankingPoints":146486,"totalPass":102,"totalFc":35,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":1830,"bracketLevel":682,"footswitchLevel":962,"jackLevel":670,"sideswitchLevel":600,"doublestepLevel":1317,"staminaLevel":118,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"hugh_jass","sex":"Unspecified","profileImg":""},{"id":439,"membersId":66376,"dateAdded":"2023-03-19T23:20:45.000Z","lastUpdated":"2023-05-06T04:10:12.000Z","status":1,"totalPoints":146324,"rankingPoints":146324,"totalPass":33,"totalFc":14,"totalFec":17,"totalQuad":0,"totalQuint":0,"crossoverLevel":1227,"bracketLevel":394,"footswitchLevel":602,"jackLevel":443,"sideswitchLevel":189,"doublestepLevel":883,"staminaLevel":131,"isBuddy":false,"preferences":"{\"discordId\":\"Boing#3479\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Boingloing","sex":"Male","profileImg":"https://pbs.twimg.com/profile_images/948169333661937664/YJo3IahD_bigger.jpg"},{"id":528,"membersId":175147,"dateAdded":"2023-03-20T19:21:05.000Z","lastUpdated":"2023-05-06T20:16:32.000Z","status":1,"totalPoints":178734,"rankingPoints":145372,"totalPass":66,"totalFc":38,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":1575,"bracketLevel":262,"footswitchLevel":687,"jackLevel":343,"sideswitchLevel":152,"doublestepLevel":1140,"staminaLevel":88,"isBuddy":false,"preferences":"{\"discordId\":\"nathan!!#1312\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"9NATH9N","sex":"Unspecified","profileImg":"https://i.imgur.com/Sz6KNoZ.jpg"},{"id":872,"membersId":173160,"dateAdded":"2023-03-28T16:16:51.000Z","lastUpdated":"2023-05-03T01:39:12.000Z","status":1,"totalPoints":145777,"rankingPoints":144825,"totalPass":68,"totalFc":8,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":1059,"bracketLevel":449,"footswitchLevel":839,"jackLevel":592,"sideswitchLevel":369,"doublestepLevel":1000,"staminaLevel":139,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Decoy","sex":"Unspecified","profileImg":""},{"id":1058,"membersId":175759,"dateAdded":"2023-04-08T07:44:00.000Z","lastUpdated":"2023-05-05T20:21:37.000Z","status":1,"totalPoints":153079,"rankingPoints":144683,"totalPass":22,"totalFc":47,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":1618,"bracketLevel":300,"footswitchLevel":456,"jackLevel":361,"sideswitchLevel":108,"doublestepLevel":772,"staminaLevel":83,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"barjo69","sex":"Female","profileImg":""},{"id":891,"membersId":136487,"dateAdded":"2023-03-29T03:10:40.000Z","lastUpdated":"2023-05-05T22:26:25.000Z","status":1,"totalPoints":143640,"rankingPoints":143640,"totalPass":35,"totalFc":12,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":1036,"bracketLevel":317,"footswitchLevel":618,"jackLevel":370,"sideswitchLevel":279,"doublestepLevel":960,"staminaLevel":331,"isBuddy":false,"preferences":"{\"discordId\":\"mxl100#7826\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mxl100","sex":"Female","profileImg":""},{"id":1082,"membersId":175779,"dateAdded":"2023-04-10T05:45:01.000Z","lastUpdated":"2023-05-03T10:18:56.000Z","status":1,"totalPoints":153683,"rankingPoints":143503,"totalPass":44,"totalFc":32,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":1509,"bracketLevel":405,"footswitchLevel":652,"jackLevel":574,"sideswitchLevel":143,"doublestepLevel":1017,"staminaLevel":73,"isBuddy":false,"preferences":"{\"discordId\":\"Avalous#0573\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Avalous","sex":"Male","profileImg":""},{"id":179,"membersId":175367,"dateAdded":"2023-03-18T22:41:58.000Z","lastUpdated":"2023-05-06T22:30:28.000Z","status":1,"totalPoints":181694,"rankingPoints":141309,"totalPass":89,"totalFc":25,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":1617,"bracketLevel":472,"footswitchLevel":942,"jackLevel":449,"sideswitchLevel":473,"doublestepLevel":1079,"staminaLevel":95,"isBuddy":false,"preferences":"{\"discordId\":\"Rufus#1868\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Rufus","sex":"Male","profileImg":""},{"id":148,"membersId":135061,"dateAdded":"2023-03-18T22:14:07.000Z","lastUpdated":"2023-05-07T03:43:32.000Z","status":1,"totalPoints":140804,"rankingPoints":140804,"totalPass":36,"totalFc":4,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":460,"bracketLevel":275,"footswitchLevel":324,"jackLevel":658,"sideswitchLevel":130,"doublestepLevel":285,"staminaLevel":977,"isBuddy":false,"preferences":"{\"discordId\":\"airplane#8871\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"airplane","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/749406224365387837/987950518754238505/195-00.png"},{"id":49,"membersId":172895,"dateAdded":"2023-03-18T21:49:06.000Z","lastUpdated":"2023-04-03T02:44:31.000Z","status":1,"totalPoints":143759,"rankingPoints":140402,"totalPass":36,"totalFc":32,"totalFec":11,"totalQuad":0,"totalQuint":0,"crossoverLevel":1398,"bracketLevel":391,"footswitchLevel":644,"jackLevel":373,"sideswitchLevel":166,"doublestepLevel":768,"staminaLevel":57,"isBuddy":false,"preferences":"{\"discordId\":\"Sekii#8008\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sekiirei","sex":"Female","profileImg":"https://i.gyazo.com/a0e21eb4239c5139544515656668c7c5.png"},{"id":182,"membersId":170939,"dateAdded":"2023-03-18T22:45:33.000Z","lastUpdated":"2023-04-26T03:59:41.000Z","status":1,"totalPoints":167278,"rankingPoints":139982,"totalPass":43,"totalFc":38,"totalFec":21,"totalQuad":0,"totalQuint":0,"crossoverLevel":1685,"bracketLevel":165,"footswitchLevel":488,"jackLevel":435,"sideswitchLevel":95,"doublestepLevel":958,"staminaLevel":58,"isBuddy":false,"preferences":"{\"discordId\":\"Cephiros#0039\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Cephiros","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/900262872448376862/1087119220686463066/avt.png"},{"id":907,"membersId":175589,"dateAdded":"2023-03-29T21:19:00.000Z","lastUpdated":"2023-05-05T19:17:12.000Z","status":1,"totalPoints":167433,"rankingPoints":139538,"totalPass":89,"totalFc":17,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1527,"bracketLevel":168,"footswitchLevel":652,"jackLevel":519,"sideswitchLevel":291,"doublestepLevel":982,"staminaLevel":166,"isBuddy":false,"preferences":"{\"discordId\":\"crabigail#2824\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"crabigail","sex":"Female","profileImg":""},{"id":915,"membersId":172919,"dateAdded":"2023-03-30T02:10:52.000Z","lastUpdated":"2023-04-16T04:33:16.000Z","status":1,"totalPoints":139482,"rankingPoints":139482,"totalPass":21,"totalFc":12,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":574,"bracketLevel":888,"footswitchLevel":895,"jackLevel":446,"sideswitchLevel":894,"doublestepLevel":734,"staminaLevel":339,"isBuddy":false,"preferences":"{\"discordId\":\"yocto#2125\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"yocto","sex":"Male","profileImg":""},{"id":760,"membersId":175493,"dateAdded":"2023-03-25T01:55:33.000Z","lastUpdated":"2023-05-06T03:25:02.000Z","status":1,"totalPoints":138441,"rankingPoints":138441,"totalPass":40,"totalFc":14,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":878,"bracketLevel":359,"footswitchLevel":540,"jackLevel":287,"sideswitchLevel":282,"doublestepLevel":505,"staminaLevel":624,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MONO_COL","sex":"Male","profileImg":""},{"id":650,"membersId":1138,"dateAdded":"2023-03-22T14:02:53.000Z","lastUpdated":"2023-04-01T23:34:09.000Z","status":1,"totalPoints":137580,"rankingPoints":137580,"totalPass":24,"totalFc":18,"totalFec":20,"totalQuad":6,"totalQuint":0,"crossoverLevel":1409,"bracketLevel":116,"footswitchLevel":492,"jackLevel":301,"sideswitchLevel":123,"doublestepLevel":957,"staminaLevel":95,"isBuddy":false,"preferences":"{\"discordId\":\"Rawkus#5465\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"RawkusX","sex":"Unspecified","profileImg":""},{"id":56,"membersId":143816,"dateAdded":"2023-03-18T21:49:10.000Z","lastUpdated":"2023-04-14T23:48:51.000Z","status":1,"totalPoints":136970,"rankingPoints":136970,"totalPass":17,"totalFc":10,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":894,"bracketLevel":407,"footswitchLevel":784,"jackLevel":486,"sideswitchLevel":448,"doublestepLevel":1011,"staminaLevel":84,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Oda","sex":"Male","profileImg":"https://i.ibb.co/5RXqF8g/konmairo.png"},{"id":1012,"membersId":165832,"dateAdded":"2023-04-04T20:17:33.000Z","lastUpdated":"2023-05-04T16:43:42.000Z","status":1,"totalPoints":136629,"rankingPoints":136629,"totalPass":25,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":372,"bracketLevel":817,"footswitchLevel":627,"jackLevel":318,"sideswitchLevel":369,"doublestepLevel":575,"staminaLevel":656,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Yeyeito","sex":"Male","profileImg":""},{"id":807,"membersId":31275,"dateAdded":"2023-03-25T23:16:02.000Z","lastUpdated":"2023-05-04T04:10:22.000Z","status":1,"totalPoints":166433,"rankingPoints":136348,"totalPass":90,"totalFc":16,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1526,"bracketLevel":281,"footswitchLevel":816,"jackLevel":528,"sideswitchLevel":395,"doublestepLevel":1119,"staminaLevel":76,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"latiosruby","sex":"Female","profileImg":"https://i256.photobucket.com/albums/hh182/ayameyokomi/Anime%20Icons/Tsubasa%20Icons%203/200_16.png"},{"id":751,"membersId":4391,"dateAdded":"2023-03-24T23:52:12.000Z","lastUpdated":"2023-04-01T00:29:53.000Z","status":1,"totalPoints":159990,"rankingPoints":136286,"totalPass":73,"totalFc":28,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":1376,"bracketLevel":292,"footswitchLevel":817,"jackLevel":256,"sideswitchLevel":525,"doublestepLevel":994,"staminaLevel":66,"isBuddy":false,"preferences":"{\"discordId\":\"The Real Akuma#8639\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Rilakkumaboy","sex":"Male","profileImg":""},{"id":198,"membersId":173195,"dateAdded":"2023-03-18T23:11:26.000Z","lastUpdated":"2023-04-27T22:47:15.000Z","status":1,"totalPoints":135223,"rankingPoints":135223,"totalPass":36,"totalFc":10,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":505,"bracketLevel":632,"footswitchLevel":933,"jackLevel":394,"sideswitchLevel":563,"doublestepLevel":832,"staminaLevel":294,"isBuddy":false,"preferences":"{\"discordId\":\"Atehortua#8487\",\"decentsEnabled\":true,\"wayOffsEnabled\":false}","name":"Atehortua","sex":"Male","profileImg":""},{"id":493,"membersId":170954,"dateAdded":"2023-03-20T13:44:47.000Z","lastUpdated":"2023-04-23T22:08:36.000Z","status":1,"totalPoints":143771,"rankingPoints":135195,"totalPass":67,"totalFc":17,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":1240,"bracketLevel":211,"footswitchLevel":795,"jackLevel":398,"sideswitchLevel":70,"doublestepLevel":916,"staminaLevel":74,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Cheerio","sex":"Male","profileImg":"https://i.imgur.com/w07ClD7.png"},{"id":221,"membersId":5843,"dateAdded":"2023-03-19T00:13:34.000Z","lastUpdated":"2023-03-26T00:50:49.000Z","status":1,"totalPoints":135004,"rankingPoints":135004,"totalPass":18,"totalFc":5,"totalFec":11,"totalQuad":0,"totalQuint":0,"crossoverLevel":394,"bracketLevel":304,"footswitchLevel":417,"jackLevel":159,"sideswitchLevel":12,"doublestepLevel":569,"staminaLevel":665,"isBuddy":false,"preferences":"{\"discordId\":\"Nebel#5263\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Nebel","sex":"Male","profileImg":"https://i.ibb.co/4fTVcyf/Capture2.png"},{"id":10,"membersId":129740,"dateAdded":"2023-03-18T21:48:29.000Z","lastUpdated":"2023-04-07T00:53:22.000Z","status":1,"totalPoints":143798,"rankingPoints":134888,"totalPass":79,"totalFc":7,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":1119,"bracketLevel":343,"footswitchLevel":640,"jackLevel":316,"sideswitchLevel":365,"doublestepLevel":672,"staminaLevel":112,"isBuddy":false,"preferences":"{\"discordId\":\"Tenko#0028\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TENKO","sex":"Unspecified","profileImg":"https://i.imgur.com/qTNKsr2.png"},{"id":916,"membersId":94283,"dateAdded":"2023-03-30T06:05:11.000Z","lastUpdated":"2023-04-29T16:32:47.000Z","status":1,"totalPoints":134454,"rankingPoints":134454,"totalPass":36,"totalFc":27,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":1088,"bracketLevel":330,"footswitchLevel":840,"jackLevel":344,"sideswitchLevel":653,"doublestepLevel":939,"staminaLevel":156,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Snil4","sex":"Male","profileImg":"https://i.postimg.cc/g0LhmhDW/smileycup1.gif"},{"id":850,"membersId":173242,"dateAdded":"2023-03-27T03:35:50.000Z","lastUpdated":"2023-05-06T22:50:11.000Z","status":1,"totalPoints":134161,"rankingPoints":134161,"totalPass":24,"totalFc":12,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":825,"bracketLevel":487,"footswitchLevel":743,"jackLevel":343,"sideswitchLevel":770,"doublestepLevel":767,"staminaLevel":238,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"cscathysun","sex":"Female","profileImg":""},{"id":106,"membersId":173297,"dateAdded":"2023-03-18T21:53:38.000Z","lastUpdated":"2023-05-04T04:50:25.000Z","status":1,"totalPoints":139930,"rankingPoints":133630,"totalPass":72,"totalFc":23,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":1429,"bracketLevel":268,"footswitchLevel":771,"jackLevel":455,"sideswitchLevel":464,"doublestepLevel":1036,"staminaLevel":79,"isBuddy":false,"preferences":"{\"discordId\":\"BrotherMojo#5469\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BrotherMojo","sex":"Male","profileImg":""},{"id":1008,"membersId":129604,"dateAdded":"2023-04-04T16:33:20.000Z","lastUpdated":"2023-04-28T02:16:27.000Z","status":1,"totalPoints":133419,"rankingPoints":133419,"totalPass":45,"totalFc":3,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":770,"bracketLevel":553,"footswitchLevel":534,"jackLevel":291,"sideswitchLevel":511,"doublestepLevel":532,"staminaLevel":238,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Hiloshi","sex":"Male","profileImg":"https://i.imgur.com/i6rFhgJ.jpg"},{"id":421,"membersId":173521,"dateAdded":"2023-03-19T21:03:52.000Z","lastUpdated":"2023-05-06T19:25:17.000Z","status":1,"totalPoints":143877,"rankingPoints":133170,"totalPass":45,"totalFc":42,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":1021,"bracketLevel":364,"footswitchLevel":818,"jackLevel":293,"sideswitchLevel":177,"doublestepLevel":664,"staminaLevel":226,"isBuddy":false,"preferences":"{\"discordId\":\"Mallow#1472\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Mallow","sex":"Female","profileImg":"https://cdn.discordapp.com/attachments/234174794055155714/1097687149807157308/itlavatar.jpg"},{"id":572,"membersId":173240,"dateAdded":"2023-03-21T02:07:42.000Z","lastUpdated":"2023-03-31T22:12:44.000Z","status":1,"totalPoints":132212,"rankingPoints":132212,"totalPass":38,"totalFc":4,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":986,"bracketLevel":537,"footswitchLevel":533,"jackLevel":488,"sideswitchLevel":171,"doublestepLevel":1009,"staminaLevel":119,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"xdank","sex":"Male","profileImg":""},{"id":1102,"membersId":76913,"dateAdded":"2023-04-12T04:41:41.000Z","lastUpdated":"2023-05-03T04:59:33.000Z","status":1,"totalPoints":131020,"rankingPoints":131020,"totalPass":38,"totalFc":4,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":461,"bracketLevel":608,"footswitchLevel":485,"jackLevel":748,"sideswitchLevel":366,"doublestepLevel":396,"staminaLevel":395,"isBuddy":false,"preferences":"{\"discordId\":\"Narwhal Prime#2189\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Narwhal Prime","sex":"Male","profileImg":"https://a.ppy.sh/2134234?1367899479.png"},{"id":829,"membersId":173363,"dateAdded":"2023-03-26T18:54:23.000Z","lastUpdated":"2023-04-26T03:06:20.000Z","status":1,"totalPoints":130807,"rankingPoints":130807,"totalPass":35,"totalFc":9,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":931,"bracketLevel":162,"footswitchLevel":732,"jackLevel":594,"sideswitchLevel":521,"doublestepLevel":729,"staminaLevel":201,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"RuanTheDonPianta","sex":"Male","profileImg":""},{"id":299,"membersId":173861,"dateAdded":"2023-03-19T04:11:48.000Z","lastUpdated":"2023-05-01T01:04:25.000Z","status":1,"totalPoints":130221,"rankingPoints":130221,"totalPass":41,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":609,"bracketLevel":479,"footswitchLevel":628,"jackLevel":441,"sideswitchLevel":462,"doublestepLevel":728,"staminaLevel":280,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Hidden","sex":"Unspecified","profileImg":""},{"id":990,"membersId":168699,"dateAdded":"2023-04-03T18:48:45.000Z","lastUpdated":"2023-04-10T03:04:04.000Z","status":1,"totalPoints":130191,"rankingPoints":130191,"totalPass":21,"totalFc":8,"totalFec":7,"totalQuad":3,"totalQuint":0,"crossoverLevel":647,"bracketLevel":470,"footswitchLevel":406,"jackLevel":465,"sideswitchLevel":645,"doublestepLevel":282,"staminaLevel":385,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"lizzzzzy","sex":"Female","profileImg":""},{"id":911,"membersId":175593,"dateAdded":"2023-03-29T23:32:50.000Z","lastUpdated":"2023-05-01T02:07:55.000Z","status":1,"totalPoints":176000,"rankingPoints":129624,"totalPass":95,"totalFc":30,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1658,"bracketLevel":285,"footswitchLevel":754,"jackLevel":537,"sideswitchLevel":541,"doublestepLevel":1144,"staminaLevel":98,"isBuddy":false,"preferences":"{\"discordId\":\"Chaparral (Chap)#5283\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ChaparralCoyote","sex":"Unspecified","profileImg":""},{"id":251,"membersId":175221,"dateAdded":"2023-03-19T01:23:20.000Z","lastUpdated":"2023-05-02T03:31:43.000Z","status":1,"totalPoints":183140,"rankingPoints":129144,"totalPass":129,"totalFc":8,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1558,"bracketLevel":339,"footswitchLevel":862,"jackLevel":499,"sideswitchLevel":524,"doublestepLevel":1046,"staminaLevel":149,"isBuddy":false,"preferences":"{\"discordId\":\"Atticus#8543\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"atticusgg","sex":"Unspecified","profileImg":"https://i.ibb.co/NrrstWY/xztz0ggb50c51.png"},{"id":208,"membersId":175373,"dateAdded":"2023-03-18T23:42:19.000Z","lastUpdated":"2023-05-05T00:34:16.000Z","status":1,"totalPoints":159154,"rankingPoints":128578,"totalPass":81,"totalFc":23,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":1407,"bracketLevel":224,"footswitchLevel":591,"jackLevel":331,"sideswitchLevel":188,"doublestepLevel":842,"staminaLevel":88,"isBuddy":false,"preferences":"{\"discordId\":\"Kasemei#2570\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kasemei","sex":"Female","profileImg":""},{"id":617,"membersId":173207,"dateAdded":"2023-03-21T22:01:50.000Z","lastUpdated":"2023-05-01T21:45:23.000Z","status":1,"totalPoints":128216,"rankingPoints":128216,"totalPass":46,"totalFc":8,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":714,"bracketLevel":531,"footswitchLevel":822,"jackLevel":333,"sideswitchLevel":557,"doublestepLevel":685,"staminaLevel":188,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kyroke","sex":"Male","profileImg":""},{"id":199,"membersId":173071,"dateAdded":"2023-03-18T23:14:49.000Z","lastUpdated":"2023-04-28T01:19:13.000Z","status":1,"totalPoints":127951,"rankingPoints":127951,"totalPass":26,"totalFc":12,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":685,"bracketLevel":301,"footswitchLevel":689,"jackLevel":486,"sideswitchLevel":236,"doublestepLevel":507,"staminaLevel":169,"isBuddy":false,"preferences":"{\"discordId\":\"mustanginexile#6034\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mustanginexile","sex":"Unspecified","profileImg":""},{"id":118,"membersId":174634,"dateAdded":"2023-03-18T21:57:42.000Z","lastUpdated":"2023-05-02T20:27:35.000Z","status":1,"totalPoints":126855,"rankingPoints":126855,"totalPass":54,"totalFc":19,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":933,"bracketLevel":536,"footswitchLevel":657,"jackLevel":333,"sideswitchLevel":169,"doublestepLevel":929,"staminaLevel":80,"isBuddy":false,"preferences":"{\"discordId\":\"Sapphron#2557\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Sapphron","sex":"Male","profileImg":""},{"id":971,"membersId":173955,"dateAdded":"2023-04-02T09:28:07.000Z","lastUpdated":"2023-04-17T20:16:18.000Z","status":1,"totalPoints":126369,"rankingPoints":126369,"totalPass":47,"totalFc":3,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":960,"bracketLevel":241,"footswitchLevel":629,"jackLevel":333,"sideswitchLevel":302,"doublestepLevel":718,"staminaLevel":181,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Raazar","sex":"Unspecified","profileImg":""},{"id":131,"membersId":173502,"dateAdded":"2023-03-18T22:03:14.000Z","lastUpdated":"2023-04-06T21:27:13.000Z","status":1,"totalPoints":127036,"rankingPoints":126283,"totalPass":32,"totalFc":19,"totalFec":25,"totalQuad":0,"totalQuint":0,"crossoverLevel":1247,"bracketLevel":206,"footswitchLevel":357,"jackLevel":460,"sideswitchLevel":20,"doublestepLevel":781,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":\"MaryCherry#1831\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Salsa","sex":"Female","profileImg":"https://i.imgur.com/ClXUaBx.jpg"},{"id":947,"membersId":2323,"dateAdded":"2023-04-01T04:46:27.000Z","lastUpdated":"2023-04-16T02:23:55.000Z","status":1,"totalPoints":126072,"rankingPoints":126072,"totalPass":29,"totalFc":13,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":1186,"bracketLevel":170,"footswitchLevel":513,"jackLevel":384,"sideswitchLevel":463,"doublestepLevel":887,"staminaLevel":70,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dark Orochi","sex":"Male","profileImg":""},{"id":1026,"membersId":173370,"dateAdded":"2023-04-05T22:06:43.000Z","lastUpdated":"2023-05-03T22:54:27.000Z","status":1,"totalPoints":125920,"rankingPoints":125920,"totalPass":58,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":643,"bracketLevel":295,"footswitchLevel":676,"jackLevel":346,"sideswitchLevel":707,"doublestepLevel":577,"staminaLevel":157,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"rom_step","sex":"Male","profileImg":""},{"id":1022,"membersId":175709,"dateAdded":"2023-04-05T11:09:07.000Z","lastUpdated":"2023-05-03T15:00:41.000Z","status":1,"totalPoints":125650,"rankingPoints":125650,"totalPass":50,"totalFc":7,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":875,"bracketLevel":353,"footswitchLevel":560,"jackLevel":363,"sideswitchLevel":786,"doublestepLevel":412,"staminaLevel":121,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Mavy","sex":"Female","profileImg":""},{"id":1123,"membersId":564,"dateAdded":"2023-04-14T18:06:34.000Z","lastUpdated":"2023-04-23T21:49:56.000Z","status":1,"totalPoints":125063,"rankingPoints":125063,"totalPass":26,"totalFc":9,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":521,"bracketLevel":640,"footswitchLevel":476,"jackLevel":416,"sideswitchLevel":345,"doublestepLevel":469,"staminaLevel":426,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DaggettOnTwitch","sex":"Male","profileImg":"https://i.ibb.co/VvQB0M1/D9x7b-EWU8-AAn-Il-R-200x200.jpg"},{"id":678,"membersId":174213,"dateAdded":"2023-03-22T23:13:57.000Z","lastUpdated":"2023-05-02T00:46:39.000Z","status":1,"totalPoints":124330,"rankingPoints":124330,"totalPass":42,"totalFc":6,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":860,"bracketLevel":379,"footswitchLevel":430,"jackLevel":630,"sideswitchLevel":468,"doublestepLevel":429,"staminaLevel":128,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"wooffull","sex":"Unspecified","profileImg":""},{"id":418,"membersId":12,"dateAdded":"2023-03-19T20:38:23.000Z","lastUpdated":"2023-04-22T16:03:32.000Z","status":1,"totalPoints":123169,"rankingPoints":123169,"totalPass":22,"totalFc":5,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":444,"bracketLevel":641,"footswitchLevel":452,"jackLevel":326,"sideswitchLevel":108,"doublestepLevel":403,"staminaLevel":282,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"zxevik","sex":"Male","profileImg":"https://i.ibb.co/dmcMgks/HLD.png"},{"id":509,"membersId":165792,"dateAdded":"2023-03-20T16:30:14.000Z","lastUpdated":"2023-04-27T15:10:07.000Z","status":1,"totalPoints":122341,"rankingPoints":122341,"totalPass":9,"totalFc":9,"totalFec":16,"totalQuad":9,"totalQuint":0,"crossoverLevel":800,"bracketLevel":474,"footswitchLevel":505,"jackLevel":423,"sideswitchLevel":96,"doublestepLevel":659,"staminaLevel":130,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Fierra","sex":"Female","profileImg":"https://i.ibb.co/vmcKPXY/image.png"},{"id":1287,"membersId":173163,"dateAdded":"2023-05-04T23:39:33.000Z","lastUpdated":"2023-05-05T03:24:08.000Z","status":1,"totalPoints":121601,"rankingPoints":121601,"totalPass":24,"totalFc":2,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":570,"bracketLevel":462,"footswitchLevel":339,"jackLevel":446,"sideswitchLevel":204,"doublestepLevel":676,"staminaLevel":290,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CelAnima","sex":"Male","profileImg":""},{"id":271,"membersId":173549,"dateAdded":"2023-03-19T02:08:59.000Z","lastUpdated":"2023-05-07T05:13:39.000Z","status":1,"totalPoints":121027,"rankingPoints":121027,"totalPass":17,"totalFc":6,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":420,"bracketLevel":830,"footswitchLevel":570,"jackLevel":482,"sideswitchLevel":217,"doublestepLevel":820,"staminaLevel":329,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"svhavok","sex":"Unspecified","profileImg":""},{"id":1184,"membersId":175551,"dateAdded":"2023-04-22T09:51:23.000Z","lastUpdated":"2023-05-04T09:36:52.000Z","status":1,"totalPoints":119566,"rankingPoints":119566,"totalPass":46,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":956,"bracketLevel":217,"footswitchLevel":615,"jackLevel":321,"sideswitchLevel":466,"doublestepLevel":520,"staminaLevel":121,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"P*SERUM","sex":"Male","profileImg":""},{"id":1234,"membersId":176026,"dateAdded":"2023-04-27T14:27:27.000Z","lastUpdated":"2023-05-04T00:05:50.000Z","status":1,"totalPoints":119547,"rankingPoints":119547,"totalPass":23,"totalFc":4,"totalFec":12,"totalQuad":1,"totalQuint":0,"crossoverLevel":902,"bracketLevel":185,"footswitchLevel":395,"jackLevel":468,"sideswitchLevel":707,"doublestepLevel":445,"staminaLevel":85,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"blazincalf","sex":"Male","profileImg":""},{"id":801,"membersId":175510,"dateAdded":"2023-03-25T22:24:48.000Z","lastUpdated":"2023-05-05T17:43:23.000Z","status":1,"totalPoints":119329,"rankingPoints":119329,"totalPass":36,"totalFc":16,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":615,"bracketLevel":235,"footswitchLevel":592,"jackLevel":349,"sideswitchLevel":370,"doublestepLevel":633,"staminaLevel":175,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Killerkid451 ","sex":"Unspecified","profileImg":""},{"id":681,"membersId":3016,"dateAdded":"2023-03-22T23:19:48.000Z","lastUpdated":"2023-04-23T00:05:16.000Z","status":1,"totalPoints":119241,"rankingPoints":119241,"totalPass":31,"totalFc":10,"totalFec":15,"totalQuad":0,"totalQuint":0,"crossoverLevel":1269,"bracketLevel":373,"footswitchLevel":821,"jackLevel":244,"sideswitchLevel":1366,"doublestepLevel":373,"staminaLevel":83,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TehDerek","sex":"Male","profileImg":""},{"id":675,"membersId":173144,"dateAdded":"2023-03-22T22:59:05.000Z","lastUpdated":"2023-03-24T01:38:07.000Z","status":1,"totalPoints":118877,"rankingPoints":118877,"totalPass":24,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":568,"bracketLevel":706,"footswitchLevel":704,"jackLevel":527,"sideswitchLevel":659,"doublestepLevel":647,"staminaLevel":279,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"gonekim116","sex":"Male","profileImg":""},{"id":544,"membersId":175411,"dateAdded":"2023-03-20T21:09:41.000Z","lastUpdated":"2023-04-17T17:16:47.000Z","status":1,"totalPoints":118780,"rankingPoints":118780,"totalPass":11,"totalFc":6,"totalFec":19,"totalQuad":2,"totalQuint":0,"crossoverLevel":1108,"bracketLevel":109,"footswitchLevel":396,"jackLevel":262,"sideswitchLevel":712,"doublestepLevel":832,"staminaLevel":162,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Azelas","sex":"Unspecified","profileImg":""},{"id":1245,"membersId":176044,"dateAdded":"2023-04-29T06:09:53.000Z","lastUpdated":"2023-05-04T08:43:30.000Z","status":1,"totalPoints":118716,"rankingPoints":118716,"totalPass":25,"totalFc":7,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":633,"bracketLevel":606,"footswitchLevel":547,"jackLevel":451,"sideswitchLevel":146,"doublestepLevel":566,"staminaLevel":362,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"5.TWELVE","sex":"Male","profileImg":""},{"id":264,"membersId":175371,"dateAdded":"2023-03-19T01:47:19.000Z","lastUpdated":"2023-05-06T22:27:13.000Z","status":1,"totalPoints":143412,"rankingPoints":118587,"totalPass":102,"totalFc":7,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1108,"bracketLevel":527,"footswitchLevel":707,"jackLevel":390,"sideswitchLevel":364,"doublestepLevel":749,"staminaLevel":70,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Cool Brick","sex":"Male","profileImg":""},{"id":1250,"membersId":174400,"dateAdded":"2023-04-29T21:37:51.000Z","lastUpdated":"2023-04-30T18:50:07.000Z","status":1,"totalPoints":117718,"rankingPoints":117718,"totalPass":15,"totalFc":7,"totalFec":16,"totalQuad":2,"totalQuint":0,"crossoverLevel":948,"bracketLevel":187,"footswitchLevel":673,"jackLevel":269,"sideswitchLevel":905,"doublestepLevel":840,"staminaLevel":83,"isBuddy":false,"preferences":"{\"discordId\":\"turbo#0679\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Turbo","sex":"Unspecified","profileImg":""},{"id":634,"membersId":165784,"dateAdded":"2023-03-22T02:27:01.000Z","lastUpdated":"2023-05-02T00:55:35.000Z","status":1,"totalPoints":117583,"rankingPoints":117583,"totalPass":43,"totalFc":14,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":723,"bracketLevel":63,"footswitchLevel":462,"jackLevel":391,"sideswitchLevel":225,"doublestepLevel":850,"staminaLevel":235,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"cloverwolf","sex":"Male","profileImg":""},{"id":454,"membersId":174444,"dateAdded":"2023-03-20T01:16:46.000Z","lastUpdated":"2023-04-25T04:50:49.000Z","status":1,"totalPoints":117582,"rankingPoints":117582,"totalPass":43,"totalFc":19,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1041,"bracketLevel":601,"footswitchLevel":604,"jackLevel":332,"sideswitchLevel":595,"doublestepLevel":551,"staminaLevel":131,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"max101","sex":"Male","profileImg":"https://i.quotev.com/n4s6mygastga.jpg"},{"id":880,"membersId":175567,"dateAdded":"2023-03-28T22:05:01.000Z","lastUpdated":"2023-05-04T23:33:06.000Z","status":1,"totalPoints":117564,"rankingPoints":117564,"totalPass":39,"totalFc":21,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":1019,"bracketLevel":67,"footswitchLevel":360,"jackLevel":64,"sideswitchLevel":0,"doublestepLevel":832,"staminaLevel":55,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"chelly","sex":"Unspecified","profileImg":""},{"id":330,"membersId":173319,"dateAdded":"2023-03-19T10:01:20.000Z","lastUpdated":"2023-04-12T14:12:35.000Z","status":1,"totalPoints":116879,"rankingPoints":116879,"totalPass":24,"totalFc":18,"totalFec":17,"totalQuad":0,"totalQuint":0,"crossoverLevel":808,"bracketLevel":472,"footswitchLevel":706,"jackLevel":267,"sideswitchLevel":544,"doublestepLevel":309,"staminaLevel":190,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"D0omsday","sex":"Male","profileImg":""},{"id":720,"membersId":173789,"dateAdded":"2023-03-24T02:23:31.000Z","lastUpdated":"2023-05-07T03:08:36.000Z","status":1,"totalPoints":116549,"rankingPoints":116549,"totalPass":33,"totalFc":22,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":996,"bracketLevel":441,"footswitchLevel":646,"jackLevel":290,"sideswitchLevel":357,"doublestepLevel":822,"staminaLevel":163,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lazerlord","sex":"Male","profileImg":""},{"id":1226,"membersId":132065,"dateAdded":"2023-04-27T02:16:51.000Z","lastUpdated":"2023-05-07T00:06:50.000Z","status":1,"totalPoints":116315,"rankingPoints":116315,"totalPass":39,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":420,"bracketLevel":284,"footswitchLevel":479,"jackLevel":295,"sideswitchLevel":361,"doublestepLevel":369,"staminaLevel":587,"isBuddy":false,"preferences":"{\"discordId\":\"Amoo#2681\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Amoo","sex":"Unspecified","profileImg":"https://i.imgur.com/0iitjNE.png"},{"id":562,"membersId":174966,"dateAdded":"2023-03-20T23:41:37.000Z","lastUpdated":"2023-05-07T00:20:06.000Z","status":1,"totalPoints":131385,"rankingPoints":116294,"totalPass":72,"totalFc":24,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1251,"bracketLevel":250,"footswitchLevel":606,"jackLevel":237,"sideswitchLevel":189,"doublestepLevel":842,"staminaLevel":51,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ImTootToot","sex":"Unspecified","profileImg":""},{"id":774,"membersId":77168,"dateAdded":"2023-03-25T09:50:05.000Z","lastUpdated":"2023-04-20T18:45:31.000Z","status":1,"totalPoints":115891,"rankingPoints":115891,"totalPass":45,"totalFc":6,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":682,"bracketLevel":293,"footswitchLevel":603,"jackLevel":304,"sideswitchLevel":284,"doublestepLevel":728,"staminaLevel":165,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Electromuis","sex":"Unspecified","profileImg":""},{"id":1017,"membersId":149151,"dateAdded":"2023-04-05T02:01:05.000Z","lastUpdated":"2023-04-23T02:22:51.000Z","status":1,"totalPoints":115724,"rankingPoints":115724,"totalPass":29,"totalFc":17,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":614,"bracketLevel":217,"footswitchLevel":483,"jackLevel":412,"sideswitchLevel":174,"doublestepLevel":771,"staminaLevel":60,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"jmf","sex":"Male","profileImg":""},{"id":150,"membersId":173105,"dateAdded":"2023-03-18T22:15:52.000Z","lastUpdated":"2023-03-26T00:42:59.000Z","status":1,"totalPoints":115155,"rankingPoints":115155,"totalPass":24,"totalFc":15,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":534,"bracketLevel":263,"footswitchLevel":548,"jackLevel":407,"sideswitchLevel":515,"doublestepLevel":679,"staminaLevel":303,"isBuddy":false,"preferences":"{\"discordId\":\"Losermanwins#0088\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TheManwich","sex":"Male","profileImg":"https://i.imgur.com/yeHbdpC.png"},{"id":727,"membersId":173513,"dateAdded":"2023-03-24T11:16:20.000Z","lastUpdated":"2023-05-05T11:25:47.000Z","status":1,"totalPoints":114991,"rankingPoints":114991,"totalPass":47,"totalFc":13,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":963,"bracketLevel":202,"footswitchLevel":398,"jackLevel":275,"sideswitchLevel":326,"doublestepLevel":701,"staminaLevel":80,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Juci","sex":"Male","profileImg":""},{"id":230,"membersId":174967,"dateAdded":"2023-03-19T00:34:44.000Z","lastUpdated":"2023-03-26T21:03:39.000Z","status":1,"totalPoints":114053,"rankingPoints":114053,"totalPass":26,"totalFc":0,"totalFec":7,"totalQuad":1,"totalQuint":0,"crossoverLevel":814,"bracketLevel":294,"footswitchLevel":628,"jackLevel":48,"sideswitchLevel":170,"doublestepLevel":758,"staminaLevel":74,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lumen","sex":"Female","profileImg":""},{"id":233,"membersId":84583,"dateAdded":"2023-03-19T00:36:20.000Z","lastUpdated":"2023-03-24T13:30:46.000Z","status":1,"totalPoints":113964,"rankingPoints":113964,"totalPass":14,"totalFc":19,"totalFec":20,"totalQuad":0,"totalQuint":0,"crossoverLevel":1090,"bracketLevel":258,"footswitchLevel":447,"jackLevel":166,"sideswitchLevel":287,"doublestepLevel":762,"staminaLevel":80,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lugea","sex":"Male","profileImg":"https://i.ibb.co/SRVLdQQ/bruno.png"},{"id":364,"membersId":174975,"dateAdded":"2023-03-19T16:16:27.000Z","lastUpdated":"2023-04-06T02:45:31.000Z","status":1,"totalPoints":113866,"rankingPoints":113866,"totalPass":23,"totalFc":45,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":1291,"bracketLevel":252,"footswitchLevel":543,"jackLevel":219,"sideswitchLevel":0,"doublestepLevel":661,"staminaLevel":22,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Painsley","sex":"Unspecified","profileImg":"https://i.imgur.com/5lXbBj9.png"},{"id":518,"membersId":128280,"dateAdded":"2023-03-20T18:24:06.000Z","lastUpdated":"2023-05-05T18:59:12.000Z","status":1,"totalPoints":112955,"rankingPoints":112955,"totalPass":0,"totalFc":0,"totalFec":40,"totalQuad":22,"totalQuint":0,"crossoverLevel":1370,"bracketLevel":231,"footswitchLevel":493,"jackLevel":198,"sideswitchLevel":0,"doublestepLevel":742,"staminaLevel":7,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"GreatDameCygnus","sex":"Female","profileImg":"https://i.ibb.co/JQjnCN6/icon2.jpg"},{"id":250,"membersId":173253,"dateAdded":"2023-03-19T01:13:50.000Z","lastUpdated":"2023-04-29T19:36:13.000Z","status":1,"totalPoints":112771,"rankingPoints":112771,"totalPass":45,"totalFc":30,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":884,"bracketLevel":288,"footswitchLevel":590,"jackLevel":330,"sideswitchLevel":189,"doublestepLevel":494,"staminaLevel":184,"isBuddy":false,"preferences":"{\"discordId\":\"tossu#1056\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"NinuKinuski","sex":"Unspecified","profileImg":"https://i.imgur.com/cIkwVzI.png"},{"id":390,"membersId":66699,"dateAdded":"2023-03-19T18:11:51.000Z","lastUpdated":"2023-05-02T23:44:23.000Z","status":1,"totalPoints":112351,"rankingPoints":112351,"totalPass":12,"totalFc":16,"totalFec":21,"totalQuad":2,"totalQuint":0,"crossoverLevel":1161,"bracketLevel":129,"footswitchLevel":513,"jackLevel":223,"sideswitchLevel":101,"doublestepLevel":981,"staminaLevel":34,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"xopher","sex":"Male","profileImg":""},{"id":496,"membersId":66362,"dateAdded":"2023-03-20T14:24:01.000Z","lastUpdated":"2023-03-23T00:55:17.000Z","status":1,"totalPoints":110933,"rankingPoints":110933,"totalPass":29,"totalFc":20,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":1129,"bracketLevel":358,"footswitchLevel":481,"jackLevel":263,"sideswitchLevel":415,"doublestepLevel":843,"staminaLevel":26,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"centripital","sex":"Male","profileImg":""},{"id":75,"membersId":173399,"dateAdded":"2023-03-18T21:50:18.000Z","lastUpdated":"2023-05-06T16:27:38.000Z","status":1,"totalPoints":123783,"rankingPoints":110838,"totalPass":34,"totalFc":53,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":1318,"bracketLevel":151,"footswitchLevel":535,"jackLevel":350,"sideswitchLevel":36,"doublestepLevel":732,"staminaLevel":33,"isBuddy":false,"preferences":"{\"discordId\":\"DJEmbrace#0963\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DJEmbrace","sex":"Male","profileImg":""},{"id":1018,"membersId":79,"dateAdded":"2023-04-05T02:27:11.000Z","lastUpdated":"2023-04-23T01:33:26.000Z","status":1,"totalPoints":110551,"rankingPoints":110551,"totalPass":11,"totalFc":5,"totalFec":12,"totalQuad":2,"totalQuint":0,"crossoverLevel":581,"bracketLevel":457,"footswitchLevel":822,"jackLevel":476,"sideswitchLevel":308,"doublestepLevel":663,"staminaLevel":187,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"bluechows","sex":"Male","profileImg":""},{"id":900,"membersId":175584,"dateAdded":"2023-03-29T15:13:55.000Z","lastUpdated":"2023-05-06T17:02:16.000Z","status":1,"totalPoints":123719,"rankingPoints":110109,"totalPass":92,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1091,"bracketLevel":178,"footswitchLevel":533,"jackLevel":362,"sideswitchLevel":365,"doublestepLevel":711,"staminaLevel":110,"isBuddy":false,"preferences":"{\"discordId\":\"MegaGiganium#4235\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Vexi","sex":"Male","profileImg":""},{"id":467,"membersId":175369,"dateAdded":"2023-03-20T02:40:58.000Z","lastUpdated":"2023-04-22T02:50:03.000Z","status":1,"totalPoints":123060,"rankingPoints":109900,"totalPass":71,"totalFc":24,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1152,"bracketLevel":264,"footswitchLevel":667,"jackLevel":252,"sideswitchLevel":295,"doublestepLevel":883,"staminaLevel":37,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JAFUS","sex":"Male","profileImg":""},{"id":434,"membersId":175400,"dateAdded":"2023-03-19T22:27:47.000Z","lastUpdated":"2023-04-08T17:08:53.000Z","status":1,"totalPoints":128025,"rankingPoints":109670,"totalPass":87,"totalFc":11,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1286,"bracketLevel":251,"footswitchLevel":522,"jackLevel":266,"sideswitchLevel":88,"doublestepLevel":811,"staminaLevel":24,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"formi no bar","sex":"Male","profileImg":""},{"id":704,"membersId":75728,"dateAdded":"2023-03-23T17:10:53.000Z","lastUpdated":"2023-04-26T17:35:29.000Z","status":1,"totalPoints":113163,"rankingPoints":108321,"totalPass":75,"totalFc":8,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":957,"bracketLevel":255,"footswitchLevel":417,"jackLevel":210,"sideswitchLevel":164,"doublestepLevel":708,"staminaLevel":88,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"yaniel","sex":"Male","profileImg":""},{"id":596,"membersId":173428,"dateAdded":"2023-03-21T15:23:05.000Z","lastUpdated":"2023-03-23T18:51:30.000Z","status":1,"totalPoints":107515,"rankingPoints":107515,"totalPass":17,"totalFc":16,"totalFec":21,"totalQuad":2,"totalQuint":0,"crossoverLevel":1307,"bracketLevel":171,"footswitchLevel":318,"jackLevel":191,"sideswitchLevel":35,"doublestepLevel":919,"staminaLevel":52,"isBuddy":false,"preferences":"{\"discordId\":\"Bennooo#3250\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Beniplex","sex":"Male","profileImg":"https://i.imgur.com/cD4ScwL.png"},{"id":1239,"membersId":128330,"dateAdded":"2023-04-28T01:19:22.000Z","lastUpdated":"2023-04-28T22:21:20.000Z","status":1,"totalPoints":106101,"rankingPoints":106101,"totalPass":23,"totalFc":3,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":581,"bracketLevel":324,"footswitchLevel":411,"jackLevel":672,"sideswitchLevel":318,"doublestepLevel":512,"staminaLevel":119,"isBuddy":false,"preferences":"{\"discordId\":\"eggy#0001\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"goodbye","sex":"Female","profileImg":""},{"id":192,"membersId":127823,"dateAdded":"2023-03-18T23:02:21.000Z","lastUpdated":"2023-04-16T05:06:55.000Z","status":1,"totalPoints":105937,"rankingPoints":105937,"totalPass":28,"totalFc":11,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":481,"bracketLevel":297,"footswitchLevel":382,"jackLevel":436,"sideswitchLevel":97,"doublestepLevel":827,"staminaLevel":107,"isBuddy":false,"preferences":"{\"discordId\":\"Fresca#7450\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JONBUDDY","sex":"Male","profileImg":"https://i.imgur.com/7K4gyoz.png"},{"id":706,"membersId":174970,"dateAdded":"2023-03-23T20:18:32.000Z","lastUpdated":"2023-04-30T18:40:50.000Z","status":1,"totalPoints":121288,"rankingPoints":105229,"totalPass":74,"totalFc":25,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1232,"bracketLevel":181,"footswitchLevel":570,"jackLevel":211,"sideswitchLevel":44,"doublestepLevel":803,"staminaLevel":32,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Maryushi3","sex":"Male","profileImg":"https://mary.moe/wp-content/uploads/2023/04/blue-eye-250.png"},{"id":985,"membersId":174161,"dateAdded":"2023-04-03T00:45:10.000Z","lastUpdated":"2023-05-01T02:26:23.000Z","status":1,"totalPoints":104812,"rankingPoints":104812,"totalPass":32,"totalFc":27,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":958,"bracketLevel":121,"footswitchLevel":399,"jackLevel":100,"sideswitchLevel":0,"doublestepLevel":726,"staminaLevel":65,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Xidi","sex":"Male","profileImg":""},{"id":729,"membersId":5080,"dateAdded":"2023-03-24T15:38:36.000Z","lastUpdated":"2023-05-06T23:37:09.000Z","status":1,"totalPoints":104194,"rankingPoints":104194,"totalPass":20,"totalFc":5,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":526,"bracketLevel":162,"footswitchLevel":221,"jackLevel":458,"sideswitchLevel":72,"doublestepLevel":654,"staminaLevel":109,"isBuddy":false,"preferences":"{\"discordId\":\"JohnDesire#4837\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JohnDesire","sex":"Male","profileImg":""},{"id":334,"membersId":173808,"dateAdded":"2023-03-19T10:26:00.000Z","lastUpdated":"2023-04-22T22:02:30.000Z","status":1,"totalPoints":104192,"rankingPoints":104192,"totalPass":50,"totalFc":11,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1021,"bracketLevel":63,"footswitchLevel":459,"jackLevel":393,"sideswitchLevel":415,"doublestepLevel":591,"staminaLevel":73,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Madkurre","sex":"Male","profileImg":""},{"id":1129,"membersId":151195,"dateAdded":"2023-04-15T17:50:11.000Z","lastUpdated":"2023-04-23T21:05:22.000Z","status":1,"totalPoints":103000,"rankingPoints":103000,"totalPass":49,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":415,"bracketLevel":64,"footswitchLevel":238,"jackLevel":167,"sideswitchLevel":330,"doublestepLevel":433,"staminaLevel":384,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TheMusserO","sex":"Male","profileImg":""},{"id":690,"membersId":128892,"dateAdded":"2023-03-23T01:12:35.000Z","lastUpdated":"2023-04-11T19:28:34.000Z","status":1,"totalPoints":102472,"rankingPoints":102472,"totalPass":42,"totalFc":8,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":853,"bracketLevel":235,"footswitchLevel":470,"jackLevel":424,"sideswitchLevel":458,"doublestepLevel":669,"staminaLevel":84,"isBuddy":false,"preferences":"{\"discordId\":\"ZOM#3752\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ZOM","sex":"Male","profileImg":""},{"id":194,"membersId":7791,"dateAdded":"2023-03-18T23:05:14.000Z","lastUpdated":"2023-05-04T19:08:13.000Z","status":1,"totalPoints":101233,"rankingPoints":101233,"totalPass":32,"totalFc":13,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":373,"bracketLevel":368,"footswitchLevel":352,"jackLevel":186,"sideswitchLevel":331,"doublestepLevel":350,"staminaLevel":359,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CinnamonPie","sex":"Male","profileImg":""},{"id":446,"membersId":173183,"dateAdded":"2023-03-20T00:12:43.000Z","lastUpdated":"2023-03-27T01:12:23.000Z","status":1,"totalPoints":101051,"rankingPoints":101051,"totalPass":30,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":561,"bracketLevel":295,"footswitchLevel":453,"jackLevel":311,"sideswitchLevel":389,"doublestepLevel":640,"staminaLevel":190,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"rilegoat","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/1065639827845959690/1087164516313354310/the_riley.png"},{"id":934,"membersId":155530,"dateAdded":"2023-03-31T02:42:16.000Z","lastUpdated":"2023-04-21T03:33:55.000Z","status":1,"totalPoints":100966,"rankingPoints":100966,"totalPass":28,"totalFc":16,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":637,"bracketLevel":492,"footswitchLevel":392,"jackLevel":339,"sideswitchLevel":429,"doublestepLevel":335,"staminaLevel":165,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"San19","sex":"Male","profileImg":""},{"id":846,"membersId":75618,"dateAdded":"2023-03-27T00:10:20.000Z","lastUpdated":"2023-04-25T23:22:30.000Z","status":1,"totalPoints":100849,"rankingPoints":100849,"totalPass":12,"totalFc":4,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":298,"bracketLevel":435,"footswitchLevel":542,"jackLevel":312,"sideswitchLevel":581,"doublestepLevel":420,"staminaLevel":430,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kev!","sex":"Male","profileImg":""},{"id":821,"membersId":132059,"dateAdded":"2023-03-26T12:54:50.000Z","lastUpdated":"2023-04-22T16:53:33.000Z","status":1,"totalPoints":100729,"rankingPoints":100729,"totalPass":60,"totalFc":8,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1067,"bracketLevel":123,"footswitchLevel":417,"jackLevel":333,"sideswitchLevel":170,"doublestepLevel":823,"staminaLevel":64,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"IzzyLockhardt","sex":"Female","profileImg":""},{"id":967,"membersId":175632,"dateAdded":"2023-04-02T00:48:37.000Z","lastUpdated":"2023-05-01T23:09:53.000Z","status":1,"totalPoints":100690,"rankingPoints":100690,"totalPass":43,"totalFc":22,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":883,"bracketLevel":218,"footswitchLevel":515,"jackLevel":219,"sideswitchLevel":275,"doublestepLevel":816,"staminaLevel":30,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"emiess48","sex":"Unspecified","profileImg":""},{"id":261,"membersId":175353,"dateAdded":"2023-03-19T01:45:09.000Z","lastUpdated":"2023-04-26T23:31:18.000Z","status":1,"totalPoints":113097,"rankingPoints":100342,"totalPass":87,"totalFc":9,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1217,"bracketLevel":119,"footswitchLevel":366,"jackLevel":200,"sideswitchLevel":234,"doublestepLevel":679,"staminaLevel":24,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"meecheezink","sex":"Female","profileImg":""},{"id":1185,"membersId":173746,"dateAdded":"2023-04-22T12:19:06.000Z","lastUpdated":"2023-05-04T00:15:20.000Z","status":1,"totalPoints":100087,"rankingPoints":100087,"totalPass":50,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":796,"bracketLevel":148,"footswitchLevel":523,"jackLevel":295,"sideswitchLevel":154,"doublestepLevel":677,"staminaLevel":71,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"HenL","sex":"Male","profileImg":""},{"id":783,"membersId":175495,"dateAdded":"2023-03-25T15:34:59.000Z","lastUpdated":"2023-03-25T20:58:10.000Z","status":1,"totalPoints":99370,"rankingPoints":99370,"totalPass":19,"totalFc":5,"totalFec":11,"totalQuad":0,"totalQuint":0,"crossoverLevel":787,"bracketLevel":325,"footswitchLevel":449,"jackLevel":141,"sideswitchLevel":477,"doublestepLevel":228,"staminaLevel":71,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MisterGuy_","sex":"Male","profileImg":""},{"id":797,"membersId":167992,"dateAdded":"2023-03-25T19:55:11.000Z","lastUpdated":"2023-05-06T01:29:38.000Z","status":1,"totalPoints":97995,"rankingPoints":97995,"totalPass":24,"totalFc":15,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":718,"bracketLevel":248,"footswitchLevel":454,"jackLevel":153,"sideswitchLevel":373,"doublestepLevel":515,"staminaLevel":126,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SanHelbert","sex":"Male","profileImg":""},{"id":283,"membersId":66610,"dateAdded":"2023-03-19T02:58:26.000Z","lastUpdated":"2023-05-04T13:59:35.000Z","status":1,"totalPoints":97890,"rankingPoints":97890,"totalPass":26,"totalFc":6,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":684,"bracketLevel":290,"footswitchLevel":384,"jackLevel":460,"sideswitchLevel":221,"doublestepLevel":426,"staminaLevel":126,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"FabSab44","sex":"Female","profileImg":"https://i.ibb.co/pJB1krQ/spike4-4.jpg"},{"id":290,"membersId":174092,"dateAdded":"2023-03-19T03:31:38.000Z","lastUpdated":"2023-05-06T20:21:26.000Z","status":1,"totalPoints":97609,"rankingPoints":97609,"totalPass":24,"totalFc":14,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":701,"bracketLevel":337,"footswitchLevel":343,"jackLevel":231,"sideswitchLevel":517,"doublestepLevel":400,"staminaLevel":146,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sabidesu","sex":"Unspecified","profileImg":"https://i.imgur.com/JH1aEQ2.png"},{"id":1142,"membersId":173446,"dateAdded":"2023-04-16T17:26:20.000Z","lastUpdated":"2023-04-29T18:17:55.000Z","status":1,"totalPoints":95420,"rankingPoints":94847,"totalPass":50,"totalFc":24,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":1103,"bracketLevel":190,"footswitchLevel":489,"jackLevel":167,"sideswitchLevel":0,"doublestepLevel":655,"staminaLevel":12,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Cadrin","sex":"Male","profileImg":""},{"id":866,"membersId":66717,"dateAdded":"2023-03-28T00:59:26.000Z","lastUpdated":"2023-05-02T03:43:13.000Z","status":1,"totalPoints":94430,"rankingPoints":94430,"totalPass":13,"totalFc":5,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":337,"bracketLevel":82,"footswitchLevel":134,"jackLevel":173,"sideswitchLevel":57,"doublestepLevel":492,"staminaLevel":568,"isBuddy":true,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"AXB","sex":"Unspecified","profileImg":""},{"id":882,"membersId":168599,"dateAdded":"2023-03-28T22:22:40.000Z","lastUpdated":"2023-04-06T22:45:54.000Z","status":1,"totalPoints":93548,"rankingPoints":93548,"totalPass":25,"totalFc":23,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":924,"bracketLevel":98,"footswitchLevel":447,"jackLevel":297,"sideswitchLevel":63,"doublestepLevel":888,"staminaLevel":20,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PARTY MAN X","sex":"Male","profileImg":""},{"id":811,"membersId":165640,"dateAdded":"2023-03-26T01:49:42.000Z","lastUpdated":"2023-04-16T07:24:25.000Z","status":1,"totalPoints":93096,"rankingPoints":93096,"totalPass":31,"totalFc":3,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":697,"bracketLevel":126,"footswitchLevel":497,"jackLevel":285,"sideswitchLevel":372,"doublestepLevel":622,"staminaLevel":74,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"bibbzzu","sex":"Unspecified","profileImg":""},{"id":724,"membersId":175473,"dateAdded":"2023-03-24T03:12:38.000Z","lastUpdated":"2023-04-28T04:00:05.000Z","status":1,"totalPoints":101118,"rankingPoints":91293,"totalPass":91,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":964,"bracketLevel":205,"footswitchLevel":403,"jackLevel":165,"sideswitchLevel":115,"doublestepLevel":735,"staminaLevel":19,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"quartz","sex":"Female","profileImg":""},{"id":410,"membersId":127796,"dateAdded":"2023-03-19T20:05:58.000Z","lastUpdated":"2023-04-22T04:21:06.000Z","status":1,"totalPoints":91138,"rankingPoints":91138,"totalPass":42,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":658,"bracketLevel":276,"footswitchLevel":327,"jackLevel":215,"sideswitchLevel":547,"doublestepLevel":312,"staminaLevel":140,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"scientificRex","sex":"Female","profileImg":""},{"id":1182,"membersId":175943,"dateAdded":"2023-04-22T00:45:54.000Z","lastUpdated":"2023-05-06T18:26:15.000Z","status":1,"totalPoints":90939,"rankingPoints":90939,"totalPass":30,"totalFc":5,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":635,"bracketLevel":182,"footswitchLevel":389,"jackLevel":397,"sideswitchLevel":51,"doublestepLevel":382,"staminaLevel":129,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Puddi","sex":"Male","profileImg":"https://i.imgur.com/amUeoKz.png"},{"id":383,"membersId":175393,"dateAdded":"2023-03-19T17:46:49.000Z","lastUpdated":"2023-05-03T18:51:14.000Z","status":1,"totalPoints":97344,"rankingPoints":90512,"totalPass":65,"totalFc":21,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1096,"bracketLevel":104,"footswitchLevel":289,"jackLevel":113,"sideswitchLevel":19,"doublestepLevel":554,"staminaLevel":20,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"henna2","sex":"Female","profileImg":""},{"id":195,"membersId":75729,"dateAdded":"2023-03-18T23:05:34.000Z","lastUpdated":"2023-03-26T21:07:40.000Z","status":1,"totalPoints":95698,"rankingPoints":90429,"totalPass":84,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":910,"bracketLevel":145,"footswitchLevel":393,"jackLevel":145,"sideswitchLevel":0,"doublestepLevel":687,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"help","sex":"Male","profileImg":"https://i.imgur.com/AKnOujq.jpg"},{"id":569,"membersId":4036,"dateAdded":"2023-03-21T01:09:12.000Z","lastUpdated":"2023-03-25T21:17:53.000Z","status":1,"totalPoints":89133,"rankingPoints":89133,"totalPass":11,"totalFc":9,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":1089,"bracketLevel":174,"footswitchLevel":422,"jackLevel":212,"sideswitchLevel":1594,"doublestepLevel":351,"staminaLevel":248,"isBuddy":false,"preferences":"{\"discordId\":\"Spootaloo#4562\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Spooty","sex":"Male","profileImg":"https://i.imgur.com/iOUDtBl.png"},{"id":360,"membersId":173497,"dateAdded":"2023-03-19T15:57:03.000Z","lastUpdated":"2023-05-06T20:19:28.000Z","status":1,"totalPoints":88675,"rankingPoints":88675,"totalPass":15,"totalFc":17,"totalFec":23,"totalQuad":1,"totalQuint":0,"crossoverLevel":1085,"bracketLevel":36,"footswitchLevel":315,"jackLevel":198,"sideswitchLevel":63,"doublestepLevel":440,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"newtim","sex":"Unspecified","profileImg":""},{"id":435,"membersId":148688,"dateAdded":"2023-03-19T22:29:32.000Z","lastUpdated":"2023-05-05T03:53:06.000Z","status":1,"totalPoints":88400,"rankingPoints":88400,"totalPass":0,"totalFc":2,"totalFec":12,"totalQuad":13,"totalQuint":0,"crossoverLevel":792,"bracketLevel":6,"footswitchLevel":170,"jackLevel":99,"sideswitchLevel":335,"doublestepLevel":213,"staminaLevel":149,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Magmar","sex":"Male","profileImg":"https://www.serebii.net/swordshield/pokemon/126.png"},{"id":164,"membersId":173016,"dateAdded":"2023-03-18T22:29:31.000Z","lastUpdated":"2023-04-15T17:35:15.000Z","status":1,"totalPoints":91281,"rankingPoints":88388,"totalPass":75,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":859,"bracketLevel":169,"footswitchLevel":367,"jackLevel":145,"sideswitchLevel":31,"doublestepLevel":600,"staminaLevel":23,"isBuddy":false,"preferences":"{\"discordId\":\"omgukk#6953\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"omgukk","sex":"Unspecified","profileImg":"https://i.ibb.co/TqvJY9m/GS-Avatar.png"},{"id":444,"membersId":174814,"dateAdded":"2023-03-19T23:49:58.000Z","lastUpdated":"2023-05-01T16:54:02.000Z","status":1,"totalPoints":88313,"rankingPoints":88313,"totalPass":42,"totalFc":11,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":840,"bracketLevel":248,"footswitchLevel":477,"jackLevel":164,"sideswitchLevel":339,"doublestepLevel":415,"staminaLevel":70,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"autumn!!","sex":"Female","profileImg":""},{"id":1150,"membersId":175877,"dateAdded":"2023-04-17T22:24:05.000Z","lastUpdated":"2023-05-05T22:24:03.000Z","status":1,"totalPoints":90946,"rankingPoints":87864,"totalPass":62,"totalFc":18,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1013,"bracketLevel":114,"footswitchLevel":345,"jackLevel":139,"sideswitchLevel":0,"doublestepLevel":550,"staminaLevel":25,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"holepigeon","sex":"Unspecified","profileImg":""},{"id":510,"membersId":91184,"dateAdded":"2023-03-20T16:38:28.000Z","lastUpdated":"2023-05-05T17:01:13.000Z","status":1,"totalPoints":87304,"rankingPoints":87304,"totalPass":33,"totalFc":9,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":403,"bracketLevel":296,"footswitchLevel":393,"jackLevel":305,"sideswitchLevel":488,"doublestepLevel":253,"staminaLevel":324,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Roujo","sex":"Male","profileImg":"https://landing.toepi.moe/img/roujo_avatar.png"},{"id":653,"membersId":175443,"dateAdded":"2023-03-22T16:24:45.000Z","lastUpdated":"2023-04-24T17:17:13.000Z","status":1,"totalPoints":87172,"rankingPoints":87172,"totalPass":45,"totalFc":22,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":1108,"bracketLevel":173,"footswitchLevel":293,"jackLevel":132,"sideswitchLevel":14,"doublestepLevel":509,"staminaLevel":15,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MayMay","sex":"Female","profileImg":"https://i.postimg.cc/kXdCtLcN/c8dde011-d3b0-4042-a41a-c52f77aee30d-1.jpg"},{"id":937,"membersId":173194,"dateAdded":"2023-03-31T16:10:43.000Z","lastUpdated":"2023-04-08T21:01:54.000Z","status":1,"totalPoints":86713,"rankingPoints":86713,"totalPass":8,"totalFc":3,"totalFec":8,"totalQuad":2,"totalQuint":0,"crossoverLevel":527,"bracketLevel":409,"footswitchLevel":541,"jackLevel":441,"sideswitchLevel":266,"doublestepLevel":421,"staminaLevel":202,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Cowboy Tony (NO BAR)","sex":"Male","profileImg":""},{"id":426,"membersId":1,"dateAdded":"2023-03-19T21:34:16.000Z","lastUpdated":"2023-05-07T03:56:20.000Z","status":1,"totalPoints":86581,"rankingPoints":86581,"totalPass":15,"totalFc":4,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":438,"bracketLevel":323,"footswitchLevel":440,"jackLevel":294,"sideswitchLevel":310,"doublestepLevel":237,"staminaLevel":146,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"asfl.ChezMiX","sex":"Male","profileImg":""},{"id":343,"membersId":131549,"dateAdded":"2023-03-19T12:18:11.000Z","lastUpdated":"2023-04-29T14:13:01.000Z","status":1,"totalPoints":86043,"rankingPoints":86043,"totalPass":44,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":536,"bracketLevel":184,"footswitchLevel":433,"jackLevel":193,"sideswitchLevel":54,"doublestepLevel":570,"staminaLevel":96,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Thumbsy","sex":"Unspecified","profileImg":"https://i.imgur.com/CkQ6JlH.jpg"},{"id":412,"membersId":165900,"dateAdded":"2023-03-19T20:09:06.000Z","lastUpdated":"2023-04-26T22:36:43.000Z","status":1,"totalPoints":85911,"rankingPoints":85911,"totalPass":43,"totalFc":32,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":997,"bracketLevel":127,"footswitchLevel":291,"jackLevel":148,"sideswitchLevel":0,"doublestepLevel":531,"staminaLevel":11,"isBuddy":false,"preferences":"{\"discordId\":\"RatherBe#3282\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"RatherBe","sex":"Female","profileImg":"https://en.gravatar.com/userimage/6513490/59450bc0fe5a2e007ab5d8e98f241e5e.png"},{"id":402,"membersId":129324,"dateAdded":"2023-03-19T19:33:30.000Z","lastUpdated":"2023-04-08T19:46:14.000Z","status":1,"totalPoints":85870,"rankingPoints":85870,"totalPass":10,"totalFc":6,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":354,"bracketLevel":238,"footswitchLevel":243,"jackLevel":397,"sideswitchLevel":195,"doublestepLevel":206,"staminaLevel":175,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DarwynHyena","sex":"Male","profileImg":"https://i.imgur.com/Fg7ku48.png"},{"id":522,"membersId":74441,"dateAdded":"2023-03-20T18:48:40.000Z","lastUpdated":"2023-05-06T03:18:29.000Z","status":1,"totalPoints":85699,"rankingPoints":85699,"totalPass":13,"totalFc":4,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":384,"bracketLevel":433,"footswitchLevel":452,"jackLevel":310,"sideswitchLevel":529,"doublestepLevel":448,"staminaLevel":156,"isBuddy":false,"preferences":"{\"discordId\":\"Crash Cringle#0001\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"CrashCringle12","sex":"Male","profileImg":""},{"id":787,"membersId":175516,"dateAdded":"2023-03-25T17:20:53.000Z","lastUpdated":"2023-05-01T13:01:55.000Z","status":1,"totalPoints":88986,"rankingPoints":84900,"totalPass":64,"totalFc":18,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1003,"bracketLevel":102,"footswitchLevel":238,"jackLevel":136,"sideswitchLevel":35,"doublestepLevel":499,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":\"joonamo#3988\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"joonamo","sex":"Unspecified","profileImg":"https://raw.githubusercontent.com/joonamo/joonamodotcom/main/public/android-chrome-192x192.png"},{"id":1169,"membersId":172953,"dateAdded":"2023-04-20T00:29:24.000Z","lastUpdated":"2023-04-26T23:28:06.000Z","status":1,"totalPoints":84422,"rankingPoints":84422,"totalPass":10,"totalFc":4,"totalFec":7,"totalQuad":4,"totalQuint":0,"crossoverLevel":715,"bracketLevel":319,"footswitchLevel":356,"jackLevel":252,"sideswitchLevel":310,"doublestepLevel":741,"staminaLevel":112,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JEN86","sex":"Male","profileImg":""},{"id":1190,"membersId":113748,"dateAdded":"2023-04-22T22:38:52.000Z","lastUpdated":"2023-04-28T02:23:18.000Z","status":1,"totalPoints":84339,"rankingPoints":84339,"totalPass":20,"totalFc":7,"totalFec":3,"totalQuad":1,"totalQuint":0,"crossoverLevel":549,"bracketLevel":323,"footswitchLevel":368,"jackLevel":82,"sideswitchLevel":123,"doublestepLevel":432,"staminaLevel":228,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"XEPH3R","sex":"Male","profileImg":""},{"id":1072,"membersId":175774,"dateAdded":"2023-04-09T19:27:54.000Z","lastUpdated":"2023-04-11T03:39:54.000Z","status":1,"totalPoints":84295,"rankingPoints":84295,"totalPass":53,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":663,"bracketLevel":221,"footswitchLevel":437,"jackLevel":156,"sideswitchLevel":110,"doublestepLevel":514,"staminaLevel":55,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ismaess48","sex":"Unspecified","profileImg":""},{"id":1043,"membersId":175743,"dateAdded":"2023-04-07T05:39:07.000Z","lastUpdated":"2023-04-28T23:07:59.000Z","status":1,"totalPoints":83332,"rankingPoints":83332,"totalPass":21,"totalFc":3,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":471,"bracketLevel":318,"footswitchLevel":528,"jackLevel":332,"sideswitchLevel":275,"doublestepLevel":232,"staminaLevel":153,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DC.MAX-TCOL","sex":"Male","profileImg":""},{"id":796,"membersId":173661,"dateAdded":"2023-03-25T19:07:26.000Z","lastUpdated":"2023-04-30T19:45:58.000Z","status":1,"totalPoints":83328,"rankingPoints":83328,"totalPass":36,"totalFc":20,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":718,"bracketLevel":273,"footswitchLevel":377,"jackLevel":353,"sideswitchLevel":230,"doublestepLevel":452,"staminaLevel":34,"isBuddy":false,"preferences":"{\"discordId\":\"flow#6577\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"volt20","sex":"Unspecified","profileImg":""},{"id":1094,"membersId":66472,"dateAdded":"2023-04-11T13:34:43.000Z","lastUpdated":"2023-04-30T14:19:22.000Z","status":1,"totalPoints":82888,"rankingPoints":82888,"totalPass":6,"totalFc":7,"totalFec":16,"totalQuad":9,"totalQuint":0,"crossoverLevel":984,"bracketLevel":140,"footswitchLevel":339,"jackLevel":141,"sideswitchLevel":115,"doublestepLevel":457,"staminaLevel":10,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Silke","sex":"Female","profileImg":""},{"id":32,"membersId":46750,"dateAdded":"2023-03-18T21:48:57.000Z","lastUpdated":"2023-03-25T23:30:03.000Z","status":1,"totalPoints":82746,"rankingPoints":82746,"totalPass":10,"totalFc":4,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":504,"bracketLevel":334,"footswitchLevel":497,"jackLevel":225,"sideswitchLevel":1370,"doublestepLevel":482,"staminaLevel":228,"isBuddy":false,"preferences":"{\"discordId\":\"ashastral#9999\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ashastral","sex":"Unspecified","profileImg":"https://i.imgur.com/It0uRbP.jpg"},{"id":422,"membersId":173277,"dateAdded":"2023-03-19T21:10:01.000Z","lastUpdated":"2023-03-20T01:25:09.000Z","status":1,"totalPoints":82472,"rankingPoints":82472,"totalPass":30,"totalFc":3,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":595,"bracketLevel":394,"footswitchLevel":456,"jackLevel":493,"sideswitchLevel":132,"doublestepLevel":769,"staminaLevel":62,"isBuddy":false,"preferences":"{\"discordId\":\"cg505#0922\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"cg505","sex":"Unspecified","profileImg":""},{"id":449,"membersId":173637,"dateAdded":"2023-03-20T00:41:10.000Z","lastUpdated":"2023-05-06T01:23:12.000Z","status":1,"totalPoints":82327,"rankingPoints":82327,"totalPass":38,"totalFc":15,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":744,"bracketLevel":197,"footswitchLevel":511,"jackLevel":292,"sideswitchLevel":117,"doublestepLevel":609,"staminaLevel":49,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"hlp","sex":"Unspecified","profileImg":"https://i.imgur.com/MxgHjJL.png"},{"id":715,"membersId":127930,"dateAdded":"2023-03-24T01:04:24.000Z","lastUpdated":"2023-04-22T21:39:02.000Z","status":1,"totalPoints":81758,"rankingPoints":81758,"totalPass":14,"totalFc":15,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":998,"bracketLevel":174,"footswitchLevel":405,"jackLevel":64,"sideswitchLevel":225,"doublestepLevel":729,"staminaLevel":43,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Astriferous","sex":"Female","profileImg":"https://i.ibb.co/Rh1ZrTM/Picrew1.jpg"},{"id":1108,"membersId":2009,"dateAdded":"2023-04-12T22:17:04.000Z","lastUpdated":"2023-05-03T03:54:52.000Z","status":1,"totalPoints":81591,"rankingPoints":81591,"totalPass":40,"totalFc":10,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":617,"bracketLevel":218,"footswitchLevel":343,"jackLevel":206,"sideswitchLevel":209,"doublestepLevel":476,"staminaLevel":50,"isBuddy":false,"preferences":"{\"discordId\":\"Mixt#8662\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"(TG) TW!X","sex":"Male","profileImg":""},{"id":1062,"membersId":175347,"dateAdded":"2023-04-08T17:08:58.000Z","lastUpdated":"2023-04-08T20:18:22.000Z","status":1,"totalPoints":80811,"rankingPoints":80811,"totalPass":19,"totalFc":1,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":514,"bracketLevel":306,"footswitchLevel":317,"jackLevel":72,"sideswitchLevel":580,"doublestepLevel":275,"staminaLevel":181,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dmtechno","sex":"Unspecified","profileImg":""},{"id":484,"membersId":173550,"dateAdded":"2023-03-20T08:06:42.000Z","lastUpdated":"2023-04-27T02:12:32.000Z","status":1,"totalPoints":81070,"rankingPoints":80501,"totalPass":63,"totalFc":13,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":930,"bracketLevel":118,"footswitchLevel":387,"jackLevel":149,"sideswitchLevel":19,"doublestepLevel":505,"staminaLevel":11,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"twored","sex":"Male","profileImg":""},{"id":469,"membersId":5591,"dateAdded":"2023-03-20T02:55:52.000Z","lastUpdated":"2023-04-29T19:59:08.000Z","status":1,"totalPoints":80394,"rankingPoints":80394,"totalPass":26,"totalFc":18,"totalFec":13,"totalQuad":0,"totalQuint":0,"crossoverLevel":927,"bracketLevel":165,"footswitchLevel":329,"jackLevel":113,"sideswitchLevel":0,"doublestepLevel":578,"staminaLevel":6,"isBuddy":false,"preferences":"{\"discordId\":\"Adam Ortiz#7487\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ortiz","sex":"Male","profileImg":"https://i.imgur.com/a5cT6Ek.png"},{"id":972,"membersId":175275,"dateAdded":"2023-04-02T12:22:08.000Z","lastUpdated":"2023-05-05T11:37:24.000Z","status":1,"totalPoints":86854,"rankingPoints":80187,"totalPass":88,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":844,"bracketLevel":93,"footswitchLevel":278,"jackLevel":136,"sideswitchLevel":14,"doublestepLevel":527,"staminaLevel":11,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Aisumi","sex":"Unspecified","profileImg":""},{"id":815,"membersId":175529,"dateAdded":"2023-03-26T03:39:11.000Z","lastUpdated":"2023-04-30T05:05:58.000Z","status":1,"totalPoints":79947,"rankingPoints":79947,"totalPass":18,"totalFc":12,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":412,"bracketLevel":245,"footswitchLevel":447,"jackLevel":247,"sideswitchLevel":455,"doublestepLevel":559,"staminaLevel":85,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"toibo.bi","sex":"Unspecified","profileImg":""},{"id":601,"membersId":175425,"dateAdded":"2023-03-21T17:59:58.000Z","lastUpdated":"2023-03-31T20:02:14.000Z","status":1,"totalPoints":79565,"rankingPoints":79565,"totalPass":10,"totalFc":4,"totalFec":2,"totalQuad":6,"totalQuint":0,"crossoverLevel":611,"bracketLevel":308,"footswitchLevel":479,"jackLevel":231,"sideswitchLevel":413,"doublestepLevel":228,"staminaLevel":38,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SMX Stan","sex":"Unspecified","profileImg":""},{"id":1157,"membersId":175887,"dateAdded":"2023-04-18T21:04:49.000Z","lastUpdated":"2023-04-29T23:53:51.000Z","status":1,"totalPoints":79306,"rankingPoints":79306,"totalPass":19,"totalFc":6,"totalFec":5,"totalQuad":1,"totalQuint":0,"crossoverLevel":670,"bracketLevel":41,"footswitchLevel":231,"jackLevel":347,"sideswitchLevel":71,"doublestepLevel":712,"staminaLevel":47,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"M1L4","sex":"Male","profileImg":""},{"id":924,"membersId":175608,"dateAdded":"2023-03-30T17:18:08.000Z","lastUpdated":"2023-04-01T20:06:07.000Z","status":1,"totalPoints":77923,"rankingPoints":77923,"totalPass":20,"totalFc":4,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":374,"bracketLevel":263,"footswitchLevel":330,"jackLevel":70,"sideswitchLevel":332,"doublestepLevel":146,"staminaLevel":159,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"GospelEXEBar","sex":"Unspecified","profileImg":""},{"id":284,"membersId":6027,"dateAdded":"2023-03-19T03:03:14.000Z","lastUpdated":"2023-04-01T20:59:39.000Z","status":1,"totalPoints":77895,"rankingPoints":77895,"totalPass":39,"totalFc":22,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":763,"bracketLevel":182,"footswitchLevel":394,"jackLevel":148,"sideswitchLevel":0,"doublestepLevel":543,"staminaLevel":30,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"b4mv","sex":"Male","profileImg":""},{"id":307,"membersId":174829,"dateAdded":"2023-03-19T04:58:16.000Z","lastUpdated":"2023-03-22T10:59:19.000Z","status":1,"totalPoints":77489,"rankingPoints":77489,"totalPass":18,"totalFc":13,"totalFec":18,"totalQuad":0,"totalQuint":0,"crossoverLevel":879,"bracketLevel":136,"footswitchLevel":277,"jackLevel":179,"sideswitchLevel":121,"doublestepLevel":735,"staminaLevel":57,"isBuddy":false,"preferences":"{\"discordId\":\"Oscar#9001\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"pogscar","sex":"Male","profileImg":""},{"id":580,"membersId":5727,"dateAdded":"2023-03-21T04:05:06.000Z","lastUpdated":"2023-04-13T05:11:36.000Z","status":1,"totalPoints":77253,"rankingPoints":77253,"totalPass":12,"totalFc":21,"totalFec":24,"totalQuad":0,"totalQuint":0,"crossoverLevel":956,"bracketLevel":144,"footswitchLevel":263,"jackLevel":98,"sideswitchLevel":0,"doublestepLevel":555,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Pangolin","sex":"Female","profileImg":""},{"id":770,"membersId":173752,"dateAdded":"2023-03-25T07:05:58.000Z","lastUpdated":"2023-05-02T00:03:14.000Z","status":1,"totalPoints":77222,"rankingPoints":77222,"totalPass":50,"totalFc":9,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":756,"bracketLevel":194,"footswitchLevel":355,"jackLevel":104,"sideswitchLevel":78,"doublestepLevel":349,"staminaLevel":15,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Mikerob","sex":"Male","profileImg":""},{"id":691,"membersId":173396,"dateAdded":"2023-03-23T01:31:52.000Z","lastUpdated":"2023-04-13T16:27:14.000Z","status":1,"totalPoints":77197,"rankingPoints":77197,"totalPass":11,"totalFc":6,"totalFec":13,"totalQuad":6,"totalQuint":0,"crossoverLevel":870,"bracketLevel":162,"footswitchLevel":381,"jackLevel":121,"sideswitchLevel":295,"doublestepLevel":588,"staminaLevel":30,"isBuddy":false,"preferences":"{\"discordId\":\"pauliwrath#5917\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"pauliwrath","sex":"Male","profileImg":"https://img.rankedboost.com/wp-content/uploads/2020/06/Poliwrath-Pokemon-Sword-and-Shield.png"},{"id":973,"membersId":175661,"dateAdded":"2023-04-02T14:41:46.000Z","lastUpdated":"2023-04-22T22:25:56.000Z","status":1,"totalPoints":77052,"rankingPoints":77052,"totalPass":31,"totalFc":17,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":726,"bracketLevel":97,"footswitchLevel":228,"jackLevel":147,"sideswitchLevel":187,"doublestepLevel":532,"staminaLevel":24,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ZZUnlimited","sex":"Male","profileImg":"https://s2.narvii.com/image/7egsb4ibhzoeeychp63amnd6rvo226c3_128.jpg"},{"id":1191,"membersId":175950,"dateAdded":"2023-04-23T01:52:41.000Z","lastUpdated":"2023-04-23T04:30:45.000Z","status":1,"totalPoints":76741,"rankingPoints":76741,"totalPass":24,"totalFc":4,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":576,"bracketLevel":184,"footswitchLevel":387,"jackLevel":161,"sideswitchLevel":191,"doublestepLevel":509,"staminaLevel":52,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Fredo","sex":"Male","profileImg":""},{"id":103,"membersId":173303,"dateAdded":"2023-03-18T21:53:31.000Z","lastUpdated":"2023-05-06T20:00:18.000Z","status":1,"totalPoints":75888,"rankingPoints":75888,"totalPass":61,"totalFc":10,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":868,"bracketLevel":88,"footswitchLevel":312,"jackLevel":106,"sideswitchLevel":0,"doublestepLevel":505,"staminaLevel":12,"isBuddy":false,"preferences":"{\"discordId\":\"Avaloneum#4115\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Avaloneum","sex":"Female","profileImg":""},{"id":485,"membersId":175407,"dateAdded":"2023-03-20T08:57:40.000Z","lastUpdated":"2023-05-06T08:52:37.000Z","status":1,"totalPoints":75830,"rankingPoints":75830,"totalPass":60,"totalFc":11,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":832,"bracketLevel":151,"footswitchLevel":253,"jackLevel":110,"sideswitchLevel":0,"doublestepLevel":529,"staminaLevel":10,"isBuddy":false,"preferences":"{\"discordId\":\"Ninomae Nimo (一ニモ)#0158\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Nimocchi","sex":"Unspecified","profileImg":""},{"id":546,"membersId":174955,"dateAdded":"2023-03-20T21:49:22.000Z","lastUpdated":"2023-04-03T17:07:35.000Z","status":1,"totalPoints":75416,"rankingPoints":75416,"totalPass":48,"totalFc":19,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":731,"bracketLevel":109,"footswitchLevel":286,"jackLevel":130,"sideswitchLevel":0,"doublestepLevel":659,"staminaLevel":8,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ucoa","sex":"Unspecified","profileImg":""},{"id":628,"membersId":127790,"dateAdded":"2023-03-22T00:55:20.000Z","lastUpdated":"2023-04-05T17:50:37.000Z","status":1,"totalPoints":75015,"rankingPoints":75015,"totalPass":12,"totalFc":5,"totalFec":17,"totalQuad":0,"totalQuint":0,"crossoverLevel":651,"bracketLevel":107,"footswitchLevel":225,"jackLevel":241,"sideswitchLevel":31,"doublestepLevel":549,"staminaLevel":37,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"emcat","sex":"Female","profileImg":"https://66.media.tumblr.com/96e64398d029e21502402b070fecda43/tumblr_pvwcak806k1x3sogho3_250.png"},{"id":888,"membersId":173710,"dateAdded":"2023-03-29T01:51:13.000Z","lastUpdated":"2023-05-02T03:40:35.000Z","status":1,"totalPoints":74802,"rankingPoints":74802,"totalPass":29,"totalFc":8,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":668,"bracketLevel":366,"footswitchLevel":403,"jackLevel":337,"sideswitchLevel":83,"doublestepLevel":549,"staminaLevel":45,"isBuddy":false,"preferences":"{\"discordId\":\"gentu#3606\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"gentu","sex":"Male","profileImg":""},{"id":742,"membersId":173434,"dateAdded":"2023-03-24T20:53:22.000Z","lastUpdated":"2023-03-25T20:01:38.000Z","status":1,"totalPoints":74503,"rankingPoints":74503,"totalPass":5,"totalFc":1,"totalFec":6,"totalQuad":6,"totalQuint":0,"crossoverLevel":369,"bracketLevel":354,"footswitchLevel":415,"jackLevel":386,"sideswitchLevel":44,"doublestepLevel":281,"staminaLevel":176,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"NickTrioxin","sex":"Unspecified","profileImg":""},{"id":592,"membersId":80607,"dateAdded":"2023-03-21T12:43:11.000Z","lastUpdated":"2023-04-30T11:13:57.000Z","status":1,"totalPoints":73964,"rankingPoints":73964,"totalPass":27,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":382,"bracketLevel":303,"footswitchLevel":359,"jackLevel":168,"sideswitchLevel":171,"doublestepLevel":253,"staminaLevel":233,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Stefe","sex":"Male","profileImg":""},{"id":1251,"membersId":5207,"dateAdded":"2023-04-30T02:46:42.000Z","lastUpdated":"2023-04-30T04:20:32.000Z","status":1,"totalPoints":73945,"rankingPoints":73945,"totalPass":14,"totalFc":7,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":549,"bracketLevel":145,"footswitchLevel":329,"jackLevel":74,"sideswitchLevel":455,"doublestepLevel":640,"staminaLevel":113,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kanji666","sex":"Male","profileImg":""},{"id":66,"membersId":46152,"dateAdded":"2023-03-18T21:49:51.000Z","lastUpdated":"2023-04-23T21:31:37.000Z","status":1,"totalPoints":72784,"rankingPoints":72784,"totalPass":3,"totalFc":3,"totalFec":12,"totalQuad":0,"totalQuint":0,"crossoverLevel":447,"bracketLevel":97,"footswitchLevel":452,"jackLevel":337,"sideswitchLevel":309,"doublestepLevel":585,"staminaLevel":110,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"gerald","sex":"Male","profileImg":"https://i.ibb.co/mh1BK4G/Screenshot-20220526-161726-319-2.png"},{"id":604,"membersId":174237,"dateAdded":"2023-03-21T18:50:34.000Z","lastUpdated":"2023-05-05T19:09:34.000Z","status":1,"totalPoints":72506,"rankingPoints":72506,"totalPass":55,"totalFc":14,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":858,"bracketLevel":114,"footswitchLevel":299,"jackLevel":89,"sideswitchLevel":18,"doublestepLevel":393,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":\"Reina#9841\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Reina0111","sex":"Female","profileImg":"https://i.imgur.com/XnSpwDi.png"},{"id":840,"membersId":173400,"dateAdded":"2023-03-26T22:18:28.000Z","lastUpdated":"2023-05-02T01:13:43.000Z","status":1,"totalPoints":72447,"rankingPoints":72447,"totalPass":52,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":584,"bracketLevel":81,"footswitchLevel":270,"jackLevel":167,"sideswitchLevel":230,"doublestepLevel":381,"staminaLevel":21,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Fblthp","sex":"Female","profileImg":""},{"id":200,"membersId":170802,"dateAdded":"2023-03-18T23:16:43.000Z","lastUpdated":"2023-05-04T15:12:44.000Z","status":1,"totalPoints":71636,"rankingPoints":71636,"totalPass":20,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":501,"bracketLevel":376,"footswitchLevel":346,"jackLevel":187,"sideswitchLevel":975,"doublestepLevel":323,"staminaLevel":136,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PerfectTaste","sex":"Male","profileImg":""},{"id":1262,"membersId":172689,"dateAdded":"2023-05-01T14:42:41.000Z","lastUpdated":"2023-05-04T16:39:53.000Z","status":1,"totalPoints":71535,"rankingPoints":71535,"totalPass":27,"totalFc":20,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":709,"bracketLevel":93,"footswitchLevel":369,"jackLevel":249,"sideswitchLevel":160,"doublestepLevel":754,"staminaLevel":85,"isBuddy":false,"preferences":"{\"discordId\":\"Yuiko#3000\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Yuiko","sex":"Unspecified","profileImg":""},{"id":884,"membersId":1481,"dateAdded":"2023-03-28T22:52:20.000Z","lastUpdated":"2023-04-05T23:09:20.000Z","status":1,"totalPoints":71025,"rankingPoints":71025,"totalPass":22,"totalFc":12,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":754,"bracketLevel":8,"footswitchLevel":373,"jackLevel":141,"sideswitchLevel":85,"doublestepLevel":763,"staminaLevel":22,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"kimalaka","sex":"Female","profileImg":""},{"id":487,"membersId":174207,"dateAdded":"2023-03-20T11:17:19.000Z","lastUpdated":"2023-05-04T15:47:15.000Z","status":1,"totalPoints":70797,"rankingPoints":70797,"totalPass":39,"totalFc":9,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":710,"bracketLevel":109,"footswitchLevel":451,"jackLevel":201,"sideswitchLevel":225,"doublestepLevel":447,"staminaLevel":51,"isBuddy":false,"preferences":"{\"discordId\":\"Meta-link#4622\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Meta-link","sex":"Male","profileImg":"https://i.ibb.co/hBrnH4B/tux-200.png"},{"id":935,"membersId":7107,"dateAdded":"2023-03-31T02:42:18.000Z","lastUpdated":"2023-04-23T23:28:53.000Z","status":1,"totalPoints":70531,"rankingPoints":70531,"totalPass":12,"totalFc":10,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":528,"bracketLevel":120,"footswitchLevel":323,"jackLevel":222,"sideswitchLevel":64,"doublestepLevel":337,"staminaLevel":57,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"yyr","sex":"Male","profileImg":""},{"id":459,"membersId":8157,"dateAdded":"2023-03-20T01:48:31.000Z","lastUpdated":"2023-04-29T00:26:50.000Z","status":1,"totalPoints":70364,"rankingPoints":70364,"totalPass":0,"totalFc":3,"totalFec":11,"totalQuad":3,"totalQuint":0,"crossoverLevel":465,"bracketLevel":178,"footswitchLevel":496,"jackLevel":85,"sideswitchLevel":173,"doublestepLevel":388,"staminaLevel":159,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BONG","sex":"Male","profileImg":""},{"id":1170,"membersId":175912,"dateAdded":"2023-04-20T07:12:40.000Z","lastUpdated":"2023-05-01T00:13:06.000Z","status":1,"totalPoints":69961,"rankingPoints":69961,"totalPass":19,"totalFc":2,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":375,"bracketLevel":158,"footswitchLevel":269,"jackLevel":90,"sideswitchLevel":315,"doublestepLevel":258,"staminaLevel":106,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Mr3dimensional","sex":"Unspecified","profileImg":""},{"id":178,"membersId":173564,"dateAdded":"2023-03-18T22:41:11.000Z","lastUpdated":"2023-04-07T00:55:47.000Z","status":1,"totalPoints":69805,"rankingPoints":69805,"totalPass":30,"totalFc":27,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":670,"bracketLevel":100,"footswitchLevel":254,"jackLevel":116,"sideswitchLevel":215,"doublestepLevel":467,"staminaLevel":14,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"AppleDew","sex":"Female","profileImg":"https://i.imgur.com/BJSw0iW.jpg"},{"id":388,"membersId":175384,"dateAdded":"2023-03-19T17:54:04.000Z","lastUpdated":"2023-03-30T14:30:26.000Z","status":1,"totalPoints":68689,"rankingPoints":68689,"totalPass":33,"totalFc":21,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":750,"bracketLevel":22,"footswitchLevel":268,"jackLevel":253,"sideswitchLevel":88,"doublestepLevel":565,"staminaLevel":10,"isBuddy":false,"preferences":"{\"discordId\":\"HeySora#4033\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"HeySora","sex":"Female","profileImg":"https://www.heysora.net/img/Sora250.png"},{"id":625,"membersId":44927,"dateAdded":"2023-03-21T23:45:18.000Z","lastUpdated":"2023-05-04T01:09:29.000Z","status":1,"totalPoints":68146,"rankingPoints":68146,"totalPass":4,"totalFc":1,"totalFec":12,"totalQuad":3,"totalQuint":0,"crossoverLevel":487,"bracketLevel":74,"footswitchLevel":393,"jackLevel":37,"sideswitchLevel":605,"doublestepLevel":248,"staminaLevel":46,"isBuddy":true,"preferences":"{\"discordId\":\"Loak#7662\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Loak","sex":"Male","profileImg":"https://i.imgur.com/xQ4Er5B.jpg"},{"id":1125,"membersId":173463,"dateAdded":"2023-04-15T05:10:04.000Z","lastUpdated":"2023-04-25T09:15:25.000Z","status":1,"totalPoints":66100,"rankingPoints":66100,"totalPass":1,"totalFc":3,"totalFec":8,"totalQuad":6,"totalQuint":0,"crossoverLevel":399,"bracketLevel":196,"footswitchLevel":374,"jackLevel":170,"sideswitchLevel":284,"doublestepLevel":270,"staminaLevel":74,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Roscoe","sex":"Male","profileImg":""},{"id":532,"membersId":173360,"dateAdded":"2023-03-20T19:34:27.000Z","lastUpdated":"2023-05-02T22:40:50.000Z","status":1,"totalPoints":66025,"rankingPoints":66025,"totalPass":42,"totalFc":13,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":639,"bracketLevel":26,"footswitchLevel":260,"jackLevel":165,"sideswitchLevel":61,"doublestepLevel":274,"staminaLevel":37,"isBuddy":false,"preferences":"{\"discordId\":\"dyne322#6039\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dyne322","sex":"Male","profileImg":""},{"id":511,"membersId":136228,"dateAdded":"2023-03-20T16:55:43.000Z","lastUpdated":"2023-04-07T01:59:30.000Z","status":1,"totalPoints":65754,"rankingPoints":65754,"totalPass":35,"totalFc":10,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":627,"bracketLevel":58,"footswitchLevel":379,"jackLevel":145,"sideswitchLevel":46,"doublestepLevel":440,"staminaLevel":30,"isBuddy":false,"preferences":"{\"discordId\":\"SawBo#7089\",\"decentsEnabled\":true,\"wayOffsEnabled\":false}","name":"SawBo","sex":"Unspecified","profileImg":""},{"id":137,"membersId":173279,"dateAdded":"2023-03-18T22:06:27.000Z","lastUpdated":"2023-04-03T22:27:21.000Z","status":1,"totalPoints":65548,"rankingPoints":65548,"totalPass":52,"totalFc":14,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":778,"bracketLevel":117,"footswitchLevel":265,"jackLevel":127,"sideswitchLevel":0,"doublestepLevel":368,"staminaLevel":7,"isBuddy":false,"preferences":"{\"discordId\":\"KitGamer#5023\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"KitGamer","sex":"Male","profileImg":""},{"id":944,"membersId":175630,"dateAdded":"2023-04-01T01:06:04.000Z","lastUpdated":"2023-04-29T01:09:45.000Z","status":1,"totalPoints":64709,"rankingPoints":64709,"totalPass":20,"totalFc":12,"totalFec":10,"totalQuad":2,"totalQuint":0,"crossoverLevel":794,"bracketLevel":247,"footswitchLevel":324,"jackLevel":43,"sideswitchLevel":33,"doublestepLevel":524,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Frosebas","sex":"Unspecified","profileImg":""},{"id":293,"membersId":75622,"dateAdded":"2023-03-19T03:44:04.000Z","lastUpdated":"2023-04-13T00:41:56.000Z","status":1,"totalPoints":64632,"rankingPoints":64632,"totalPass":57,"totalFc":8,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":763,"bracketLevel":112,"footswitchLevel":215,"jackLevel":99,"sideswitchLevel":0,"doublestepLevel":369,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"FuriousDCSL","sex":"Unspecified","profileImg":""},{"id":958,"membersId":132053,"dateAdded":"2023-04-01T18:45:50.000Z","lastUpdated":"2023-04-15T04:29:13.000Z","status":1,"totalPoints":64595,"rankingPoints":64595,"totalPass":23,"totalFc":13,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":619,"bracketLevel":143,"footswitchLevel":146,"jackLevel":120,"sideswitchLevel":58,"doublestepLevel":366,"staminaLevel":53,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"pball0010","sex":"Male","profileImg":""},{"id":1283,"membersId":35619,"dateAdded":"2023-05-03T22:06:07.000Z","lastUpdated":"2023-05-05T21:15:07.000Z","status":1,"totalPoints":63975,"rankingPoints":63975,"totalPass":8,"totalFc":4,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":437,"bracketLevel":137,"footswitchLevel":300,"jackLevel":310,"sideswitchLevel":40,"doublestepLevel":480,"staminaLevel":88,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nico","sex":"Unspecified","profileImg":"https://i.imgur.com/d0GKcl7.png"},{"id":983,"membersId":175667,"dateAdded":"2023-04-02T22:39:06.000Z","lastUpdated":"2023-04-29T02:23:29.000Z","status":1,"totalPoints":63504,"rankingPoints":63504,"totalPass":27,"totalFc":10,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":676,"bracketLevel":192,"footswitchLevel":336,"jackLevel":220,"sideswitchLevel":67,"doublestepLevel":546,"staminaLevel":54,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"psychodellic","sex":"Male","profileImg":""},{"id":635,"membersId":77316,"dateAdded":"2023-03-22T02:58:10.000Z","lastUpdated":"2023-04-29T17:20:18.000Z","status":1,"totalPoints":63293,"rankingPoints":63293,"totalPass":11,"totalFc":0,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":449,"bracketLevel":213,"footswitchLevel":262,"jackLevel":112,"sideswitchLevel":142,"doublestepLevel":537,"staminaLevel":174,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"AMBONES","sex":"Female","profileImg":"https://i.imgur.com/YDwuAgA.jpg"},{"id":378,"membersId":175058,"dateAdded":"2023-03-19T17:30:42.000Z","lastUpdated":"2023-04-22T11:09:55.000Z","status":1,"totalPoints":62150,"rankingPoints":62150,"totalPass":41,"totalFc":7,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":550,"bracketLevel":217,"footswitchLevel":319,"jackLevel":170,"sideswitchLevel":244,"doublestepLevel":307,"staminaLevel":67,"isBuddy":false,"preferences":"{\"discordId\":\"ImTonyOfficial#0001\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Antocc94","sex":"Male","profileImg":""},{"id":400,"membersId":66708,"dateAdded":"2023-03-19T19:11:55.000Z","lastUpdated":"2023-04-23T02:22:50.000Z","status":1,"totalPoints":61550,"rankingPoints":61550,"totalPass":22,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":306,"bracketLevel":146,"footswitchLevel":342,"jackLevel":269,"sideswitchLevel":105,"doublestepLevel":212,"staminaLevel":89,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"NNNNNN","sex":"Male","profileImg":""},{"id":172,"membersId":173110,"dateAdded":"2023-03-18T22:35:55.000Z","lastUpdated":"2023-04-11T20:19:54.000Z","status":1,"totalPoints":61119,"rankingPoints":61119,"totalPass":3,"totalFc":0,"totalFec":6,"totalQuad":6,"totalQuint":0,"crossoverLevel":323,"bracketLevel":285,"footswitchLevel":464,"jackLevel":22,"sideswitchLevel":366,"doublestepLevel":131,"staminaLevel":91,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Shane_ITG_","sex":"Male","profileImg":"https://i.imgur.com/0kFu4Vz.png"},{"id":1051,"membersId":174901,"dateAdded":"2023-04-07T20:11:46.000Z","lastUpdated":"2023-05-02T23:34:39.000Z","status":1,"totalPoints":60739,"rankingPoints":60739,"totalPass":6,"totalFc":1,"totalFec":12,"totalQuad":1,"totalQuint":0,"crossoverLevel":371,"bracketLevel":8,"footswitchLevel":162,"jackLevel":208,"sideswitchLevel":0,"doublestepLevel":319,"staminaLevel":58,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DanielsanX4A","sex":"Male","profileImg":"https://i.imgur.com/Tux177gm.jpg"},{"id":239,"membersId":127868,"dateAdded":"2023-03-19T00:45:46.000Z","lastUpdated":"2023-04-27T04:38:57.000Z","status":1,"totalPoints":60454,"rankingPoints":60454,"totalPass":15,"totalFc":21,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":789,"bracketLevel":140,"footswitchLevel":173,"jackLevel":46,"sideswitchLevel":0,"doublestepLevel":261,"staminaLevel":11,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"chroma","sex":"Female","profileImg":""},{"id":750,"membersId":173126,"dateAdded":"2023-03-24T23:33:32.000Z","lastUpdated":"2023-04-25T02:23:25.000Z","status":1,"totalPoints":60341,"rankingPoints":60341,"totalPass":44,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":653,"bracketLevel":79,"footswitchLevel":183,"jackLevel":90,"sideswitchLevel":0,"doublestepLevel":320,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"thepaperkat","sex":"Female","profileImg":""},{"id":1000,"membersId":4991,"dateAdded":"2023-04-04T00:44:17.000Z","lastUpdated":"2023-04-07T22:54:29.000Z","status":1,"totalPoints":60300,"rankingPoints":60300,"totalPass":8,"totalFc":4,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":253,"bracketLevel":397,"footswitchLevel":386,"jackLevel":218,"sideswitchLevel":263,"doublestepLevel":348,"staminaLevel":80,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Luvbun","sex":"Male","profileImg":""},{"id":1218,"membersId":92293,"dateAdded":"2023-04-26T07:56:08.000Z","lastUpdated":"2023-05-06T18:45:55.000Z","status":1,"totalPoints":60161,"rankingPoints":60161,"totalPass":19,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":459,"bracketLevel":126,"footswitchLevel":342,"jackLevel":312,"sideswitchLevel":188,"doublestepLevel":412,"staminaLevel":66,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TaikiHarada","sex":"Male","profileImg":"https://64.media.tumblr.com/7e2a5c32f83e62238a045b2f61c1f74b/tumblr_puefbfYsDt1x3ur5no2_250.png"},{"id":684,"membersId":173544,"dateAdded":"2023-03-22T23:56:00.000Z","lastUpdated":"2023-05-02T03:20:26.000Z","status":1,"totalPoints":59334,"rankingPoints":59334,"totalPass":34,"totalFc":15,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":755,"bracketLevel":100,"footswitchLevel":161,"jackLevel":26,"sideswitchLevel":0,"doublestepLevel":302,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ali_magica","sex":"Female","profileImg":""},{"id":734,"membersId":146112,"dateAdded":"2023-03-24T17:02:48.000Z","lastUpdated":"2023-04-21T02:05:53.000Z","status":1,"totalPoints":59287,"rankingPoints":59287,"totalPass":10,"totalFc":17,"totalFec":14,"totalQuad":0,"totalQuint":0,"crossoverLevel":742,"bracketLevel":31,"footswitchLevel":279,"jackLevel":43,"sideswitchLevel":18,"doublestepLevel":390,"staminaLevel":32,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Eddie_J","sex":"Male","profileImg":""},{"id":1032,"membersId":175728,"dateAdded":"2023-04-06T03:16:31.000Z","lastUpdated":"2023-04-06T05:04:28.000Z","status":1,"totalPoints":58264,"rankingPoints":58264,"totalPass":11,"totalFc":9,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":440,"bracketLevel":29,"footswitchLevel":327,"jackLevel":96,"sideswitchLevel":136,"doublestepLevel":587,"staminaLevel":12,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"saiga12","sex":"Unspecified","profileImg":""},{"id":414,"membersId":4057,"dateAdded":"2023-03-19T20:15:13.000Z","lastUpdated":"2023-03-31T00:05:12.000Z","status":1,"totalPoints":58182,"rankingPoints":58182,"totalPass":16,"totalFc":9,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":527,"bracketLevel":202,"footswitchLevel":387,"jackLevel":131,"sideswitchLevel":152,"doublestepLevel":329,"staminaLevel":24,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"luda","sex":"Male","profileImg":""},{"id":561,"membersId":35282,"dateAdded":"2023-03-20T23:38:17.000Z","lastUpdated":"2023-03-30T05:44:08.000Z","status":1,"totalPoints":57954,"rankingPoints":57954,"totalPass":23,"totalFc":13,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":724,"bracketLevel":234,"footswitchLevel":290,"jackLevel":29,"sideswitchLevel":0,"doublestepLevel":221,"staminaLevel":38,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kailaria","sex":"Female","profileImg":"https://cdn.discordapp.com/attachments/1087878708007809114/1087878969073877082/pfp.png"},{"id":354,"membersId":172903,"dateAdded":"2023-03-19T15:15:34.000Z","lastUpdated":"2023-03-24T11:13:17.000Z","status":1,"totalPoints":56882,"rankingPoints":56882,"totalPass":15,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":457,"bracketLevel":66,"footswitchLevel":131,"jackLevel":68,"sideswitchLevel":222,"doublestepLevel":142,"staminaLevel":54,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"richtr8","sex":"Unspecified","profileImg":"https://i.imgur.com/iY7URQR.png"},{"id":1243,"membersId":173272,"dateAdded":"2023-04-28T20:05:50.000Z","lastUpdated":"2023-05-06T11:43:54.000Z","status":1,"totalPoints":56831,"rankingPoints":56831,"totalPass":39,"totalFc":10,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":655,"bracketLevel":56,"footswitchLevel":199,"jackLevel":140,"sideswitchLevel":0,"doublestepLevel":337,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CobaltSunshine","sex":"Female","profileImg":""},{"id":404,"membersId":174614,"dateAdded":"2023-03-19T19:43:23.000Z","lastUpdated":"2023-05-04T03:56:51.000Z","status":1,"totalPoints":56726,"rankingPoints":56726,"totalPass":15,"totalFc":16,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":541,"bracketLevel":184,"footswitchLevel":238,"jackLevel":174,"sideswitchLevel":0,"doublestepLevel":425,"staminaLevel":22,"isBuddy":false,"preferences":"{\"discordId\":\"Lolzep#5723\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lolzep","sex":"Male","profileImg":"https://images2.imgbox.com/4f/82/9jG1iU0v_o.png"},{"id":918,"membersId":4384,"dateAdded":"2023-03-30T09:50:11.000Z","lastUpdated":"2023-04-05T16:21:59.000Z","status":1,"totalPoints":56269,"rankingPoints":56269,"totalPass":34,"totalFc":8,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":625,"bracketLevel":21,"footswitchLevel":148,"jackLevel":125,"sideswitchLevel":0,"doublestepLevel":439,"staminaLevel":17,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Obi2","sex":"Male","profileImg":""},{"id":687,"membersId":1851,"dateAdded":"2023-03-23T00:42:06.000Z","lastUpdated":"2023-05-06T01:18:43.000Z","status":1,"totalPoints":56206,"rankingPoints":56206,"totalPass":3,"totalFc":20,"totalFec":12,"totalQuad":0,"totalQuint":0,"crossoverLevel":632,"bracketLevel":88,"footswitchLevel":294,"jackLevel":49,"sideswitchLevel":0,"doublestepLevel":264,"staminaLevel":51,"isBuddy":false,"preferences":"{\"discordId\":\"EVOriginal#1337\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"EVOriginal","sex":"Male","profileImg":""},{"id":79,"membersId":173719,"dateAdded":"2023-03-18T21:50:28.000Z","lastUpdated":"2023-04-27T23:46:16.000Z","status":1,"totalPoints":55535,"rankingPoints":55535,"totalPass":50,"totalFc":9,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":669,"bracketLevel":22,"footswitchLevel":192,"jackLevel":106,"sideswitchLevel":0,"doublestepLevel":407,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":\"Kraite#9145\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kraite","sex":"Male","profileImg":""},{"id":746,"membersId":175488,"dateAdded":"2023-03-24T22:09:16.000Z","lastUpdated":"2023-03-24T23:26:10.000Z","status":1,"totalPoints":55421,"rankingPoints":55421,"totalPass":9,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":138,"bracketLevel":277,"footswitchLevel":389,"jackLevel":105,"sideswitchLevel":206,"doublestepLevel":287,"staminaLevel":307,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"POOH!","sex":"Male","profileImg":""},{"id":531,"membersId":163632,"dateAdded":"2023-03-20T19:30:24.000Z","lastUpdated":"2023-05-01T17:29:19.000Z","status":1,"totalPoints":55086,"rankingPoints":55086,"totalPass":15,"totalFc":34,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":599,"bracketLevel":131,"footswitchLevel":207,"jackLevel":100,"sideswitchLevel":62,"doublestepLevel":228,"staminaLevel":12,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Zap","sex":"Male","profileImg":"https://i.imgur.com/p5WFvYr.gif"},{"id":800,"membersId":173221,"dateAdded":"2023-03-25T21:48:53.000Z","lastUpdated":"2023-04-29T03:51:57.000Z","status":1,"totalPoints":54918,"rankingPoints":54918,"totalPass":49,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":556,"bracketLevel":59,"footswitchLevel":259,"jackLevel":61,"sideswitchLevel":40,"doublestepLevel":456,"staminaLevel":19,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"martinbirch","sex":"Unspecified","profileImg":""},{"id":44,"membersId":173683,"dateAdded":"2023-03-18T21:49:02.000Z","lastUpdated":"2023-05-06T17:38:05.000Z","status":1,"totalPoints":54704,"rankingPoints":54704,"totalPass":13,"totalFc":17,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":637,"bracketLevel":53,"footswitchLevel":233,"jackLevel":85,"sideswitchLevel":78,"doublestepLevel":335,"staminaLevel":20,"isBuddy":false,"preferences":"{\"discordId\":\"TakuMii#6266\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"TakuMii","sex":"Male","profileImg":"https://avatars.akamai.steamstatic.com/24803bdf9d1ac613cc536d28d0e72d48101d63a7_full.jpg"},{"id":819,"membersId":175533,"dateAdded":"2023-03-26T10:43:49.000Z","lastUpdated":"2023-04-28T22:50:39.000Z","status":1,"totalPoints":54702,"rankingPoints":54702,"totalPass":18,"totalFc":9,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":473,"bracketLevel":40,"footswitchLevel":280,"jackLevel":84,"sideswitchLevel":0,"doublestepLevel":516,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Qoyote","sex":"Unspecified","profileImg":""},{"id":1155,"membersId":175886,"dateAdded":"2023-04-18T17:25:38.000Z","lastUpdated":"2023-05-05T02:16:14.000Z","status":1,"totalPoints":54687,"rankingPoints":54687,"totalPass":18,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":346,"bracketLevel":18,"footswitchLevel":103,"jackLevel":235,"sideswitchLevel":182,"doublestepLevel":190,"staminaLevel":123,"isBuddy":false,"preferences":"{\"discordId\":\"OzuRisa(〃ω〃)#5211\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ozurisa1803","sex":"Male","profileImg":""},{"id":289,"membersId":173308,"dateAdded":"2023-03-19T03:31:36.000Z","lastUpdated":"2023-04-15T16:01:32.000Z","status":1,"totalPoints":54600,"rankingPoints":54600,"totalPass":25,"totalFc":2,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":497,"bracketLevel":8,"footswitchLevel":170,"jackLevel":104,"sideswitchLevel":29,"doublestepLevel":234,"staminaLevel":44,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"soriin_k","sex":"Male","profileImg":""},{"id":47,"membersId":174173,"dateAdded":"2023-03-18T21:49:03.000Z","lastUpdated":"2023-05-06T23:29:08.000Z","status":1,"totalPoints":54386,"rankingPoints":54386,"totalPass":54,"totalFc":7,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":570,"bracketLevel":103,"footswitchLevel":199,"jackLevel":68,"sideswitchLevel":0,"doublestepLevel":327,"staminaLevel":8,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lillyvideogames","sex":"Unspecified","profileImg":"https://cdn.discordapp.com/attachments/910836877647577109/1087038719334289550/aoko-pfp-smol.png"},{"id":1147,"membersId":175862,"dateAdded":"2023-04-17T02:11:05.000Z","lastUpdated":"2023-04-26T02:01:49.000Z","status":1,"totalPoints":54058,"rankingPoints":54058,"totalPass":16,"totalFc":3,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":255,"bracketLevel":144,"footswitchLevel":337,"jackLevel":43,"sideswitchLevel":51,"doublestepLevel":592,"staminaLevel":31,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"alexadhahn","sex":"Unspecified","profileImg":""},{"id":545,"membersId":173070,"dateAdded":"2023-03-20T21:38:17.000Z","lastUpdated":"2023-04-25T21:26:18.000Z","status":1,"totalPoints":53735,"rankingPoints":53735,"totalPass":7,"totalFc":2,"totalFec":16,"totalQuad":3,"totalQuint":0,"crossoverLevel":408,"bracketLevel":115,"footswitchLevel":295,"jackLevel":190,"sideswitchLevel":0,"doublestepLevel":391,"staminaLevel":32,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Brick Davis","sex":"Unspecified","profileImg":""},{"id":335,"membersId":78188,"dateAdded":"2023-03-19T11:03:00.000Z","lastUpdated":"2023-04-19T20:37:58.000Z","status":1,"totalPoints":53593,"rankingPoints":53593,"totalPass":16,"totalFc":13,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":660,"bracketLevel":106,"footswitchLevel":217,"jackLevel":113,"sideswitchLevel":0,"doublestepLevel":262,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"samross","sex":"Male","profileImg":""},{"id":910,"membersId":5557,"dateAdded":"2023-03-29T23:32:06.000Z","lastUpdated":"2023-05-05T00:32:09.000Z","status":1,"totalPoints":52943,"rankingPoints":52943,"totalPass":17,"totalFc":2,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":470,"bracketLevel":13,"footswitchLevel":261,"jackLevel":220,"sideswitchLevel":0,"doublestepLevel":273,"staminaLevel":20,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kommisar","sex":"Male","profileImg":""},{"id":1166,"membersId":173797,"dateAdded":"2023-04-19T16:34:27.000Z","lastUpdated":"2023-04-19T19:11:31.000Z","status":1,"totalPoints":52886,"rankingPoints":52886,"totalPass":32,"totalFc":12,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":578,"bracketLevel":142,"footswitchLevel":277,"jackLevel":121,"sideswitchLevel":0,"doublestepLevel":374,"staminaLevel":5,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Suolainen","sex":"Male","profileImg":""},{"id":1217,"membersId":176005,"dateAdded":"2023-04-26T06:12:39.000Z","lastUpdated":"2023-04-30T06:14:11.000Z","status":1,"totalPoints":52778,"rankingPoints":52778,"totalPass":15,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":294,"bracketLevel":247,"footswitchLevel":404,"jackLevel":357,"sideswitchLevel":150,"doublestepLevel":294,"staminaLevel":111,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TawkSick","sex":"Unspecified","profileImg":""},{"id":197,"membersId":165854,"dateAdded":"2023-03-18T23:08:53.000Z","lastUpdated":"2023-05-04T19:37:27.000Z","status":1,"totalPoints":52508,"rankingPoints":52508,"totalPass":36,"totalFc":11,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":598,"bracketLevel":108,"footswitchLevel":180,"jackLevel":163,"sideswitchLevel":15,"doublestepLevel":210,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":\"Advanced495#1657\",\"decentsEnabled\":true,\"wayOffsEnabled\":false}","name":"Nazrininator","sex":"Male","profileImg":""},{"id":889,"membersId":175335,"dateAdded":"2023-03-29T01:56:32.000Z","lastUpdated":"2023-05-02T02:48:40.000Z","status":1,"totalPoints":52446,"rankingPoints":52446,"totalPass":9,"totalFc":13,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":519,"bracketLevel":118,"footswitchLevel":201,"jackLevel":110,"sideswitchLevel":0,"doublestepLevel":277,"staminaLevel":46,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Milosita ","sex":"Unspecified","profileImg":""},{"id":589,"membersId":4056,"dateAdded":"2023-03-21T11:43:37.000Z","lastUpdated":"2023-05-04T12:24:30.000Z","status":1,"totalPoints":52435,"rankingPoints":52435,"totalPass":10,"totalFc":7,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":525,"bracketLevel":104,"footswitchLevel":311,"jackLevel":31,"sideswitchLevel":119,"doublestepLevel":252,"staminaLevel":64,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PRO.Gemi","sex":"Male","profileImg":"https://gemi.nn.fi/gem-groovestats.png"},{"id":489,"membersId":508,"dateAdded":"2023-03-20T12:10:20.000Z","lastUpdated":"2023-03-25T09:54:03.000Z","status":1,"totalPoints":52280,"rankingPoints":52280,"totalPass":7,"totalFc":8,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":545,"bracketLevel":43,"footswitchLevel":139,"jackLevel":72,"sideswitchLevel":76,"doublestepLevel":185,"staminaLevel":20,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"camsta4","sex":"Male","profileImg":""},{"id":309,"membersId":173298,"dateAdded":"2023-03-19T05:12:27.000Z","lastUpdated":"2023-03-24T20:14:43.000Z","status":1,"totalPoints":52252,"rankingPoints":52252,"totalPass":21,"totalFc":6,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":584,"bracketLevel":196,"footswitchLevel":328,"jackLevel":49,"sideswitchLevel":119,"doublestepLevel":231,"staminaLevel":36,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JuiKuen","sex":"Male","profileImg":""},{"id":1034,"membersId":173872,"dateAdded":"2023-04-06T05:00:54.000Z","lastUpdated":"2023-04-24T23:09:49.000Z","status":1,"totalPoints":52151,"rankingPoints":52151,"totalPass":8,"totalFc":3,"totalFec":6,"totalQuad":1,"totalQuint":0,"crossoverLevel":323,"bracketLevel":183,"footswitchLevel":284,"jackLevel":152,"sideswitchLevel":369,"doublestepLevel":280,"staminaLevel":49,"isBuddy":false,"preferences":"{\"discordId\":\"Panaman#1526\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Panaman","sex":"Male","profileImg":"https://i.imgur.com/cAjFamM.png"},{"id":583,"membersId":66508,"dateAdded":"2023-03-21T05:29:21.000Z","lastUpdated":"2023-05-05T14:29:45.000Z","status":1,"totalPoints":51886,"rankingPoints":51886,"totalPass":8,"totalFc":9,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":282,"bracketLevel":214,"footswitchLevel":200,"jackLevel":343,"sideswitchLevel":0,"doublestepLevel":260,"staminaLevel":72,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Horsey","sex":"Male","profileImg":"https://i.imgur.com/BeSsap3.png"},{"id":739,"membersId":3378,"dateAdded":"2023-03-24T18:13:51.000Z","lastUpdated":"2023-03-27T16:33:57.000Z","status":1,"totalPoints":51022,"rankingPoints":51022,"totalPass":14,"totalFc":20,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":662,"bracketLevel":32,"footswitchLevel":202,"jackLevel":65,"sideswitchLevel":220,"doublestepLevel":322,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":\"stsung#1564\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"STsung","sex":"Male","profileImg":""},{"id":923,"membersId":175607,"dateAdded":"2023-03-30T16:51:59.000Z","lastUpdated":"2023-05-03T19:55:02.000Z","status":1,"totalPoints":50662,"rankingPoints":50662,"totalPass":53,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":534,"bracketLevel":106,"footswitchLevel":187,"jackLevel":69,"sideswitchLevel":0,"doublestepLevel":351,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"seroTONEin","sex":"Unspecified","profileImg":""},{"id":1100,"membersId":175808,"dateAdded":"2023-04-12T02:22:18.000Z","lastUpdated":"2023-04-25T21:20:26.000Z","status":1,"totalPoints":50427,"rankingPoints":50427,"totalPass":55,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":613,"bracketLevel":46,"footswitchLevel":185,"jackLevel":87,"sideswitchLevel":0,"doublestepLevel":314,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"arkkeeper","sex":"Male","profileImg":""},{"id":540,"membersId":127793,"dateAdded":"2023-03-20T20:58:22.000Z","lastUpdated":"2023-04-29T17:49:25.000Z","status":1,"totalPoints":50102,"rankingPoints":50102,"totalPass":13,"totalFc":4,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":570,"bracketLevel":82,"footswitchLevel":198,"jackLevel":123,"sideswitchLevel":22,"doublestepLevel":355,"staminaLevel":54,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"jv","sex":"Male","profileImg":""},{"id":820,"membersId":539,"dateAdded":"2023-03-26T12:16:32.000Z","lastUpdated":"2023-04-11T17:04:31.000Z","status":1,"totalPoints":50046,"rankingPoints":50046,"totalPass":5,"totalFc":10,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":713,"bracketLevel":127,"footswitchLevel":66,"jackLevel":15,"sideswitchLevel":0,"doublestepLevel":212,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dancefreak","sex":"Male","profileImg":""},{"id":326,"membersId":113250,"dateAdded":"2023-03-19T08:54:16.000Z","lastUpdated":"2023-04-07T14:27:52.000Z","status":1,"totalPoints":49733,"rankingPoints":49733,"totalPass":3,"totalFc":8,"totalFec":5,"totalQuad":2,"totalQuint":0,"crossoverLevel":418,"bracketLevel":75,"footswitchLevel":109,"jackLevel":156,"sideswitchLevel":11,"doublestepLevel":207,"staminaLevel":140,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"RAN.S","sex":"Male","profileImg":"https://i.gyazo.com/083e50397982da4ae42c4546a84b32bc.jpg"},{"id":655,"membersId":175445,"dateAdded":"2023-03-22T16:38:37.000Z","lastUpdated":"2023-04-29T23:05:17.000Z","status":1,"totalPoints":49180,"rankingPoints":49180,"totalPass":55,"totalFc":8,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":547,"bracketLevel":96,"footswitchLevel":162,"jackLevel":62,"sideswitchLevel":0,"doublestepLevel":355,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":\"sirmoses#6056\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"sirmoses","sex":"Male","profileImg":""},{"id":1274,"membersId":176074,"dateAdded":"2023-05-02T15:15:47.000Z","lastUpdated":"2023-05-06T18:36:11.000Z","status":1,"totalPoints":49012,"rankingPoints":49012,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":15,"totalQuint":0,"crossoverLevel":516,"bracketLevel":19,"footswitchLevel":319,"jackLevel":82,"sideswitchLevel":92,"doublestepLevel":195,"staminaLevel":12,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Juicebinge","sex":"Male","profileImg":""},{"id":666,"membersId":163926,"dateAdded":"2023-03-22T19:35:10.000Z","lastUpdated":"2023-04-22T14:53:48.000Z","status":1,"totalPoints":48970,"rankingPoints":48970,"totalPass":9,"totalFc":3,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":393,"bracketLevel":197,"footswitchLevel":325,"jackLevel":187,"sideswitchLevel":0,"doublestepLevel":78,"staminaLevel":49,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"42","sex":"Male","profileImg":""},{"id":864,"membersId":173560,"dateAdded":"2023-03-27T23:51:28.000Z","lastUpdated":"2023-04-20T19:36:22.000Z","status":1,"totalPoints":47814,"rankingPoints":47814,"totalPass":17,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":500,"bracketLevel":132,"footswitchLevel":98,"jackLevel":279,"sideswitchLevel":0,"doublestepLevel":292,"staminaLevel":53,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"slybat","sex":"Unspecified","profileImg":""},{"id":571,"membersId":173349,"dateAdded":"2023-03-21T01:35:23.000Z","lastUpdated":"2023-04-01T02:27:14.000Z","status":1,"totalPoints":47535,"rankingPoints":47535,"totalPass":36,"totalFc":6,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":501,"bracketLevel":117,"footswitchLevel":157,"jackLevel":120,"sideswitchLevel":0,"doublestepLevel":420,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DragonDelgar","sex":"Male","profileImg":""},{"id":778,"membersId":174857,"dateAdded":"2023-03-25T13:00:36.000Z","lastUpdated":"2023-05-06T17:47:21.000Z","status":1,"totalPoints":47227,"rankingPoints":47227,"totalPass":5,"totalFc":3,"totalFec":5,"totalQuad":1,"totalQuint":0,"crossoverLevel":188,"bracketLevel":243,"footswitchLevel":195,"jackLevel":298,"sideswitchLevel":0,"doublestepLevel":368,"staminaLevel":88,"isBuddy":true,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Naraku","sex":"Male","profileImg":""},{"id":927,"membersId":173666,"dateAdded":"2023-03-30T20:48:11.000Z","lastUpdated":"2023-04-06T02:56:24.000Z","status":1,"totalPoints":47092,"rankingPoints":47092,"totalPass":14,"totalFc":2,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":298,"bracketLevel":135,"footswitchLevel":291,"jackLevel":122,"sideswitchLevel":85,"doublestepLevel":478,"staminaLevel":58,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SHIBE","sex":"Male","profileImg":""},{"id":342,"membersId":175360,"dateAdded":"2023-03-19T12:13:12.000Z","lastUpdated":"2023-05-06T15:09:19.000Z","status":1,"totalPoints":46358,"rankingPoints":46358,"totalPass":48,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":472,"bracketLevel":110,"footswitchLevel":156,"jackLevel":20,"sideswitchLevel":0,"doublestepLevel":152,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Goode","sex":"Male","profileImg":""},{"id":1265,"membersId":66741,"dateAdded":"2023-05-01T16:38:45.000Z","lastUpdated":"2023-05-01T20:01:15.000Z","status":1,"totalPoints":46272,"rankingPoints":46272,"totalPass":17,"totalFc":21,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":604,"bracketLevel":68,"footswitchLevel":227,"jackLevel":60,"sideswitchLevel":0,"doublestepLevel":371,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Snowball","sex":"Male","profileImg":""},{"id":682,"membersId":165759,"dateAdded":"2023-03-22T23:29:45.000Z","lastUpdated":"2023-03-28T01:34:13.000Z","status":1,"totalPoints":45964,"rankingPoints":45964,"totalPass":13,"totalFc":10,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":472,"bracketLevel":73,"footswitchLevel":288,"jackLevel":57,"sideswitchLevel":223,"doublestepLevel":206,"staminaLevel":10,"isBuddy":false,"preferences":"{\"discordId\":\"triad.duskbreaker#6641\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dusk","sex":"Male","profileImg":"https://pbs.twimg.com/profile_images/1469849755102633990/uZeP1cio_200x200.jpg"},{"id":242,"membersId":7558,"dateAdded":"2023-03-19T00:50:18.000Z","lastUpdated":"2023-04-20T17:38:03.000Z","status":1,"totalPoints":45695,"rankingPoints":45695,"totalPass":9,"totalFc":8,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":371,"bracketLevel":1,"footswitchLevel":193,"jackLevel":212,"sideswitchLevel":0,"doublestepLevel":263,"staminaLevel":45,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PanStyle","sex":"Male","profileImg":""},{"id":649,"membersId":134276,"dateAdded":"2023-03-22T13:43:05.000Z","lastUpdated":"2023-03-22T19:02:38.000Z","status":1,"totalPoints":45198,"rankingPoints":45198,"totalPass":16,"totalFc":5,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":485,"bracketLevel":110,"footswitchLevel":390,"jackLevel":138,"sideswitchLevel":271,"doublestepLevel":380,"staminaLevel":34,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"wermi","sex":"Female","profileImg":"https://i.imgur.com/0cnUevN.png"},{"id":558,"membersId":173516,"dateAdded":"2023-03-20T23:22:04.000Z","lastUpdated":"2023-05-05T03:58:17.000Z","status":1,"totalPoints":45035,"rankingPoints":45035,"totalPass":6,"totalFc":0,"totalFec":10,"totalQuad":2,"totalQuint":0,"crossoverLevel":350,"bracketLevel":123,"footswitchLevel":104,"jackLevel":51,"sideswitchLevel":336,"doublestepLevel":168,"staminaLevel":8,"isBuddy":true,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CernaML","sex":"Male","profileImg":""},{"id":912,"membersId":175592,"dateAdded":"2023-03-29T23:34:21.000Z","lastUpdated":"2023-04-05T05:04:10.000Z","status":1,"totalPoints":44998,"rankingPoints":44998,"totalPass":12,"totalFc":11,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":432,"bracketLevel":110,"footswitchLevel":128,"jackLevel":24,"sideswitchLevel":0,"doublestepLevel":417,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Piles-chan","sex":"Unspecified","profileImg":""},{"id":743,"membersId":175485,"dateAdded":"2023-03-24T21:02:48.000Z","lastUpdated":"2023-04-01T20:38:31.000Z","status":1,"totalPoints":44326,"rankingPoints":44326,"totalPass":52,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":543,"bracketLevel":96,"footswitchLevel":171,"jackLevel":90,"sideswitchLevel":0,"doublestepLevel":182,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MeesterMyst","sex":"Male","profileImg":""},{"id":618,"membersId":175426,"dateAdded":"2023-03-21T22:02:04.000Z","lastUpdated":"2023-04-22T20:58:40.000Z","status":1,"totalPoints":44066,"rankingPoints":44066,"totalPass":14,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":244,"bracketLevel":121,"footswitchLevel":254,"jackLevel":120,"sideswitchLevel":66,"doublestepLevel":174,"staminaLevel":112,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Xtina","sex":"Female","profileImg":""},{"id":476,"membersId":127865,"dateAdded":"2023-03-20T04:28:16.000Z","lastUpdated":"2023-03-20T06:42:05.000Z","status":1,"totalPoints":43551,"rankingPoints":43551,"totalPass":9,"totalFc":3,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":317,"bracketLevel":59,"footswitchLevel":158,"jackLevel":196,"sideswitchLevel":21,"doublestepLevel":130,"staminaLevel":25,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"asellus","sex":"Female","profileImg":"https://i.pinimg.com/236x/0a/f6/ab/0af6abf198404ad70016beb9aa4ae12d.jpg"},{"id":741,"membersId":142618,"dateAdded":"2023-03-24T20:00:18.000Z","lastUpdated":"2023-04-22T18:08:12.000Z","status":1,"totalPoints":43493,"rankingPoints":43493,"totalPass":2,"totalFc":17,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":578,"bracketLevel":38,"footswitchLevel":207,"jackLevel":28,"sideswitchLevel":0,"doublestepLevel":252,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Cronoxx","sex":"Male","profileImg":""},{"id":294,"membersId":345,"dateAdded":"2023-03-19T03:45:05.000Z","lastUpdated":"2023-03-19T05:43:59.000Z","status":1,"totalPoints":43463,"rankingPoints":43463,"totalPass":6,"totalFc":2,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":236,"bracketLevel":166,"footswitchLevel":207,"jackLevel":87,"sideswitchLevel":61,"doublestepLevel":48,"staminaLevel":163,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kaze","sex":"Male","profileImg":""},{"id":993,"membersId":174917,"dateAdded":"2023-04-03T22:05:57.000Z","lastUpdated":"2023-05-07T00:03:21.000Z","status":1,"totalPoints":43382,"rankingPoints":43382,"totalPass":15,"totalFc":8,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":447,"bracketLevel":112,"footswitchLevel":117,"jackLevel":37,"sideswitchLevel":113,"doublestepLevel":180,"staminaLevel":22,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Henny","sex":"Unspecified","profileImg":""},{"id":1133,"membersId":175849,"dateAdded":"2023-04-15T21:24:52.000Z","lastUpdated":"2023-05-01T00:03:08.000Z","status":1,"totalPoints":43326,"rankingPoints":43326,"totalPass":11,"totalFc":6,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":418,"bracketLevel":6,"footswitchLevel":124,"jackLevel":5,"sideswitchLevel":0,"doublestepLevel":158,"staminaLevel":16,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sakura69","sex":"Female","profileImg":""},{"id":436,"membersId":175272,"dateAdded":"2023-03-19T22:32:49.000Z","lastUpdated":"2023-04-16T22:44:18.000Z","status":1,"totalPoints":43117,"rankingPoints":43117,"totalPass":9,"totalFc":19,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":589,"bracketLevel":47,"footswitchLevel":243,"jackLevel":55,"sideswitchLevel":100,"doublestepLevel":171,"staminaLevel":14,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"niccalis","sex":"Male","profileImg":""},{"id":943,"membersId":175631,"dateAdded":"2023-04-01T01:01:08.000Z","lastUpdated":"2023-04-23T02:52:53.000Z","status":1,"totalPoints":43099,"rankingPoints":43099,"totalPass":23,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":325,"bracketLevel":183,"footswitchLevel":112,"jackLevel":130,"sideswitchLevel":144,"doublestepLevel":247,"staminaLevel":8,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SmileyOuO","sex":"Unspecified","profileImg":""},{"id":8,"membersId":167028,"dateAdded":"2023-03-18T21:48:25.000Z","lastUpdated":"2023-05-03T00:34:27.000Z","status":1,"totalPoints":42586,"rankingPoints":42586,"totalPass":33,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":396,"bracketLevel":101,"footswitchLevel":223,"jackLevel":75,"sideswitchLevel":276,"doublestepLevel":245,"staminaLevel":54,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"eightbitderp","sex":"Male","profileImg":"https://i.imgur.com/YAKidX4.png"},{"id":281,"membersId":175376,"dateAdded":"2023-03-19T02:50:59.000Z","lastUpdated":"2023-04-09T06:34:40.000Z","status":1,"totalPoints":42142,"rankingPoints":42142,"totalPass":19,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":408,"bracketLevel":144,"footswitchLevel":278,"jackLevel":159,"sideswitchLevel":0,"doublestepLevel":170,"staminaLevel":25,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"bxrru","sex":"Male","profileImg":""},{"id":495,"membersId":26,"dateAdded":"2023-03-20T14:22:38.000Z","lastUpdated":"2023-05-06T18:22:10.000Z","status":1,"totalPoints":41866,"rankingPoints":41866,"totalPass":4,"totalFc":2,"totalFec":13,"totalQuad":0,"totalQuint":0,"crossoverLevel":497,"bracketLevel":202,"footswitchLevel":249,"jackLevel":129,"sideswitchLevel":111,"doublestepLevel":240,"staminaLevel":10,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"devilzukin","sex":"Male","profileImg":""},{"id":721,"membersId":173414,"dateAdded":"2023-03-24T02:25:44.000Z","lastUpdated":"2023-03-31T02:39:03.000Z","status":1,"totalPoints":41555,"rankingPoints":41555,"totalPass":32,"totalFc":7,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":504,"bracketLevel":84,"footswitchLevel":121,"jackLevel":35,"sideswitchLevel":0,"doublestepLevel":270,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"AxelSparkster","sex":"Unspecified","profileImg":""},{"id":311,"membersId":172887,"dateAdded":"2023-03-19T05:24:23.000Z","lastUpdated":"2023-04-04T09:58:57.000Z","status":1,"totalPoints":41401,"rankingPoints":41401,"totalPass":11,"totalFc":6,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":462,"bracketLevel":15,"footswitchLevel":169,"jackLevel":59,"sideswitchLevel":0,"doublestepLevel":397,"staminaLevel":18,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kashy","sex":"Male","profileImg":""},{"id":788,"membersId":127812,"dateAdded":"2023-03-25T17:42:35.000Z","lastUpdated":"2023-03-25T22:00:41.000Z","status":1,"totalPoints":40024,"rankingPoints":40024,"totalPass":3,"totalFc":23,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":537,"bracketLevel":83,"footswitchLevel":84,"jackLevel":48,"sideswitchLevel":0,"doublestepLevel":254,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"MrCreteture#8426\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MrCrete","sex":"Male","profileImg":""},{"id":1130,"membersId":173326,"dateAdded":"2023-04-15T19:49:59.000Z","lastUpdated":"2023-04-15T23:22:35.000Z","status":1,"totalPoints":39538,"rankingPoints":39538,"totalPass":13,"totalFc":2,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":571,"bracketLevel":61,"footswitchLevel":196,"jackLevel":127,"sideswitchLevel":59,"doublestepLevel":373,"staminaLevel":6,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Arroyo!!","sex":"Unspecified","profileImg":""},{"id":232,"membersId":2910,"dateAdded":"2023-03-19T00:35:39.000Z","lastUpdated":"2023-04-10T00:25:32.000Z","status":1,"totalPoints":38896,"rankingPoints":38896,"totalPass":1,"totalFc":9,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":237,"bracketLevel":18,"footswitchLevel":79,"jackLevel":59,"sideswitchLevel":0,"doublestepLevel":144,"staminaLevel":230,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Vagabond","sex":"Male","profileImg":"https://www.personality-database.com/profile_images/152769.png"},{"id":624,"membersId":75812,"dateAdded":"2023-03-21T23:44:06.000Z","lastUpdated":"2023-04-21T01:32:25.000Z","status":1,"totalPoints":38826,"rankingPoints":38826,"totalPass":13,"totalFc":9,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":249,"bracketLevel":76,"footswitchLevel":202,"jackLevel":39,"sideswitchLevel":0,"doublestepLevel":159,"staminaLevel":23,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mastamaxx","sex":"Male","profileImg":""},{"id":616,"membersId":175428,"dateAdded":"2023-03-21T21:49:38.000Z","lastUpdated":"2023-04-02T15:06:37.000Z","status":1,"totalPoints":38688,"rankingPoints":38688,"totalPass":11,"totalFc":3,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":315,"bracketLevel":361,"footswitchLevel":221,"jackLevel":333,"sideswitchLevel":116,"doublestepLevel":542,"staminaLevel":56,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DinkusITC","sex":"Male","profileImg":""},{"id":1162,"membersId":175890,"dateAdded":"2023-04-19T02:29:44.000Z","lastUpdated":"2023-05-06T18:54:07.000Z","status":1,"totalPoints":38408,"rankingPoints":38408,"totalPass":48,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":466,"bracketLevel":20,"footswitchLevel":121,"jackLevel":48,"sideswitchLevel":0,"doublestepLevel":246,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mapwithtable","sex":"Female","profileImg":""},{"id":717,"membersId":66799,"dateAdded":"2023-03-24T01:44:02.000Z","lastUpdated":"2023-04-21T01:51:59.000Z","status":1,"totalPoints":38295,"rankingPoints":38295,"totalPass":4,"totalFc":14,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":264,"bracketLevel":67,"footswitchLevel":280,"jackLevel":241,"sideswitchLevel":280,"doublestepLevel":280,"staminaLevel":30,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BradyRyan","sex":"Male","profileImg":"https://ih1.redbubble.net/image.1177750170.9059/flat,128x,075,f-pad,128x128,f8f8f8.jpg"},{"id":1215,"membersId":173587,"dateAdded":"2023-04-25T21:32:56.000Z","lastUpdated":"2023-05-06T01:54:00.000Z","status":1,"totalPoints":38093,"rankingPoints":38093,"totalPass":12,"totalFc":14,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":440,"bracketLevel":86,"footswitchLevel":121,"jackLevel":103,"sideswitchLevel":0,"doublestepLevel":427,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sorryari","sex":"Female","profileImg":""},{"id":71,"membersId":173056,"dateAdded":"2023-03-18T21:50:00.000Z","lastUpdated":"2023-05-07T00:44:57.000Z","status":1,"totalPoints":37341,"rankingPoints":37341,"totalPass":40,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":600,"bracketLevel":21,"footswitchLevel":98,"jackLevel":22,"sideswitchLevel":0,"doublestepLevel":151,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Braeden","sex":"Male","profileImg":""},{"id":1149,"membersId":175873,"dateAdded":"2023-04-17T19:06:18.000Z","lastUpdated":"2023-04-22T06:20:50.000Z","status":1,"totalPoints":37270,"rankingPoints":37270,"totalPass":4,"totalFc":1,"totalFec":4,"totalQuad":1,"totalQuint":0,"crossoverLevel":205,"bracketLevel":127,"footswitchLevel":133,"jackLevel":18,"sideswitchLevel":0,"doublestepLevel":213,"staminaLevel":53,"isBuddy":false,"preferences":"{\"discordId\":\"D D R ⬅⬇⬆➡#0076\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ddrisawesome","sex":"Unspecified","profileImg":""},{"id":1065,"membersId":175769,"dateAdded":"2023-04-08T23:45:01.000Z","lastUpdated":"2023-04-11T03:15:28.000Z","status":1,"totalPoints":37237,"rankingPoints":37237,"totalPass":16,"totalFc":10,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":425,"bracketLevel":149,"footswitchLevel":189,"jackLevel":101,"sideswitchLevel":61,"doublestepLevel":380,"staminaLevel":47,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MattyG","sex":"Male","profileImg":""},{"id":638,"membersId":175370,"dateAdded":"2023-03-22T04:25:45.000Z","lastUpdated":"2023-04-29T00:42:23.000Z","status":1,"totalPoints":36705,"rankingPoints":36705,"totalPass":32,"totalFc":7,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":432,"bracketLevel":118,"footswitchLevel":199,"jackLevel":84,"sideswitchLevel":0,"doublestepLevel":225,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"trido2","sex":"Male","profileImg":""},{"id":629,"membersId":173759,"dateAdded":"2023-03-22T00:55:40.000Z","lastUpdated":"2023-03-28T04:36:52.000Z","status":1,"totalPoints":36520,"rankingPoints":36520,"totalPass":9,"totalFc":3,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":270,"bracketLevel":82,"footswitchLevel":122,"jackLevel":131,"sideswitchLevel":127,"doublestepLevel":191,"staminaLevel":77,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kaps","sex":"Male","profileImg":"https://res.cloudinary.com/daipcre3m/image/upload/v1679447081/20230321_174436_250x250_nn6em1.jpg"},{"id":359,"membersId":174873,"dateAdded":"2023-03-19T15:50:29.000Z","lastUpdated":"2023-03-28T00:55:58.000Z","status":1,"totalPoints":36292,"rankingPoints":36292,"totalPass":8,"totalFc":1,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":205,"bracketLevel":343,"footswitchLevel":356,"jackLevel":317,"sideswitchLevel":130,"doublestepLevel":177,"staminaLevel":43,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"undrscore","sex":"Male","profileImg":"https://i.imgur.com/EOG7g9B.png"},{"id":255,"membersId":66670,"dateAdded":"2023-03-19T01:30:40.000Z","lastUpdated":"2023-03-20T08:18:05.000Z","status":1,"totalPoints":35711,"rankingPoints":35711,"totalPass":7,"totalFc":3,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":72,"bracketLevel":149,"footswitchLevel":184,"jackLevel":166,"sideswitchLevel":38,"doublestepLevel":170,"staminaLevel":66,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Staphf","sex":"Unspecified","profileImg":"https://i.ibb.co/0tqcYJ7/TLFGS.png"},{"id":490,"membersId":144942,"dateAdded":"2023-03-20T12:31:10.000Z","lastUpdated":"2023-05-02T15:14:41.000Z","status":1,"totalPoints":35469,"rankingPoints":35469,"totalPass":12,"totalFc":0,"totalFec":2,"totalQuad":1,"totalQuint":0,"crossoverLevel":255,"bracketLevel":51,"footswitchLevel":103,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":14,"staminaLevel":179,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"itg_Kage","sex":"Male","profileImg":""},{"id":1131,"membersId":6059,"dateAdded":"2023-04-15T19:50:10.000Z","lastUpdated":"2023-04-16T00:42:27.000Z","status":1,"totalPoints":35379,"rankingPoints":35379,"totalPass":6,"totalFc":3,"totalFec":6,"totalQuad":1,"totalQuint":0,"crossoverLevel":459,"bracketLevel":13,"footswitchLevel":221,"jackLevel":26,"sideswitchLevel":0,"doublestepLevel":352,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Will_MaxX","sex":"Male","profileImg":""},{"id":498,"membersId":66777,"dateAdded":"2023-03-20T14:39:26.000Z","lastUpdated":"2023-04-16T12:11:33.000Z","status":1,"totalPoints":35340,"rankingPoints":35340,"totalPass":15,"totalFc":16,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":569,"bracketLevel":41,"footswitchLevel":156,"jackLevel":55,"sideswitchLevel":0,"doublestepLevel":414,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"beeabay","sex":"Female","profileImg":"https://i.imgur.com/m4gVZIE.jpg"},{"id":1151,"membersId":175878,"dateAdded":"2023-04-17T23:12:52.000Z","lastUpdated":"2023-04-30T02:15:34.000Z","status":1,"totalPoints":35192,"rankingPoints":35192,"totalPass":7,"totalFc":5,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":222,"bracketLevel":124,"footswitchLevel":210,"jackLevel":102,"sideswitchLevel":106,"doublestepLevel":131,"staminaLevel":98,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"jqtran","sex":"Male","profileImg":""},{"id":591,"membersId":66772,"dateAdded":"2023-03-21T12:36:51.000Z","lastUpdated":"2023-04-18T13:44:05.000Z","status":1,"totalPoints":35188,"rankingPoints":35188,"totalPass":12,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":199,"bracketLevel":120,"footswitchLevel":101,"jackLevel":122,"sideswitchLevel":13,"doublestepLevel":196,"staminaLevel":85,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"djlunatix","sex":"Male","profileImg":"https://pbs.twimg.com/profile_images/1445787478191796226/3D8tVoCA_400x400.jpg"},{"id":1122,"membersId":175521,"dateAdded":"2023-04-14T13:47:20.000Z","lastUpdated":"2023-05-04T18:21:19.000Z","status":1,"totalPoints":35058,"rankingPoints":35058,"totalPass":40,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":350,"bracketLevel":23,"footswitchLevel":142,"jackLevel":3,"sideswitchLevel":0,"doublestepLevel":118,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zaluzja","sex":"Male","profileImg":""},{"id":565,"membersId":174863,"dateAdded":"2023-03-21T00:14:18.000Z","lastUpdated":"2023-04-05T00:24:06.000Z","status":1,"totalPoints":35046,"rankingPoints":35046,"totalPass":20,"totalFc":12,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":337,"bracketLevel":69,"footswitchLevel":72,"jackLevel":56,"sideswitchLevel":15,"doublestepLevel":281,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"tappy","sex":"Unspecified","profileImg":""},{"id":895,"membersId":50387,"dateAdded":"2023-03-29T05:20:10.000Z","lastUpdated":"2023-04-22T21:05:07.000Z","status":1,"totalPoints":35031,"rankingPoints":35031,"totalPass":2,"totalFc":0,"totalFec":4,"totalQuad":10,"totalQuint":0,"crossoverLevel":473,"bracketLevel":23,"footswitchLevel":164,"jackLevel":63,"sideswitchLevel":0,"doublestepLevel":339,"staminaLevel":25,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"AndyBurnsITG","sex":"Male","profileImg":""},{"id":781,"membersId":173515,"dateAdded":"2023-03-25T15:10:54.000Z","lastUpdated":"2023-04-16T16:58:15.000Z","status":1,"totalPoints":34912,"rankingPoints":34912,"totalPass":7,"totalFc":1,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":306,"bracketLevel":64,"footswitchLevel":434,"jackLevel":12,"sideswitchLevel":206,"doublestepLevel":280,"staminaLevel":68,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dando","sex":"Male","profileImg":""},{"id":892,"membersId":5023,"dateAdded":"2023-03-29T03:44:50.000Z","lastUpdated":"2023-04-03T08:54:31.000Z","status":1,"totalPoints":34208,"rankingPoints":34208,"totalPass":1,"totalFc":1,"totalFec":11,"totalQuad":0,"totalQuint":0,"crossoverLevel":256,"bracketLevel":17,"footswitchLevel":106,"jackLevel":272,"sideswitchLevel":0,"doublestepLevel":429,"staminaLevel":32,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SteveReen","sex":"Male","profileImg":"https://media.discordapp.net/attachments/663447581359210499/991228398670200902/robert.png"},{"id":626,"membersId":3116,"dateAdded":"2023-03-22T00:22:00.000Z","lastUpdated":"2023-03-22T02:51:44.000Z","status":1,"totalPoints":34035,"rankingPoints":34035,"totalPass":5,"totalFc":0,"totalFec":4,"totalQuad":1,"totalQuint":0,"crossoverLevel":161,"bracketLevel":135,"footswitchLevel":68,"jackLevel":6,"sideswitchLevel":57,"doublestepLevel":89,"staminaLevel":12,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PenguinMessiah","sex":"Male","profileImg":""},{"id":1090,"membersId":175793,"dateAdded":"2023-04-11T01:28:04.000Z","lastUpdated":"2023-05-01T01:54:46.000Z","status":1,"totalPoints":33963,"rankingPoints":33963,"totalPass":12,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":102,"bracketLevel":205,"footswitchLevel":224,"jackLevel":177,"sideswitchLevel":147,"doublestepLevel":166,"staminaLevel":39,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Chicken Okabe","sex":"Unspecified","profileImg":""},{"id":996,"membersId":165801,"dateAdded":"2023-04-03T22:58:49.000Z","lastUpdated":"2023-04-03T23:59:43.000Z","status":1,"totalPoints":33342,"rankingPoints":33342,"totalPass":8,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":202,"bracketLevel":196,"footswitchLevel":161,"jackLevel":60,"sideswitchLevel":208,"doublestepLevel":115,"staminaLevel":54,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Powdaboi","sex":"Male","profileImg":""},{"id":586,"membersId":175199,"dateAdded":"2023-03-21T07:37:03.000Z","lastUpdated":"2023-04-15T21:22:21.000Z","status":1,"totalPoints":33261,"rankingPoints":33261,"totalPass":37,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":231,"bracketLevel":90,"footswitchLevel":117,"jackLevel":63,"sideswitchLevel":0,"doublestepLevel":303,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":\"Gh0zt#4709\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Gh0zt","sex":"Male","profileImg":""},{"id":874,"membersId":175563,"dateAdded":"2023-03-28T17:39:39.000Z","lastUpdated":"2023-03-28T18:27:22.000Z","status":1,"totalPoints":33040,"rankingPoints":33040,"totalPass":8,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":350,"bracketLevel":0,"footswitchLevel":82,"jackLevel":113,"sideswitchLevel":253,"doublestepLevel":48,"staminaLevel":43,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Blackrainer","sex":"Male","profileImg":""},{"id":769,"membersId":173418,"dateAdded":"2023-03-25T05:21:43.000Z","lastUpdated":"2023-04-22T20:02:55.000Z","status":1,"totalPoints":32995,"rankingPoints":32995,"totalPass":14,"totalFc":1,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":302,"bracketLevel":14,"footswitchLevel":51,"jackLevel":3,"sideswitchLevel":260,"doublestepLevel":186,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Aetherspike","sex":"Male","profileImg":""},{"id":373,"membersId":172592,"dateAdded":"2023-03-19T17:14:02.000Z","lastUpdated":"2023-04-23T15:33:01.000Z","status":1,"totalPoints":32811,"rankingPoints":32811,"totalPass":11,"totalFc":2,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":356,"bracketLevel":138,"footswitchLevel":85,"jackLevel":0,"sideswitchLevel":20,"doublestepLevel":78,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"jck!!","sex":"Male","profileImg":""},{"id":464,"membersId":3240,"dateAdded":"2023-03-20T02:07:11.000Z","lastUpdated":"2023-03-30T15:33:26.000Z","status":1,"totalPoints":32746,"rankingPoints":32746,"totalPass":8,"totalFc":11,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":382,"bracketLevel":1,"footswitchLevel":43,"jackLevel":66,"sideswitchLevel":22,"doublestepLevel":262,"staminaLevel":10,"isBuddy":false,"preferences":"{\"discordId\":\"AlienSix#2007\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"AlienSix","sex":"Male","profileImg":""},{"id":87,"membersId":165806,"dateAdded":"2023-03-18T21:51:03.000Z","lastUpdated":"2023-04-07T19:31:24.000Z","status":1,"totalPoints":32671,"rankingPoints":32671,"totalPass":33,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":429,"bracketLevel":115,"footswitchLevel":115,"jackLevel":45,"sideswitchLevel":0,"doublestepLevel":167,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"Ky_Dash#1011\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Ky_Dash","sex":"Unspecified","profileImg":"https://cdn.discordapp.com/attachments/152438051614752768/1087150988248490099/image.png"},{"id":939,"membersId":174097,"dateAdded":"2023-03-31T17:29:10.000Z","lastUpdated":"2023-05-04T07:20:34.000Z","status":1,"totalPoints":32671,"rankingPoints":32671,"totalPass":8,"totalFc":4,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":159,"bracketLevel":201,"footswitchLevel":199,"jackLevel":126,"sideswitchLevel":41,"doublestepLevel":215,"staminaLevel":29,"isBuddy":false,"preferences":"{\"discordId\":\"Yisus#6906\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Yisuszzz","sex":"Male","profileImg":""},{"id":961,"membersId":173805,"dateAdded":"2023-04-01T20:41:08.000Z","lastUpdated":"2023-04-30T20:23:23.000Z","status":1,"totalPoints":32607,"rankingPoints":32607,"totalPass":5,"totalFc":9,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":319,"bracketLevel":9,"footswitchLevel":205,"jackLevel":130,"sideswitchLevel":331,"doublestepLevel":303,"staminaLevel":7,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ThereGoesMySanity","sex":"Male","profileImg":""},{"id":930,"membersId":175614,"dateAdded":"2023-03-30T23:55:44.000Z","lastUpdated":"2023-04-24T00:43:59.000Z","status":1,"totalPoints":32322,"rankingPoints":32322,"totalPass":19,"totalFc":3,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":457,"bracketLevel":86,"footswitchLevel":98,"jackLevel":35,"sideswitchLevel":0,"doublestepLevel":102,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lula","sex":"Female","profileImg":""},{"id":956,"membersId":173264,"dateAdded":"2023-04-01T16:46:09.000Z","lastUpdated":"2023-04-29T19:49:54.000Z","status":1,"totalPoints":32244,"rankingPoints":32244,"totalPass":24,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":265,"bracketLevel":5,"footswitchLevel":107,"jackLevel":62,"sideswitchLevel":0,"doublestepLevel":202,"staminaLevel":5,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"jemihon","sex":"Male","profileImg":""},{"id":733,"membersId":173816,"dateAdded":"2023-03-24T16:46:07.000Z","lastUpdated":"2023-04-30T16:03:08.000Z","status":1,"totalPoints":32007,"rankingPoints":32007,"totalPass":38,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":474,"bracketLevel":21,"footswitchLevel":89,"jackLevel":37,"sideswitchLevel":0,"doublestepLevel":132,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Niuq","sex":"Male","profileImg":""},{"id":1084,"membersId":175784,"dateAdded":"2023-04-10T09:21:13.000Z","lastUpdated":"2023-04-30T17:58:00.000Z","status":1,"totalPoints":31584,"rankingPoints":31584,"totalPass":22,"totalFc":7,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":385,"bracketLevel":10,"footswitchLevel":180,"jackLevel":34,"sideswitchLevel":0,"doublestepLevel":289,"staminaLevel":10,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"beqa","sex":"Unspecified","profileImg":""},{"id":163,"membersId":173148,"dateAdded":"2023-03-18T22:27:47.000Z","lastUpdated":"2023-03-28T02:36:15.000Z","status":1,"totalPoints":31576,"rankingPoints":31576,"totalPass":2,"totalFc":4,"totalFec":14,"totalQuad":0,"totalQuint":0,"crossoverLevel":450,"bracketLevel":66,"footswitchLevel":70,"jackLevel":45,"sideswitchLevel":0,"doublestepLevel":273,"staminaLevel":11,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LT","sex":"Unspecified","profileImg":""},{"id":420,"membersId":175396,"dateAdded":"2023-03-19T21:02:35.000Z","lastUpdated":"2023-03-20T17:49:25.000Z","status":1,"totalPoints":31224,"rankingPoints":31224,"totalPass":14,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":255,"bracketLevel":65,"footswitchLevel":100,"jackLevel":42,"sideswitchLevel":0,"doublestepLevel":158,"staminaLevel":10,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Himolaeski Homer","sex":"Unspecified","profileImg":"https://i.imgur.com/4QWmleO.jpg"},{"id":759,"membersId":173775,"dateAdded":"2023-03-25T01:53:16.000Z","lastUpdated":"2023-04-24T00:11:12.000Z","status":1,"totalPoints":31120,"rankingPoints":31120,"totalPass":17,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":398,"bracketLevel":72,"footswitchLevel":37,"jackLevel":144,"sideswitchLevel":0,"doublestepLevel":61,"staminaLevel":24,"isBuddy":false,"preferences":"{\"discordId\":\"GDimples#4902\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dimples","sex":"Unspecified","profileImg":""},{"id":1137,"membersId":173339,"dateAdded":"2023-04-16T04:53:53.000Z","lastUpdated":"2023-04-24T23:53:08.000Z","status":1,"totalPoints":30855,"rankingPoints":30855,"totalPass":25,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":304,"bracketLevel":39,"footswitchLevel":110,"jackLevel":40,"sideswitchLevel":41,"doublestepLevel":145,"staminaLevel":12,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nomstaiters","sex":"Male","profileImg":""},{"id":1098,"membersId":165755,"dateAdded":"2023-04-11T23:57:45.000Z","lastUpdated":"2023-04-25T22:47:08.000Z","status":1,"totalPoints":30829,"rankingPoints":30829,"totalPass":4,"totalFc":1,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":223,"bracketLevel":5,"footswitchLevel":105,"jackLevel":55,"sideswitchLevel":0,"doublestepLevel":133,"staminaLevel":72,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SleepyDragon","sex":"Male","profileImg":""},{"id":1224,"membersId":173711,"dateAdded":"2023-04-27T00:02:21.000Z","lastUpdated":"2023-04-29T01:45:29.000Z","status":1,"totalPoints":30726,"rankingPoints":30726,"totalPass":37,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":392,"bracketLevel":48,"footswitchLevel":145,"jackLevel":22,"sideswitchLevel":0,"doublestepLevel":253,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Pymodule","sex":"Male","profileImg":"https://retroachievements.org/UserPic/Pymodule.png"},{"id":275,"membersId":173133,"dateAdded":"2023-03-19T02:38:14.000Z","lastUpdated":"2023-04-08T00:19:37.000Z","status":1,"totalPoints":30713,"rankingPoints":30713,"totalPass":2,"totalFc":1,"totalFec":7,"totalQuad":3,"totalQuint":0,"crossoverLevel":295,"bracketLevel":130,"footswitchLevel":144,"jackLevel":25,"sideswitchLevel":0,"doublestepLevel":323,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JoeWhitt","sex":"Male","profileImg":""},{"id":828,"membersId":174123,"dateAdded":"2023-03-26T18:53:08.000Z","lastUpdated":"2023-04-18T20:45:28.000Z","status":1,"totalPoints":30494,"rankingPoints":30494,"totalPass":9,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":143,"bracketLevel":32,"footswitchLevel":221,"jackLevel":206,"sideswitchLevel":0,"doublestepLevel":192,"staminaLevel":34,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Ketsakura","sex":"Male","profileImg":""},{"id":798,"membersId":173609,"dateAdded":"2023-03-25T20:02:32.000Z","lastUpdated":"2023-05-01T02:24:49.000Z","status":1,"totalPoints":30493,"rankingPoints":30493,"totalPass":31,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":426,"bracketLevel":46,"footswitchLevel":110,"jackLevel":40,"sideswitchLevel":0,"doublestepLevel":234,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"quat#8515\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"quaternary","sex":"Unspecified","profileImg":"https://i.imgur.com/lUh5MJz.png"},{"id":1088,"membersId":73473,"dateAdded":"2023-04-10T20:18:29.000Z","lastUpdated":"2023-04-24T12:30:34.000Z","status":1,"totalPoints":30345,"rankingPoints":30345,"totalPass":16,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":366,"bracketLevel":10,"footswitchLevel":112,"jackLevel":53,"sideswitchLevel":59,"doublestepLevel":177,"staminaLevel":51,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Robbumon","sex":"Male","profileImg":"https://rhythmandpixels.files.wordpress.com/2021/06/rob_groovestats2.png"},{"id":613,"membersId":175427,"dateAdded":"2023-03-21T21:22:59.000Z","lastUpdated":"2023-03-26T18:43:13.000Z","status":1,"totalPoints":30262,"rankingPoints":30262,"totalPass":11,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":195,"bracketLevel":14,"footswitchLevel":141,"jackLevel":99,"sideswitchLevel":0,"doublestepLevel":276,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"derpjosh","sex":"Male","profileImg":""},{"id":374,"membersId":174568,"dateAdded":"2023-03-19T17:22:09.000Z","lastUpdated":"2023-03-20T21:49:08.000Z","status":1,"totalPoints":30061,"rankingPoints":30061,"totalPass":5,"totalFc":0,"totalFec":7,"totalQuad":2,"totalQuint":0,"crossoverLevel":335,"bracketLevel":58,"footswitchLevel":316,"jackLevel":39,"sideswitchLevel":248,"doublestepLevel":196,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JellySlosh","sex":"Male","profileImg":""},{"id":39,"membersId":172899,"dateAdded":"2023-03-18T21:49:00.000Z","lastUpdated":"2023-04-15T08:53:55.000Z","status":1,"totalPoints":30007,"rankingPoints":30007,"totalPass":3,"totalFc":4,"totalFec":14,"totalQuad":0,"totalQuint":0,"crossoverLevel":500,"bracketLevel":15,"footswitchLevel":191,"jackLevel":78,"sideswitchLevel":0,"doublestepLevel":83,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":\"amaiiberry#5750\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"amaiiberry","sex":"Unspecified","profileImg":"https://i.imgur.com/rrJCKY0.png"},{"id":133,"membersId":173658,"dateAdded":"2023-03-18T22:03:54.000Z","lastUpdated":"2023-05-02T20:54:49.000Z","status":1,"totalPoints":29529,"rankingPoints":29529,"totalPass":29,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":337,"bracketLevel":6,"footswitchLevel":73,"jackLevel":42,"sideswitchLevel":0,"doublestepLevel":123,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"false_parallax","sex":"Female","profileImg":""},{"id":1232,"membersId":173844,"dateAdded":"2023-04-27T07:39:51.000Z","lastUpdated":"2023-05-01T15:49:11.000Z","status":1,"totalPoints":29459,"rankingPoints":29459,"totalPass":8,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":84,"bracketLevel":189,"footswitchLevel":184,"jackLevel":257,"sideswitchLevel":77,"doublestepLevel":104,"staminaLevel":64,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kralde","sex":"Unspecified","profileImg":"https://i.ibb.co/TkHKvT6/Screenshot-20220627-132554-Gallery-250x300.jpg"},{"id":1264,"membersId":7721,"dateAdded":"2023-05-01T16:00:06.000Z","lastUpdated":"2023-05-05T17:34:22.000Z","status":1,"totalPoints":28977,"rankingPoints":28977,"totalPass":9,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":274,"bracketLevel":30,"footswitchLevel":128,"jackLevel":54,"sideswitchLevel":144,"doublestepLevel":234,"staminaLevel":37,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"AzleKayn","sex":"Male","profileImg":""},{"id":361,"membersId":173001,"dateAdded":"2023-03-19T16:00:58.000Z","lastUpdated":"2023-04-16T20:21:41.000Z","status":1,"totalPoints":28837,"rankingPoints":28837,"totalPass":9,"totalFc":3,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":267,"bracketLevel":46,"footswitchLevel":236,"jackLevel":138,"sideswitchLevel":63,"doublestepLevel":259,"staminaLevel":12,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Foxxo","sex":"Male","profileImg":"https://i.ibb.co/Sry6tbY/Bi-Foxxo-Icon-Small.png"},{"id":1193,"membersId":175952,"dateAdded":"2023-04-23T01:53:22.000Z","lastUpdated":"2023-05-07T05:08:05.000Z","status":1,"totalPoints":28705,"rankingPoints":28705,"totalPass":36,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":348,"bracketLevel":105,"footswitchLevel":139,"jackLevel":37,"sideswitchLevel":0,"doublestepLevel":121,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"zylviij","sex":"Male","profileImg":""},{"id":1076,"membersId":7652,"dateAdded":"2023-04-09T22:03:02.000Z","lastUpdated":"2023-05-01T02:01:20.000Z","status":1,"totalPoints":28698,"rankingPoints":28698,"totalPass":5,"totalFc":8,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":361,"bracketLevel":67,"footswitchLevel":227,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":158,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"C_Drek","sex":"Male","profileImg":""},{"id":1117,"membersId":173866,"dateAdded":"2023-04-13T23:14:05.000Z","lastUpdated":"2023-04-27T00:10:14.000Z","status":1,"totalPoints":28258,"rankingPoints":28258,"totalPass":28,"totalFc":7,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":373,"bracketLevel":23,"footswitchLevel":128,"jackLevel":16,"sideswitchLevel":0,"doublestepLevel":154,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"scott","sex":"Male","profileImg":"https://ih1.redbubble.net/image.1380875521.4410/flat,128x,075,f-pad,128x128,f8f8f8.jpg"},{"id":805,"membersId":175524,"dateAdded":"2023-03-25T23:01:13.000Z","lastUpdated":"2023-04-01T22:41:52.000Z","status":1,"totalPoints":28147,"rankingPoints":28147,"totalPass":17,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":303,"bracketLevel":127,"footswitchLevel":137,"jackLevel":49,"sideswitchLevel":0,"doublestepLevel":170,"staminaLevel":8,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"G4to","sex":"Male","profileImg":""},{"id":826,"membersId":173265,"dateAdded":"2023-03-26T17:45:29.000Z","lastUpdated":"2023-03-26T22:44:25.000Z","status":1,"totalPoints":27781,"rankingPoints":27781,"totalPass":13,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":216,"bracketLevel":19,"footswitchLevel":186,"jackLevel":95,"sideswitchLevel":44,"doublestepLevel":210,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":\"nazu#0001\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nazu","sex":"Female","profileImg":"https://i.ibb.co/YW8QZRg/20230326-155414.png"},{"id":703,"membersId":173385,"dateAdded":"2023-03-23T16:57:45.000Z","lastUpdated":"2023-04-13T04:03:59.000Z","status":1,"totalPoints":27580,"rankingPoints":27580,"totalPass":6,"totalFc":10,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":591,"bracketLevel":28,"footswitchLevel":170,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":157,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nifterific","sex":"Male","profileImg":"https://i.imgur.com/U5vOil3.jpg"},{"id":668,"membersId":173413,"dateAdded":"2023-03-22T20:48:11.000Z","lastUpdated":"2023-05-04T02:39:19.000Z","status":1,"totalPoints":27509,"rankingPoints":27509,"totalPass":1,"totalFc":4,"totalFec":6,"totalQuad":9,"totalQuint":0,"crossoverLevel":388,"bracketLevel":35,"footswitchLevel":56,"jackLevel":28,"sideswitchLevel":0,"doublestepLevel":130,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"FRCO","sex":"Male","profileImg":""},{"id":244,"membersId":109985,"dateAdded":"2023-03-19T00:54:29.000Z","lastUpdated":"2023-05-03T16:33:12.000Z","status":1,"totalPoints":27354,"rankingPoints":27354,"totalPass":31,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":319,"bracketLevel":95,"footswitchLevel":55,"jackLevel":19,"sideswitchLevel":0,"doublestepLevel":102,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"soler#8089\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"soler98012","sex":"Unspecified","profileImg":""},{"id":1075,"membersId":175729,"dateAdded":"2023-04-09T20:33:33.000Z","lastUpdated":"2023-05-05T01:43:32.000Z","status":1,"totalPoints":27009,"rankingPoints":27009,"totalPass":13,"totalFc":16,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":420,"bracketLevel":26,"footswitchLevel":120,"jackLevel":21,"sideswitchLevel":0,"doublestepLevel":180,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"UserError","sex":"Unspecified","profileImg":""},{"id":1206,"membersId":173541,"dateAdded":"2023-04-24T14:37:55.000Z","lastUpdated":"2023-05-05T00:12:52.000Z","status":1,"totalPoints":26808,"rankingPoints":26808,"totalPass":4,"totalFc":5,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":213,"bracketLevel":54,"footswitchLevel":170,"jackLevel":72,"sideswitchLevel":0,"doublestepLevel":129,"staminaLevel":6,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LPCrossOver","sex":"Male","profileImg":""},{"id":683,"membersId":6601,"dateAdded":"2023-03-22T23:43:53.000Z","lastUpdated":"2023-05-04T23:42:00.000Z","status":1,"totalPoints":26709,"rankingPoints":26709,"totalPass":6,"totalFc":7,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":257,"bracketLevel":47,"footswitchLevel":81,"jackLevel":4,"sideswitchLevel":0,"doublestepLevel":92,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"old man Blazing","sex":"Unspecified","profileImg":""},{"id":848,"membersId":173695,"dateAdded":"2023-03-27T00:22:45.000Z","lastUpdated":"2023-05-06T01:52:50.000Z","status":1,"totalPoints":26664,"rankingPoints":26664,"totalPass":38,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":327,"bracketLevel":18,"footswitchLevel":66,"jackLevel":33,"sideswitchLevel":0,"doublestepLevel":108,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"Rhiannonak#9589\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"rhiannonak","sex":"Female","profileImg":""},{"id":181,"membersId":66634,"dateAdded":"2023-03-18T22:44:38.000Z","lastUpdated":"2023-04-22T18:43:38.000Z","status":1,"totalPoints":26562,"rankingPoints":26562,"totalPass":22,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":297,"bracketLevel":8,"footswitchLevel":114,"jackLevel":89,"sideswitchLevel":0,"doublestepLevel":273,"staminaLevel":8,"isBuddy":false,"preferences":"{\"discordId\":\"Catoxis#2010\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Catoxis","sex":"Male","profileImg":"https://a.furaffinity.net/1577638531/akkeresu.gif"},{"id":206,"membersId":1300,"dateAdded":"2023-03-18T23:31:35.000Z","lastUpdated":"2023-04-13T01:49:09.000Z","status":1,"totalPoints":26470,"rankingPoints":26470,"totalPass":1,"totalFc":6,"totalFec":11,"totalQuad":7,"totalQuint":0,"crossoverLevel":500,"bracketLevel":12,"footswitchLevel":87,"jackLevel":33,"sideswitchLevel":0,"doublestepLevel":182,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"iamBGS","sex":"Male","profileImg":""},{"id":452,"membersId":173307,"dateAdded":"2023-03-20T01:00:33.000Z","lastUpdated":"2023-03-25T02:14:42.000Z","status":1,"totalPoints":26381,"rankingPoints":26381,"totalPass":17,"totalFc":13,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":267,"bracketLevel":17,"footswitchLevel":113,"jackLevel":23,"sideswitchLevel":0,"doublestepLevel":109,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Yaksa","sex":"Male","profileImg":""},{"id":1004,"membersId":175685,"dateAdded":"2023-04-04T02:18:15.000Z","lastUpdated":"2023-04-04T05:11:37.000Z","status":1,"totalPoints":26370,"rankingPoints":26370,"totalPass":9,"totalFc":4,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":213,"bracketLevel":20,"footswitchLevel":210,"jackLevel":54,"sideswitchLevel":0,"doublestepLevel":306,"staminaLevel":29,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MicMac","sex":"Male","profileImg":""},{"id":533,"membersId":175410,"dateAdded":"2023-03-20T19:40:59.000Z","lastUpdated":"2023-04-26T00:35:12.000Z","status":1,"totalPoints":26348,"rankingPoints":26348,"totalPass":39,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":302,"bracketLevel":19,"footswitchLevel":114,"jackLevel":15,"sideswitchLevel":0,"doublestepLevel":89,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ObsidianSkin","sex":"Male","profileImg":""},{"id":754,"membersId":56430,"dateAdded":"2023-03-25T01:07:58.000Z","lastUpdated":"2023-03-26T19:43:09.000Z","status":1,"totalPoints":26264,"rankingPoints":26264,"totalPass":25,"totalFc":7,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":397,"bracketLevel":25,"footswitchLevel":115,"jackLevel":38,"sideswitchLevel":0,"doublestepLevel":173,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"thefreemansbackup","sex":"Female","profileImg":""},{"id":702,"membersId":4393,"dateAdded":"2023-03-23T16:34:41.000Z","lastUpdated":"2023-04-10T20:46:27.000Z","status":1,"totalPoints":26009,"rankingPoints":26009,"totalPass":1,"totalFc":0,"totalFec":1,"totalQuad":6,"totalQuint":0,"crossoverLevel":242,"bracketLevel":9,"footswitchLevel":53,"jackLevel":5,"sideswitchLevel":34,"doublestepLevel":32,"staminaLevel":24,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Juggles","sex":"Male","profileImg":""},{"id":845,"membersId":172891,"dateAdded":"2023-03-26T23:39:54.000Z","lastUpdated":"2023-04-10T18:53:05.000Z","status":1,"totalPoints":25783,"rankingPoints":25783,"totalPass":31,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":339,"bracketLevel":42,"footswitchLevel":113,"jackLevel":60,"sideswitchLevel":0,"doublestepLevel":213,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"OT#1337\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"partybus","sex":"Male","profileImg":""},{"id":1172,"membersId":2722,"dateAdded":"2023-04-20T19:19:32.000Z","lastUpdated":"2023-04-20T20:04:00.000Z","status":1,"totalPoints":25725,"rankingPoints":25725,"totalPass":9,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":203,"bracketLevel":37,"footswitchLevel":191,"jackLevel":141,"sideswitchLevel":30,"doublestepLevel":117,"staminaLevel":12,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"kiko","sex":"Male","profileImg":""},{"id":989,"membersId":30901,"dateAdded":"2023-04-03T15:18:59.000Z","lastUpdated":"2023-05-04T16:38:52.000Z","status":1,"totalPoints":25623,"rankingPoints":25623,"totalPass":11,"totalFc":4,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":323,"bracketLevel":23,"footswitchLevel":173,"jackLevel":48,"sideswitchLevel":0,"doublestepLevel":265,"staminaLevel":18,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Quanto","sex":"Male","profileImg":"https://ih1.redbubble.net/image.1069379279.2745/flat,128x128,075,f-pad,128x128,f8f8f8.u2.jpg"},{"id":648,"membersId":175441,"dateAdded":"2023-03-22T10:56:50.000Z","lastUpdated":"2023-05-03T19:07:33.000Z","status":1,"totalPoints":25597,"rankingPoints":25597,"totalPass":37,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":304,"bracketLevel":18,"footswitchLevel":124,"jackLevel":18,"sideswitchLevel":0,"doublestepLevel":129,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MetAteM","sex":"Unspecified","profileImg":""},{"id":865,"membersId":66813,"dateAdded":"2023-03-28T00:01:19.000Z","lastUpdated":"2023-04-02T16:59:18.000Z","status":1,"totalPoints":25503,"rankingPoints":25503,"totalPass":17,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":388,"bracketLevel":0,"footswitchLevel":56,"jackLevel":48,"sideswitchLevel":18,"doublestepLevel":144,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MCThammer","sex":"Female","profileImg":""},{"id":771,"membersId":147944,"dateAdded":"2023-03-25T07:53:50.000Z","lastUpdated":"2023-03-26T06:24:40.000Z","status":1,"totalPoints":25432,"rankingPoints":25432,"totalPass":13,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":266,"bracketLevel":61,"footswitchLevel":93,"jackLevel":46,"sideswitchLevel":0,"doublestepLevel":106,"staminaLevel":10,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Frky","sex":"Male","profileImg":"https://pbs.twimg.com/media/ETxijpkXgAAdNWc.png"},{"id":1071,"membersId":173514,"dateAdded":"2023-04-09T18:14:16.000Z","lastUpdated":"2023-04-18T01:55:48.000Z","status":1,"totalPoints":25387,"rankingPoints":25387,"totalPass":6,"totalFc":4,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":324,"bracketLevel":42,"footswitchLevel":118,"jackLevel":80,"sideswitchLevel":0,"doublestepLevel":370,"staminaLevel":6,"isBuddy":false,"preferences":"{\"discordId\":\"Eijiken#8811\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Eijiken","sex":"Male","profileImg":""},{"id":1003,"membersId":175682,"dateAdded":"2023-04-04T01:53:08.000Z","lastUpdated":"2023-04-29T01:01:01.000Z","status":1,"totalPoints":25121,"rankingPoints":25121,"totalPass":14,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":273,"bracketLevel":5,"footswitchLevel":106,"jackLevel":28,"sideswitchLevel":11,"doublestepLevel":114,"staminaLevel":11,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MochiCake","sex":"Female","profileImg":""},{"id":1152,"membersId":132060,"dateAdded":"2023-04-17T23:53:44.000Z","lastUpdated":"2023-05-03T23:24:08.000Z","status":1,"totalPoints":25102,"rankingPoints":25102,"totalPass":15,"totalFc":7,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":321,"bracketLevel":20,"footswitchLevel":120,"jackLevel":15,"sideswitchLevel":0,"doublestepLevel":201,"staminaLevel":17,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"KuraiGekkou","sex":"Unspecified","profileImg":""},{"id":1120,"membersId":175832,"dateAdded":"2023-04-14T03:19:47.000Z","lastUpdated":"2023-04-19T05:31:49.000Z","status":1,"totalPoints":24923,"rankingPoints":24923,"totalPass":27,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":358,"bracketLevel":37,"footswitchLevel":124,"jackLevel":44,"sideswitchLevel":0,"doublestepLevel":210,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"CHI_XU","sex":"Unspecified","profileImg":"https://i.imgur.com/9de3TCB.jpg"},{"id":316,"membersId":175383,"dateAdded":"2023-03-19T06:19:29.000Z","lastUpdated":"2023-03-28T10:17:31.000Z","status":1,"totalPoints":24747,"rankingPoints":24747,"totalPass":29,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":404,"bracketLevel":18,"footswitchLevel":125,"jackLevel":17,"sideswitchLevel":0,"doublestepLevel":204,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DenryuRider","sex":"Male","profileImg":""},{"id":842,"membersId":175545,"dateAdded":"2023-03-26T22:37:58.000Z","lastUpdated":"2023-04-17T04:12:54.000Z","status":1,"totalPoints":24690,"rankingPoints":24690,"totalPass":30,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":297,"bracketLevel":24,"footswitchLevel":90,"jackLevel":37,"sideswitchLevel":0,"doublestepLevel":123,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CHAOTICA","sex":"Unspecified","profileImg":""},{"id":473,"membersId":173429,"dateAdded":"2023-03-20T03:18:31.000Z","lastUpdated":"2023-04-19T15:44:53.000Z","status":1,"totalPoints":24592,"rankingPoints":24592,"totalPass":35,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":312,"bracketLevel":91,"footswitchLevel":98,"jackLevel":53,"sideswitchLevel":0,"doublestepLevel":173,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Cob","sex":"Male","profileImg":""},{"id":1228,"membersId":75724,"dateAdded":"2023-04-27T03:08:24.000Z","lastUpdated":"2023-05-03T19:05:19.000Z","status":1,"totalPoints":24581,"rankingPoints":24581,"totalPass":8,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":125,"bracketLevel":54,"footswitchLevel":102,"jackLevel":62,"sideswitchLevel":20,"doublestepLevel":198,"staminaLevel":22,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SleepBAAA","sex":"Unspecified","profileImg":""},{"id":707,"membersId":173157,"dateAdded":"2023-03-23T20:54:08.000Z","lastUpdated":"2023-04-20T23:29:53.000Z","status":1,"totalPoints":24575,"rankingPoints":24575,"totalPass":12,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":121,"bracketLevel":30,"footswitchLevel":175,"jackLevel":9,"sideswitchLevel":24,"doublestepLevel":145,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Whipplash","sex":"Male","profileImg":"https://images2.imgbox.com/69/64/ETzL6mH2_o.png"},{"id":1167,"membersId":75738,"dateAdded":"2023-04-19T21:07:04.000Z","lastUpdated":"2023-04-22T15:26:22.000Z","status":1,"totalPoints":24510,"rankingPoints":24510,"totalPass":4,"totalFc":4,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":210,"bracketLevel":103,"footswitchLevel":161,"jackLevel":26,"sideswitchLevel":16,"doublestepLevel":31,"staminaLevel":34,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"andkaseywaslike","sex":"Male","profileImg":"https://pbs.twimg.com/media/EYzOVJ3XkAAEXp9.jpg"},{"id":756,"membersId":173519,"dateAdded":"2023-03-25T01:20:17.000Z","lastUpdated":"2023-03-25T02:05:55.000Z","status":1,"totalPoints":24494,"rankingPoints":24494,"totalPass":8,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":176,"bracketLevel":104,"footswitchLevel":89,"jackLevel":175,"sideswitchLevel":12,"doublestepLevel":199,"staminaLevel":42,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"oggvaldo","sex":"Male","profileImg":""},{"id":852,"membersId":113020,"dateAdded":"2023-03-27T04:57:20.000Z","lastUpdated":"2023-04-05T21:19:38.000Z","status":1,"totalPoints":24488,"rankingPoints":24488,"totalPass":6,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":40,"bracketLevel":117,"footswitchLevel":63,"jackLevel":27,"sideswitchLevel":0,"doublestepLevel":78,"staminaLevel":198,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"K.Jones","sex":"Male","profileImg":""},{"id":1031,"membersId":173479,"dateAdded":"2023-04-06T02:16:16.000Z","lastUpdated":"2023-05-01T02:22:30.000Z","status":1,"totalPoints":24380,"rankingPoints":24380,"totalPass":17,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":395,"bracketLevel":46,"footswitchLevel":111,"jackLevel":49,"sideswitchLevel":0,"doublestepLevel":144,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lililotta","sex":"Female","profileImg":""},{"id":1205,"membersId":175975,"dateAdded":"2023-04-24T14:34:08.000Z","lastUpdated":"2023-05-03T02:12:30.000Z","status":1,"totalPoints":23875,"rankingPoints":23875,"totalPass":14,"totalFc":7,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":377,"bracketLevel":34,"footswitchLevel":88,"jackLevel":24,"sideswitchLevel":0,"doublestepLevel":264,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":\"HeeroJay#4670\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"HeeroJay","sex":"Unspecified","profileImg":""},{"id":752,"membersId":175474,"dateAdded":"2023-03-24T23:56:06.000Z","lastUpdated":"2023-05-03T02:36:42.000Z","status":1,"totalPoints":23783,"rankingPoints":23783,"totalPass":6,"totalFc":3,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":226,"bracketLevel":24,"footswitchLevel":170,"jackLevel":70,"sideswitchLevel":92,"doublestepLevel":88,"staminaLevel":6,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Pyon","sex":"Unspecified","profileImg":""},{"id":1044,"membersId":164014,"dateAdded":"2023-04-07T07:41:53.000Z","lastUpdated":"2023-05-07T00:49:49.000Z","status":1,"totalPoints":23768,"rankingPoints":23768,"totalPass":7,"totalFc":14,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":420,"bracketLevel":10,"footswitchLevel":77,"jackLevel":30,"sideswitchLevel":0,"doublestepLevel":153,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dogessa","sex":"Male","profileImg":"https://i.postimg.cc/pXbN9wbQ/i-Veg-J35-xfjlfu.gif"},{"id":765,"membersId":174241,"dateAdded":"2023-03-25T04:04:16.000Z","lastUpdated":"2023-04-29T04:52:33.000Z","status":1,"totalPoints":23656,"rankingPoints":23656,"totalPass":8,"totalFc":8,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":251,"bracketLevel":58,"footswitchLevel":49,"jackLevel":26,"sideswitchLevel":0,"doublestepLevel":176,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"HellsingKo","sex":"Unspecified","profileImg":""},{"id":696,"membersId":175458,"dateAdded":"2023-03-23T12:06:25.000Z","lastUpdated":"2023-05-03T12:37:31.000Z","status":1,"totalPoints":23614,"rankingPoints":23614,"totalPass":18,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":302,"bracketLevel":16,"footswitchLevel":44,"jackLevel":37,"sideswitchLevel":58,"doublestepLevel":108,"staminaLevel":7,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"little_blake","sex":"Unspecified","profileImg":""},{"id":1174,"membersId":127815,"dateAdded":"2023-04-21T01:49:38.000Z","lastUpdated":"2023-04-21T06:44:26.000Z","status":1,"totalPoints":23508,"rankingPoints":23508,"totalPass":0,"totalFc":0,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":137,"bracketLevel":86,"footswitchLevel":87,"jackLevel":67,"sideswitchLevel":81,"doublestepLevel":155,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Corgi","sex":"Female","profileImg":""},{"id":698,"membersId":1979,"dateAdded":"2023-03-23T13:22:03.000Z","lastUpdated":"2023-04-26T17:11:02.000Z","status":1,"totalPoints":22987,"rankingPoints":22987,"totalPass":7,"totalFc":4,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":286,"bracketLevel":122,"footswitchLevel":164,"jackLevel":63,"sideswitchLevel":211,"doublestepLevel":110,"staminaLevel":11,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"(OZA)","sex":"Male","profileImg":"https://i.postimg.cc/mgbFFC0c/AVATAR-OZA-groovestats.png"},{"id":1030,"membersId":175686,"dateAdded":"2023-04-06T02:12:06.000Z","lastUpdated":"2023-04-06T04:09:38.000Z","status":1,"totalPoints":22865,"rankingPoints":22865,"totalPass":32,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":338,"bracketLevel":44,"footswitchLevel":87,"jackLevel":35,"sideswitchLevel":0,"doublestepLevel":143,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"iCherry7","sex":"Female","profileImg":""},{"id":851,"membersId":66457,"dateAdded":"2023-03-27T04:36:15.000Z","lastUpdated":"2023-04-21T03:33:56.000Z","status":1,"totalPoints":22430,"rankingPoints":22430,"totalPass":14,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":225,"bracketLevel":83,"footswitchLevel":118,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":154,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"igr2","sex":"Unspecified","profileImg":""},{"id":680,"membersId":174249,"dateAdded":"2023-03-22T23:18:33.000Z","lastUpdated":"2023-04-23T18:33:39.000Z","status":1,"totalPoints":22062,"rankingPoints":22062,"totalPass":25,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":372,"bracketLevel":19,"footswitchLevel":118,"jackLevel":38,"sideswitchLevel":0,"doublestepLevel":118,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Raikachan","sex":"Female","profileImg":""},{"id":1196,"membersId":173977,"dateAdded":"2023-04-23T15:51:43.000Z","lastUpdated":"2023-05-06T22:14:14.000Z","status":1,"totalPoints":21252,"rankingPoints":21252,"totalPass":7,"totalFc":5,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":275,"bracketLevel":3,"footswitchLevel":57,"jackLevel":20,"sideswitchLevel":0,"doublestepLevel":82,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dany_Denisse","sex":"Unspecified","profileImg":""},{"id":1223,"membersId":176015,"dateAdded":"2023-04-26T22:08:54.000Z","lastUpdated":"2023-04-27T00:09:44.000Z","status":1,"totalPoints":20991,"rankingPoints":20991,"totalPass":19,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":258,"bracketLevel":16,"footswitchLevel":44,"jackLevel":25,"sideswitchLevel":0,"doublestepLevel":21,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"YonaW","sex":"Unspecified","profileImg":""},{"id":809,"membersId":173432,"dateAdded":"2023-03-25T23:59:42.000Z","lastUpdated":"2023-04-05T05:24:43.000Z","status":1,"totalPoints":20872,"rankingPoints":20872,"totalPass":15,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":256,"bracketLevel":34,"footswitchLevel":132,"jackLevel":59,"sideswitchLevel":0,"doublestepLevel":70,"staminaLevel":7,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"expcake","sex":"Unspecified","profileImg":"https://i.imgur.com/nDzrMjH.png"},{"id":1271,"membersId":132115,"dateAdded":"2023-05-02T08:41:48.000Z","lastUpdated":"2023-05-02T10:01:14.000Z","status":1,"totalPoints":20573,"rankingPoints":20573,"totalPass":5,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":127,"bracketLevel":44,"footswitchLevel":97,"jackLevel":22,"sideswitchLevel":69,"doublestepLevel":62,"staminaLevel":14,"isBuddy":false,"preferences":"{\"discordId\":\"#6984\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"$YOHAN$","sex":"Male","profileImg":""},{"id":608,"membersId":175416,"dateAdded":"2023-03-21T20:19:47.000Z","lastUpdated":"2023-03-21T23:12:55.000Z","status":1,"totalPoints":20427,"rankingPoints":20427,"totalPass":7,"totalFc":2,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":197,"bracketLevel":0,"footswitchLevel":82,"jackLevel":25,"sideswitchLevel":0,"doublestepLevel":74,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Stepman Designs","sex":"Unspecified","profileImg":""},{"id":670,"membersId":172905,"dateAdded":"2023-03-22T21:21:41.000Z","lastUpdated":"2023-04-26T00:53:02.000Z","status":1,"totalPoints":20402,"rankingPoints":20402,"totalPass":17,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":345,"bracketLevel":9,"footswitchLevel":88,"jackLevel":51,"sideswitchLevel":15,"doublestepLevel":141,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"weaselriot","sex":"Unspecified","profileImg":""},{"id":296,"membersId":173374,"dateAdded":"2023-03-19T04:03:36.000Z","lastUpdated":"2023-04-03T03:48:05.000Z","status":1,"totalPoints":19577,"rankingPoints":19577,"totalPass":23,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":346,"bracketLevel":9,"footswitchLevel":45,"jackLevel":46,"sideswitchLevel":0,"doublestepLevel":109,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TwoAi","sex":"Unspecified","profileImg":""},{"id":767,"membersId":175087,"dateAdded":"2023-03-25T05:04:38.000Z","lastUpdated":"2023-05-03T01:30:34.000Z","status":1,"totalPoints":19541,"rankingPoints":19541,"totalPass":6,"totalFc":1,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":294,"bracketLevel":12,"footswitchLevel":101,"jackLevel":0,"sideswitchLevel":20,"doublestepLevel":35,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"L!AM","sex":"Male","profileImg":""},{"id":931,"membersId":173206,"dateAdded":"2023-03-31T02:12:38.000Z","lastUpdated":"2023-05-07T03:44:46.000Z","status":1,"totalPoints":19521,"rankingPoints":19521,"totalPass":2,"totalFc":5,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":193,"bracketLevel":21,"footswitchLevel":78,"jackLevel":57,"sideswitchLevel":62,"doublestepLevel":274,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ApexAzimuth","sex":"Male","profileImg":"https://i.imgur.com/5ZMjuWm.jpg"},{"id":942,"membersId":128742,"dateAdded":"2023-03-31T23:37:22.000Z","lastUpdated":"2023-05-04T04:29:23.000Z","status":1,"totalPoints":19397,"rankingPoints":19397,"totalPass":3,"totalFc":5,"totalFec":8,"totalQuad":1,"totalQuint":0,"crossoverLevel":431,"bracketLevel":11,"footswitchLevel":61,"jackLevel":29,"sideswitchLevel":0,"doublestepLevel":168,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"gabbyjay","sex":"Male","profileImg":""},{"id":516,"membersId":66551,"dateAdded":"2023-03-20T17:56:45.000Z","lastUpdated":"2023-04-10T01:02:55.000Z","status":1,"totalPoints":19373,"rankingPoints":19373,"totalPass":2,"totalFc":3,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":167,"bracketLevel":20,"footswitchLevel":128,"jackLevel":6,"sideswitchLevel":0,"doublestepLevel":152,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TopherK","sex":"Unspecified","profileImg":"https://i.imgur.com/UZJkEwB.jpg"},{"id":881,"membersId":173465,"dateAdded":"2023-03-28T22:11:36.000Z","lastUpdated":"2023-05-07T02:35:22.000Z","status":1,"totalPoints":19357,"rankingPoints":19357,"totalPass":0,"totalFc":0,"totalFec":8,"totalQuad":4,"totalQuint":0,"crossoverLevel":340,"bracketLevel":11,"footswitchLevel":36,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":137,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Nick PNW","sex":"Male","profileImg":""},{"id":945,"membersId":128319,"dateAdded":"2023-04-01T01:51:51.000Z","lastUpdated":"2023-04-07T01:56:51.000Z","status":1,"totalPoints":19096,"rankingPoints":19096,"totalPass":1,"totalFc":7,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":176,"bracketLevel":7,"footswitchLevel":20,"jackLevel":4,"sideswitchLevel":0,"doublestepLevel":12,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"tertu","sex":"Unspecified","profileImg":""},{"id":132,"membersId":172955,"dateAdded":"2023-03-18T22:03:30.000Z","lastUpdated":"2023-04-09T23:17:01.000Z","status":1,"totalPoints":18931,"rankingPoints":18931,"totalPass":5,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":62,"bracketLevel":73,"footswitchLevel":109,"jackLevel":8,"sideswitchLevel":88,"doublestepLevel":185,"staminaLevel":10,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ottrp0p","sex":"Unspecified","profileImg":""},{"id":372,"membersId":173171,"dateAdded":"2023-03-19T17:10:44.000Z","lastUpdated":"2023-04-16T12:11:34.000Z","status":1,"totalPoints":18791,"rankingPoints":18791,"totalPass":26,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":312,"bracketLevel":7,"footswitchLevel":50,"jackLevel":35,"sideswitchLevel":0,"doublestepLevel":220,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TIZZ","sex":"Female","profileImg":""},{"id":333,"membersId":82526,"dateAdded":"2023-03-19T10:24:40.000Z","lastUpdated":"2023-03-29T18:24:43.000Z","status":1,"totalPoints":18605,"rankingPoints":18605,"totalPass":15,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":168,"bracketLevel":86,"footswitchLevel":120,"jackLevel":5,"sideswitchLevel":0,"doublestepLevel":111,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"natano","sex":"Male","profileImg":"https://www.natano.net/static/img/covatar-small.png"},{"id":501,"membersId":173777,"dateAdded":"2023-03-20T15:03:28.000Z","lastUpdated":"2023-04-22T21:17:21.000Z","status":1,"totalPoints":18399,"rankingPoints":18399,"totalPass":6,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":43,"bracketLevel":47,"footswitchLevel":61,"jackLevel":31,"sideswitchLevel":44,"doublestepLevel":261,"staminaLevel":85,"isBuddy":true,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DeathofaStar","sex":"Female","profileImg":""},{"id":1192,"membersId":175949,"dateAdded":"2023-04-23T01:52:45.000Z","lastUpdated":"2023-04-23T03:09:56.000Z","status":1,"totalPoints":18119,"rankingPoints":18119,"totalPass":4,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":91,"bracketLevel":3,"footswitchLevel":84,"jackLevel":3,"sideswitchLevel":19,"doublestepLevel":120,"staminaLevel":6,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mpal","sex":"Female","profileImg":""},{"id":965,"membersId":175653,"dateAdded":"2023-04-01T22:39:26.000Z","lastUpdated":"2023-04-01T23:30:59.000Z","status":1,"totalPoints":18116,"rankingPoints":18116,"totalPass":6,"totalFc":1,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":258,"bracketLevel":5,"footswitchLevel":71,"jackLevel":34,"sideswitchLevel":0,"doublestepLevel":241,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kurplode","sex":"Male","profileImg":""},{"id":1045,"membersId":168898,"dateAdded":"2023-04-07T15:08:21.000Z","lastUpdated":"2023-04-24T21:53:21.000Z","status":1,"totalPoints":17941,"rankingPoints":17941,"totalPass":10,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":179,"bracketLevel":0,"footswitchLevel":27,"jackLevel":174,"sideswitchLevel":41,"doublestepLevel":66,"staminaLevel":15,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"KomboKrusher","sex":"Unspecified","profileImg":""},{"id":623,"membersId":175431,"dateAdded":"2023-03-21T22:58:31.000Z","lastUpdated":"2023-04-01T20:24:45.000Z","status":1,"totalPoints":17831,"rankingPoints":17831,"totalPass":11,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":179,"bracketLevel":12,"footswitchLevel":44,"jackLevel":7,"sideswitchLevel":0,"doublestepLevel":76,"staminaLevel":19,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Konfine","sex":"Male","profileImg":""},{"id":977,"membersId":173459,"dateAdded":"2023-04-02T20:22:11.000Z","lastUpdated":"2023-04-05T23:38:21.000Z","status":1,"totalPoints":17757,"rankingPoints":17757,"totalPass":19,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":212,"bracketLevel":0,"footswitchLevel":85,"jackLevel":25,"sideswitchLevel":0,"doublestepLevel":149,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"jediknite","sex":"Unspecified","profileImg":""},{"id":1263,"membersId":174789,"dateAdded":"2023-05-01T14:50:03.000Z","lastUpdated":"2023-05-03T17:18:24.000Z","status":1,"totalPoints":17751,"rankingPoints":17751,"totalPass":24,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":261,"bracketLevel":9,"footswitchLevel":68,"jackLevel":20,"sideswitchLevel":0,"doublestepLevel":81,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Raiyoku","sex":"Male","profileImg":""},{"id":853,"membersId":173682,"dateAdded":"2023-03-27T12:20:10.000Z","lastUpdated":"2023-04-01T10:51:50.000Z","status":1,"totalPoints":17272,"rankingPoints":17272,"totalPass":29,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":275,"bracketLevel":15,"footswitchLevel":43,"jackLevel":14,"sideswitchLevel":0,"doublestepLevel":116,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"norek","sex":"Male","profileImg":""},{"id":1248,"membersId":174525,"dateAdded":"2023-04-29T14:52:14.000Z","lastUpdated":"2023-05-02T16:38:51.000Z","status":1,"totalPoints":17259,"rankingPoints":17259,"totalPass":26,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":171,"bracketLevel":64,"footswitchLevel":37,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":49,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"Kapsel#3436\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kapsel","sex":"Male","profileImg":""},{"id":838,"membersId":31240,"dateAdded":"2023-03-26T21:55:22.000Z","lastUpdated":"2023-04-11T12:21:50.000Z","status":1,"totalPoints":17200,"rankingPoints":17200,"totalPass":7,"totalFc":3,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":224,"bracketLevel":9,"footswitchLevel":52,"jackLevel":25,"sideswitchLevel":0,"doublestepLevel":96,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":\"Tuhka#2298\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Tuhka","sex":"Female","profileImg":""},{"id":1053,"membersId":128794,"dateAdded":"2023-04-07T20:57:36.000Z","lastUpdated":"2023-05-01T01:45:48.000Z","status":1,"totalPoints":17126,"rankingPoints":17126,"totalPass":5,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":151,"bracketLevel":123,"footswitchLevel":101,"jackLevel":64,"sideswitchLevel":0,"doublestepLevel":3,"staminaLevel":30,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Misuc","sex":"Unspecified","profileImg":""},{"id":1141,"membersId":175858,"dateAdded":"2023-04-16T17:09:42.000Z","lastUpdated":"2023-04-28T16:40:29.000Z","status":1,"totalPoints":17064,"rankingPoints":17064,"totalPass":8,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":126,"bracketLevel":15,"footswitchLevel":105,"jackLevel":74,"sideswitchLevel":109,"doublestepLevel":101,"staminaLevel":49,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LikeAFunnerName","sex":"Male","profileImg":""},{"id":393,"membersId":144973,"dateAdded":"2023-03-19T18:24:54.000Z","lastUpdated":"2023-03-26T03:14:02.000Z","status":1,"totalPoints":16990,"rankingPoints":16990,"totalPass":10,"totalFc":4,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":295,"bracketLevel":21,"footswitchLevel":54,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":148,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"maboesanman","sex":"Male","profileImg":"https://avatars.cloudflare.steamstatic.com/e3211adf5b56e94930380da3ebfe000adfbad09b_full.jpg"},{"id":959,"membersId":173089,"dateAdded":"2023-04-01T19:42:49.000Z","lastUpdated":"2023-04-02T15:58:51.000Z","status":1,"totalPoints":16801,"rankingPoints":16801,"totalPass":9,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":353,"bracketLevel":27,"footswitchLevel":86,"jackLevel":38,"sideswitchLevel":24,"doublestepLevel":50,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Stycky.keys","sex":"Male","profileImg":""},{"id":369,"membersId":66714,"dateAdded":"2023-03-19T16:37:55.000Z","lastUpdated":"2023-03-22T16:13:23.000Z","status":1,"totalPoints":16746,"rankingPoints":16746,"totalPass":22,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":220,"bracketLevel":2,"footswitchLevel":51,"jackLevel":16,"sideswitchLevel":0,"doublestepLevel":91,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lunal3blanc","sex":"Female","profileImg":""},{"id":1015,"membersId":173386,"dateAdded":"2023-04-05T00:22:19.000Z","lastUpdated":"2023-04-28T21:51:08.000Z","status":1,"totalPoints":16680,"rankingPoints":16680,"totalPass":0,"totalFc":0,"totalFec":0,"totalQuad":11,"totalQuint":1,"crossoverLevel":285,"bracketLevel":34,"footswitchLevel":68,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":140,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"WAY2022","sex":"Unspecified","profileImg":""},{"id":310,"membersId":149574,"dateAdded":"2023-03-19T05:23:41.000Z","lastUpdated":"2023-05-06T16:13:10.000Z","status":1,"totalPoints":16012,"rankingPoints":16012,"totalPass":1,"totalFc":1,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":279,"bracketLevel":0,"footswitchLevel":20,"jackLevel":51,"sideswitchLevel":0,"doublestepLevel":117,"staminaLevel":18,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"kayzero","sex":"Male","profileImg":""},{"id":986,"membersId":172946,"dateAdded":"2023-04-03T02:10:44.000Z","lastUpdated":"2023-04-14T01:21:03.000Z","status":1,"totalPoints":15920,"rankingPoints":15920,"totalPass":6,"totalFc":6,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":249,"bracketLevel":78,"footswitchLevel":38,"jackLevel":80,"sideswitchLevel":0,"doublestepLevel":134,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":\"NYOOOOOM#6969\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"NYOOOOOM","sex":"Male","profileImg":"http://www.simpleimageresizer.com/_uploads/photos/ee3cd65a/a0601157265_10_250x300.jpg"},{"id":725,"membersId":175475,"dateAdded":"2023-03-24T04:52:59.000Z","lastUpdated":"2023-05-02T05:56:12.000Z","status":1,"totalPoints":15880,"rankingPoints":15880,"totalPass":10,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":131,"bracketLevel":4,"footswitchLevel":54,"jackLevel":70,"sideswitchLevel":0,"doublestepLevel":145,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Jabronski","sex":"Unspecified","profileImg":""},{"id":203,"membersId":175372,"dateAdded":"2023-03-18T23:27:50.000Z","lastUpdated":"2023-04-08T17:55:03.000Z","status":1,"totalPoints":15659,"rankingPoints":15659,"totalPass":20,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":94,"bracketLevel":13,"footswitchLevel":27,"jackLevel":20,"sideswitchLevel":0,"doublestepLevel":80,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"FrankieFusion22","sex":"Unspecified","profileImg":""},{"id":777,"membersId":173664,"dateAdded":"2023-03-25T12:57:53.000Z","lastUpdated":"2023-04-07T18:14:38.000Z","status":1,"totalPoints":15421,"rankingPoints":15421,"totalPass":11,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":122,"bracketLevel":27,"footswitchLevel":23,"jackLevel":61,"sideswitchLevel":17,"doublestepLevel":93,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":\"Blurry#9480\",\"decentsEnabled\":false,\"wayOffsEnabled\":true}","name":"BlurryLuvsYou","sex":"Female","profileImg":"https://cdn.discordapp.com/attachments/635646459915665437/978618782392135730/smallblurry2.png"},{"id":782,"membersId":175513,"dateAdded":"2023-03-25T15:24:00.000Z","lastUpdated":"2023-04-15T18:52:29.000Z","status":1,"totalPoints":15232,"rankingPoints":15232,"totalPass":5,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":37,"bracketLevel":146,"footswitchLevel":222,"jackLevel":9,"sideswitchLevel":198,"doublestepLevel":51,"staminaLevel":22,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Maru96","sex":"Male","profileImg":""},{"id":646,"membersId":174977,"dateAdded":"2023-03-22T08:17:22.000Z","lastUpdated":"2023-04-13T06:40:17.000Z","status":1,"totalPoints":15098,"rankingPoints":15098,"totalPass":25,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":239,"bracketLevel":5,"footswitchLevel":87,"jackLevel":15,"sideswitchLevel":0,"doublestepLevel":82,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"Dlim DD#6668\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"DlimDhady","sex":"Male","profileImg":""},{"id":14,"membersId":114726,"dateAdded":"2023-03-18T21:48:42.000Z","lastUpdated":"2023-04-18T23:10:51.000Z","status":1,"totalPoints":15087,"rankingPoints":15087,"totalPass":6,"totalFc":0,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":89,"bracketLevel":167,"footswitchLevel":56,"jackLevel":54,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":6,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Scrypts","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/803518235437039676/958164594587742248/e.png"},{"id":570,"membersId":130783,"dateAdded":"2023-03-21T01:21:28.000Z","lastUpdated":"2023-05-05T01:15:03.000Z","status":1,"totalPoints":15072,"rankingPoints":15072,"totalPass":8,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":129,"bracketLevel":15,"footswitchLevel":70,"jackLevel":43,"sideswitchLevel":0,"doublestepLevel":38,"staminaLevel":20,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mld","sex":"Female","profileImg":""},{"id":833,"membersId":175543,"dateAdded":"2023-03-26T20:31:36.000Z","lastUpdated":"2023-03-26T21:09:50.000Z","status":1,"totalPoints":14936,"rankingPoints":14936,"totalPass":7,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":200,"bracketLevel":11,"footswitchLevel":29,"jackLevel":3,"sideswitchLevel":0,"doublestepLevel":36,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"joaoalex","sex":"Male","profileImg":""},{"id":974,"membersId":173480,"dateAdded":"2023-04-02T18:49:24.000Z","lastUpdated":"2023-04-02T19:13:18.000Z","status":1,"totalPoints":14826,"rankingPoints":14826,"totalPass":6,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":89,"bracketLevel":9,"footswitchLevel":98,"jackLevel":50,"sideswitchLevel":55,"doublestepLevel":92,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"robotmeadows","sex":"Unspecified","profileImg":""},{"id":375,"membersId":173439,"dateAdded":"2023-03-19T17:22:36.000Z","lastUpdated":"2023-04-24T23:34:48.000Z","status":1,"totalPoints":14798,"rankingPoints":14798,"totalPass":10,"totalFc":10,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":198,"bracketLevel":1,"footswitchLevel":17,"jackLevel":4,"sideswitchLevel":0,"doublestepLevel":36,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"danizom813","sex":"Female","profileImg":""},{"id":764,"membersId":175494,"dateAdded":"2023-03-25T03:22:03.000Z","lastUpdated":"2023-04-30T03:24:31.000Z","status":1,"totalPoints":14757,"rankingPoints":14757,"totalPass":13,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":221,"bracketLevel":9,"footswitchLevel":57,"jackLevel":10,"sideswitchLevel":0,"doublestepLevel":224,"staminaLevel":5,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"KekDubber","sex":"Unspecified","profileImg":""},{"id":997,"membersId":129524,"dateAdded":"2023-04-03T23:23:19.000Z","lastUpdated":"2023-04-04T02:10:38.000Z","status":1,"totalPoints":14714,"rankingPoints":14714,"totalPass":11,"totalFc":4,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":167,"bracketLevel":6,"footswitchLevel":32,"jackLevel":9,"sideswitchLevel":0,"doublestepLevel":103,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":\"la0n114#2753\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"L*A0N","sex":"Male","profileImg":"https://tinypic.host/images/2023/04/04/ProfilePic-2.png"},{"id":893,"membersId":175437,"dateAdded":"2023-03-29T04:27:37.000Z","lastUpdated":"2023-04-07T01:57:26.000Z","status":1,"totalPoints":14297,"rankingPoints":14297,"totalPass":21,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":92,"bracketLevel":67,"footswitchLevel":36,"jackLevel":15,"sideswitchLevel":0,"doublestepLevel":31,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"tehfyre","sex":"Male","profileImg":""},{"id":773,"membersId":127887,"dateAdded":"2023-03-25T09:39:29.000Z","lastUpdated":"2023-03-30T10:45:10.000Z","status":1,"totalPoints":14292,"rankingPoints":14292,"totalPass":15,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":161,"bracketLevel":64,"footswitchLevel":120,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":48,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"jenx","sex":"Female","profileImg":"https://www.amarion.net/misc/dawn250x300.png"},{"id":839,"membersId":175450,"dateAdded":"2023-03-26T22:04:42.000Z","lastUpdated":"2023-04-07T22:23:22.000Z","status":1,"totalPoints":14254,"rankingPoints":14254,"totalPass":5,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":174,"bracketLevel":91,"footswitchLevel":46,"jackLevel":7,"sideswitchLevel":0,"doublestepLevel":4,"staminaLevel":21,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ArchOwL","sex":"Male","profileImg":""},{"id":836,"membersId":175541,"dateAdded":"2023-03-26T21:10:36.000Z","lastUpdated":"2023-03-26T22:44:23.000Z","status":1,"totalPoints":14072,"rankingPoints":14072,"totalPass":6,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":79,"bracketLevel":16,"footswitchLevel":106,"jackLevel":86,"sideswitchLevel":40,"doublestepLevel":50,"staminaLevel":10,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BOT","sex":"Male","profileImg":""},{"id":1267,"membersId":176065,"dateAdded":"2023-05-02T00:46:33.000Z","lastUpdated":"2023-05-02T01:08:29.000Z","status":1,"totalPoints":13921,"rankingPoints":13921,"totalPass":3,"totalFc":1,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":71,"bracketLevel":63,"footswitchLevel":53,"jackLevel":52,"sideswitchLevel":0,"doublestepLevel":64,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Yennimiau","sex":"Female","profileImg":""},{"id":413,"membersId":173972,"dateAdded":"2023-03-19T20:12:16.000Z","lastUpdated":"2023-05-02T18:49:59.000Z","status":1,"totalPoints":13737,"rankingPoints":13737,"totalPass":16,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":81,"bracketLevel":0,"footswitchLevel":25,"jackLevel":3,"sideswitchLevel":0,"doublestepLevel":69,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"George#2464\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"G O O C H","sex":"Male","profileImg":""},{"id":834,"membersId":135228,"dateAdded":"2023-03-26T20:55:50.000Z","lastUpdated":"2023-04-02T23:24:21.000Z","status":1,"totalPoints":13676,"rankingPoints":13676,"totalPass":2,"totalFc":1,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":128,"bracketLevel":27,"footswitchLevel":41,"jackLevel":23,"sideswitchLevel":0,"doublestepLevel":153,"staminaLevel":5,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"hintz","sex":"Unspecified","profileImg":""},{"id":642,"membersId":173638,"dateAdded":"2023-03-22T05:25:27.000Z","lastUpdated":"2023-04-23T08:01:14.000Z","status":1,"totalPoints":13674,"rankingPoints":13674,"totalPass":23,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":168,"bracketLevel":14,"footswitchLevel":45,"jackLevel":2,"sideswitchLevel":0,"doublestepLevel":6,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"markspen","sex":"Unspecified","profileImg":""},{"id":1183,"membersId":175944,"dateAdded":"2023-04-22T02:17:44.000Z","lastUpdated":"2023-05-04T18:57:04.000Z","status":1,"totalPoints":13421,"rankingPoints":13421,"totalPass":12,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":168,"bracketLevel":6,"footswitchLevel":59,"jackLevel":76,"sideswitchLevel":0,"doublestepLevel":57,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SaturnZeroOne","sex":"Male","profileImg":""},{"id":812,"membersId":66190,"dateAdded":"2023-03-26T01:57:45.000Z","lastUpdated":"2023-03-26T03:21:49.000Z","status":1,"totalPoints":13193,"rankingPoints":13193,"totalPass":7,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":91,"bracketLevel":15,"footswitchLevel":31,"jackLevel":10,"sideswitchLevel":0,"doublestepLevel":51,"staminaLevel":6,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mtgmackid","sex":"Male","profileImg":""},{"id":1113,"membersId":173579,"dateAdded":"2023-04-13T01:24:47.000Z","lastUpdated":"2023-04-27T01:58:32.000Z","status":1,"totalPoints":13113,"rankingPoints":13113,"totalPass":18,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":132,"bracketLevel":1,"footswitchLevel":46,"jackLevel":20,"sideswitchLevel":0,"doublestepLevel":121,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Burtor","sex":"Unspecified","profileImg":""},{"id":837,"membersId":173958,"dateAdded":"2023-03-26T21:54:56.000Z","lastUpdated":"2023-04-12T02:10:20.000Z","status":1,"totalPoints":13071,"rankingPoints":13071,"totalPass":13,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":189,"bracketLevel":6,"footswitchLevel":41,"jackLevel":23,"sideswitchLevel":0,"doublestepLevel":27,"staminaLevel":6,"isBuddy":false,"preferences":"{\"discordId\":\"Mawntee#6969\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Mawntee","sex":"Male","profileImg":"https://i.imgur.com/HrTjwA6.png"},{"id":349,"membersId":173857,"dateAdded":"2023-03-19T14:03:54.000Z","lastUpdated":"2023-03-26T17:38:31.000Z","status":1,"totalPoints":12964,"rankingPoints":12964,"totalPass":22,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":248,"bracketLevel":5,"footswitchLevel":36,"jackLevel":14,"sideswitchLevel":0,"doublestepLevel":77,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Jocab","sex":"Unspecified","profileImg":""},{"id":978,"membersId":173794,"dateAdded":"2023-04-02T20:23:23.000Z","lastUpdated":"2023-04-10T22:44:11.000Z","status":1,"totalPoints":12949,"rankingPoints":12949,"totalPass":6,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":221,"bracketLevel":9,"footswitchLevel":63,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":73,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Locoyokopoco","sex":"Unspecified","profileImg":"https://i.imgur.com/dmGWuaX.png"},{"id":928,"membersId":641,"dateAdded":"2023-03-30T21:54:35.000Z","lastUpdated":"2023-04-26T19:37:53.000Z","status":1,"totalPoints":12938,"rankingPoints":12938,"totalPass":0,"totalFc":0,"totalFec":5,"totalQuad":1,"totalQuint":0,"crossoverLevel":153,"bracketLevel":12,"footswitchLevel":27,"jackLevel":17,"sideswitchLevel":0,"doublestepLevel":36,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":\"Tiza#0054\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"IHYD.Tiza","sex":"Male","profileImg":""},{"id":74,"membersId":173087,"dateAdded":"2023-03-18T21:50:14.000Z","lastUpdated":"2023-03-30T01:58:08.000Z","status":1,"totalPoints":12877,"rankingPoints":12877,"totalPass":5,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":110,"bracketLevel":49,"footswitchLevel":46,"jackLevel":14,"sideswitchLevel":48,"doublestepLevel":85,"staminaLevel":10,"isBuddy":false,"preferences":"{\"discordId\":\"Gr00txD #1399\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Gr00txD","sex":"Male","profileImg":"https://pbs.twimg.com/profile_images/1026379676476956672/rxMbgeMF_400x400.jpg"},{"id":305,"membersId":172888,"dateAdded":"2023-03-19T04:41:02.000Z","lastUpdated":"2023-03-21T01:10:13.000Z","status":1,"totalPoints":12814,"rankingPoints":12814,"totalPass":8,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":253,"bracketLevel":9,"footswitchLevel":111,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":162,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ipie4fun","sex":"Male","profileImg":"https://www.betterredteam.com/the_funny.jpg"},{"id":1280,"membersId":175789,"dateAdded":"2023-05-03T16:06:16.000Z","lastUpdated":"2023-05-06T13:44:40.000Z","status":1,"totalPoints":12771,"rankingPoints":12771,"totalPass":18,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":155,"bracketLevel":0,"footswitchLevel":69,"jackLevel":36,"sideswitchLevel":0,"doublestepLevel":57,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mehu.","sex":"Unspecified","profileImg":""},{"id":1221,"membersId":173471,"dateAdded":"2023-04-26T21:59:47.000Z","lastUpdated":"2023-04-26T23:47:22.000Z","status":1,"totalPoints":12763,"rankingPoints":12763,"totalPass":8,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":202,"bracketLevel":1,"footswitchLevel":34,"jackLevel":31,"sideswitchLevel":0,"doublestepLevel":11,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Soul","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/392199949183483904/961855277903257610/pikayom2.png"},{"id":1085,"membersId":111763,"dateAdded":"2023-04-10T12:27:01.000Z","lastUpdated":"2023-04-29T17:05:11.000Z","status":1,"totalPoints":12722,"rankingPoints":12722,"totalPass":4,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":58,"bracketLevel":2,"footswitchLevel":23,"jackLevel":7,"sideswitchLevel":0,"doublestepLevel":88,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":\"Kaede#2180\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Kaede","sex":"Unspecified","profileImg":""},{"id":835,"membersId":175527,"dateAdded":"2023-03-26T21:09:48.000Z","lastUpdated":"2023-03-26T22:58:09.000Z","status":1,"totalPoints":12585,"rankingPoints":12585,"totalPass":6,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":118,"bracketLevel":13,"footswitchLevel":10,"jackLevel":3,"sideswitchLevel":33,"doublestepLevel":75,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"stowwww","sex":"Male","profileImg":""},{"id":1159,"membersId":175888,"dateAdded":"2023-04-18T22:08:32.000Z","lastUpdated":"2023-04-18T23:34:10.000Z","status":1,"totalPoints":12503,"rankingPoints":12503,"totalPass":6,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":209,"bracketLevel":11,"footswitchLevel":41,"jackLevel":7,"sideswitchLevel":0,"doublestepLevel":9,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MrFOO","sex":"Male","profileImg":""},{"id":1019,"membersId":175595,"dateAdded":"2023-04-05T03:40:17.000Z","lastUpdated":"2023-04-12T23:41:35.000Z","status":1,"totalPoints":12417,"rankingPoints":12417,"totalPass":5,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":83,"bracketLevel":0,"footswitchLevel":79,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Aestivalia","sex":"Male","profileImg":"https://www.koolbadges.co.uk/images/thumbnails/scotland-flag-badge-200x200.jpg"},{"id":471,"membersId":66765,"dateAdded":"2023-03-20T02:59:27.000Z","lastUpdated":"2023-03-22T21:07:12.000Z","status":1,"totalPoints":12397,"rankingPoints":12397,"totalPass":6,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":178,"bracketLevel":15,"footswitchLevel":47,"jackLevel":21,"sideswitchLevel":0,"doublestepLevel":49,"staminaLevel":25,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Nato","sex":"Unspecified","profileImg":""},{"id":995,"membersId":175679,"dateAdded":"2023-04-03T22:23:56.000Z","lastUpdated":"2023-05-06T02:06:59.000Z","status":1,"totalPoints":12319,"rankingPoints":12319,"totalPass":20,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":188,"bracketLevel":10,"footswitchLevel":20,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":64,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nk29","sex":"Female","profileImg":""},{"id":301,"membersId":173340,"dateAdded":"2023-03-19T04:17:09.000Z","lastUpdated":"2023-04-30T16:10:41.000Z","status":1,"totalPoints":12233,"rankingPoints":12233,"totalPass":3,"totalFc":3,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":48,"bracketLevel":17,"footswitchLevel":52,"jackLevel":23,"sideswitchLevel":0,"doublestepLevel":150,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zekkty","sex":"Male","profileImg":"https://i.postimg.cc/NfHgpqP7/groovestat.jpg"},{"id":508,"membersId":173481,"dateAdded":"2023-03-20T16:19:07.000Z","lastUpdated":"2023-03-26T19:59:11.000Z","status":1,"totalPoints":12200,"rankingPoints":12200,"totalPass":17,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":248,"bracketLevel":0,"footswitchLevel":23,"jackLevel":16,"sideswitchLevel":0,"doublestepLevel":96,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CedricSM","sex":"Male","profileImg":""},{"id":894,"membersId":76690,"dateAdded":"2023-03-29T04:38:58.000Z","lastUpdated":"2023-03-29T19:04:47.000Z","status":1,"totalPoints":12162,"rankingPoints":12162,"totalPass":3,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":87,"bracketLevel":14,"footswitchLevel":27,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":74,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"OtakuBot","sex":"Male","profileImg":""},{"id":988,"membersId":175669,"dateAdded":"2023-04-03T08:01:52.000Z","lastUpdated":"2023-04-22T19:23:05.000Z","status":1,"totalPoints":12057,"rankingPoints":12057,"totalPass":12,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":105,"bracketLevel":23,"footswitchLevel":21,"jackLevel":3,"sideswitchLevel":0,"doublestepLevel":59,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"HayThyAi#4331\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"HayThyAi","sex":"Male","profileImg":""},{"id":663,"membersId":165529,"dateAdded":"2023-03-22T18:22:47.000Z","lastUpdated":"2023-04-05T19:28:07.000Z","status":1,"totalPoints":11862,"rankingPoints":11862,"totalPass":10,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":271,"bracketLevel":9,"footswitchLevel":42,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":82,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"arsnova#9523\",\"decentsEnabled\":true,\"wayOffsEnabled\":false}","name":"ArsNova","sex":"Male","profileImg":"https://i.ibb.co/G7sH7cd/discord-avatar.png"},{"id":869,"membersId":175557,"dateAdded":"2023-03-28T02:36:39.000Z","lastUpdated":"2023-03-28T04:38:17.000Z","status":1,"totalPoints":11776,"rankingPoints":11776,"totalPass":5,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":102,"bracketLevel":0,"footswitchLevel":5,"jackLevel":16,"sideswitchLevel":0,"doublestepLevel":64,"staminaLevel":14,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MattyX6","sex":"Unspecified","profileImg":""},{"id":1213,"membersId":175997,"dateAdded":"2023-04-25T16:10:04.000Z","lastUpdated":"2023-05-03T23:09:51.000Z","status":1,"totalPoints":11344,"rankingPoints":11344,"totalPass":1,"totalFc":4,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":301,"bracketLevel":11,"footswitchLevel":135,"jackLevel":39,"sideswitchLevel":0,"doublestepLevel":69,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":\"UNKWN#3200\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"UnknwnMelody","sex":"Male","profileImg":""},{"id":614,"membersId":175380,"dateAdded":"2023-03-21T21:42:29.000Z","lastUpdated":"2023-04-07T23:04:35.000Z","status":1,"totalPoints":11288,"rankingPoints":11288,"totalPass":4,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":111,"bracketLevel":34,"footswitchLevel":52,"jackLevel":0,"sideswitchLevel":79,"doublestepLevel":23,"staminaLevel":8,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"iTeoSpazzatura","sex":"Male","profileImg":""},{"id":468,"membersId":173751,"dateAdded":"2023-03-20T02:47:05.000Z","lastUpdated":"2023-04-04T09:36:54.000Z","status":1,"totalPoints":11173,"rankingPoints":11173,"totalPass":4,"totalFc":3,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":175,"bracketLevel":3,"footswitchLevel":28,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":4,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ptcht","sex":"Female","profileImg":""},{"id":841,"membersId":174652,"dateAdded":"2023-03-26T22:19:23.000Z","lastUpdated":"2023-03-31T04:16:07.000Z","status":1,"totalPoints":11012,"rankingPoints":11012,"totalPass":2,"totalFc":1,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":145,"bracketLevel":41,"footswitchLevel":39,"jackLevel":48,"sideswitchLevel":0,"doublestepLevel":39,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DEVLZUKN","sex":"Male","profileImg":""},{"id":711,"membersId":173618,"dateAdded":"2023-03-24T00:11:12.000Z","lastUpdated":"2023-03-31T02:07:30.000Z","status":1,"totalPoints":10938,"rankingPoints":10938,"totalPass":12,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":104,"bracketLevel":0,"footswitchLevel":37,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":160,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Competingsnail","sex":"Unspecified","profileImg":""},{"id":960,"membersId":174956,"dateAdded":"2023-04-01T19:47:21.000Z","lastUpdated":"2023-04-30T19:11:43.000Z","status":1,"totalPoints":10809,"rankingPoints":10809,"totalPass":15,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":179,"bracketLevel":0,"footswitchLevel":20,"jackLevel":16,"sideswitchLevel":0,"doublestepLevel":90,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Bryan1","sex":"Male","profileImg":""},{"id":551,"membersId":172932,"dateAdded":"2023-03-20T22:25:56.000Z","lastUpdated":"2023-04-18T23:04:18.000Z","status":1,"totalPoints":10488,"rankingPoints":10488,"totalPass":6,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":217,"bracketLevel":7,"footswitchLevel":29,"jackLevel":18,"sideswitchLevel":0,"doublestepLevel":65,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zergh","sex":"Unspecified","profileImg":""},{"id":753,"membersId":173347,"dateAdded":"2023-03-25T00:57:04.000Z","lastUpdated":"2023-04-05T00:28:12.000Z","status":1,"totalPoints":10449,"rankingPoints":10449,"totalPass":19,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":142,"bracketLevel":10,"footswitchLevel":28,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":44,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Rooney","sex":"Unspecified","profileImg":""},{"id":1036,"membersId":174299,"dateAdded":"2023-04-06T19:28:30.000Z","lastUpdated":"2023-04-14T22:28:57.000Z","status":1,"totalPoints":10377,"rankingPoints":10377,"totalPass":13,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":106,"bracketLevel":12,"footswitchLevel":16,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":29,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kappajog","sex":"Unspecified","profileImg":""},{"id":584,"membersId":174446,"dateAdded":"2023-03-21T05:41:02.000Z","lastUpdated":"2023-03-22T03:14:08.000Z","status":1,"totalPoints":9951,"rankingPoints":9951,"totalPass":10,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":113,"bracketLevel":0,"footswitchLevel":18,"jackLevel":22,"sideswitchLevel":0,"doublestepLevel":79,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Grieviious","sex":"Unspecified","profileImg":"https://avatars.akamai.steamstatic.com/953ddb7f95e54c08281c1f60c20c247ee7fa747b_full.jpg"},{"id":1158,"membersId":175851,"dateAdded":"2023-04-18T21:07:26.000Z","lastUpdated":"2023-05-07T04:48:08.000Z","status":1,"totalPoints":9951,"rankingPoints":9951,"totalPass":9,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":114,"bracketLevel":2,"footswitchLevel":23,"jackLevel":48,"sideswitchLevel":17,"doublestepLevel":59,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Puke","sex":"Unspecified","profileImg":""},{"id":1037,"membersId":175741,"dateAdded":"2023-04-06T21:46:31.000Z","lastUpdated":"2023-04-18T01:37:59.000Z","status":1,"totalPoints":9753,"rankingPoints":9753,"totalPass":7,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":143,"bracketLevel":1,"footswitchLevel":63,"jackLevel":56,"sideswitchLevel":0,"doublestepLevel":183,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"vvdUnderscore","sex":"Unspecified","profileImg":"https://pbs.twimg.com/profile_images/1642109031392346113/0nHQ67lA_400x400.jpg"},{"id":346,"membersId":173052,"dateAdded":"2023-03-19T13:12:20.000Z","lastUpdated":"2023-03-26T15:42:42.000Z","status":1,"totalPoints":9709,"rankingPoints":9709,"totalPass":5,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":130,"bracketLevel":32,"footswitchLevel":127,"jackLevel":69,"sideswitchLevel":0,"doublestepLevel":106,"staminaLevel":6,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CrispyDave","sex":"Male","profileImg":""},{"id":337,"membersId":163910,"dateAdded":"2023-03-19T11:43:37.000Z","lastUpdated":"2023-04-04T10:25:59.000Z","status":1,"totalPoints":9682,"rankingPoints":9682,"totalPass":4,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":112,"bracketLevel":0,"footswitchLevel":5,"jackLevel":72,"sideswitchLevel":0,"doublestepLevel":143,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"The_Break","sex":"Male","profileImg":""},{"id":1281,"membersId":176098,"dateAdded":"2023-05-03T18:24:04.000Z","lastUpdated":"2023-05-04T21:18:54.000Z","status":1,"totalPoints":9580,"rankingPoints":9580,"totalPass":5,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":170,"bracketLevel":7,"footswitchLevel":39,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":56,"staminaLevel":15,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"GODDISH","sex":"Male","profileImg":""},{"id":406,"membersId":172970,"dateAdded":"2023-03-19T19:48:25.000Z","lastUpdated":"2023-03-23T19:51:18.000Z","status":1,"totalPoints":9527,"rankingPoints":9527,"totalPass":7,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":46,"bracketLevel":77,"footswitchLevel":42,"jackLevel":154,"sideswitchLevel":0,"doublestepLevel":72,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Fake Flake","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/928412540113928195/928422224870924298/FLAKE_ON_LSD.png"},{"id":676,"membersId":165925,"dateAdded":"2023-03-22T23:01:39.000Z","lastUpdated":"2023-04-20T22:14:14.000Z","status":1,"totalPoints":9396,"rankingPoints":9396,"totalPass":2,"totalFc":2,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":217,"bracketLevel":10,"footswitchLevel":31,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":84,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Snow Latte","sex":"Unspecified","profileImg":""},{"id":220,"membersId":173107,"dateAdded":"2023-03-19T00:12:33.000Z","lastUpdated":"2023-04-29T00:20:09.000Z","status":1,"totalPoints":9392,"rankingPoints":9392,"totalPass":1,"totalFc":3,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":155,"bracketLevel":10,"footswitchLevel":24,"jackLevel":5,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kibazuka","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/443643281109155842/916142398323707954/sf-kiba-av.png"},{"id":1023,"membersId":128906,"dateAdded":"2023-04-05T17:07:03.000Z","lastUpdated":"2023-04-06T09:59:21.000Z","status":1,"totalPoints":9340,"rankingPoints":9340,"totalPass":5,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":133,"bracketLevel":27,"footswitchLevel":79,"jackLevel":4,"sideswitchLevel":0,"doublestepLevel":58,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Chrizux","sex":"Female","profileImg":""},{"id":1278,"membersId":66687,"dateAdded":"2023-05-02T21:11:56.000Z","lastUpdated":"2023-05-05T18:05:19.000Z","status":1,"totalPoints":9143,"rankingPoints":9143,"totalPass":1,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":44,"bracketLevel":2,"footswitchLevel":30,"jackLevel":7,"sideswitchLevel":0,"doublestepLevel":3,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PinoITG","sex":"Male","profileImg":""},{"id":832,"membersId":174925,"dateAdded":"2023-03-26T20:28:39.000Z","lastUpdated":"2023-04-02T00:58:50.000Z","status":1,"totalPoints":8993,"rankingPoints":8993,"totalPass":2,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":109,"bracketLevel":0,"footswitchLevel":4,"jackLevel":0,"sideswitchLevel":14,"doublestepLevel":32,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"kdwavour","sex":"Female","profileImg":""},{"id":534,"membersId":173149,"dateAdded":"2023-03-20T19:42:15.000Z","lastUpdated":"2023-04-06T14:48:10.000Z","status":1,"totalPoints":8779,"rankingPoints":8779,"totalPass":8,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":84,"bracketLevel":34,"footswitchLevel":33,"jackLevel":3,"sideswitchLevel":0,"doublestepLevel":107,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Rya","sex":"Unspecified","profileImg":"https://cdn.discordapp.com/attachments/1008463740783558689/1087462211389227038/image.png"},{"id":1057,"membersId":33185,"dateAdded":"2023-04-08T03:46:03.000Z","lastUpdated":"2023-04-16T04:06:59.000Z","status":1,"totalPoints":8696,"rankingPoints":8696,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":1,"totalQuint":0,"crossoverLevel":88,"bracketLevel":22,"footswitchLevel":105,"jackLevel":0,"sideswitchLevel":27,"doublestepLevel":45,"staminaLevel":19,"isBuddy":false,"preferences":"{\"discordId\":\"Majinn-Ty#3362\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Tyty","sex":"Male","profileImg":""},{"id":1055,"membersId":175761,"dateAdded":"2023-04-08T01:46:04.000Z","lastUpdated":"2023-04-08T02:28:54.000Z","status":1,"totalPoints":8609,"rankingPoints":8609,"totalPass":4,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":49,"bracketLevel":48,"footswitchLevel":30,"jackLevel":32,"sideswitchLevel":0,"doublestepLevel":150,"staminaLevel":5,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Starlight ","sex":"Male","profileImg":""},{"id":919,"membersId":75763,"dateAdded":"2023-03-30T11:23:12.000Z","lastUpdated":"2023-04-05T12:33:22.000Z","status":1,"totalPoints":8576,"rankingPoints":8576,"totalPass":4,"totalFc":0,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":99,"bracketLevel":3,"footswitchLevel":12,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":68,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Smanki","sex":"Female","profileImg":"https://pp.userapi.com/c854224/v854224275/5113b/eCUIROBiNwc.jpg"},{"id":1273,"membersId":176072,"dateAdded":"2023-05-02T14:23:33.000Z","lastUpdated":"2023-05-02T16:42:05.000Z","status":1,"totalPoints":8368,"rankingPoints":8368,"totalPass":11,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":97,"bracketLevel":0,"footswitchLevel":20,"jackLevel":16,"sideswitchLevel":0,"doublestepLevel":85,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"bAnAn","sex":"Male","profileImg":""},{"id":1293,"membersId":142358,"dateAdded":"2023-05-06T00:10:43.000Z","lastUpdated":"2023-05-06T00:52:26.000Z","status":1,"totalPoints":8347,"rankingPoints":8347,"totalPass":4,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":23,"bracketLevel":33,"footswitchLevel":8,"jackLevel":4,"sideswitchLevel":0,"doublestepLevel":64,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Aoba","sex":"Male","profileImg":"https://i.ibb.co/QdL3NLg/2.png"},{"id":609,"membersId":174533,"dateAdded":"2023-03-21T20:21:24.000Z","lastUpdated":"2023-05-05T18:17:24.000Z","status":1,"totalPoints":8030,"rankingPoints":8030,"totalPass":14,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":131,"bracketLevel":5,"footswitchLevel":34,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":5,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lika","sex":"Female","profileImg":""},{"id":940,"membersId":175626,"dateAdded":"2023-03-31T20:32:40.000Z","lastUpdated":"2023-03-31T22:48:04.000Z","status":1,"totalPoints":7782,"rankingPoints":7782,"totalPass":11,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":156,"bracketLevel":5,"footswitchLevel":36,"jackLevel":15,"sideswitchLevel":0,"doublestepLevel":80,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Khaoskid663","sex":"Unspecified","profileImg":""},{"id":292,"membersId":4400,"dateAdded":"2023-03-19T03:41:56.000Z","lastUpdated":"2023-03-21T01:18:41.000Z","status":1,"totalPoints":7719,"rankingPoints":7719,"totalPass":0,"totalFc":1,"totalFec":0,"totalQuad":3,"totalQuint":0,"crossoverLevel":88,"bracketLevel":0,"footswitchLevel":4,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":25,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"titandude21","sex":"Male","profileImg":""},{"id":813,"membersId":483,"dateAdded":"2023-03-26T02:35:50.000Z","lastUpdated":"2023-04-10T01:23:35.000Z","status":1,"totalPoints":7343,"rankingPoints":7343,"totalPass":2,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":2,"bracketLevel":52,"footswitchLevel":41,"jackLevel":104,"sideswitchLevel":0,"doublestepLevel":14,"staminaLevel":28,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"UK.s34n","sex":"Male","profileImg":"https://i.imgur.com/iF6IscA.gif"},{"id":1039,"membersId":66380,"dateAdded":"2023-04-06T22:47:53.000Z","lastUpdated":"2023-04-07T03:00:37.000Z","status":1,"totalPoints":7256,"rankingPoints":7256,"totalPass":1,"totalFc":2,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":152,"bracketLevel":11,"footswitchLevel":28,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":8,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"GenesisRapshodos","sex":"Male","profileImg":"https://i.imgur.com/tbj82Ap.jpg"},{"id":550,"membersId":173080,"dateAdded":"2023-03-20T22:10:00.000Z","lastUpdated":"2023-03-25T19:10:25.000Z","status":1,"totalPoints":7099,"rankingPoints":7099,"totalPass":6,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":82,"bracketLevel":0,"footswitchLevel":0,"jackLevel":15,"sideswitchLevel":0,"doublestepLevel":116,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"NoxiousOtter","sex":"Unspecified","profileImg":""},{"id":1038,"membersId":72662,"dateAdded":"2023-04-06T22:47:26.000Z","lastUpdated":"2023-04-09T18:40:29.000Z","status":1,"totalPoints":7067,"rankingPoints":7067,"totalPass":8,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":48,"bracketLevel":0,"footswitchLevel":15,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":125,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Digi0127","sex":"Female","profileImg":""},{"id":1134,"membersId":175850,"dateAdded":"2023-04-15T21:37:40.000Z","lastUpdated":"2023-04-15T21:56:41.000Z","status":1,"totalPoints":6978,"rankingPoints":6978,"totalPass":2,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":45,"bracketLevel":16,"footswitchLevel":44,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":139,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mono69","sex":"Male","profileImg":""},{"id":1198,"membersId":66358,"dateAdded":"2023-04-23T17:33:29.000Z","lastUpdated":"2023-04-23T19:37:26.000Z","status":1,"totalPoints":6903,"rankingPoints":6903,"totalPass":5,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":77,"bracketLevel":0,"footswitchLevel":16,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":6,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MidnightCatto","sex":"Male","profileImg":"https://a.furaffinity.net/1563514820/midnightxenesis.gif"},{"id":975,"membersId":66760,"dateAdded":"2023-04-02T18:54:02.000Z","lastUpdated":"2023-04-08T00:23:31.000Z","status":1,"totalPoints":6870,"rankingPoints":6870,"totalPass":17,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":50,"bracketLevel":0,"footswitchLevel":21,"jackLevel":10,"sideswitchLevel":0,"doublestepLevel":32,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"implode","sex":"Male","profileImg":"https://i.imgur.com/MQM0Ayv.png"},{"id":858,"membersId":175554,"dateAdded":"2023-03-27T20:42:22.000Z","lastUpdated":"2023-05-04T05:05:37.000Z","status":1,"totalPoints":6866,"rankingPoints":6866,"totalPass":11,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":70,"bracketLevel":0,"footswitchLevel":62,"jackLevel":35,"sideswitchLevel":0,"doublestepLevel":47,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Aura Irving","sex":"Unspecified","profileImg":"https://cdn.discordapp.com/attachments/374761563732574220/1090012450474164244/groovestats.png"},{"id":1179,"membersId":173782,"dateAdded":"2023-04-21T21:23:49.000Z","lastUpdated":"2023-04-23T16:47:22.000Z","status":1,"totalPoints":6800,"rankingPoints":6800,"totalPass":4,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":26,"bracketLevel":64,"footswitchLevel":1,"jackLevel":74,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"joowon","sex":"Unspecified","profileImg":""},{"id":1027,"membersId":175723,"dateAdded":"2023-04-05T22:36:08.000Z","lastUpdated":"2023-04-20T04:56:21.000Z","status":1,"totalPoints":6751,"rankingPoints":6751,"totalPass":6,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":196,"bracketLevel":7,"footswitchLevel":84,"jackLevel":18,"sideswitchLevel":0,"doublestepLevel":91,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dnsh","sex":"Unspecified","profileImg":"https://i.imgur.com/vzGlHBW.png"},{"id":1230,"membersId":176022,"dateAdded":"2023-04-27T06:00:22.000Z","lastUpdated":"2023-04-30T21:55:18.000Z","status":1,"totalPoints":6741,"rankingPoints":6741,"totalPass":1,"totalFc":0,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":192,"bracketLevel":10,"footswitchLevel":29,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":8,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Chre","sex":"Unspecified","profileImg":""},{"id":921,"membersId":175606,"dateAdded":"2023-03-30T15:06:29.000Z","lastUpdated":"2023-05-01T13:01:56.000Z","status":1,"totalPoints":6597,"rankingPoints":6597,"totalPass":12,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":99,"bracketLevel":0,"footswitchLevel":14,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":58,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"riikka","sex":"Unspecified","profileImg":""},{"id":438,"membersId":35225,"dateAdded":"2023-03-19T23:14:26.000Z","lastUpdated":"2023-04-06T23:12:15.000Z","status":1,"totalPoints":6595,"rankingPoints":6595,"totalPass":0,"totalFc":0,"totalFec":0,"totalQuad":3,"totalQuint":0,"crossoverLevel":126,"bracketLevel":0,"footswitchLevel":8,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"rickywong#0628\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"rckywong","sex":"Male","profileImg":""},{"id":870,"membersId":175558,"dateAdded":"2023-03-28T05:48:21.000Z","lastUpdated":"2023-03-28T06:37:00.000Z","status":1,"totalPoints":6577,"rankingPoints":6577,"totalPass":4,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":59,"bracketLevel":0,"footswitchLevel":87,"jackLevel":18,"sideswitchLevel":0,"doublestepLevel":84,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Aerostin","sex":"Male","profileImg":""},{"id":1209,"membersId":173426,"dateAdded":"2023-04-24T23:47:23.000Z","lastUpdated":"2023-05-02T02:37:51.000Z","status":1,"totalPoints":6495,"rankingPoints":6495,"totalPass":1,"totalFc":4,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":155,"bracketLevel":10,"footswitchLevel":23,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":61,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"kaberosi","sex":"Unspecified","profileImg":""},{"id":925,"membersId":175609,"dateAdded":"2023-03-30T17:53:27.000Z","lastUpdated":"2023-03-30T18:56:06.000Z","status":1,"totalPoints":6454,"rankingPoints":6454,"totalPass":4,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":108,"bracketLevel":7,"footswitchLevel":59,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":6,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SunSet","sex":"Unspecified","profileImg":""},{"id":953,"membersId":174850,"dateAdded":"2023-04-01T15:55:12.000Z","lastUpdated":"2023-04-01T16:14:52.000Z","status":1,"totalPoints":6449,"rankingPoints":6449,"totalPass":4,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":54,"bracketLevel":92,"footswitchLevel":81,"jackLevel":4,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"antifun NB","sex":"Unspecified","profileImg":""},{"id":1118,"membersId":174009,"dateAdded":"2023-04-13T23:48:24.000Z","lastUpdated":"2023-04-20T00:11:41.000Z","status":1,"totalPoints":6403,"rankingPoints":6403,"totalPass":1,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":114,"bracketLevel":0,"footswitchLevel":10,"jackLevel":54,"sideswitchLevel":0,"doublestepLevel":69,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ponpar","sex":"Male","profileImg":""},{"id":810,"membersId":175526,"dateAdded":"2023-03-26T00:08:21.000Z","lastUpdated":"2023-05-04T18:58:37.000Z","status":1,"totalPoints":6106,"rankingPoints":6106,"totalPass":9,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":161,"bracketLevel":1,"footswitchLevel":7,"jackLevel":15,"sideswitchLevel":0,"doublestepLevel":28,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"RFM","sex":"Male","profileImg":""},{"id":391,"membersId":172988,"dateAdded":"2023-03-19T18:16:35.000Z","lastUpdated":"2023-03-19T22:34:42.000Z","status":1,"totalPoints":5987,"rankingPoints":5987,"totalPass":5,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":137,"bracketLevel":9,"footswitchLevel":19,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":91,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"The_DJax","sex":"Unspecified","profileImg":""},{"id":1266,"membersId":76112,"dateAdded":"2023-05-01T17:56:14.000Z","lastUpdated":"2023-05-01T20:39:40.000Z","status":1,"totalPoints":5806,"rankingPoints":5806,"totalPass":5,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":126,"bracketLevel":6,"footswitchLevel":17,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":57,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Tailsray","sex":"Male","profileImg":"https://i.ibb.co/BGcyV01/OwO.jpg"},{"id":816,"membersId":175528,"dateAdded":"2023-03-26T04:03:02.000Z","lastUpdated":"2023-03-26T04:25:42.000Z","status":1,"totalPoints":5661,"rankingPoints":5661,"totalPass":6,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":121,"bracketLevel":16,"footswitchLevel":67,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Crispy","sex":"Male","profileImg":""},{"id":1257,"membersId":176055,"dateAdded":"2023-05-01T02:20:08.000Z","lastUpdated":"2023-05-06T16:52:16.000Z","status":1,"totalPoints":5600,"rankingPoints":5600,"totalPass":9,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":61,"bracketLevel":2,"footswitchLevel":2,"jackLevel":14,"sideswitchLevel":0,"doublestepLevel":61,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"namaslayer","sex":"Unspecified","profileImg":""},{"id":1049,"membersId":175754,"dateAdded":"2023-04-07T17:59:05.000Z","lastUpdated":"2023-04-15T16:46:18.000Z","status":1,"totalPoints":5295,"rankingPoints":5295,"totalPass":10,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":65,"bracketLevel":9,"footswitchLevel":13,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Koishi","sex":"Unspecified","profileImg":""},{"id":1173,"membersId":175891,"dateAdded":"2023-04-20T21:18:51.000Z","lastUpdated":"2023-04-21T21:16:42.000Z","status":1,"totalPoints":5291,"rankingPoints":5291,"totalPass":6,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":73,"bracketLevel":1,"footswitchLevel":4,"jackLevel":3,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kurisu97","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/341061433490145280/1098074574786146324/EwuPLncW8AMbgEA.jpg"},{"id":1040,"membersId":175742,"dateAdded":"2023-04-07T00:42:23.000Z","lastUpdated":"2023-04-07T01:39:30.000Z","status":1,"totalPoints":5283,"rankingPoints":5283,"totalPass":7,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":110,"bracketLevel":0,"footswitchLevel":6,"jackLevel":16,"sideswitchLevel":0,"doublestepLevel":28,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"QueenToast","sex":"Female","profileImg":""},{"id":567,"membersId":173189,"dateAdded":"2023-03-21T00:50:51.000Z","lastUpdated":"2023-04-02T21:21:13.000Z","status":1,"totalPoints":5172,"rankingPoints":5172,"totalPass":9,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":102,"bracketLevel":11,"footswitchLevel":17,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":5,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"steviebearrrr","sex":"Unspecified","profileImg":""},{"id":867,"membersId":172939,"dateAdded":"2023-03-28T01:30:41.000Z","lastUpdated":"2023-04-16T00:09:46.000Z","status":1,"totalPoints":5099,"rankingPoints":5099,"totalPass":10,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":55,"bracketLevel":0,"footswitchLevel":12,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":4,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"pedroza","sex":"Female","profileImg":""},{"id":1194,"membersId":175768,"dateAdded":"2023-04-23T14:43:08.000Z","lastUpdated":"2023-04-30T21:21:47.000Z","status":1,"totalPoints":4594,"rankingPoints":4594,"totalPass":2,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":16,"bracketLevel":0,"footswitchLevel":15,"jackLevel":42,"sideswitchLevel":0,"doublestepLevel":7,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Crucisi","sex":"Male","profileImg":""},{"id":859,"membersId":173447,"dateAdded":"2023-03-27T21:19:19.000Z","lastUpdated":"2023-03-27T22:18:03.000Z","status":1,"totalPoints":4558,"rankingPoints":4558,"totalPass":7,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":77,"bracketLevel":0,"footswitchLevel":2,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":4,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kaju_Inu","sex":"Unspecified","profileImg":"https://i.imgur.com/hkbmUW2.png"},{"id":1111,"membersId":174805,"dateAdded":"2023-04-13T00:24:18.000Z","lastUpdated":"2023-04-15T14:50:40.000Z","status":1,"totalPoints":4219,"rankingPoints":4219,"totalPass":2,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":39,"bracketLevel":1,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Wiktini","sex":"Female","profileImg":""},{"id":775,"membersId":175506,"dateAdded":"2023-03-25T10:26:56.000Z","lastUpdated":"2023-04-15T20:11:09.000Z","status":1,"totalPoints":4186,"rankingPoints":4186,"totalPass":7,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":85,"bracketLevel":0,"footswitchLevel":50,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":43,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Quwertyn","sex":"Male","profileImg":""},{"id":761,"membersId":173328,"dateAdded":"2023-03-25T01:55:41.000Z","lastUpdated":"2023-04-05T22:45:38.000Z","status":1,"totalPoints":4008,"rankingPoints":4008,"totalPass":1,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":67,"bracketLevel":0,"footswitchLevel":3,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LUPIZA","sex":"Unspecified","profileImg":""},{"id":318,"membersId":127775,"dateAdded":"2023-03-19T06:41:30.000Z","lastUpdated":"2023-03-19T08:14:17.000Z","status":1,"totalPoints":3772,"rankingPoints":3772,"totalPass":2,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":31,"bracketLevel":1,"footswitchLevel":0,"jackLevel":4,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nv","sex":"Male","profileImg":"https://i.imgur.com/4z5tNia.png"},{"id":610,"membersId":174544,"dateAdded":"2023-03-21T20:21:57.000Z","lastUpdated":"2023-05-05T18:05:33.000Z","status":1,"totalPoints":3697,"rankingPoints":3697,"totalPass":7,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":67,"bracketLevel":9,"footswitchLevel":2,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Ushio","sex":"Female","profileImg":""},{"id":514,"membersId":173314,"dateAdded":"2023-03-20T17:55:04.000Z","lastUpdated":"2023-05-01T18:29:25.000Z","status":1,"totalPoints":3371,"rankingPoints":3371,"totalPass":1,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":88,"bracketLevel":9,"footswitchLevel":22,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"appolose","sex":"Unspecified","profileImg":""},{"id":1275,"membersId":174524,"dateAdded":"2023-05-02T20:22:03.000Z","lastUpdated":"2023-05-06T18:58:31.000Z","status":1,"totalPoints":3191,"rankingPoints":3191,"totalPass":6,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":40,"bracketLevel":0,"footswitchLevel":13,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Nanoblender","sex":"Unspecified","profileImg":""},{"id":897,"membersId":175436,"dateAdded":"2023-03-29T10:07:48.000Z","lastUpdated":"2023-03-29T10:42:38.000Z","status":1,"totalPoints":2992,"rankingPoints":2992,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":73,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Wendy Ho Wendy Ho","sex":"Unspecified","profileImg":""},{"id":822,"membersId":66763,"dateAdded":"2023-03-26T16:09:21.000Z","lastUpdated":"2023-03-26T17:17:11.000Z","status":1,"totalPoints":2879,"rankingPoints":2879,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":23,"bracketLevel":0,"footswitchLevel":0,"jackLevel":46,"sideswitchLevel":0,"doublestepLevel":53,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Urza","sex":"Male","profileImg":"https://i.imgur.com/7Srxlqj.png"},{"id":844,"membersId":175352,"dateAdded":"2023-03-26T23:30:40.000Z","lastUpdated":"2023-03-27T00:50:00.000Z","status":1,"totalPoints":2862,"rankingPoints":2862,"totalPass":5,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":71,"bracketLevel":0,"footswitchLevel":13,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Catra7654","sex":"Female","profileImg":"https://i.imgur.com/4bzaEGm.png"},{"id":705,"membersId":173737,"dateAdded":"2023-03-23T18:39:11.000Z","lastUpdated":"2023-03-27T20:31:41.000Z","status":1,"totalPoints":2692,"rankingPoints":2692,"totalPass":0,"totalFc":0,"totalFec":0,"totalQuad":1,"totalQuint":1,"crossoverLevel":125,"bracketLevel":12,"footswitchLevel":31,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"G_r_e_g_i ","sex":"Male","profileImg":""},{"id":605,"membersId":174170,"dateAdded":"2023-03-21T18:53:28.000Z","lastUpdated":"2023-03-28T18:49:40.000Z","status":1,"totalPoints":2489,"rankingPoints":2489,"totalPass":3,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":69,"bracketLevel":0,"footswitchLevel":2,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"piankejk","sex":"Female","profileImg":""},{"id":1115,"membersId":32523,"dateAdded":"2023-04-13T02:17:46.000Z","lastUpdated":"2023-04-15T01:21:55.000Z","status":1,"totalPoints":2443,"rankingPoints":2443,"totalPass":3,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":10,"bracketLevel":2,"footswitchLevel":1,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":5,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"cammi#5198\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"cammi","sex":"Unspecified","profileImg":""},{"id":1268,"membersId":176067,"dateAdded":"2023-05-02T01:03:53.000Z","lastUpdated":"2023-05-02T01:38:21.000Z","status":1,"totalPoints":2374,"rankingPoints":2374,"totalPass":2,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":45,"bracketLevel":0,"footswitchLevel":2,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":10,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Mars","sex":"Unspecified","profileImg":""},{"id":701,"membersId":173539,"dateAdded":"2023-03-23T15:17:16.000Z","lastUpdated":"2023-03-27T21:34:13.000Z","status":1,"totalPoints":2329,"rankingPoints":2329,"totalPass":4,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":58,"bracketLevel":0,"footswitchLevel":2,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":41,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lyrycyl","sex":"Unspecified","profileImg":"https://i.imgur.com/9N7LtDS.png"},{"id":763,"membersId":76070,"dateAdded":"2023-03-25T03:20:25.000Z","lastUpdated":"2023-03-26T03:36:18.000Z","status":1,"totalPoints":2291,"rankingPoints":2291,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":20,"bracketLevel":24,"footswitchLevel":8,"jackLevel":44,"sideswitchLevel":0,"doublestepLevel":5,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Max Forever","sex":"Male","profileImg":"https://www.flashflashrevolution.com/vbz/customavatars/avatar1716973_77.gif"},{"id":1056,"membersId":175763,"dateAdded":"2023-04-08T01:59:45.000Z","lastUpdated":"2023-04-15T00:10:02.000Z","status":1,"totalPoints":2257,"rankingPoints":2257,"totalPass":4,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":43,"bracketLevel":0,"footswitchLevel":2,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":4,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lizzu","sex":"Unspecified","profileImg":""},{"id":1060,"membersId":175765,"dateAdded":"2023-04-08T12:55:04.000Z","lastUpdated":"2023-04-08T13:03:41.000Z","status":1,"totalPoints":2252,"rankingPoints":2252,"totalPass":3,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":55,"bracketLevel":0,"footswitchLevel":2,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"tsubasa83_ch","sex":"Unspecified","profileImg":""},{"id":1126,"membersId":175846,"dateAdded":"2023-04-15T14:08:29.000Z","lastUpdated":"2023-04-15T14:27:20.000Z","status":1,"totalPoints":2163,"rankingPoints":2163,"totalPass":3,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":83,"bracketLevel":7,"footswitchLevel":16,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Krezcent","sex":"Male","profileImg":""},{"id":500,"membersId":66494,"dateAdded":"2023-03-20T15:00:51.000Z","lastUpdated":"2023-03-20T17:48:21.000Z","status":1,"totalPoints":1940,"rankingPoints":1940,"totalPass":3,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":44,"bracketLevel":0,"footswitchLevel":2,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Alessy","sex":"Unspecified","profileImg":""},{"id":1249,"membersId":173408,"dateAdded":"2023-04-29T16:12:18.000Z","lastUpdated":"2023-04-29T17:00:09.000Z","status":1,"totalPoints":1853,"rankingPoints":1853,"totalPass":1,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":4,"bracketLevel":2,"footswitchLevel":2,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":6,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Nusa","sex":"Female","profileImg":""},{"id":1235,"membersId":133533,"dateAdded":"2023-04-27T16:26:13.000Z","lastUpdated":"2023-04-27T16:40:37.000Z","status":1,"totalPoints":1833,"rankingPoints":1833,"totalPass":2,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":31,"bracketLevel":0,"footswitchLevel":2,"jackLevel":22,"sideswitchLevel":0,"doublestepLevel":22,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"silentblackcat","sex":"Female","profileImg":""},{"id":1297,"membersId":176129,"dateAdded":"2023-05-06T14:11:48.000Z","lastUpdated":"2023-05-06T14:16:22.000Z","status":1,"totalPoints":1741,"rankingPoints":1741,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":14,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JustMoneko","sex":"Unspecified","profileImg":""},{"id":804,"membersId":175523,"dateAdded":"2023-03-25T22:55:22.000Z","lastUpdated":"2023-03-25T23:27:06.000Z","status":1,"totalPoints":1678,"rankingPoints":1678,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":26,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":28,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Gig4","sex":"Female","profileImg":""},{"id":1229,"membersId":176021,"dateAdded":"2023-04-27T05:24:54.000Z","lastUpdated":"2023-04-30T22:00:48.000Z","status":1,"totalPoints":1588,"rankingPoints":1588,"totalPass":2,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":15,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"jadefengs","sex":"Female","profileImg":""},{"id":1116,"membersId":175736,"dateAdded":"2023-04-13T20:34:51.000Z","lastUpdated":"2023-04-14T12:36:22.000Z","status":1,"totalPoints":1523,"rankingPoints":1523,"totalPass":3,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":24,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":4,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"RisuRisu","sex":"Unspecified","profileImg":"https://i.imgur.com/F0T2AI7.png"},{"id":204,"membersId":170672,"dateAdded":"2023-03-18T23:29:20.000Z","lastUpdated":"2023-03-26T01:58:19.000Z","status":1,"totalPoints":1521,"rankingPoints":1521,"totalPass":2,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":9,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":50,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Cathadan","sex":"Male","profileImg":""},{"id":529,"membersId":46737,"dateAdded":"2023-03-20T19:24:54.000Z","lastUpdated":"2023-03-20T20:09:35.000Z","status":1,"totalPoints":1362,"rankingPoints":1362,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":63,"bracketLevel":12,"footswitchLevel":26,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dyl","sex":"Male","profileImg":""},{"id":443,"membersId":173433,"dateAdded":"2023-03-19T23:44:29.000Z","lastUpdated":"2023-03-20T04:41:22.000Z","status":1,"totalPoints":1272,"rankingPoints":1272,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":68,"bracketLevel":0,"footswitchLevel":7,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Clasko","sex":"Male","profileImg":""},{"id":58,"membersId":173341,"dateAdded":"2023-03-18T21:49:31.000Z","lastUpdated":"2023-03-19T21:32:11.000Z","status":1,"totalPoints":1214,"rankingPoints":1214,"totalPass":2,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":19,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"catcat","sex":"Female","profileImg":""},{"id":1201,"membersId":175961,"dateAdded":"2023-04-24T02:52:44.000Z","lastUpdated":"2023-04-30T19:10:48.000Z","status":1,"totalPoints":1084,"rankingPoints":1084,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":9,"bracketLevel":24,"footswitchLevel":6,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ATARAXIA","sex":"Unspecified","profileImg":""},{"id":789,"membersId":175517,"dateAdded":"2023-03-25T17:45:41.000Z","lastUpdated":"2023-03-25T19:16:14.000Z","status":1,"totalPoints":1078,"rankingPoints":1078,"totalPass":2,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":29,"bracketLevel":0,"footswitchLevel":2,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Maurycyt","sex":"Unspecified","profileImg":""},{"id":1127,"membersId":173599,"dateAdded":"2023-04-15T15:30:38.000Z","lastUpdated":"2023-04-15T15:48:51.000Z","status":1,"totalPoints":982,"rankingPoints":982,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":23,"bracketLevel":18,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Chmurek","sex":"Unspecified","profileImg":""},{"id":920,"membersId":173376,"dateAdded":"2023-03-30T14:49:00.000Z","lastUpdated":"2023-04-06T07:28:04.000Z","status":1,"totalPoints":873,"rankingPoints":873,"totalPass":0,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":40,"bracketLevel":0,"footswitchLevel":3,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ViperDev","sex":"Female","profileImg":""},{"id":679,"membersId":175452,"dateAdded":"2023-03-22T23:16:09.000Z","lastUpdated":"2023-03-23T00:29:39.000Z","status":1,"totalPoints":812,"rankingPoints":812,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":19,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Broasty","sex":"Male","profileImg":""},{"id":1119,"membersId":175831,"dateAdded":"2023-04-14T01:57:57.000Z","lastUpdated":"2023-04-21T01:00:59.000Z","status":1,"totalPoints":609,"rankingPoints":609,"totalPass":2,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":14,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BerylVR","sex":"Unspecified","profileImg":""},{"id":949,"membersId":175640,"dateAdded":"2023-04-01T14:22:56.000Z","lastUpdated":"2023-04-01T16:06:58.000Z","status":1,"totalPoints":477,"rankingPoints":477,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":0,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BiggerJohn","sex":"Unspecified","profileImg":""},{"id":227,"membersId":4707,"dateAdded":"2023-03-19T00:27:00.000Z","lastUpdated":"2023-03-31T01:18:28.000Z","status":1,"totalPoints":0,"rankingPoints":0,"totalPass":0,"totalFc":0,"totalFec":0,"totalQuad":1,"totalQuint":0,"crossoverLevel":0,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JNero","sex":"Male","profileImg":"https://i.imgur.com/cUM2c0n.png"}],"rivalMembersIds":[]}}
\ No newline at end of file
diff --git a/server/files/leaderboardinfo.1 b/server/files/leaderboardinfo.1
new file mode 100644
index 0000000..fcea1e1
--- /dev/null
+++ b/server/files/leaderboardinfo.1
@@ -0,0 +1 @@
+{"success":true,"message":"","data":{"leaderboard":[{"id":42,"membersId":147890,"dateAdded":"2023-03-18T21:49:01.000Z","lastUpdated":"2023-03-19T17:09:29.000Z","status":1,"totalPoints":328703,"rankingPoints":328703,"totalPass":24,"totalFc":16,"totalFec":13,"totalQuad":1,"totalQuint":0,"crossoverLevel":1237,"bracketLevel":2162,"footswitchLevel":1811,"jackLevel":932,"sideswitchLevel":3728,"doublestepLevel":1219,"staminaLevel":1352,"isBuddy":false,"preferences":"{\"discordId\":\"cmmf#8747\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"cmmf","sex":"Unspecified","profileImg":"https://i.imgur.com/XWuHg9J.png"},{"id":13,"membersId":7457,"dateAdded":"2023-03-18T21:48:42.000Z","lastUpdated":"2023-03-19T18:36:57.000Z","status":1,"totalPoints":314511,"rankingPoints":314511,"totalPass":14,"totalFc":8,"totalFec":36,"totalQuad":5,"totalQuint":0,"crossoverLevel":894,"bracketLevel":765,"footswitchLevel":1188,"jackLevel":1421,"sideswitchLevel":1168,"doublestepLevel":1139,"staminaLevel":2103,"isBuddy":false,"preferences":"{\"discordId\":\"Bran#1685\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Krushrpants","sex":"Male","profileImg":""},{"id":162,"membersId":49444,"dateAdded":"2023-03-18T22:26:42.000Z","lastUpdated":"2023-03-19T05:00:50.000Z","status":1,"totalPoints":312366,"rankingPoints":301681,"totalPass":48,"totalFc":17,"totalFec":15,"totalQuad":1,"totalQuint":0,"crossoverLevel":1380,"bracketLevel":1072,"footswitchLevel":1209,"jackLevel":1387,"sideswitchLevel":1021,"doublestepLevel":996,"staminaLevel":1610,"isBuddy":false,"preferences":"{\"discordId\":\"Freyja#4407\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"freyja","sex":"Female","profileImg":"https://i.ibb.co/26cb2XQ/Dbecdqk-151620b8-331a-42eb-9211-5d4798282726.jpg"},{"id":48,"membersId":173699,"dateAdded":"2023-03-18T21:49:06.000Z","lastUpdated":"2023-03-19T05:18:55.000Z","status":1,"totalPoints":303921,"rankingPoints":269034,"totalPass":22,"totalFc":19,"totalFec":46,"totalQuad":4,"totalQuint":0,"crossoverLevel":2196,"bracketLevel":899,"footswitchLevel":1282,"jackLevel":1112,"sideswitchLevel":853,"doublestepLevel":1872,"staminaLevel":296,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"erictran0","sex":"Male","profileImg":""},{"id":302,"membersId":2026,"dateAdded":"2023-03-19T04:32:57.000Z","lastUpdated":"2023-03-19T09:28:57.000Z","status":1,"totalPoints":228371,"rankingPoints":228371,"totalPass":45,"totalFc":3,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":543,"bracketLevel":1233,"footswitchLevel":964,"jackLevel":749,"sideswitchLevel":407,"doublestepLevel":688,"staminaLevel":935,"isBuddy":false,"preferences":"{\"discordId\":\"dxultimate#6390\",\"decentsEnabled\":true,\"wayOffsEnabled\":false}","name":"BarX","sex":"Male","profileImg":""},{"id":187,"membersId":7737,"dateAdded":"2023-03-18T22:53:48.000Z","lastUpdated":"2023-03-19T18:36:34.000Z","status":1,"totalPoints":219448,"rankingPoints":219448,"totalPass":26,"totalFc":8,"totalFec":31,"totalQuad":3,"totalQuint":0,"crossoverLevel":877,"bracketLevel":936,"footswitchLevel":1364,"jackLevel":922,"sideswitchLevel":1068,"doublestepLevel":1091,"staminaLevel":622,"isBuddy":false,"preferences":"{\"discordId\":\"LemmingOnTheRun#7482\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DF.CaptainBlack","sex":"Male","profileImg":""},{"id":161,"membersId":128535,"dateAdded":"2023-03-18T22:25:38.000Z","lastUpdated":"2023-03-19T06:40:58.000Z","status":1,"totalPoints":201827,"rankingPoints":201827,"totalPass":23,"totalFc":8,"totalFec":12,"totalQuad":3,"totalQuint":0,"crossoverLevel":768,"bracketLevel":881,"footswitchLevel":869,"jackLevel":249,"sideswitchLevel":551,"doublestepLevel":819,"staminaLevel":1134,"isBuddy":false,"preferences":"{\"discordId\":\"Ritz#7358\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Ritz","sex":"Male","profileImg":"https://i.imgur.com/iwmsWIc.png"},{"id":12,"membersId":133006,"dateAdded":"2023-03-18T21:48:36.000Z","lastUpdated":"2023-03-19T01:14:04.000Z","status":1,"totalPoints":197711,"rankingPoints":197711,"totalPass":0,"totalFc":5,"totalFec":21,"totalQuad":4,"totalQuint":0,"crossoverLevel":527,"bracketLevel":1474,"footswitchLevel":1086,"jackLevel":722,"sideswitchLevel":964,"doublestepLevel":920,"staminaLevel":906,"isBuddy":false,"preferences":"{\"discordId\":\"ChanceR#2908\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Chance R.","sex":"Male","profileImg":""},{"id":116,"membersId":7385,"dateAdded":"2023-03-18T21:56:54.000Z","lastUpdated":"2023-03-19T01:40:34.000Z","status":1,"totalPoints":191652,"rankingPoints":191652,"totalPass":12,"totalFc":7,"totalFec":15,"totalQuad":0,"totalQuint":0,"crossoverLevel":54,"bracketLevel":75,"footswitchLevel":50,"jackLevel":172,"sideswitchLevel":0,"doublestepLevel":23,"staminaLevel":2868,"isBuddy":false,"preferences":"{\"discordId\":\"RainbowXynn#3637\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Xynn","sex":"Male","profileImg":"https://i.imgur.com/mbdst0K.jpg"},{"id":98,"membersId":7843,"dateAdded":"2023-03-18T21:52:50.000Z","lastUpdated":"2023-03-19T03:41:37.000Z","status":1,"totalPoints":174810,"rankingPoints":174810,"totalPass":4,"totalFc":3,"totalFec":17,"totalQuad":12,"totalQuint":0,"crossoverLevel":776,"bracketLevel":708,"footswitchLevel":912,"jackLevel":322,"sideswitchLevel":720,"doublestepLevel":470,"staminaLevel":342,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kigha","sex":"Female","profileImg":""},{"id":175,"membersId":66431,"dateAdded":"2023-03-18T22:38:00.000Z","lastUpdated":"2023-03-19T08:54:55.000Z","status":1,"totalPoints":169611,"rankingPoints":169611,"totalPass":8,"totalFc":5,"totalFec":16,"totalQuad":15,"totalQuint":0,"crossoverLevel":1164,"bracketLevel":964,"footswitchLevel":909,"jackLevel":707,"sideswitchLevel":520,"doublestepLevel":1125,"staminaLevel":168,"isBuddy":false,"preferences":"{\"discordId\":\"Berserker#2387\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Berserker","sex":"Male","profileImg":"https://i.imgur.com/QPfP2Mp.png"},{"id":190,"membersId":129254,"dateAdded":"2023-03-18T22:58:13.000Z","lastUpdated":"2023-03-19T02:50:04.000Z","status":1,"totalPoints":169279,"rankingPoints":169279,"totalPass":28,"totalFc":7,"totalFec":7,"totalQuad":1,"totalQuint":0,"crossoverLevel":802,"bracketLevel":437,"footswitchLevel":677,"jackLevel":379,"sideswitchLevel":514,"doublestepLevel":267,"staminaLevel":494,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ddrneel","sex":"Male","profileImg":""},{"id":26,"membersId":173788,"dateAdded":"2023-03-18T21:48:53.000Z","lastUpdated":"2023-03-19T18:34:59.000Z","status":1,"totalPoints":164484,"rankingPoints":164484,"totalPass":32,"totalFc":14,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":634,"bracketLevel":822,"footswitchLevel":1556,"jackLevel":345,"sideswitchLevel":906,"doublestepLevel":1007,"staminaLevel":447,"isBuddy":false,"preferences":"{\"discordId\":\"Jace#9339\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JaceITG","sex":"Male","profileImg":""},{"id":40,"membersId":128698,"dateAdded":"2023-03-18T21:49:00.000Z","lastUpdated":"2023-03-19T01:47:26.000Z","status":1,"totalPoints":161373,"rankingPoints":161373,"totalPass":19,"totalFc":19,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":710,"bracketLevel":898,"footswitchLevel":906,"jackLevel":751,"sideswitchLevel":1395,"doublestepLevel":1017,"staminaLevel":443,"isBuddy":false,"preferences":"{\"discordId\":\"Exschwasion#5968\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Exschwasion","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/210350948055384064/957716217093820446/b.png"},{"id":110,"membersId":173359,"dateAdded":"2023-03-18T21:54:58.000Z","lastUpdated":"2023-03-19T01:52:49.000Z","status":1,"totalPoints":156167,"rankingPoints":156167,"totalPass":16,"totalFc":12,"totalFec":23,"totalQuad":8,"totalQuint":0,"crossoverLevel":926,"bracketLevel":705,"footswitchLevel":837,"jackLevel":639,"sideswitchLevel":170,"doublestepLevel":684,"staminaLevel":372,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"xancara","sex":"Male","profileImg":""},{"id":216,"membersId":133806,"dateAdded":"2023-03-19T00:10:53.000Z","lastUpdated":"2023-03-19T04:31:04.000Z","status":1,"totalPoints":155169,"rankingPoints":155169,"totalPass":20,"totalFc":8,"totalFec":14,"totalQuad":1,"totalQuint":0,"crossoverLevel":880,"bracketLevel":725,"footswitchLevel":614,"jackLevel":727,"sideswitchLevel":304,"doublestepLevel":359,"staminaLevel":311,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PUYO","sex":"Unspecified","profileImg":"https://live.staticflickr.com/65535/51260131445_d6c068ca6e_m.jpg"},{"id":33,"membersId":61697,"dateAdded":"2023-03-18T21:48:57.000Z","lastUpdated":"2023-03-19T04:09:26.000Z","status":1,"totalPoints":154635,"rankingPoints":154635,"totalPass":22,"totalFc":10,"totalFec":12,"totalQuad":0,"totalQuint":0,"crossoverLevel":943,"bracketLevel":735,"footswitchLevel":959,"jackLevel":665,"sideswitchLevel":343,"doublestepLevel":1192,"staminaLevel":302,"isBuddy":false,"preferences":"{\"discordId\":\"Blizzrdball#3098\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Blizzrdball","sex":"Male","profileImg":"https://i.imgur.com/wgt2mm0.png"},{"id":254,"membersId":173047,"dateAdded":"2023-03-19T01:29:15.000Z","lastUpdated":"2023-03-19T18:23:45.000Z","status":1,"totalPoints":150983,"rankingPoints":150983,"totalPass":10,"totalFc":7,"totalFec":14,"totalQuad":1,"totalQuint":0,"crossoverLevel":750,"bracketLevel":789,"footswitchLevel":981,"jackLevel":612,"sideswitchLevel":1024,"doublestepLevel":850,"staminaLevel":348,"isBuddy":false,"preferences":"{\"discordId\":\"nvanleerdrums#8936\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nvanleerdrums","sex":"Male","profileImg":"https://i.imgur.com/wA4Bxoy.jpg"},{"id":109,"membersId":175125,"dateAdded":"2023-03-18T21:54:52.000Z","lastUpdated":"2023-03-19T18:33:12.000Z","status":1,"totalPoints":150432,"rankingPoints":150432,"totalPass":6,"totalFc":8,"totalFec":10,"totalQuad":10,"totalQuint":0,"crossoverLevel":1065,"bracketLevel":403,"footswitchLevel":928,"jackLevel":267,"sideswitchLevel":1416,"doublestepLevel":619,"staminaLevel":426,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mixmasta","sex":"Male","profileImg":""},{"id":114,"membersId":173653,"dateAdded":"2023-03-18T21:56:22.000Z","lastUpdated":"2023-03-19T18:32:12.000Z","status":1,"totalPoints":149133,"rankingPoints":149133,"totalPass":26,"totalFc":9,"totalFec":10,"totalQuad":1,"totalQuint":0,"crossoverLevel":851,"bracketLevel":341,"footswitchLevel":948,"jackLevel":332,"sideswitchLevel":354,"doublestepLevel":1030,"staminaLevel":203,"isBuddy":false,"preferences":"{\"discordId\":\"valgrind#2281\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"valgrind","sex":"Unspecified","profileImg":""},{"id":52,"membersId":165504,"dateAdded":"2023-03-18T21:49:07.000Z","lastUpdated":"2023-03-19T18:35:39.000Z","status":1,"totalPoints":147997,"rankingPoints":147997,"totalPass":44,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":626,"bracketLevel":767,"footswitchLevel":763,"jackLevel":1291,"sideswitchLevel":1045,"doublestepLevel":903,"staminaLevel":504,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"_Temeraire","sex":"Unspecified","profileImg":""},{"id":57,"membersId":58407,"dateAdded":"2023-03-18T21:49:19.000Z","lastUpdated":"2023-03-19T06:00:33.000Z","status":1,"totalPoints":147367,"rankingPoints":147367,"totalPass":13,"totalFc":0,"totalFec":13,"totalQuad":7,"totalQuint":0,"crossoverLevel":481,"bracketLevel":1109,"footswitchLevel":765,"jackLevel":363,"sideswitchLevel":101,"doublestepLevel":1000,"staminaLevel":420,"isBuddy":false,"preferences":"{\"discordId\":\"pochoitg#4891\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Pocho","sex":"Male","profileImg":"https://c.tenor.com/qFiVMJ7kDGwAAAAM/catjam.gif"},{"id":78,"membersId":174707,"dateAdded":"2023-03-18T21:50:22.000Z","lastUpdated":"2023-03-19T18:37:56.000Z","status":1,"totalPoints":146880,"rankingPoints":146880,"totalPass":29,"totalFc":33,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":1224,"bracketLevel":412,"footswitchLevel":802,"jackLevel":216,"sideswitchLevel":232,"doublestepLevel":956,"staminaLevel":139,"isBuddy":false,"preferences":"{\"discordId\":\"antifun#6584\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"antifun","sex":"Unspecified","profileImg":"https://i.imgur.com/YkgPNB2.png"},{"id":105,"membersId":168067,"dateAdded":"2023-03-18T21:53:38.000Z","lastUpdated":"2023-03-19T16:41:31.000Z","status":1,"totalPoints":175497,"rankingPoints":144849,"totalPass":41,"totalFc":56,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":1825,"bracketLevel":310,"footswitchLevel":835,"jackLevel":335,"sideswitchLevel":394,"doublestepLevel":1177,"staminaLevel":41,"isBuddy":false,"preferences":"{\"discordId\":\"BreakfastPM#2615\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BreakfastPM","sex":"Male","profileImg":"https://i.ibb.co/xhdGjnY/Avatar-Small.jpg"},{"id":43,"membersId":6284,"dateAdded":"2023-03-18T21:49:02.000Z","lastUpdated":"2023-03-18T23:43:24.000Z","status":1,"totalPoints":143147,"rankingPoints":143147,"totalPass":2,"totalFc":9,"totalFec":9,"totalQuad":5,"totalQuint":0,"crossoverLevel":584,"bracketLevel":578,"footswitchLevel":661,"jackLevel":346,"sideswitchLevel":421,"doublestepLevel":619,"staminaLevel":365,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Twix","sex":"Male","profileImg":""},{"id":231,"membersId":175374,"dateAdded":"2023-03-19T00:35:10.000Z","lastUpdated":"2023-03-19T17:28:13.000Z","status":1,"totalPoints":142416,"rankingPoints":142416,"totalPass":21,"totalFc":8,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":531,"bracketLevel":618,"footswitchLevel":688,"jackLevel":742,"sideswitchLevel":943,"doublestepLevel":639,"staminaLevel":467,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LordLui","sex":"Unspecified","profileImg":""},{"id":352,"membersId":146716,"dateAdded":"2023-03-19T14:35:19.000Z","lastUpdated":"2023-03-19T18:05:31.000Z","status":1,"totalPoints":141857,"rankingPoints":141857,"totalPass":6,"totalFc":7,"totalFec":3,"totalQuad":9,"totalQuint":0,"crossoverLevel":736,"bracketLevel":1047,"footswitchLevel":994,"jackLevel":312,"sideswitchLevel":1087,"doublestepLevel":470,"staminaLevel":319,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TadofTony","sex":"Male","profileImg":""},{"id":16,"membersId":174632,"dateAdded":"2023-03-18T21:48:45.000Z","lastUpdated":"2023-03-19T04:43:03.000Z","status":1,"totalPoints":140768,"rankingPoints":140768,"totalPass":34,"totalFc":15,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":977,"bracketLevel":484,"footswitchLevel":773,"jackLevel":714,"sideswitchLevel":810,"doublestepLevel":1018,"staminaLevel":172,"isBuddy":false,"preferences":"{\"discordId\":\"177013#8525\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"SunkissEnjoyer","sex":"Unspecified","profileImg":"https://i.imgur.com/2YNygb4.png"},{"id":25,"membersId":172893,"dateAdded":"2023-03-18T21:48:52.000Z","lastUpdated":"2023-03-19T01:54:21.000Z","status":1,"totalPoints":132885,"rankingPoints":132885,"totalPass":19,"totalFc":6,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":577,"bracketLevel":1036,"footswitchLevel":910,"jackLevel":628,"sideswitchLevel":345,"doublestepLevel":731,"staminaLevel":391,"isBuddy":false,"preferences":"{\"discordId\":\"Smalls#9101\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Smalls","sex":"Male","profileImg":"https://i.imgur.com/RDuvnsC.jpg"},{"id":76,"membersId":87476,"dateAdded":"2023-03-18T21:50:19.000Z","lastUpdated":"2023-03-19T18:37:18.000Z","status":1,"totalPoints":131085,"rankingPoints":131085,"totalPass":2,"totalFc":7,"totalFec":6,"totalQuad":10,"totalQuint":1,"crossoverLevel":679,"bracketLevel":861,"footswitchLevel":716,"jackLevel":239,"sideswitchLevel":811,"doublestepLevel":485,"staminaLevel":405,"isBuddy":false,"preferences":"{\"discordId\":\"dimo#0420\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dimo","sex":"Male","profileImg":"https://imgur.com/4T9VibU.png"},{"id":29,"membersId":35701,"dateAdded":"2023-03-18T21:48:54.000Z","lastUpdated":"2023-03-19T15:11:25.000Z","status":1,"totalPoints":125323,"rankingPoints":125323,"totalPass":8,"totalFc":2,"totalFec":10,"totalQuad":11,"totalQuint":0,"crossoverLevel":628,"bracketLevel":422,"footswitchLevel":601,"jackLevel":298,"sideswitchLevel":433,"doublestepLevel":559,"staminaLevel":398,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lolipo","sex":"Female","profileImg":"https://imgur.com/VEubW0D.jpg"},{"id":65,"membersId":173296,"dateAdded":"2023-03-18T21:49:51.000Z","lastUpdated":"2023-03-19T06:31:56.000Z","status":1,"totalPoints":115713,"rankingPoints":115713,"totalPass":17,"totalFc":4,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":359,"bracketLevel":822,"footswitchLevel":584,"jackLevel":367,"sideswitchLevel":167,"doublestepLevel":397,"staminaLevel":452,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"IcyCold","sex":"Male","profileImg":""},{"id":89,"membersId":66785,"dateAdded":"2023-03-18T21:51:12.000Z","lastUpdated":"2023-03-19T18:20:55.000Z","status":1,"totalPoints":115284,"rankingPoints":115284,"totalPass":15,"totalFc":4,"totalFec":13,"totalQuad":0,"totalQuint":0,"crossoverLevel":625,"bracketLevel":781,"footswitchLevel":518,"jackLevel":376,"sideswitchLevel":101,"doublestepLevel":606,"staminaLevel":306,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Ralph Caffery","sex":"Male","profileImg":""},{"id":217,"membersId":37977,"dateAdded":"2023-03-19T00:11:23.000Z","lastUpdated":"2023-03-19T04:48:00.000Z","status":1,"totalPoints":112061,"rankingPoints":112061,"totalPass":8,"totalFc":10,"totalFec":19,"totalQuad":1,"totalQuint":0,"crossoverLevel":920,"bracketLevel":552,"footswitchLevel":519,"jackLevel":288,"sideswitchLevel":142,"doublestepLevel":418,"staminaLevel":93,"isBuddy":false,"preferences":"{\"discordId\":\"Valex#8095\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Valex","sex":"Male","profileImg":"https://i.imgur.com/OkpuTKw.jpg"},{"id":228,"membersId":66726,"dateAdded":"2023-03-19T00:32:24.000Z","lastUpdated":"2023-03-19T05:43:35.000Z","status":1,"totalPoints":111086,"rankingPoints":111086,"totalPass":14,"totalFc":14,"totalFec":9,"totalQuad":1,"totalQuint":0,"crossoverLevel":765,"bracketLevel":180,"footswitchLevel":466,"jackLevel":262,"sideswitchLevel":438,"doublestepLevel":442,"staminaLevel":143,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zeipher_Hawk","sex":"Male","profileImg":"https://img.pokemondb.net/sprites/home/shiny/1x/shuckle.png"},{"id":121,"membersId":173301,"dateAdded":"2023-03-18T21:58:47.000Z","lastUpdated":"2023-03-19T00:59:41.000Z","status":1,"totalPoints":111023,"rankingPoints":111023,"totalPass":15,"totalFc":4,"totalFec":2,"totalQuad":1,"totalQuint":0,"crossoverLevel":216,"bracketLevel":637,"footswitchLevel":532,"jackLevel":375,"sideswitchLevel":231,"doublestepLevel":303,"staminaLevel":662,"isBuddy":false,"preferences":"{\"discordId\":\"Chabala#4798\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Chabala","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/706313433422757888/960710993426661376/20190925_213154.jpg"},{"id":70,"membersId":173636,"dateAdded":"2023-03-18T21:49:56.000Z","lastUpdated":"2023-03-19T06:45:07.000Z","status":1,"totalPoints":109601,"rankingPoints":109601,"totalPass":13,"totalFc":1,"totalFec":4,"totalQuad":8,"totalQuint":0,"crossoverLevel":606,"bracketLevel":559,"footswitchLevel":758,"jackLevel":307,"sideswitchLevel":105,"doublestepLevel":556,"staminaLevel":275,"isBuddy":false,"preferences":"{\"discordId\":\"sarbackergaming#8250\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ZSL","sex":"Male","profileImg":"https://i.imgur.com/NvPX4bC.png"},{"id":314,"membersId":165524,"dateAdded":"2023-03-19T05:33:33.000Z","lastUpdated":"2023-03-19T09:21:35.000Z","status":1,"totalPoints":107521,"rankingPoints":107521,"totalPass":21,"totalFc":5,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":538,"bracketLevel":651,"footswitchLevel":333,"jackLevel":542,"sideswitchLevel":688,"doublestepLevel":365,"staminaLevel":236,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"COLLETnm7","sex":"Male","profileImg":"https://i.gyazo.com/be29cf05362aae1c603e7f39b3b9192c.png"},{"id":126,"membersId":173876,"dateAdded":"2023-03-18T22:00:50.000Z","lastUpdated":"2023-03-19T01:09:01.000Z","status":1,"totalPoints":106325,"rankingPoints":106325,"totalPass":37,"totalFc":7,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":960,"bracketLevel":94,"footswitchLevel":419,"jackLevel":306,"sideswitchLevel":502,"doublestepLevel":637,"staminaLevel":252,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sigonasr2","sex":"Male","profileImg":"https://en.gravatar.com/userimage/3612777/b9992e90331c1fa71a3479f5b3d02b41.png"},{"id":140,"membersId":174935,"dateAdded":"2023-03-18T22:09:53.000Z","lastUpdated":"2023-03-19T18:37:46.000Z","status":1,"totalPoints":105521,"rankingPoints":105521,"totalPass":20,"totalFc":11,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":622,"bracketLevel":156,"footswitchLevel":456,"jackLevel":144,"sideswitchLevel":182,"doublestepLevel":819,"staminaLevel":198,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"reset_itg","sex":"Unspecified","profileImg":""},{"id":169,"membersId":127780,"dateAdded":"2023-03-18T22:33:53.000Z","lastUpdated":"2023-03-19T02:25:18.000Z","status":1,"totalPoints":105248,"rankingPoints":105248,"totalPass":25,"totalFc":5,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":240,"bracketLevel":65,"footswitchLevel":123,"jackLevel":56,"sideswitchLevel":234,"doublestepLevel":184,"staminaLevel":1269,"isBuddy":false,"preferences":"{\"discordId\":\"zoodles#2685\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"Hamaon","sex":"Female","profileImg":"https://66.media.tumblr.com/a586c1c2635be3c2863b904b689d6bc6/tumblr_pvwcak806k1x3sogho4_250.png"},{"id":145,"membersId":145083,"dateAdded":"2023-03-18T22:13:54.000Z","lastUpdated":"2023-03-19T18:04:24.000Z","status":1,"totalPoints":104320,"rankingPoints":104320,"totalPass":18,"totalFc":6,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":542,"bracketLevel":313,"footswitchLevel":281,"jackLevel":398,"sideswitchLevel":485,"doublestepLevel":519,"staminaLevel":336,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LOLWUT","sex":"Male","profileImg":"https://i.imgur.com/LZQ5yoW.png"},{"id":3,"membersId":66246,"dateAdded":"2023-03-16T20:38:45.000Z","lastUpdated":"2023-03-19T05:27:05.000Z","status":1,"totalPoints":101161,"rankingPoints":101161,"totalPass":13,"totalFc":10,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":80,"bracketLevel":97,"footswitchLevel":171,"jackLevel":49,"sideswitchLevel":0,"doublestepLevel":103,"staminaLevel":1290,"isBuddy":false,"preferences":"{\"discordId\":\"Zankoku#4444\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zankoku","sex":"Male","profileImg":"http://sugoifactory.moe/things/dopparle5.png"},{"id":151,"membersId":145128,"dateAdded":"2023-03-18T22:17:00.000Z","lastUpdated":"2023-03-19T02:42:26.000Z","status":1,"totalPoints":100911,"rankingPoints":100911,"totalPass":17,"totalFc":6,"totalFec":4,"totalQuad":1,"totalQuint":0,"crossoverLevel":541,"bracketLevel":288,"footswitchLevel":718,"jackLevel":231,"sideswitchLevel":497,"doublestepLevel":598,"staminaLevel":276,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"H8EVRYTHNG","sex":"Male","profileImg":""},{"id":80,"membersId":66662,"dateAdded":"2023-03-18T21:50:33.000Z","lastUpdated":"2023-03-19T12:59:49.000Z","status":1,"totalPoints":99148,"rankingPoints":99148,"totalPass":33,"totalFc":0,"totalFec":8,"totalQuad":1,"totalQuint":0,"crossoverLevel":636,"bracketLevel":421,"footswitchLevel":542,"jackLevel":401,"sideswitchLevel":62,"doublestepLevel":756,"staminaLevel":59,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"itgaz","sex":"Male","profileImg":"https://media.tenor.com/images/65d3642f6d4b6cd2c0508f8b1b152f68/tenor.gif"},{"id":94,"membersId":5314,"dateAdded":"2023-03-18T21:52:01.000Z","lastUpdated":"2023-03-19T15:50:33.000Z","status":1,"totalPoints":99139,"rankingPoints":99139,"totalPass":7,"totalFc":7,"totalFec":6,"totalQuad":2,"totalQuint":0,"crossoverLevel":519,"bracketLevel":458,"footswitchLevel":426,"jackLevel":494,"sideswitchLevel":43,"doublestepLevel":358,"staminaLevel":333,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MrMeatloaf","sex":"Male","profileImg":"https://i.imgur.com/Ye5e236.jpg"},{"id":268,"membersId":7886,"dateAdded":"2023-03-19T01:58:08.000Z","lastUpdated":"2023-03-19T04:31:06.000Z","status":1,"totalPoints":98787,"rankingPoints":98787,"totalPass":13,"totalFc":4,"totalFec":7,"totalQuad":1,"totalQuint":0,"crossoverLevel":403,"bracketLevel":392,"footswitchLevel":366,"jackLevel":315,"sideswitchLevel":77,"doublestepLevel":194,"staminaLevel":380,"isBuddy":false,"preferences":"{\"discordId\":\"Zarzob#0001\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zarzob","sex":"Male","profileImg":"https://i.imgur.com/IbJlXCl.png"},{"id":233,"membersId":84583,"dateAdded":"2023-03-19T00:36:20.000Z","lastUpdated":"2023-03-19T15:37:31.000Z","status":1,"totalPoints":98753,"rankingPoints":98753,"totalPass":11,"totalFc":17,"totalFec":19,"totalQuad":0,"totalQuint":0,"crossoverLevel":978,"bracketLevel":251,"footswitchLevel":409,"jackLevel":166,"sideswitchLevel":287,"doublestepLevel":749,"staminaLevel":75,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lugea","sex":"Male","profileImg":"https://i.ibb.co/SRVLdQQ/bruno.png"},{"id":226,"membersId":130786,"dateAdded":"2023-03-19T00:25:53.000Z","lastUpdated":"2023-03-19T02:54:48.000Z","status":1,"totalPoints":95141,"rankingPoints":95141,"totalPass":29,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":448,"bracketLevel":324,"footswitchLevel":389,"jackLevel":350,"sideswitchLevel":134,"doublestepLevel":317,"staminaLevel":282,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nuki","sex":"Unspecified","profileImg":""},{"id":46,"membersId":66587,"dateAdded":"2023-03-18T21:49:02.000Z","lastUpdated":"2023-03-19T00:39:11.000Z","status":1,"totalPoints":90786,"rankingPoints":90786,"totalPass":20,"totalFc":14,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":428,"bracketLevel":428,"footswitchLevel":378,"jackLevel":471,"sideswitchLevel":146,"doublestepLevel":427,"staminaLevel":269,"isBuddy":false,"preferences":"{\"discordId\":\"Lotarr#0466\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Lotarr","sex":"Male","profileImg":"https://i.imgur.com/Z3lMRla.png"},{"id":41,"membersId":163426,"dateAdded":"2023-03-18T21:49:01.000Z","lastUpdated":"2023-03-19T00:52:50.000Z","status":1,"totalPoints":89990,"rankingPoints":89990,"totalPass":25,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":475,"bracketLevel":187,"footswitchLevel":603,"jackLevel":165,"sideswitchLevel":1416,"doublestepLevel":329,"staminaLevel":229,"isBuddy":false,"preferences":"{\"discordId\":\"GWen#2607\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"GWen","sex":"Male","profileImg":"https://i.imgur.com/7xdu36E.png"},{"id":63,"membersId":173182,"dateAdded":"2023-03-18T21:49:50.000Z","lastUpdated":"2023-03-18T23:43:51.000Z","status":1,"totalPoints":89771,"rankingPoints":89771,"totalPass":9,"totalFc":11,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":376,"bracketLevel":940,"footswitchLevel":521,"jackLevel":398,"sideswitchLevel":523,"doublestepLevel":344,"staminaLevel":164,"isBuddy":false,"preferences":"{\"discordId\":\"DDDAAA#5914\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DDDAAA","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/250042733303955467/941867594590322718/fernandey.png"},{"id":135,"membersId":66778,"dateAdded":"2023-03-18T22:04:30.000Z","lastUpdated":"2023-03-19T14:41:32.000Z","status":1,"totalPoints":88930,"rankingPoints":88930,"totalPass":4,"totalFc":3,"totalFec":11,"totalQuad":17,"totalQuint":0,"crossoverLevel":746,"bracketLevel":168,"footswitchLevel":575,"jackLevel":194,"sideswitchLevel":273,"doublestepLevel":528,"staminaLevel":111,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Shpadoinkle","sex":"Female","profileImg":""},{"id":193,"membersId":173050,"dateAdded":"2023-03-18T23:03:16.000Z","lastUpdated":"2023-03-19T01:42:15.000Z","status":1,"totalPoints":87542,"rankingPoints":87542,"totalPass":12,"totalFc":5,"totalFec":8,"totalQuad":1,"totalQuint":0,"crossoverLevel":423,"bracketLevel":528,"footswitchLevel":443,"jackLevel":141,"sideswitchLevel":143,"doublestepLevel":334,"staminaLevel":342,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Endymion360","sex":"Male","profileImg":"https://i.imgur.com/wvZXXWE.jpg"},{"id":17,"membersId":173058,"dateAdded":"2023-03-18T21:48:46.000Z","lastUpdated":"2023-03-19T02:01:33.000Z","status":1,"totalPoints":87116,"rankingPoints":87116,"totalPass":5,"totalFc":5,"totalFec":7,"totalQuad":7,"totalQuint":0,"crossoverLevel":665,"bracketLevel":293,"footswitchLevel":349,"jackLevel":302,"sideswitchLevel":31,"doublestepLevel":459,"staminaLevel":213,"isBuddy":false,"preferences":"{\"discordId\":\"Formless#8660\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Girth Brooks","sex":"Male","profileImg":"https://i.imgur.com/6DHh2Ra.png"},{"id":10,"membersId":129740,"dateAdded":"2023-03-18T21:48:29.000Z","lastUpdated":"2023-03-19T10:44:25.000Z","status":1,"totalPoints":84095,"rankingPoints":84095,"totalPass":46,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":670,"bracketLevel":154,"footswitchLevel":419,"jackLevel":226,"sideswitchLevel":102,"doublestepLevel":437,"staminaLevel":67,"isBuddy":false,"preferences":"{\"discordId\":\"TENKO#5796\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TENKO","sex":"Unspecified","profileImg":"https://i.imgur.com/qTNKsr2.png"},{"id":139,"membersId":3306,"dateAdded":"2023-03-18T22:07:50.000Z","lastUpdated":"2023-03-19T18:33:48.000Z","status":1,"totalPoints":83709,"rankingPoints":83709,"totalPass":11,"totalFc":0,"totalFec":11,"totalQuad":2,"totalQuint":0,"crossoverLevel":419,"bracketLevel":427,"footswitchLevel":405,"jackLevel":488,"sideswitchLevel":0,"doublestepLevel":471,"staminaLevel":108,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ElPapaCosmico","sex":"Male","profileImg":"https://i.pinimg.com/236x/3e/01/73/3e0173d36ceed20727f4724b71d2961e--rilakkuma-kitty.jpg"},{"id":55,"membersId":134219,"dateAdded":"2023-03-18T21:49:10.000Z","lastUpdated":"2023-03-19T05:10:56.000Z","status":1,"totalPoints":83393,"rankingPoints":83393,"totalPass":12,"totalFc":2,"totalFec":5,"totalQuad":1,"totalQuint":0,"crossoverLevel":268,"bracketLevel":443,"footswitchLevel":414,"jackLevel":229,"sideswitchLevel":224,"doublestepLevel":138,"staminaLevel":258,"isBuddy":false,"preferences":"{\"discordId\":\"Zarinah#9770\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ZarinahBBM","sex":"Female","profileImg":"https://i.ibb.co/0f7Rrg3/My-home.png"},{"id":222,"membersId":166764,"dateAdded":"2023-03-19T00:14:39.000Z","lastUpdated":"2023-03-19T01:44:22.000Z","status":1,"totalPoints":81882,"rankingPoints":81882,"totalPass":24,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":580,"bracketLevel":488,"footswitchLevel":515,"jackLevel":165,"sideswitchLevel":326,"doublestepLevel":398,"staminaLevel":208,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"kadef","sex":"Male","profileImg":""},{"id":27,"membersId":154965,"dateAdded":"2023-03-18T21:48:54.000Z","lastUpdated":"2023-03-19T03:37:45.000Z","status":1,"totalPoints":79578,"rankingPoints":79578,"totalPass":17,"totalFc":5,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":670,"bracketLevel":342,"footswitchLevel":468,"jackLevel":589,"sideswitchLevel":768,"doublestepLevel":442,"staminaLevel":158,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Gpop","sex":"Male","profileImg":""},{"id":173,"membersId":66558,"dateAdded":"2023-03-18T22:36:44.000Z","lastUpdated":"2023-03-19T02:30:38.000Z","status":1,"totalPoints":79109,"rankingPoints":79109,"totalPass":12,"totalFc":8,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":312,"bracketLevel":121,"footswitchLevel":386,"jackLevel":179,"sideswitchLevel":940,"doublestepLevel":150,"staminaLevel":559,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"xiaowuc1","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/680561230892630067/990419215724974080/sukuna.jpg"},{"id":340,"membersId":66753,"dateAdded":"2023-03-19T11:56:50.000Z","lastUpdated":"2023-03-19T16:32:16.000Z","status":1,"totalPoints":79007,"rankingPoints":79007,"totalPass":24,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":359,"bracketLevel":412,"footswitchLevel":266,"jackLevel":394,"sideswitchLevel":344,"doublestepLevel":363,"staminaLevel":247,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PkGam","sex":"Male","profileImg":"https://i.ibb.co/RDMrkmb/pkgam-icon-250.png"},{"id":127,"membersId":171721,"dateAdded":"2023-03-18T22:01:35.000Z","lastUpdated":"2023-03-19T18:27:15.000Z","status":1,"totalPoints":78597,"rankingPoints":78597,"totalPass":9,"totalFc":2,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":278,"bracketLevel":368,"footswitchLevel":293,"jackLevel":168,"sideswitchLevel":290,"doublestepLevel":367,"staminaLevel":275,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Higgy","sex":"Male","profileImg":""},{"id":49,"membersId":172895,"dateAdded":"2023-03-18T21:49:06.000Z","lastUpdated":"2023-03-19T02:57:43.000Z","status":1,"totalPoints":77242,"rankingPoints":77242,"totalPass":19,"totalFc":17,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":698,"bracketLevel":286,"footswitchLevel":277,"jackLevel":298,"sideswitchLevel":135,"doublestepLevel":271,"staminaLevel":31,"isBuddy":false,"preferences":"{\"discordId\":\"Sekii#8008\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sekiirei","sex":"Female","profileImg":"https://i.gyazo.com/a0e21eb4239c5139544515656668c7c5.png"},{"id":148,"membersId":135061,"dateAdded":"2023-03-18T22:14:07.000Z","lastUpdated":"2023-03-19T01:55:53.000Z","status":1,"totalPoints":76834,"rankingPoints":76834,"totalPass":18,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":66,"bracketLevel":190,"footswitchLevel":126,"jackLevel":114,"sideswitchLevel":0,"doublestepLevel":42,"staminaLevel":759,"isBuddy":false,"preferences":"{\"discordId\":\"airplane#8871\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"airplane","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/749406224365387837/987950518754238505/195-00.png"},{"id":34,"membersId":62987,"dateAdded":"2023-03-18T21:48:58.000Z","lastUpdated":"2023-03-18T23:39:37.000Z","status":1,"totalPoints":73647,"rankingPoints":73647,"totalPass":1,"totalFc":3,"totalFec":5,"totalQuad":7,"totalQuint":0,"crossoverLevel":286,"bracketLevel":449,"footswitchLevel":343,"jackLevel":220,"sideswitchLevel":307,"doublestepLevel":435,"staminaLevel":85,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"iamsimo4life","sex":"Male","profileImg":"https://i.postimg.cc/wjfwxj6Q/iris-3.jpg"},{"id":36,"membersId":127813,"dateAdded":"2023-03-18T21:48:59.000Z","lastUpdated":"2023-03-19T04:05:22.000Z","status":1,"totalPoints":70850,"rankingPoints":70850,"totalPass":10,"totalFc":8,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":283,"bracketLevel":546,"footswitchLevel":486,"jackLevel":273,"sideswitchLevel":486,"doublestepLevel":192,"staminaLevel":115,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"RakkiiCB","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/924755977067171940/986492744136556554/Untitled-1.png"},{"id":53,"membersId":173267,"dateAdded":"2023-03-18T21:49:07.000Z","lastUpdated":"2023-03-19T02:02:33.000Z","status":1,"totalPoints":69984,"rankingPoints":69984,"totalPass":8,"totalFc":4,"totalFec":8,"totalQuad":0,"totalQuint":0,"crossoverLevel":317,"bracketLevel":327,"footswitchLevel":468,"jackLevel":515,"sideswitchLevel":115,"doublestepLevel":596,"staminaLevel":92,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"CERiNG","sex":"Unspecified","profileImg":"https://i.imgur.com/7XZZDsY.png"},{"id":185,"membersId":256,"dateAdded":"2023-03-18T22:49:44.000Z","lastUpdated":"2023-03-19T17:05:44.000Z","status":1,"totalPoints":69877,"rankingPoints":69877,"totalPass":12,"totalFc":6,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":406,"bracketLevel":173,"footswitchLevel":193,"jackLevel":206,"sideswitchLevel":82,"doublestepLevel":266,"staminaLevel":145,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DanPeriod","sex":"Male","profileImg":"https://i.ibb.co/2Sh9tbx/danderpborder.png"},{"id":6,"membersId":4362,"dateAdded":"2023-03-17T05:35:44.000Z","lastUpdated":"2023-03-19T18:26:15.000Z","status":1,"totalPoints":69363,"rankingPoints":69363,"totalPass":3,"totalFc":0,"totalFec":8,"totalQuad":7,"totalQuint":0,"crossoverLevel":428,"bracketLevel":315,"footswitchLevel":552,"jackLevel":79,"sideswitchLevel":69,"doublestepLevel":115,"staminaLevel":82,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"VKIM","sex":"Male","profileImg":""},{"id":37,"membersId":173251,"dateAdded":"2023-03-18T21:49:00.000Z","lastUpdated":"2023-03-19T03:48:05.000Z","status":1,"totalPoints":68401,"rankingPoints":68401,"totalPass":17,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":347,"bracketLevel":335,"footswitchLevel":519,"jackLevel":465,"sideswitchLevel":164,"doublestepLevel":421,"staminaLevel":145,"isBuddy":false,"preferences":"{\"discordId\":\"sorae#7138\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"sorae","sex":"Unspecified","profileImg":"https://i.imgur.com/cJEaR4t.png"},{"id":356,"membersId":173228,"dateAdded":"2023-03-19T15:33:53.000Z","lastUpdated":"2023-03-19T17:07:56.000Z","status":1,"totalPoints":68104,"rankingPoints":68104,"totalPass":15,"totalFc":8,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":456,"bracketLevel":213,"footswitchLevel":419,"jackLevel":315,"sideswitchLevel":208,"doublestepLevel":254,"staminaLevel":61,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"warriorddr","sex":"Male","profileImg":""},{"id":85,"membersId":174617,"dateAdded":"2023-03-18T21:50:59.000Z","lastUpdated":"2023-03-19T00:52:54.000Z","status":1,"totalPoints":68081,"rankingPoints":68081,"totalPass":9,"totalFc":9,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":427,"bracketLevel":147,"footswitchLevel":350,"jackLevel":252,"sideswitchLevel":245,"doublestepLevel":501,"staminaLevel":71,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ForkySpoon","sex":"Male","profileImg":""},{"id":371,"membersId":173145,"dateAdded":"2023-03-19T17:02:51.000Z","lastUpdated":"2023-03-19T18:34:58.000Z","status":1,"totalPoints":67169,"rankingPoints":67169,"totalPass":10,"totalFc":6,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":363,"bracketLevel":252,"footswitchLevel":250,"jackLevel":152,"sideswitchLevel":113,"doublestepLevel":461,"staminaLevel":102,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"miklowcic","sex":"Male","profileImg":"https://i.imgur.com/CXKK11f.jpg"},{"id":279,"membersId":75846,"dateAdded":"2023-03-19T02:46:25.000Z","lastUpdated":"2023-03-19T05:02:57.000Z","status":1,"totalPoints":66768,"rankingPoints":66768,"totalPass":13,"totalFc":16,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":448,"bracketLevel":62,"footswitchLevel":187,"jackLevel":143,"sideswitchLevel":0,"doublestepLevel":279,"staminaLevel":20,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Rarily","sex":"Female","profileImg":"https://img.pokemondb.net/sprites/home/shiny/1x/shaymin-land.png"},{"id":249,"membersId":173305,"dateAdded":"2023-03-19T01:12:08.000Z","lastUpdated":"2023-03-19T18:31:22.000Z","status":1,"totalPoints":66662,"rankingPoints":66662,"totalPass":10,"totalFc":4,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":267,"bracketLevel":189,"footswitchLevel":391,"jackLevel":194,"sideswitchLevel":390,"doublestepLevel":349,"staminaLevel":232,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Maxximus","sex":"Male","profileImg":"https://tinypic.host/images/2022/07/23/20220722_2041002.jpg"},{"id":54,"membersId":128890,"dateAdded":"2023-03-18T21:49:07.000Z","lastUpdated":"2023-03-19T01:17:48.000Z","status":1,"totalPoints":66283,"rankingPoints":66283,"totalPass":12,"totalFc":7,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":694,"bracketLevel":121,"footswitchLevel":332,"jackLevel":172,"sideswitchLevel":286,"doublestepLevel":667,"staminaLevel":30,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Coneja","sex":"Female","profileImg":"https://i.imgur.com/7OyrT96.png"},{"id":347,"membersId":134767,"dateAdded":"2023-03-19T13:30:42.000Z","lastUpdated":"2023-03-19T16:15:13.000Z","status":1,"totalPoints":66185,"rankingPoints":66185,"totalPass":21,"totalFc":21,"totalFec":6,"totalQuad":0,"totalQuint":0,"crossoverLevel":762,"bracketLevel":178,"footswitchLevel":273,"jackLevel":101,"sideswitchLevel":0,"doublestepLevel":512,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"NaoHikari","sex":"Male","profileImg":"https://i.imgur.com/vuu78zs.png"},{"id":21,"membersId":128047,"dateAdded":"2023-03-18T21:48:49.000Z","lastUpdated":"2023-03-19T01:55:22.000Z","status":1,"totalPoints":65535,"rankingPoints":65535,"totalPass":4,"totalFc":1,"totalFec":9,"totalQuad":1,"totalQuint":0,"crossoverLevel":431,"bracketLevel":508,"footswitchLevel":448,"jackLevel":415,"sideswitchLevel":194,"doublestepLevel":421,"staminaLevel":171,"isBuddy":false,"preferences":"{\"discordId\":\"tak#7483\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Talkion","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/598009719453384716/990351215835627560/tak200.png"},{"id":124,"membersId":128002,"dateAdded":"2023-03-18T21:59:44.000Z","lastUpdated":"2023-03-18T23:53:47.000Z","status":1,"totalPoints":64871,"rankingPoints":64871,"totalPass":1,"totalFc":8,"totalFec":8,"totalQuad":6,"totalQuint":0,"crossoverLevel":604,"bracketLevel":249,"footswitchLevel":259,"jackLevel":254,"sideswitchLevel":444,"doublestepLevel":425,"staminaLevel":70,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MoistBruh","sex":"Male","profileImg":"https://i.pinimg.com/originals/49/d6/ca/49d6caf0bd9760b8d709fe8193b413df.jpg"},{"id":73,"membersId":76562,"dateAdded":"2023-03-18T21:50:10.000Z","lastUpdated":"2023-03-19T15:58:28.000Z","status":1,"totalPoints":64457,"rankingPoints":64457,"totalPass":11,"totalFc":8,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":470,"bracketLevel":256,"footswitchLevel":272,"jackLevel":181,"sideswitchLevel":244,"doublestepLevel":401,"staminaLevel":99,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"robin_","sex":"Male","profileImg":""},{"id":125,"membersId":147886,"dateAdded":"2023-03-18T22:00:45.000Z","lastUpdated":"2023-03-19T00:54:39.000Z","status":1,"totalPoints":61870,"rankingPoints":61870,"totalPass":2,"totalFc":8,"totalFec":2,"totalQuad":1,"totalQuint":0,"crossoverLevel":238,"bracketLevel":248,"footswitchLevel":352,"jackLevel":323,"sideswitchLevel":256,"doublestepLevel":378,"staminaLevel":275,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Slowest","sex":"Unspecified","profileImg":""},{"id":61,"membersId":174010,"dateAdded":"2023-03-18T21:49:40.000Z","lastUpdated":"2023-03-19T12:45:12.000Z","status":1,"totalPoints":56943,"rankingPoints":56943,"totalPass":24,"totalFc":7,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":398,"bracketLevel":52,"footswitchLevel":207,"jackLevel":143,"sideswitchLevel":20,"doublestepLevel":257,"staminaLevel":60,"isBuddy":false,"preferences":"{\"discordId\":\"zibson#4140\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"zibson","sex":"Unspecified","profileImg":""},{"id":90,"membersId":66443,"dateAdded":"2023-03-18T21:51:24.000Z","lastUpdated":"2023-03-19T00:51:53.000Z","status":1,"totalPoints":54891,"rankingPoints":54891,"totalPass":6,"totalFc":3,"totalFec":13,"totalQuad":1,"totalQuint":0,"crossoverLevel":535,"bracketLevel":72,"footswitchLevel":312,"jackLevel":126,"sideswitchLevel":115,"doublestepLevel":561,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"limitin","sex":"Male","profileImg":""},{"id":246,"membersId":173137,"dateAdded":"2023-03-19T01:00:25.000Z","lastUpdated":"2023-03-19T10:12:00.000Z","status":1,"totalPoints":53813,"rankingPoints":53813,"totalPass":5,"totalFc":5,"totalFec":7,"totalQuad":0,"totalQuint":0,"crossoverLevel":489,"bracketLevel":241,"footswitchLevel":233,"jackLevel":271,"sideswitchLevel":22,"doublestepLevel":238,"staminaLevel":132,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Floms","sex":"Male","profileImg":""},{"id":330,"membersId":173319,"dateAdded":"2023-03-19T10:01:20.000Z","lastUpdated":"2023-03-19T17:49:06.000Z","status":1,"totalPoints":53490,"rankingPoints":53490,"totalPass":15,"totalFc":5,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":349,"bracketLevel":223,"footswitchLevel":392,"jackLevel":161,"sideswitchLevel":477,"doublestepLevel":111,"staminaLevel":52,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"D0omsday","sex":"Male","profileImg":""},{"id":113,"membersId":4819,"dateAdded":"2023-03-18T21:55:29.000Z","lastUpdated":"2023-03-19T13:18:03.000Z","status":1,"totalPoints":53357,"rankingPoints":53357,"totalPass":11,"totalFc":3,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":512,"bracketLevel":96,"footswitchLevel":349,"jackLevel":82,"sideswitchLevel":234,"doublestepLevel":188,"staminaLevel":71,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Renbrandt","sex":"Male","profileImg":"https://i.imgur.com/WPPQI0D.png"},{"id":247,"membersId":173037,"dateAdded":"2023-03-19T01:06:17.000Z","lastUpdated":"2023-03-19T04:22:59.000Z","status":1,"totalPoints":52991,"rankingPoints":52991,"totalPass":4,"totalFc":0,"totalFec":9,"totalQuad":5,"totalQuint":0,"crossoverLevel":296,"bracketLevel":458,"footswitchLevel":276,"jackLevel":138,"sideswitchLevel":60,"doublestepLevel":327,"staminaLevel":55,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Fanatik25","sex":"Male","profileImg":"https://cdn.discordapp.com/avatars/415354956346949632/2b58a95153add52b12d7cfa6ed6a565a.png"},{"id":355,"membersId":173142,"dateAdded":"2023-03-19T15:16:09.000Z","lastUpdated":"2023-03-19T16:19:13.000Z","status":1,"totalPoints":52933,"rankingPoints":52933,"totalPass":6,"totalFc":1,"totalFec":3,"totalQuad":1,"totalQuint":0,"crossoverLevel":181,"bracketLevel":235,"footswitchLevel":171,"jackLevel":44,"sideswitchLevel":44,"doublestepLevel":184,"staminaLevel":200,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Yung ButtCoin","sex":"Male","profileImg":""},{"id":97,"membersId":173118,"dateAdded":"2023-03-18T21:52:44.000Z","lastUpdated":"2023-03-19T18:21:52.000Z","status":1,"totalPoints":52754,"rankingPoints":52754,"totalPass":4,"totalFc":4,"totalFec":16,"totalQuad":0,"totalQuint":0,"crossoverLevel":499,"bracketLevel":198,"footswitchLevel":445,"jackLevel":39,"sideswitchLevel":123,"doublestepLevel":414,"staminaLevel":93,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"HellKiteChaos","sex":"Male","profileImg":"https://i.imgur.com/ebA93n3.png"},{"id":11,"membersId":173184,"dateAdded":"2023-03-18T21:48:30.000Z","lastUpdated":"2023-03-19T02:57:44.000Z","status":1,"totalPoints":51546,"rankingPoints":51546,"totalPass":30,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":358,"bracketLevel":100,"footswitchLevel":275,"jackLevel":100,"sideswitchLevel":61,"doublestepLevel":336,"staminaLevel":51,"isBuddy":false,"preferences":"{\"discordId\":\"Maybell Eigenhart (& co.) 🌻#4859\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Maybell Eigenhart","sex":"Female","profileImg":"https://i.imgur.com/uZKJzLL.png"},{"id":274,"membersId":142757,"dateAdded":"2023-03-19T02:31:13.000Z","lastUpdated":"2023-03-19T06:41:52.000Z","status":1,"totalPoints":47324,"rankingPoints":47324,"totalPass":18,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":134,"bracketLevel":221,"footswitchLevel":195,"jackLevel":125,"sideswitchLevel":112,"doublestepLevel":128,"staminaLevel":154,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Rudeshadow","sex":"Unspecified","profileImg":"https://cdn.discordapp.com/attachments/957781689067769917/957783160312193085/kronii_avatar.png"},{"id":158,"membersId":4290,"dateAdded":"2023-03-18T22:23:23.000Z","lastUpdated":"2023-03-19T17:05:03.000Z","status":1,"totalPoints":47290,"rankingPoints":47290,"totalPass":12,"totalFc":7,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":334,"bracketLevel":161,"footswitchLevel":202,"jackLevel":135,"sideswitchLevel":239,"doublestepLevel":148,"staminaLevel":53,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ROBIJO","sex":"Male","profileImg":""},{"id":86,"membersId":76988,"dateAdded":"2023-03-18T21:51:01.000Z","lastUpdated":"2023-03-19T18:36:49.000Z","status":1,"totalPoints":46389,"rankingPoints":46389,"totalPass":12,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":333,"bracketLevel":206,"footswitchLevel":259,"jackLevel":132,"sideswitchLevel":343,"doublestepLevel":267,"staminaLevel":76,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"1ug1a","sex":"Unspecified","profileImg":"https://media.discordapp.net/attachments/615272349335420968/850073257960931388/hm_icon_Custom_2.png"},{"id":150,"membersId":173105,"dateAdded":"2023-03-18T22:15:52.000Z","lastUpdated":"2023-03-19T04:57:18.000Z","status":1,"totalPoints":45876,"rankingPoints":45876,"totalPass":7,"totalFc":8,"totalFec":5,"totalQuad":0,"totalQuint":0,"crossoverLevel":296,"bracketLevel":139,"footswitchLevel":289,"jackLevel":220,"sideswitchLevel":152,"doublestepLevel":514,"staminaLevel":29,"isBuddy":false,"preferences":"{\"discordId\":\"Losermanwins#0088\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TheManwich","sex":"Male","profileImg":"https://i.imgur.com/yeHbdpC.png"},{"id":351,"membersId":173315,"dateAdded":"2023-03-19T14:23:32.000Z","lastUpdated":"2023-03-19T16:28:56.000Z","status":1,"totalPoints":44907,"rankingPoints":44907,"totalPass":18,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":268,"bracketLevel":425,"footswitchLevel":302,"jackLevel":147,"sideswitchLevel":104,"doublestepLevel":205,"staminaLevel":34,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"vintogigue","sex":"Unspecified","profileImg":""},{"id":294,"membersId":345,"dateAdded":"2023-03-19T03:45:05.000Z","lastUpdated":"2023-03-19T05:43:59.000Z","status":1,"totalPoints":43463,"rankingPoints":43463,"totalPass":6,"totalFc":2,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":236,"bracketLevel":166,"footswitchLevel":207,"jackLevel":87,"sideswitchLevel":61,"doublestepLevel":48,"staminaLevel":163,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kaze","sex":"Male","profileImg":""},{"id":248,"membersId":175368,"dateAdded":"2023-03-19T01:07:36.000Z","lastUpdated":"2023-03-19T04:02:39.000Z","status":1,"totalPoints":42739,"rankingPoints":42739,"totalPass":10,"totalFc":5,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":436,"bracketLevel":58,"footswitchLevel":128,"jackLevel":4,"sideswitchLevel":21,"doublestepLevel":212,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"KINDLADY","sex":"Unspecified","profileImg":"https://www.simpleimageresizer.com/_uploads/photos/af86e21c/IMG_3911_250x250.jpg"},{"id":257,"membersId":173285,"dateAdded":"2023-03-19T01:39:17.000Z","lastUpdated":"2023-03-19T03:58:21.000Z","status":1,"totalPoints":41330,"rankingPoints":41330,"totalPass":8,"totalFc":2,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":195,"bracketLevel":66,"footswitchLevel":92,"jackLevel":76,"sideswitchLevel":79,"doublestepLevel":172,"staminaLevel":85,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"pogjamie","sex":"Unspecified","profileImg":"https://i.imgur.com/Gc1UYNf.png"},{"id":156,"membersId":3761,"dateAdded":"2023-03-18T22:21:55.000Z","lastUpdated":"2023-03-18T23:35:24.000Z","status":1,"totalPoints":39077,"rankingPoints":39077,"totalPass":1,"totalFc":3,"totalFec":1,"totalQuad":3,"totalQuint":0,"crossoverLevel":185,"bracketLevel":349,"footswitchLevel":202,"jackLevel":57,"sideswitchLevel":0,"doublestepLevel":219,"staminaLevel":27,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"BBLON","sex":"Male","profileImg":"https://i.imgur.com/u3fOa37.png"},{"id":235,"membersId":174904,"dateAdded":"2023-03-19T00:43:20.000Z","lastUpdated":"2023-03-19T02:16:40.000Z","status":1,"totalPoints":38609,"rankingPoints":38609,"totalPass":9,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":226,"bracketLevel":113,"footswitchLevel":124,"jackLevel":136,"sideswitchLevel":87,"doublestepLevel":94,"staminaLevel":179,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Choden","sex":"Unspecified","profileImg":""},{"id":45,"membersId":175355,"dateAdded":"2023-03-18T21:49:02.000Z","lastUpdated":"2023-03-19T18:37:48.000Z","status":1,"totalPoints":36977,"rankingPoints":36977,"totalPass":11,"totalFc":8,"totalFec":12,"totalQuad":0,"totalQuint":0,"crossoverLevel":540,"bracketLevel":34,"footswitchLevel":153,"jackLevel":27,"sideswitchLevel":0,"doublestepLevel":237,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":\"RootReducer#5914\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"RootReducer","sex":"Male","profileImg":""},{"id":100,"membersId":175227,"dateAdded":"2023-03-18T21:53:20.000Z","lastUpdated":"2023-03-19T00:18:41.000Z","status":1,"totalPoints":36441,"rankingPoints":36441,"totalPass":8,"totalFc":7,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":177,"bracketLevel":89,"footswitchLevel":151,"jackLevel":48,"sideswitchLevel":0,"doublestepLevel":233,"staminaLevel":24,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"yoonjelly","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/940655461886206012/1082481090436022282/pfp_250x250.png"},{"id":77,"membersId":173043,"dateAdded":"2023-03-18T21:50:20.000Z","lastUpdated":"2023-03-19T18:33:25.000Z","status":1,"totalPoints":36247,"rankingPoints":36247,"totalPass":2,"totalFc":4,"totalFec":6,"totalQuad":1,"totalQuint":0,"crossoverLevel":275,"bracketLevel":118,"footswitchLevel":144,"jackLevel":147,"sideswitchLevel":83,"doublestepLevel":335,"staminaLevel":46,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"XjojoX99","sex":"Male","profileImg":""},{"id":259,"membersId":133783,"dateAdded":"2023-03-19T01:40:35.000Z","lastUpdated":"2023-03-19T18:03:31.000Z","status":1,"totalPoints":35127,"rankingPoints":35127,"totalPass":6,"totalFc":3,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":343,"bracketLevel":69,"footswitchLevel":180,"jackLevel":73,"sideswitchLevel":0,"doublestepLevel":100,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Viper","sex":"Female","profileImg":"https://i.imgur.com/riy3PxR.png"},{"id":365,"membersId":165752,"dateAdded":"2023-03-19T16:22:47.000Z","lastUpdated":"2023-03-19T18:34:02.000Z","status":1,"totalPoints":34235,"rankingPoints":34235,"totalPass":9,"totalFc":3,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":303,"bracketLevel":97,"footswitchLevel":173,"jackLevel":39,"sideswitchLevel":41,"doublestepLevel":184,"staminaLevel":15,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zui","sex":"Male","profileImg":"https://i.ibb.co/nwG0Yb1/aaegt.png"},{"id":214,"membersId":160185,"dateAdded":"2023-03-18T23:56:42.000Z","lastUpdated":"2023-03-19T01:05:50.000Z","status":1,"totalPoints":33327,"rankingPoints":33327,"totalPass":7,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":250,"bracketLevel":116,"footswitchLevel":87,"jackLevel":66,"sideswitchLevel":92,"doublestepLevel":222,"staminaLevel":22,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Nichard","sex":"Male","profileImg":""},{"id":83,"membersId":136928,"dateAdded":"2023-03-18T21:50:47.000Z","lastUpdated":"2023-03-18T23:00:48.000Z","status":1,"totalPoints":33245,"rankingPoints":33245,"totalPass":7,"totalFc":2,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":276,"bracketLevel":205,"footswitchLevel":184,"jackLevel":113,"sideswitchLevel":0,"doublestepLevel":331,"staminaLevel":53,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Daikyi","sex":"Male","profileImg":"https://puu.sh/J6z9c/a9edbb3013.png"},{"id":323,"membersId":1932,"dateAdded":"2023-03-19T07:13:42.000Z","lastUpdated":"2023-03-19T08:28:12.000Z","status":1,"totalPoints":32916,"rankingPoints":32916,"totalPass":13,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":134,"bracketLevel":63,"footswitchLevel":52,"jackLevel":36,"sideswitchLevel":0,"doublestepLevel":183,"staminaLevel":163,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"flip","sex":"Male","profileImg":"https://i.imgur.com/hNWIhQX.png"},{"id":2,"membersId":65671,"dateAdded":"2023-03-15T03:01:39.000Z","lastUpdated":"2023-03-19T03:17:02.000Z","status":1,"totalPoints":32227,"rankingPoints":32227,"totalPass":2,"totalFc":0,"totalFec":5,"totalQuad":1,"totalQuint":0,"crossoverLevel":182,"bracketLevel":120,"footswitchLevel":78,"jackLevel":5,"sideswitchLevel":0,"doublestepLevel":276,"staminaLevel":42,"isBuddy":false,"preferences":"{\"discordId\":\"Vincent#4923\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"VincentITG","sex":"Male","profileImg":"https://i.imgur.com/ijai2iI.png"},{"id":272,"membersId":173223,"dateAdded":"2023-03-19T02:28:47.000Z","lastUpdated":"2023-03-19T07:22:45.000Z","status":1,"totalPoints":31784,"rankingPoints":31784,"totalPass":10,"totalFc":0,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":310,"bracketLevel":70,"footswitchLevel":233,"jackLevel":45,"sideswitchLevel":0,"doublestepLevel":422,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Koso","sex":"Male","profileImg":"https://i.imgur.com/Vy3wGll.png"},{"id":118,"membersId":174634,"dateAdded":"2023-03-18T21:57:42.000Z","lastUpdated":"2023-03-18T23:24:41.000Z","status":1,"totalPoints":31379,"rankingPoints":31379,"totalPass":11,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":145,"bracketLevel":211,"footswitchLevel":235,"jackLevel":126,"sideswitchLevel":93,"doublestepLevel":293,"staminaLevel":12,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Sapphron","sex":"Male","profileImg":""},{"id":115,"membersId":62430,"dateAdded":"2023-03-18T21:56:35.000Z","lastUpdated":"2023-03-19T15:45:40.000Z","status":1,"totalPoints":30345,"rankingPoints":30345,"totalPass":4,"totalFc":2,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":115,"bracketLevel":201,"footswitchLevel":152,"jackLevel":75,"sideswitchLevel":46,"doublestepLevel":93,"staminaLevel":97,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"ManeMan08","sex":"Male","profileImg":"https://i.imgur.com/Gq7wyHQ.png"},{"id":170,"membersId":134773,"dateAdded":"2023-03-18T22:35:27.000Z","lastUpdated":"2023-03-19T04:14:36.000Z","status":1,"totalPoints":29848,"rankingPoints":29848,"totalPass":3,"totalFc":14,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":346,"bracketLevel":11,"footswitchLevel":156,"jackLevel":14,"sideswitchLevel":260,"doublestepLevel":90,"staminaLevel":61,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dlim","sex":"Male","profileImg":"https://i.imgur.com/JcxLonM.png"},{"id":101,"membersId":6314,"dateAdded":"2023-03-18T21:53:24.000Z","lastUpdated":"2023-03-19T02:46:59.000Z","status":1,"totalPoints":29660,"rankingPoints":29660,"totalPass":4,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":65,"bracketLevel":201,"footswitchLevel":250,"jackLevel":38,"sideswitchLevel":39,"doublestepLevel":88,"staminaLevel":53,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Franksoua","sex":"Male","profileImg":"https://media.discordapp.net/attachments/274289525314945024/857105532452077608/unknown.png"},{"id":144,"membersId":2380,"dateAdded":"2023-03-18T22:12:42.000Z","lastUpdated":"2023-03-19T00:50:28.000Z","status":1,"totalPoints":28371,"rankingPoints":28371,"totalPass":5,"totalFc":0,"totalFec":3,"totalQuad":3,"totalQuint":0,"crossoverLevel":158,"bracketLevel":250,"footswitchLevel":203,"jackLevel":105,"sideswitchLevel":0,"doublestepLevel":18,"staminaLevel":43,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PinkDad","sex":"Male","profileImg":"https://i.imgur.com/MP3H9bu.jpg"},{"id":67,"membersId":165906,"dateAdded":"2023-03-18T21:49:54.000Z","lastUpdated":"2023-03-19T15:09:10.000Z","status":1,"totalPoints":27932,"rankingPoints":27932,"totalPass":21,"totalFc":5,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":293,"bracketLevel":119,"footswitchLevel":127,"jackLevel":48,"sideswitchLevel":25,"doublestepLevel":146,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":\"joshhead#5985\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"joshhead","sex":"Unspecified","profileImg":""},{"id":359,"membersId":174873,"dateAdded":"2023-03-19T15:50:29.000Z","lastUpdated":"2023-03-19T17:00:43.000Z","status":1,"totalPoints":26735,"rankingPoints":26735,"totalPass":6,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":75,"bracketLevel":207,"footswitchLevel":275,"jackLevel":203,"sideswitchLevel":130,"doublestepLevel":171,"staminaLevel":43,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"undrscore","sex":"Male","profileImg":"https://i.imgur.com/EOG7g9B.png"},{"id":307,"membersId":174829,"dateAdded":"2023-03-19T04:58:16.000Z","lastUpdated":"2023-03-19T10:44:47.000Z","status":1,"totalPoints":26430,"rankingPoints":26430,"totalPass":6,"totalFc":5,"totalFec":10,"totalQuad":0,"totalQuint":0,"crossoverLevel":414,"bracketLevel":52,"footswitchLevel":153,"jackLevel":36,"sideswitchLevel":17,"doublestepLevel":49,"staminaLevel":16,"isBuddy":false,"preferences":"{\"discordId\":\"Oscar#9001\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"pogscar","sex":"Male","profileImg":""},{"id":146,"membersId":66627,"dateAdded":"2023-03-18T22:14:05.000Z","lastUpdated":"2023-03-19T18:36:49.000Z","status":1,"totalPoints":26054,"rankingPoints":26054,"totalPass":1,"totalFc":1,"totalFec":7,"totalQuad":12,"totalQuint":0,"crossoverLevel":499,"bracketLevel":12,"footswitchLevel":88,"jackLevel":34,"sideswitchLevel":0,"doublestepLevel":185,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Stardust","sex":"Male","profileImg":""},{"id":225,"membersId":66661,"dateAdded":"2023-03-19T00:24:59.000Z","lastUpdated":"2023-03-19T01:18:41.000Z","status":1,"totalPoints":25409,"rankingPoints":25409,"totalPass":4,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":56,"bracketLevel":139,"footswitchLevel":125,"jackLevel":14,"sideswitchLevel":201,"doublestepLevel":25,"staminaLevel":60,"isBuddy":false,"preferences":"{\"discordId\":\"Cairo'Nairo#0673\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"jeshusha1","sex":"Male","profileImg":"https://i.imgur.com/Jg5gtfR.png"},{"id":9,"membersId":173420,"dateAdded":"2023-03-18T21:48:27.000Z","lastUpdated":"2023-03-19T02:10:50.000Z","status":1,"totalPoints":23791,"rankingPoints":23791,"totalPass":10,"totalFc":27,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":398,"bracketLevel":24,"footswitchLevel":131,"jackLevel":19,"sideswitchLevel":0,"doublestepLevel":120,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"Martin#6291\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"slowunsteady","sex":"Unspecified","profileImg":"https://i.imgur.com/7VkeuP9.png"},{"id":157,"membersId":42011,"dateAdded":"2023-03-18T22:22:10.000Z","lastUpdated":"2023-03-19T17:34:07.000Z","status":1,"totalPoints":21798,"rankingPoints":21798,"totalPass":12,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":162,"bracketLevel":28,"footswitchLevel":139,"jackLevel":12,"sideswitchLevel":109,"doublestepLevel":79,"staminaLevel":26,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zlew","sex":"Male","profileImg":"https://i.imgur.com/THdpsEY.png"},{"id":283,"membersId":66610,"dateAdded":"2023-03-19T02:58:26.000Z","lastUpdated":"2023-03-19T03:45:41.000Z","status":1,"totalPoints":21201,"rankingPoints":21201,"totalPass":6,"totalFc":2,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":182,"bracketLevel":158,"footswitchLevel":83,"jackLevel":81,"sideswitchLevel":0,"doublestepLevel":31,"staminaLevel":6,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"FabSab44","sex":"Female","profileImg":"https://i.ibb.co/pJB1krQ/spike4-4.jpg"},{"id":321,"membersId":175218,"dateAdded":"2023-03-19T07:08:13.000Z","lastUpdated":"2023-03-19T18:37:18.000Z","status":1,"totalPoints":20966,"rankingPoints":20966,"totalPass":9,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":134,"bracketLevel":43,"footswitchLevel":47,"jackLevel":31,"sideswitchLevel":73,"doublestepLevel":125,"staminaLevel":34,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zivie87","sex":"Male","profileImg":""},{"id":285,"membersId":124527,"dateAdded":"2023-03-19T03:05:57.000Z","lastUpdated":"2023-03-19T16:51:30.000Z","status":1,"totalPoints":20738,"rankingPoints":20738,"totalPass":1,"totalFc":4,"totalFec":6,"totalQuad":6,"totalQuint":0,"crossoverLevel":471,"bracketLevel":12,"footswitchLevel":67,"jackLevel":35,"sideswitchLevel":0,"doublestepLevel":185,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Silver Fox","sex":"Male","profileImg":"https://i.imgur.com/qb0irJQ.png"},{"id":95,"membersId":175276,"dateAdded":"2023-03-18T21:52:31.000Z","lastUpdated":"2023-03-18T22:25:22.000Z","status":1,"totalPoints":19770,"rankingPoints":19770,"totalPass":2,"totalFc":1,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":89,"bracketLevel":1,"footswitchLevel":44,"jackLevel":15,"sideswitchLevel":0,"doublestepLevel":59,"staminaLevel":8,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"teekmn","sex":"Unspecified","profileImg":"https://cdn-live.warthunder.com/uploads/9c/ba20ec0674301f31323c1790d35c030fe45ab0/1415940983851.jpg"},{"id":309,"membersId":173298,"dateAdded":"2023-03-19T05:12:27.000Z","lastUpdated":"2023-03-19T06:00:09.000Z","status":1,"totalPoints":18827,"rankingPoints":18827,"totalPass":9,"totalFc":1,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":238,"bracketLevel":72,"footswitchLevel":112,"jackLevel":18,"sideswitchLevel":0,"doublestepLevel":141,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JuiKuen","sex":"Male","profileImg":""},{"id":299,"membersId":173861,"dateAdded":"2023-03-19T04:11:48.000Z","lastUpdated":"2023-03-19T05:52:30.000Z","status":1,"totalPoints":18796,"rankingPoints":18796,"totalPass":6,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":88,"bracketLevel":73,"footswitchLevel":165,"jackLevel":108,"sideswitchLevel":243,"doublestepLevel":90,"staminaLevel":55,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Hidden","sex":"Unspecified","profileImg":""},{"id":239,"membersId":127868,"dateAdded":"2023-03-19T00:45:46.000Z","lastUpdated":"2023-03-19T05:23:54.000Z","status":1,"totalPoints":18685,"rankingPoints":18685,"totalPass":7,"totalFc":7,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":317,"bracketLevel":10,"footswitchLevel":65,"jackLevel":14,"sideswitchLevel":0,"doublestepLevel":20,"staminaLevel":8,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"chroma","sex":"Female","profileImg":""},{"id":44,"membersId":173683,"dateAdded":"2023-03-18T21:49:02.000Z","lastUpdated":"2023-03-19T03:41:57.000Z","status":1,"totalPoints":18673,"rankingPoints":18673,"totalPass":8,"totalFc":6,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":342,"bracketLevel":27,"footswitchLevel":73,"jackLevel":36,"sideswitchLevel":78,"doublestepLevel":133,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"TakuMii","sex":"Male","profileImg":"https://avatars.akamai.steamstatic.com/24803bdf9d1ac613cc536d28d0e72d48101d63a7_full.jpg"},{"id":237,"membersId":165884,"dateAdded":"2023-03-19T00:45:18.000Z","lastUpdated":"2023-03-19T01:39:48.000Z","status":1,"totalPoints":18613,"rankingPoints":18613,"totalPass":4,"totalFc":0,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":130,"bracketLevel":99,"footswitchLevel":105,"jackLevel":33,"sideswitchLevel":44,"doublestepLevel":120,"staminaLevel":44,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Aldarole","sex":"Male","profileImg":"https://sportslogohistory.com/wp-content/uploads/2017/12/new_york_knicks_1947-1964.png"},{"id":317,"membersId":165605,"dateAdded":"2023-03-19T06:40:42.000Z","lastUpdated":"2023-03-19T09:45:51.000Z","status":1,"totalPoints":18600,"rankingPoints":18600,"totalPass":2,"totalFc":0,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":39,"bracketLevel":51,"footswitchLevel":150,"jackLevel":0,"sideswitchLevel":65,"doublestepLevel":85,"staminaLevel":10,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Freis","sex":"Male","profileImg":""},{"id":350,"membersId":130553,"dateAdded":"2023-03-19T14:13:28.000Z","lastUpdated":"2023-03-19T18:37:47.000Z","status":1,"totalPoints":17706,"rankingPoints":17706,"totalPass":3,"totalFc":4,"totalFec":9,"totalQuad":0,"totalQuint":0,"crossoverLevel":373,"bracketLevel":11,"footswitchLevel":56,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":119,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"NinjaNabi","sex":"Female","profileImg":"https://i.ibb.co/ykdXrTt/nabiderpwithborder.png"},{"id":22,"membersId":173546,"dateAdded":"2023-03-18T21:48:49.000Z","lastUpdated":"2023-03-19T11:15:32.000Z","status":1,"totalPoints":17027,"rankingPoints":17027,"totalPass":9,"totalFc":3,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":166,"bracketLevel":60,"footswitchLevel":153,"jackLevel":62,"sideswitchLevel":0,"doublestepLevel":182,"staminaLevel":20,"isBuddy":false,"preferences":"{\"discordId\":\"Piols#6625\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Piols","sex":"Male","profileImg":""},{"id":210,"membersId":127797,"dateAdded":"2023-03-18T23:45:55.000Z","lastUpdated":"2023-03-19T03:24:58.000Z","status":1,"totalPoints":16607,"rankingPoints":16607,"totalPass":4,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":50,"bracketLevel":76,"footswitchLevel":160,"jackLevel":29,"sideswitchLevel":16,"doublestepLevel":40,"staminaLevel":65,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dancingmaractus","sex":"Male","profileImg":"https://cdn.discordapp.com/attachments/704364807155089498/952378600886272020/maractus.png"},{"id":62,"membersId":165750,"dateAdded":"2023-03-18T21:49:46.000Z","lastUpdated":"2023-03-19T12:29:39.000Z","status":1,"totalPoints":14800,"rankingPoints":14800,"totalPass":12,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":134,"bracketLevel":15,"footswitchLevel":111,"jackLevel":13,"sideswitchLevel":0,"doublestepLevel":129,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Mayflower","sex":"Unspecified","profileImg":"https://mayf.pink/files/groove.jpg"},{"id":241,"membersId":172941,"dateAdded":"2023-03-19T00:49:32.000Z","lastUpdated":"2023-03-19T01:58:17.000Z","status":1,"totalPoints":14386,"rankingPoints":14386,"totalPass":5,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":97,"bracketLevel":86,"footswitchLevel":93,"jackLevel":6,"sideswitchLevel":27,"doublestepLevel":141,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Bag Man","sex":"Male","profileImg":"https://remywiki.com/images/thumb/d/d4/Bag.png/200px-Bag.png"},{"id":28,"membersId":77862,"dateAdded":"2023-03-18T21:48:54.000Z","lastUpdated":"2023-03-18T22:04:22.000Z","status":1,"totalPoints":14328,"rankingPoints":14328,"totalPass":2,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":11,"bracketLevel":193,"footswitchLevel":105,"jackLevel":92,"sideswitchLevel":0,"doublestepLevel":170,"staminaLevel":46,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JeffreyATW","sex":"Male","profileImg":"https://jeffreyatw.com/static/images/atw-tfti-250.png"},{"id":5,"membersId":173384,"dateAdded":"2023-03-16T21:50:13.000Z","lastUpdated":"2023-03-19T00:11:03.000Z","status":1,"totalPoints":13906,"rankingPoints":13906,"totalPass":0,"totalFc":2,"totalFec":1,"totalQuad":3,"totalQuint":0,"crossoverLevel":188,"bracketLevel":4,"footswitchLevel":22,"jackLevel":64,"sideswitchLevel":0,"doublestepLevel":53,"staminaLevel":3,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Hiten","sex":"Male","profileImg":"https://i.imgur.com/TRRmDiz.png"},{"id":96,"membersId":173453,"dateAdded":"2023-03-18T21:52:39.000Z","lastUpdated":"2023-03-19T18:37:53.000Z","status":1,"totalPoints":13796,"rankingPoints":13796,"totalPass":2,"totalFc":8,"totalFec":4,"totalQuad":0,"totalQuint":0,"crossoverLevel":348,"bracketLevel":12,"footswitchLevel":29,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":32,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Kikoia","sex":"Female","profileImg":"https://i.imgur.com/KCsbDb7.png"},{"id":180,"membersId":128724,"dateAdded":"2023-03-18T22:43:47.000Z","lastUpdated":"2023-03-19T00:25:28.000Z","status":1,"totalPoints":12932,"rankingPoints":12932,"totalPass":3,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":33,"bracketLevel":150,"footswitchLevel":73,"jackLevel":125,"sideswitchLevel":0,"doublestepLevel":11,"staminaLevel":35,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"LFK","sex":"Unspecified","profileImg":"https://i.imgur.com/mCnGAVc.png"},{"id":281,"membersId":175376,"dateAdded":"2023-03-19T02:50:59.000Z","lastUpdated":"2023-03-19T03:41:58.000Z","status":1,"totalPoints":12090,"rankingPoints":12090,"totalPass":9,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":219,"bracketLevel":9,"footswitchLevel":26,"jackLevel":16,"sideswitchLevel":0,"doublestepLevel":14,"staminaLevel":8,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"bxrru","sex":"Unspecified","profileImg":""},{"id":60,"membersId":173320,"dateAdded":"2023-03-18T21:49:36.000Z","lastUpdated":"2023-03-19T07:01:46.000Z","status":1,"totalPoints":11957,"rankingPoints":11957,"totalPass":1,"totalFc":2,"totalFec":4,"totalQuad":1,"totalQuint":0,"crossoverLevel":152,"bracketLevel":0,"footswitchLevel":17,"jackLevel":10,"sideswitchLevel":0,"doublestepLevel":209,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"L4viR","sex":"Male","profileImg":""},{"id":51,"membersId":4062,"dateAdded":"2023-03-18T21:49:07.000Z","lastUpdated":"2023-03-19T15:29:33.000Z","status":1,"totalPoints":11810,"rankingPoints":11810,"totalPass":2,"totalFc":0,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":77,"bracketLevel":16,"footswitchLevel":37,"jackLevel":212,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PkRynker","sex":"Male","profileImg":""},{"id":197,"membersId":165854,"dateAdded":"2023-03-18T23:08:53.000Z","lastUpdated":"2023-03-19T18:36:41.000Z","status":1,"totalPoints":11188,"rankingPoints":11188,"totalPass":11,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":202,"bracketLevel":6,"footswitchLevel":38,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":51,"staminaLevel":1,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Nazrininator","sex":"Male","profileImg":""},{"id":91,"membersId":173007,"dateAdded":"2023-03-18T21:51:29.000Z","lastUpdated":"2023-03-18T23:02:57.000Z","status":1,"totalPoints":11048,"rankingPoints":11048,"totalPass":0,"totalFc":0,"totalFec":6,"totalQuad":3,"totalQuint":0,"crossoverLevel":262,"bracketLevel":12,"footswitchLevel":38,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":84,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"kodensa#3582\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"kodensa","sex":"Female","profileImg":"https://cdn.discordapp.com/attachments/902652921890611254/1086771021857697812/a.jpg"},{"id":261,"membersId":175353,"dateAdded":"2023-03-19T01:45:09.000Z","lastUpdated":"2023-03-19T02:24:01.000Z","status":1,"totalPoints":10617,"rankingPoints":10617,"totalPass":16,"totalFc":2,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":178,"bracketLevel":0,"footswitchLevel":21,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":18,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"meecheezink","sex":"Female","profileImg":""},{"id":251,"membersId":175221,"dateAdded":"2023-03-19T01:23:20.000Z","lastUpdated":"2023-03-19T10:47:06.000Z","status":1,"totalPoints":9180,"rankingPoints":9180,"totalPass":16,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":192,"bracketLevel":5,"footswitchLevel":29,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":59,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"atticusgg","sex":"Unspecified","profileImg":""},{"id":75,"membersId":173399,"dateAdded":"2023-03-18T21:50:18.000Z","lastUpdated":"2023-03-19T00:35:46.000Z","status":1,"totalPoints":8950,"rankingPoints":8950,"totalPass":1,"totalFc":8,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":169,"bracketLevel":0,"footswitchLevel":23,"jackLevel":41,"sideswitchLevel":0,"doublestepLevel":67,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DJEmbrace","sex":"Unspecified","profileImg":""},{"id":195,"membersId":75729,"dateAdded":"2023-03-18T23:05:34.000Z","lastUpdated":"2023-03-19T16:26:45.000Z","status":1,"totalPoints":8917,"rankingPoints":8917,"totalPass":14,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":115,"bracketLevel":0,"footswitchLevel":29,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":54,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"help","sex":"Male","profileImg":"https://i.imgur.com/AKnOujq.jpg"},{"id":192,"membersId":127823,"dateAdded":"2023-03-18T23:02:21.000Z","lastUpdated":"2023-03-19T02:20:39.000Z","status":1,"totalPoints":8118,"rankingPoints":8118,"totalPass":3,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":82,"bracketLevel":2,"footswitchLevel":52,"jackLevel":26,"sideswitchLevel":0,"doublestepLevel":7,"staminaLevel":9,"isBuddy":false,"preferences":"{\"discordId\":\"Fresca#7450\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JONBUDDY","sex":"Male","profileImg":"https://i.imgur.com/7K4gyoz.png"},{"id":59,"membersId":173651,"dateAdded":"2023-03-18T21:49:33.000Z","lastUpdated":"2023-03-19T17:23:29.000Z","status":1,"totalPoints":7251,"rankingPoints":7251,"totalPass":5,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":26,"bracketLevel":0,"footswitchLevel":44,"jackLevel":41,"sideswitchLevel":0,"doublestepLevel":70,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Zydra","sex":"Female","profileImg":"https://cdn.discordapp.com/attachments/750387080932229212/977307823811747880/250250zy.png"},{"id":47,"membersId":174173,"dateAdded":"2023-03-18T21:49:03.000Z","lastUpdated":"2023-03-19T18:18:50.000Z","status":1,"totalPoints":6916,"rankingPoints":6916,"totalPass":10,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":35,"bracketLevel":0,"footswitchLevel":62,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lillyvideogames","sex":"Unspecified","profileImg":"https://cdn.discordapp.com/attachments/910836877647577109/1087038719334289550/aoko-pfp-smol.png"},{"id":168,"membersId":163585,"dateAdded":"2023-03-18T22:32:25.000Z","lastUpdated":"2023-03-19T00:30:19.000Z","status":1,"totalPoints":6879,"rankingPoints":6879,"totalPass":0,"totalFc":0,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":41,"bracketLevel":0,"footswitchLevel":97,"jackLevel":40,"sideswitchLevel":0,"doublestepLevel":39,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MegaSphere","sex":"Male","profileImg":"https://i.imgur.com/p34Ni8n.png"},{"id":322,"membersId":124751,"dateAdded":"2023-03-19T07:13:03.000Z","lastUpdated":"2023-03-19T08:56:43.000Z","status":1,"totalPoints":6077,"rankingPoints":6077,"totalPass":1,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":113,"bracketLevel":0,"footswitchLevel":15,"jackLevel":0,"sideswitchLevel":21,"doublestepLevel":35,"staminaLevel":13,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"dashark","sex":"Male","profileImg":"https://i.imgur.com/GDN5TxQ.jpg"},{"id":374,"membersId":174568,"dateAdded":"2023-03-19T17:22:09.000Z","lastUpdated":"2023-03-19T18:34:15.000Z","status":1,"totalPoints":5853,"rankingPoints":5853,"totalPass":1,"totalFc":0,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":84,"bracketLevel":0,"footswitchLevel":36,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":4,"staminaLevel":4,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"JellySlosh","sex":"Male","profileImg":""},{"id":134,"membersId":75805,"dateAdded":"2023-03-18T22:04:19.000Z","lastUpdated":"2023-03-19T18:36:02.000Z","status":1,"totalPoints":5701,"rankingPoints":5701,"totalPass":1,"totalFc":1,"totalFec":3,"totalQuad":0,"totalQuint":0,"crossoverLevel":170,"bracketLevel":11,"footswitchLevel":28,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Accioskullar","sex":"Male","profileImg":""},{"id":316,"membersId":175383,"dateAdded":"2023-03-19T06:19:29.000Z","lastUpdated":"2023-03-19T08:28:52.000Z","status":1,"totalPoints":5480,"rankingPoints":5480,"totalPass":7,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":105,"bracketLevel":12,"footswitchLevel":13,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":23,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DenryuRider","sex":"Male","profileImg":""},{"id":342,"membersId":175360,"dateAdded":"2023-03-19T12:13:12.000Z","lastUpdated":"2023-03-19T14:45:49.000Z","status":1,"totalPoints":5200,"rankingPoints":5200,"totalPass":7,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":20,"bracketLevel":0,"footswitchLevel":68,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":5,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Goode","sex":"Male","profileImg":""},{"id":184,"membersId":44806,"dateAdded":"2023-03-18T22:48:42.000Z","lastUpdated":"2023-03-19T18:37:38.000Z","status":1,"totalPoints":5132,"rankingPoints":5132,"totalPass":0,"totalFc":0,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":27,"bracketLevel":0,"footswitchLevel":13,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":191,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"Captain Carbon#0928\",\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Dick Kickem","sex":"Male","profileImg":"https://avatars.akamai.steamstatic.com/bdbbc5dce4f051d7c19cc0570416d82274777f43_full.jpg"},{"id":242,"membersId":7558,"dateAdded":"2023-03-19T00:50:18.000Z","lastUpdated":"2023-03-19T18:33:36.000Z","status":1,"totalPoints":5091,"rankingPoints":5091,"totalPass":0,"totalFc":4,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":88,"bracketLevel":0,"footswitchLevel":26,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":154,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"PanStyle","sex":"Male","profileImg":""},{"id":306,"membersId":175382,"dateAdded":"2023-03-19T04:43:52.000Z","lastUpdated":"2023-03-19T05:22:16.000Z","status":1,"totalPoints":4615,"rankingPoints":4615,"totalPass":2,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":32,"bracketLevel":0,"footswitchLevel":3,"jackLevel":31,"sideswitchLevel":0,"doublestepLevel":31,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"KATERINA","sex":"Female","profileImg":""},{"id":172,"membersId":173110,"dateAdded":"2023-03-18T22:35:55.000Z","lastUpdated":"2023-03-18T22:55:38.000Z","status":1,"totalPoints":4436,"rankingPoints":4436,"totalPass":0,"totalFc":0,"totalFec":0,"totalQuad":2,"totalQuint":0,"crossoverLevel":59,"bracketLevel":0,"footswitchLevel":4,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":26,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Shane_ITG_","sex":"Unspecified","profileImg":"https://i.imgur.com/px8JzPD.png"},{"id":244,"membersId":109985,"dateAdded":"2023-03-19T00:54:29.000Z","lastUpdated":"2023-03-19T18:04:39.000Z","status":1,"totalPoints":4423,"rankingPoints":4423,"totalPass":6,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":104,"bracketLevel":5,"footswitchLevel":14,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"soler98012","sex":"Unspecified","profileImg":""},{"id":104,"membersId":2600,"dateAdded":"2023-03-18T21:53:35.000Z","lastUpdated":"2023-03-18T22:13:23.000Z","status":1,"totalPoints":4342,"rankingPoints":4342,"totalPass":1,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":110,"bracketLevel":12,"footswitchLevel":55,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"DRON","sex":"Male","profileImg":"https://i.imgur.com/ezVfWhH.png"},{"id":280,"membersId":173125,"dateAdded":"2023-03-19T02:48:37.000Z","lastUpdated":"2023-03-19T04:00:12.000Z","status":1,"totalPoints":4033,"rankingPoints":4033,"totalPass":0,"totalFc":0,"totalFec":0,"totalQuad":3,"totalQuint":0,"crossoverLevel":122,"bracketLevel":12,"footswitchLevel":30,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"MajorOfMusic","sex":"Male","profileImg":""},{"id":369,"membersId":66714,"dateAdded":"2023-03-19T16:37:55.000Z","lastUpdated":"2023-03-19T17:17:42.000Z","status":1,"totalPoints":4019,"rankingPoints":4019,"totalPass":7,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":76,"bracketLevel":0,"footswitchLevel":6,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":41,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"lunal3blanc","sex":"Female","profileImg":""},{"id":318,"membersId":127775,"dateAdded":"2023-03-19T06:41:30.000Z","lastUpdated":"2023-03-19T08:14:17.000Z","status":1,"totalPoints":3772,"rankingPoints":3772,"totalPass":2,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":31,"bracketLevel":1,"footswitchLevel":0,"jackLevel":4,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nv","sex":"Male","profileImg":"https://i.imgur.com/4z5tNia.png"},{"id":245,"membersId":169204,"dateAdded":"2023-03-19T00:58:23.000Z","lastUpdated":"2023-03-19T04:01:43.000Z","status":1,"totalPoints":3226,"rankingPoints":3226,"totalPass":0,"totalFc":2,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":0,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"takatzu48","sex":"Male","profileImg":""},{"id":143,"membersId":66673,"dateAdded":"2023-03-18T22:10:43.000Z","lastUpdated":"2023-03-18T23:34:09.000Z","status":1,"totalPoints":3059,"rankingPoints":3059,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":9,"bracketLevel":0,"footswitchLevel":12,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":114,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":\"Chief Skittles#1789\",\"decentsEnabled\":true,\"wayOffsEnabled\":true}","name":"ChiefSkittles","sex":"Male","profileImg":"https://i.imgur.com/s5sMjf4.png"},{"id":377,"membersId":173589,"dateAdded":"2023-03-19T17:30:07.000Z","lastUpdated":"2023-03-19T18:32:53.000Z","status":1,"totalPoints":3037,"rankingPoints":3037,"totalPass":1,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":24,"bracketLevel":45,"footswitchLevel":11,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"bader","sex":"Male","profileImg":""},{"id":218,"membersId":165796,"dateAdded":"2023-03-19T00:11:42.000Z","lastUpdated":"2023-03-19T04:00:31.000Z","status":1,"totalPoints":2927,"rankingPoints":2927,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":14,"bracketLevel":0,"footswitchLevel":39,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":6,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Caji123","sex":"Male","profileImg":""},{"id":71,"membersId":173056,"dateAdded":"2023-03-18T21:50:00.000Z","lastUpdated":"2023-03-18T23:00:38.000Z","status":1,"totalPoints":2909,"rankingPoints":2909,"totalPass":4,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":80,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":67,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Braeden","sex":"Male","profileImg":""},{"id":224,"membersId":173438,"dateAdded":"2023-03-19T00:18:20.000Z","lastUpdated":"2023-03-19T01:26:31.000Z","status":1,"totalPoints":2599,"rankingPoints":2599,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":1,"totalQuint":0,"crossoverLevel":120,"bracketLevel":12,"footswitchLevel":29,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"nauebp","sex":"Male","profileImg":""},{"id":368,"membersId":175389,"dateAdded":"2023-03-19T16:33:48.000Z","lastUpdated":"2023-03-19T18:16:52.000Z","status":1,"totalPoints":2555,"rankingPoints":2555,"totalPass":0,"totalFc":0,"totalFec":2,"totalQuad":0,"totalQuint":0,"crossoverLevel":102,"bracketLevel":0,"footswitchLevel":8,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"patj","sex":"Male","profileImg":""},{"id":107,"membersId":165841,"dateAdded":"2023-03-18T21:54:25.000Z","lastUpdated":"2023-03-19T18:34:46.000Z","status":1,"totalPoints":2322,"rankingPoints":2322,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":0,"bracketLevel":0,"footswitchLevel":47,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":2,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"mangoafterdawn","sex":"Unspecified","profileImg":"https://cdn.discordapp.com/attachments/624856529568399372/850869659774484510/profile.png"},{"id":179,"membersId":175367,"dateAdded":"2023-03-18T22:41:58.000Z","lastUpdated":"2023-03-19T01:50:09.000Z","status":1,"totalPoints":2296,"rankingPoints":2296,"totalPass":2,"totalFc":1,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":48,"bracketLevel":0,"footswitchLevel":18,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Rufus","sex":"Male","profileImg":""},{"id":8,"membersId":167028,"dateAdded":"2023-03-18T21:48:25.000Z","lastUpdated":"2023-03-19T02:53:13.000Z","status":1,"totalPoints":1761,"rankingPoints":1761,"totalPass":2,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":81,"bracketLevel":8,"footswitchLevel":21,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"eightbitderp","sex":"Male","profileImg":"https://i.imgur.com/YAKidX4.png"},{"id":378,"membersId":175058,"dateAdded":"2023-03-19T17:30:42.000Z","lastUpdated":"2023-03-19T17:50:10.000Z","status":1,"totalPoints":1381,"rankingPoints":1381,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1,"bracketLevel":2,"footswitchLevel":6,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Nino","sex":"Male","profileImg":"https://i.ibb.co/bQHGCm5/Avatar.png"},{"id":386,"membersId":982,"dateAdded":"2023-03-19T17:50:20.000Z","lastUpdated":"2023-03-19T18:22:33.000Z","status":1,"totalPoints":1338,"rankingPoints":1338,"totalPass":0,"totalFc":0,"totalFec":0,"totalQuad":1,"totalQuint":0,"crossoverLevel":62,"bracketLevel":12,"footswitchLevel":25,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"andy457","sex":"Male","profileImg":""},{"id":133,"membersId":173658,"dateAdded":"2023-03-18T22:03:54.000Z","lastUpdated":"2023-03-18T22:14:23.000Z","status":1,"totalPoints":1332,"rankingPoints":1332,"totalPass":2,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":45,"bracketLevel":0,"footswitchLevel":2,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"false_parallax","sex":"Female","profileImg":""},{"id":84,"membersId":129655,"dateAdded":"2023-03-18T21:50:54.000Z","lastUpdated":"2023-03-19T18:34:37.000Z","status":1,"totalPoints":1254,"rankingPoints":1254,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":58,"bracketLevel":0,"footswitchLevel":4,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Hunter","sex":"Male","profileImg":"https://i.imgur.com/H2aLLZ3.png"},{"id":24,"membersId":163331,"dateAdded":"2023-03-18T21:48:52.000Z","lastUpdated":"2023-03-18T21:52:51.000Z","status":1,"totalPoints":1083,"rankingPoints":1083,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":6,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":74,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Azirixx","sex":"Male","profileImg":"https://i.ibb.co/pKqM0s4/azi-Cool-GS.png"},{"id":232,"membersId":2910,"dateAdded":"2023-03-19T00:35:39.000Z","lastUpdated":"2023-03-19T18:20:59.000Z","status":1,"totalPoints":1044,"rankingPoints":1044,"totalPass":0,"totalFc":0,"totalFec":1,"totalQuad":0,"totalQuint":0,"crossoverLevel":25,"bracketLevel":0,"footswitchLevel":0,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Vagabond","sex":"Male","profileImg":"https://www.personality-database.com/profile_images/152769.png"},{"id":74,"membersId":173087,"dateAdded":"2023-03-18T21:50:14.000Z","lastUpdated":"2023-03-18T23:03:11.000Z","status":1,"totalPoints":959,"rankingPoints":959,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":44,"bracketLevel":8,"footswitchLevel":18,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Gr00txD","sex":"Male","profileImg":"https://pbs.twimg.com/profile_images/1026379676476956672/rxMbgeMF_400x400.jpg"},{"id":131,"membersId":173502,"dateAdded":"2023-03-18T22:03:14.000Z","lastUpdated":"2023-03-19T01:03:02.000Z","status":1,"totalPoints":890,"rankingPoints":890,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":41,"bracketLevel":0,"footswitchLevel":3,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Salsa","sex":"Female","profileImg":""},{"id":264,"membersId":175371,"dateAdded":"2023-03-19T01:47:19.000Z","lastUpdated":"2023-03-19T01:50:10.000Z","status":1,"totalPoints":587,"rankingPoints":587,"totalPass":1,"totalFc":0,"totalFec":0,"totalQuad":0,"totalQuint":0,"crossoverLevel":1,"bracketLevel":0,"footswitchLevel":10,"jackLevel":0,"sideswitchLevel":0,"doublestepLevel":0,"staminaLevel":0,"isBuddy":false,"preferences":"{\"discordId\":null,\"decentsEnabled\":false,\"wayOffsEnabled\":false}","name":"Cool Brick","sex":"Male","profileImg":""}],"rivalMembersIds":[]}}
\ No newline at end of file
diff --git a/server/node_modules/assert-options/README.md b/server/node_modules/assert-options/README.md
new file mode 100644
index 0000000..6319c39
--- /dev/null
+++ b/server/node_modules/assert-options/README.md
@@ -0,0 +1,72 @@
+# assert-options
+
+Smart `options` handling, with one line of code:
+
+* throw detailed error on invalid options
+* set default values for missing options
+
+Strongly-typed, built with TypeScript 4.x `strict` mode, for JavaScript clients.
+
+[![Build Status](https://travis-ci.org/vitaly-t/assert-options.svg?branch=master)](https://travis-ci.org/vitaly-t/assert-options)
+[![Coverage Status](https://coveralls.io/repos/vitaly-t/assert-options/badge.svg?branch=master)](https://coveralls.io/r/vitaly-t/assert-options?branch=master)
+
+## Rationale
+
+* Passing in invalid or misspelled option names is one of the most common errors in JavaScript.
+* Assigning defaults is the most common operation for methods that take options.
+
+This module automates proper options handling - parsing and setting defaults where needed.
+
+Although this library is implemented in TypeScript, its objective is mainly to help JavaScript clients,
+because TypeScript itself can handle invalid options and defaults natively.
+
+## Installation
+
+```
+$ npm i assert-options
+```
+
+## Usage
+
+```js
+const { assertOptions } = require('assert-options');
+
+function functionWithOptions(options) {
+ options = assertOptions(options, {first: 123, second: null});
+
+ // options is a safe object here, with all missing defaults set.
+}
+```
+
+When default values are not needed, you can just use an array of strings:
+
+```js
+function functionWithOptions(options) {
+ options = assertOptions(options, ['first', 'second']);
+
+ // the result is exactly the same as using the following:
+ // options = assertOptions(options, {first: undefined, second: undefined});
+
+ // options is a safe object here, without defaults.
+}
+```
+
+## API
+
+### `assertOptions(options, defaults) => {}`
+
+* When `options` is `null`/`undefined`, new `{}` is returned, applying `defaults` as specified.
+
+* When `options` contains an unknown property, [Error] `Option "name" is not recognized.` is thrown.
+
+* When a property in `options` is missing or `undefined`, its value is set from the `defaults`,
+provided it is available and its value is not `undefined`.
+
+* When `options` is not `null`/`undefined`, it must be of type `object`, or else [TypeError] is thrown:
+`Invalid "options" parameter: value`.
+
+* Parameter `defaults` is required, as a non-`null` object or an array of strings, or else [TypeError]
+is thrown: `Invalid "defaults" parameter: value`.
+
+[Error]:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error
+[TypeError]:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError
diff --git a/server/node_modules/assert-options/dist/index.js b/server/node_modules/assert-options/dist/index.js
new file mode 100644
index 0000000..d34ab88
--- /dev/null
+++ b/server/node_modules/assert-options/dist/index.js
@@ -0,0 +1,33 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+function assertOptions(options, defaults) {
+ if (options !== null && options !== undefined && typeof options !== 'object') {
+ throw new TypeError('Invalid "options" parameter: ' + JSON.stringify(options));
+ }
+ var isArray = Array.isArray(defaults);
+ if (!isArray && (!defaults || typeof defaults !== 'object')) {
+ throw new TypeError('Invalid "defaults" parameter: ' + JSON.stringify(defaults));
+ }
+ if (options) {
+ for (var _i = 0, _a = Object.keys(options); _i < _a.length; _i++) {
+ var a = _a[_i];
+ if ((isArray && defaults.indexOf(a) === -1) || (!isArray && !(a in defaults))) {
+ throw new Error('Option "' + a + '" is not recognized.');
+ }
+ }
+ }
+ else {
+ options = {};
+ }
+ if (!isArray) {
+ var defs = defaults;
+ for (var _b = 0, _c = Object.keys(defs); _b < _c.length; _b++) {
+ var d = _c[_b];
+ if (options[d] === undefined && defs[d] !== undefined) {
+ options[d] = defs[d];
+ }
+ }
+ }
+ return options;
+}
+exports.assertOptions = assertOptions;
diff --git a/server/node_modules/assert-options/dist/src/index.d.ts b/server/node_modules/assert-options/dist/src/index.d.ts
new file mode 100644
index 0000000..d50965c
--- /dev/null
+++ b/server/node_modules/assert-options/dist/src/index.d.ts
@@ -0,0 +1,4 @@
+export declare type NamedValues = {
+ [name: string]: any;
+};
+export declare function assertOptions(options: NamedValues | null | undefined, defaults: NamedValues | string[]): NamedValues;
diff --git a/server/node_modules/assert-options/dist/src/index.js b/server/node_modules/assert-options/dist/src/index.js
new file mode 100644
index 0000000..41d28cd
--- /dev/null
+++ b/server/node_modules/assert-options/dist/src/index.js
@@ -0,0 +1,34 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.assertOptions = void 0;
+function assertOptions(options, defaults) {
+ if (options !== null && options !== undefined && typeof options !== 'object') {
+ throw new TypeError('Invalid "options" parameter: ' + JSON.stringify(options));
+ }
+ var isArray = Array.isArray(defaults);
+ if (!isArray && (!defaults || typeof defaults !== 'object')) {
+ throw new TypeError('Invalid "defaults" parameter: ' + JSON.stringify(defaults));
+ }
+ if (options) {
+ for (var _i = 0, _a = Object.keys(options); _i < _a.length; _i++) {
+ var a = _a[_i];
+ if ((isArray && defaults.indexOf(a) === -1) || (!isArray && !(a in defaults))) {
+ throw new Error('Option "' + a + '" is not recognized.');
+ }
+ }
+ }
+ else {
+ options = {};
+ }
+ if (!isArray) {
+ var defs = defaults;
+ for (var _b = 0, _c = Object.keys(defs); _b < _c.length; _b++) {
+ var d = _c[_b];
+ if (options[d] === undefined && defs[d] !== undefined) {
+ options[d] = defs[d];
+ }
+ }
+ }
+ return options;
+}
+exports.assertOptions = assertOptions;
diff --git a/server/node_modules/assert-options/package.json b/server/node_modules/assert-options/package.json
new file mode 100644
index 0000000..f1dd11d
--- /dev/null
+++ b/server/node_modules/assert-options/package.json
@@ -0,0 +1,76 @@
+{
+ "_from": "assert-options@0.7.0",
+ "_id": "assert-options@0.7.0",
+ "_inBundle": false,
+ "_integrity": "sha512-7q9uNH/Dh8gFgpIIb9ja8PJEWA5AQy3xnBC8jtKs8K/gNVCr1K6kIvlm59HUyYgvM7oEDoLzGgPcGd9FqhtXEQ==",
+ "_location": "/assert-options",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "assert-options@0.7.0",
+ "name": "assert-options",
+ "escapedName": "assert-options",
+ "rawSpec": "0.7.0",
+ "saveSpec": null,
+ "fetchSpec": "0.7.0"
+ },
+ "_requiredBy": [
+ "/pg-promise"
+ ],
+ "_resolved": "https://registry.npmjs.org/assert-options/-/assert-options-0.7.0.tgz",
+ "_shasum": "82c27618d9c0baa5e9da8ef607ee261a44ed6e5e",
+ "_spec": "assert-options@0.7.0",
+ "_where": "/home/sigonasr2/divar/server/node_modules/pg-promise",
+ "author": {
+ "name": "Vitaly Tomilov",
+ "email": "vitaly.tomilov@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/vitaly-t/assert-options/issues",
+ "email": "vitaly.tomilov@gmail.com"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Generic options parameter handling.",
+ "devDependencies": {
+ "@types/chai": "4.2.14",
+ "@types/mocha": "8.2.0",
+ "@types/node": "14.14.14",
+ "chai": "4.2.0",
+ "coveralls": "3.1.0",
+ "mocha": "8.2.1",
+ "mocha-lcov-reporter": "1.3.0",
+ "nyc": "15.1.0",
+ "ts-node": "9.1.1",
+ "tslint": "6.1.3",
+ "typescript": "4.1.3"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ },
+ "files": [
+ "dist/src",
+ "dist/index.js"
+ ],
+ "homepage": "https://github.com/vitaly-t/assert-options",
+ "keywords": [
+ "assert",
+ "options"
+ ],
+ "license": "MIT",
+ "main": "dist/src/index.js",
+ "name": "assert-options",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/vitaly-t/assert-options.git"
+ },
+ "scripts": {
+ "all": "tsc && npm test && npm run lint",
+ "lint": "tslint --fix ./src/**/*.ts ./test/**/*.ts",
+ "test": "nyc mocha -r ts-node/register test/**/*.spec.ts",
+ "travis": "nyc npm test && nyc report --reporter=text-lcov | coveralls"
+ },
+ "types": "dist/src/index.d.ts",
+ "version": "0.7.0"
+}
diff --git a/server/node_modules/axios/CHANGELOG.md b/server/node_modules/axios/CHANGELOG.md
old mode 100755
new mode 100644
index 4affca5..6f11ac1
--- a/server/node_modules/axios/CHANGELOG.md
+++ b/server/node_modules/axios/CHANGELOG.md
@@ -1,5 +1,277 @@
# Changelog
+### 0.21.1 (December 21, 2020)
+
+Fixes and Functionality:
+
+- Hotfix: Prevent SSRF (#3410)
+- Protocol not parsed when setting proxy config from env vars (#3070)
+- Updating axios in types to be lower case (#2797)
+- Adding a type guard for `AxiosError` (#2949)
+
+Internal and Tests:
+
+- Remove the skipping of the `socket` http test (#3364)
+- Use different socket for Win32 test (#3375)
+
+Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
+
+- Daniel Lopretto
+- Jason Kwok
+- Jay
+- Jonathan Foster
+- Remco Haszing
+- Xianming Zhong
+
+### 0.21.0 (October 23, 2020)
+
+Fixes and Functionality:
+
+- Fixing requestHeaders.Authorization ([#3287](https://github.com/axios/axios/pull/3287))
+- Fixing node types ([#3237](https://github.com/axios/axios/pull/3237))
+- Fixing axios.delete ignores config.data ([#3282](https://github.com/axios/axios/pull/3282))
+- Revert "Fixing overwrite Blob/File type as Content-Type in browser. (#1773)" ([#3289](https://github.com/axios/axios/pull/3289))
+- Fixing an issue that type 'null' and 'undefined' is not assignable to validateStatus when typescript strict option is enabled ([#3200](https://github.com/axios/axios/pull/3200))
+
+Internal and Tests:
+
+- Lock travis to not use node v15 ([#3361](https://github.com/axios/axios/pull/3361))
+
+Documentation:
+
+- Fixing simple typo, existant -> existent ([#3252](https://github.com/axios/axios/pull/3252))
+- Fixing typos ([#3309](https://github.com/axios/axios/pull/3309))
+
+Huge thanks to everyone who contributed to this release via code (authors listed below) or via reviews and triaging on GitHub:
+
+- Allan Cruz <57270969+Allanbcruz@users.noreply.github.com>
+- George Cheng
+- Jay
+- Kevin Kirsche
+- Remco Haszing
+- Taemin Shin
+- Tim Gates
+- Xianming Zhong
+
+### 0.20.0 (August 20, 2020)
+
+Release of 0.20.0-pre as a full release with no other changes.
+
+### 0.20.0-pre (July 15, 2020)
+
+Fixes and Functionality:
+
+- Fixing response with utf-8 BOM can not parse to json ([#2419](https://github.com/axios/axios/pull/2419))
+ - fix: remove byte order marker (UTF-8 BOM) when transform response
+ - fix: remove BOM only utf-8
+ - test: utf-8 BOM
+ - fix: incorrect param name
+- Refactor mergeConfig without utils.deepMerge ([#2844](https://github.com/axios/axios/pull/2844))
+ - Adding failing test
+ - Fixing #2587 default custom config persisting
+ - Adding Concat keys and filter duplicates
+ - Fixed value from CPE
+ - update for review feedbacks
+ - no deepMerge
+ - only merge between plain objects
+ - fix rename
+ - always merge config by mergeConfig
+ - extract function mergeDeepProperties
+ - refactor mergeConfig with all keys, and add special logic for validateStatus
+ - add test for resetting headers
+ - add lots of tests and fix a bug
+ - should not inherit `data`
+ - use simple toString
+- Fixing overwrite Blob/File type as Content-Type in browser. ([#1773](https://github.com/axios/axios/pull/1773))
+- Fixing an issue that type 'null' is not assignable to validateStatus ([#2773](https://github.com/axios/axios/pull/2773))
+- Fixing special char encoding ([#1671](https://github.com/axios/axios/pull/1671))
+ - removing @ character from replacement list since it is a reserved character
+ - Updating buildURL test to not include the @ character
+ - Removing console logs
+- Fixing password encoding with special characters in basic authentication ([#1492](https://github.com/axios/axios/pull/1492))
+ - Fixing password encoding with special characters in basic authentication
+ - Adding test to check if password with non-Latin1 characters pass
+- Fixing 'Network Error' in react native android ([#1487](https://github.com/axios/axios/pull/1487))
+ There is a bug in react native Android platform when using get method. It will trigger a 'Network Error' when passing the requestData which is an empty string to request.send function. So if the requestData is an empty string we can set it to null as well to fix the bug.
+- Fixing Cookie Helper with Asyc Components ([#1105](https://github.com/axios/axios/pull/1105)) ([#1107](https://github.com/axios/axios/pull/1107))
+- Fixing 'progressEvent' type ([#2851](https://github.com/axios/axios/pull/2851))
+ - Fix 'progressEvent' type
+ - Update axios.ts
+- Fixing getting local files (file://) failed ([#2470](https://github.com/axios/axios/pull/2470))
+ - fix issue #2416, #2396
+ - fix Eslint warn
+ - Modify judgment conditions
+ - add unit test
+ - update unit test
+ - update unit test
+- Allow PURGE method in typings ([#2191](https://github.com/axios/axios/pull/2191))
+- Adding option to disable automatic decompression ([#2661](https://github.com/axios/axios/pull/2661))
+ - Adding ability to disable auto decompression
+ - Updating decompress documentation in README
+ - Fixing test\unit\adapters\http.js lint errors
+ - Adding test for disabling auto decompression
+ - Removing changes that fixed lint errors in tests
+ - Removing formatting change to unit test
+- Add independent `maxBodyLength` option ([#2781](https://github.com/axios/axios/pull/2781))
+ - Add independent option to set the maximum size of the request body
+ - Remove maxBodyLength check
+ - Update README
+ - Assert for error code and message
+- Adding responseEncoding to mergeConfig ([#1745](https://github.com/axios/axios/pull/1745))
+- Compatible with follow-redirect aborts the request ([#2689](https://github.com/axios/axios/pull/2689))
+ - Compatible with follow-redirect aborts the request
+ - Use the error code
+- Fix merging of params ([#2656](https://github.com/axios/axios/pull/2656))
+ - Name function to avoid ESLint func-names warning
+ - Switch params config to merge list and update tests
+ - Restore testing of both false and null
+ - Restore test cases for keys without defaults
+ - Include test for non-object values that aren't false-y.
+- Revert `finally` as `then` ([#2683](https://github.com/axios/axios/pull/2683))
+
+Internal and Tests:
+
+- Fix stale bot config ([#3049](https://github.com/axios/axios/pull/3049))
+ - fix stale bot config
+ - fix multiple lines
+- Add days and change name to work ([#3035](https://github.com/axios/axios/pull/3035))
+- Update close-issues.yml ([#3031](https://github.com/axios/axios/pull/3031))
+ - Update close-issues.yml
+ Update close message to read better 😄
+ - Fix use of quotations
+ Use single quotes as per other .yml files
+ - Remove user name form message
+- Add GitHub actions to close stale issues/prs ([#3029](https://github.com/axios/axios/pull/3029))
+ - prepare stale actions
+ - update messages
+ - Add exempt labels and lighten up comments
+- Add GitHub actions to close invalid issues ([#3022](https://github.com/axios/axios/pull/3022))
+ - add close actions
+ - fix with checkout
+ - update issue templates
+ - add reminder
+ - update close message
+- Add test with Node.js 12 ([#2860](https://github.com/axios/axios/pull/2860))
+ - test with Node.js 12
+ - test with latest
+- Adding console log on sandbox server startup ([#2210](https://github.com/axios/axios/pull/2210))
+ - Adding console log on sandbox server startup
+ - Update server.js
+ Add server error handling
+ - Update server.js
+ Better error message, remove retry.
+- Adding tests for method `options` type definitions ([#1996](https://github.com/axios/axios/pull/1996))
+ Update tests.
+- Add test for redirecting with too large response ([#2695](https://github.com/axios/axios/pull/2695))
+- Fixing unit test failure in Windows OS ([#2601](https://github.com/axios/axios/pull/2601))
+- Fixing issue for HEAD method and gzipped response ([#2666](https://github.com/axios/axios/pull/2666))
+- Fix tests in browsers ([#2748](https://github.com/axios/axios/pull/2748))
+- chore: add `jsdelivr` and `unpkg` support ([#2443](https://github.com/axios/axios/pull/2443))
+
+Documentation:
+
+- Adding support for URLSearchParams in node ([#1900](https://github.com/axios/axios/pull/1900))
+ - Adding support for URLSearchParams in node
+ - Remove un-needed code
+ - Update utils.js
+ - Make changes as suggested
+- Adding table of content (preview) ([#3050](https://github.com/axios/axios/pull/3050))
+ - add toc (preview)
+ - remove toc in toc
+ Signed-off-by: Moni
+ - fix sublinks
+ - fix indentation
+ - remove redundant table links
+ - update caps and indent
+ - remove axios
+- Replace 'blacklist' with 'blocklist' ([#3006](https://github.com/axios/axios/pull/3006))
+- docs(): Detailed config options environment. ([#2088](https://github.com/axios/axios/pull/2088))
+ - docs(): Detailed config options environment.
+ - Update README.md
+- Include axios-data-unpacker in ECOSYSTEM.md ([#2080](https://github.com/axios/axios/pull/2080))
+- Allow opening examples in Gitpod ([#1958](https://github.com/axios/axios/pull/1958))
+- Remove axios.all() and axios.spread() from Readme.md ([#2727](https://github.com/axios/axios/pull/2727))
+ - remove axios.all(), axios.spread()
+ - replace example
+ - axios.all() -> Promise.all()
+ - axios.spread(function (acct, perms)) -> function (acct, perms)
+ - add deprecated mark
+- Update README.md ([#2887](https://github.com/axios/axios/pull/2887))
+ Small change to the data attribute doc of the config. A request body can also be set for DELETE methods but this wasn't mentioned in the documentation (it only mentioned POST, PUT and PATCH). Took my some 10-20 minutes until I realized that I don't need to manipulate the request body with transformRequest in the case of DELETE.
+- Include swagger-taxos-codegen in ECOSYSTEM.md ([#2162](https://github.com/axios/axios/pull/2162))
+- Add CDNJS version badge in README.md ([#878](https://github.com/axios/axios/pull/878))
+ This badge will show the version on CDNJS!
+- Documentation update to clear up ambiguity in code examples ([#2928](https://github.com/axios/axios/pull/2928))
+ - Made an adjustment to the documentation to clear up any ambiguity around the use of "fs". This should help clear up that the code examples with "fs" cannot be used on the client side.
+- Update README.md about validateStatus ([#2912](https://github.com/axios/axios/pull/2912))
+ Rewrote the comment from "Reject only if the status code is greater than or equal to 500" to "Resolve only if the status code is less than 500"
+- Updating documentation for usage form-data ([#2805](https://github.com/axios/axios/pull/2805))
+ Closes #2049
+- Fixing CHANGELOG.md issue link ([#2784](https://github.com/axios/axios/pull/2784))
+- Include axios-hooks in ECOSYSTEM.md ([#2003](https://github.com/axios/axios/pull/2003))
+- Added Response header access instructions ([#1901](https://github.com/axios/axios/pull/1901))
+ - Added Response header access instructions
+ - Added note about using bracket notation
+- Add `onUploadProgress` and `onDownloadProgress` are browser only ([#2763](https://github.com/axios/axios/pull/2763))
+ Saw in #928 and #1966 that `onUploadProgress` and `onDownloadProgress` only work in the browser and was missing that from the README.
+- Update ' sign to ` in proxy spec ([#2778](https://github.com/axios/axios/pull/2778))
+- Adding jsDelivr link in README ([#1110](https://github.com/axios/axios/pull/1110))
+ - Adding jsDelivr link
+ - Add SRI
+ - Remove SRI
+
+Huge thanks to everyone who contributed to this release via code (authors listed
+below) or via reviews and triaging on GitHub:
+
+- Alan Wang
+- Alexandru Ungureanu
+- Anubhav Srivastava
+- Benny Neugebauer
+- Cr <631807682@qq.com>
+- David
+- David Ko
+- David Tanner
+- Emily Morehouse
+- Felipe Martins
+- Fonger <5862369+Fonger@users.noreply.github.com>
+- Frostack
+- George Cheng
+- grumblerchester
+- Gustavo López
+- hexaez <45806662+hexaez@users.noreply.github.com>
+- huangzuizui
+- Ian Wijma
+- Jay
+- jeffjing
+- jennynju <46782518+jennynju@users.noreply.github.com>
+- Jimmy Liao <52391190+jimmy-liao-gogoro@users.noreply.github.com>
+- Jonathan Sharpe
+- JounQin
+- Justin Beckwith
+- Kamil Posiadała <3dcreator.pl@gmail.com>
+- Lukas Drgon
+- marcinx
+- Martti Laine
+- Michał Zarach
+- Moni
+- Motonori Iwata <121048+iwata@users.noreply.github.com>
+- Nikita Galkin
+- Petr Mares
+- Philippe Recto
+- Remco Haszing
+- rockcs1992
+- Ryan Bown
+- Samina Fu
+- Simone Busoli
+- Spencer von der Ohe
+- Sven Efftinge
+- Taegyeoung Oh
+- Taemin Shin
+- Thibault Ehrhart <1208424+ehrhart@users.noreply.github.com>
+- Xianming Zhong
+- Yasu Flores
+- Zac Delventhal
+
### 0.19.2 (Jan 20, 2020)
- Remove unnecessary XSS check ([#2679](https://github.com/axios/axios/pull/2679)) (see ([#2646](https://github.com/axios/axios/issues/2646)) for discussion)
@@ -25,7 +297,7 @@ Fixes and Functionality:
- Add error toJSON example ([#2466](https://github.com/axios/axios/pull/2466))
- Fixing Vulnerability A Fortify Scan finds a critical Cross-Site Scrip… ([#2451](https://github.com/axios/axios/pull/2451))
- Fixing subdomain handling on no_proxy ([#2442](https://github.com/axios/axios/pull/2442))
-- Make redirection from HTTP to HTTPS work ([#2426](https://github.com/axios/axios/pull/2426] and ([#2547](https://github.com/axios/axios/pull/2547))
+- Make redirection from HTTP to HTTPS work ([#2426](https://github.com/axios/axios/pull/2426)) and ([#2547](https://github.com/axios/axios/pull/2547))
- Add toJSON property to AxiosError type ([#2427](https://github.com/axios/axios/pull/2427))
- Fixing socket hang up error on node side for slow response. ([#1752](https://github.com/axios/axios/pull/1752))
- Alternative syntax to send data into the body ([#2317](https://github.com/axios/axios/pull/2317))
@@ -57,7 +329,7 @@ Documentation:
- Update response interceptor docs ([#2399](https://github.com/axios/axios/pull/2399))
- Update README.md ([#2504](https://github.com/axios/axios/pull/2504))
- Fix word 'sintaxe' to 'syntax' in README.md ([#2432](https://github.com/axios/axios/pull/2432))
-- upadating README: notes on CommonJS autocomplete ([#2256](https://github.com/axios/axios/pull/2256))
+- updating README: notes on CommonJS autocomplete ([#2256](https://github.com/axios/axios/pull/2256))
- Fix grammar in README.md ([#2271](https://github.com/axios/axios/pull/2271))
- Doc fixes, minor examples cleanup ([#2198](https://github.com/axios/axios/pull/2198))
@@ -110,7 +382,7 @@ New Functionality:
- Add getUri method ([#1712](https://github.com/axios/axios/issues/1712))
- Add support for no_proxy env variable ([#1693](https://github.com/axios/axios/issues/1693))
-- Add toJSON to decorated Axios errors to faciliate serialization ([#1625](https://github.com/axios/axios/issues/1625))
+- Add toJSON to decorated Axios errors to facilitate serialization ([#1625](https://github.com/axios/axios/issues/1625))
- Add second then on axios call ([#1623](https://github.com/axios/axios/issues/1623))
- Typings: allow custom return types
- Add option to specify character set in responses (with http adapter)
diff --git a/server/node_modules/axios/LICENSE b/server/node_modules/axios/LICENSE
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/README.md b/server/node_modules/axios/README.md
index 0b09254..44264f6 100755
--- a/server/node_modules/axios/README.md
+++ b/server/node_modules/axios/README.md
@@ -1,6 +1,7 @@
# axios
[![npm version](https://img.shields.io/npm/v/axios.svg?style=flat-square)](https://www.npmjs.org/package/axios)
+[![CDNJS](https://img.shields.io/cdnjs/v/axios.svg?style=flat-square)](https://cdnjs.com/libraries/axios)
[![build status](https://img.shields.io/travis/axios/axios/master.svg?style=flat-square)](https://travis-ci.org/axios/axios)
[![code coverage](https://img.shields.io/coveralls/mzabriskie/axios.svg?style=flat-square)](https://coveralls.io/r/mzabriskie/axios)
[![install size](https://packagephobia.now.sh/badge?p=axios)](https://packagephobia.now.sh/result?p=axios)
@@ -9,6 +10,37 @@
[![code helpers](https://www.codetriage.com/axios/axios/badges/users.svg)](https://www.codetriage.com/axios/axios)
Promise based HTTP client for the browser and node.js
+## Table of Contents
+
+ - [Features](#features)
+ - [Browser Support](#browser-support)
+ - [Installing](#installing)
+ - [Example](#example)
+ - [Axios API](#axios-api)
+ - [Request method aliases](#request-method-aliases)
+ - [Concurrency (Deprecated)](#concurrency-deprecated)
+ - [Creating an instance](#creating-an-instance)
+ - [Instance methods](#instance-methods)
+ - [Request Config](#request-config)
+ - [Response Schema](#response-schema)
+ - [Config Defaults](#config-defaults)
+ - [Global axios defaults](#global-axios-defaults)
+ - [Custom instance defaults](#custom-instance-defaults)
+ - [Config order of precedence](#config-order-of-precedence)
+ - [Interceptors](#interceptors)
+ - [Handling Errors](#handling-errors)
+ - [Cancellation](#cancellation)
+ - [Using application/x-www-form-urlencoded format](#using-applicationx-www-form-urlencoded-format)
+ - [Browser](#browser)
+ - [Node.js](#nodejs)
+ - [Query string](#query-string)
+ - [Form data](#form-data)
+ - [Semver](#semver)
+ - [Promises](#promises)
+ - [TypeScript](#typescript)
+ - [Resources](#resources)
+ - [Credits](#credits)
+ - [License](#license)
## Features
@@ -49,7 +81,13 @@ Using yarn:
$ yarn add axios
```
-Using cdn:
+Using jsDelivr CDN:
+
+```html
+
+```
+
+Using unpkg CDN:
```html
@@ -81,7 +119,7 @@ axios.get('/user?ID=12345')
// handle error
console.log(error);
})
- .finally(function () {
+ .then(function () {
// always executed
});
@@ -97,7 +135,7 @@ axios.get('/user', {
.catch(function (error) {
console.log(error);
})
- .finally(function () {
+ .then(function () {
// always executed
});
@@ -141,10 +179,11 @@ function getUserPermissions() {
return axios.get('/user/12345/permissions');
}
-axios.all([getUserAccount(), getUserPermissions()])
- .then(axios.spread(function (acct, perms) {
- // Both requests are now complete
- }));
+Promise.all([getUserAccount(), getUserPermissions()])
+ .then(function (results) {
+ const acct = results[0];
+ const perm = results[1];
+ });
```
## axios API
@@ -166,7 +205,7 @@ axios({
```
```js
-// GET request for remote image
+// GET request for remote image in node.js
axios({
method: 'get',
url: 'http://bit.ly/2mTM3nY',
@@ -200,12 +239,13 @@ For convenience aliases have been provided for all supported request methods.
###### NOTE
When using the alias methods `url`, `method`, and `data` properties don't need to be specified in config.
-### Concurrency
+### Concurrency (Deprecated)
+Please use `Promise.all` to replace the below functions.
Helper functions for dealing with concurrent requests.
-##### axios.all(iterable)
-##### axios.spread(callback)
+axios.all(iterable)
+axios.spread(callback)
### Creating an instance
@@ -287,7 +327,7 @@ These are the available config options for making requests. Only the `url` is re
},
// `data` is the data to be sent as the request body
- // Only applicable for request methods 'PUT', 'POST', and 'PATCH'
+ // Only applicable for request methods 'PUT', 'POST', 'DELETE , and 'PATCH'
// When no `transformRequest` is set, must be of one of the following types:
// - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
// - Browser only: FormData, File, Blob
@@ -330,7 +370,7 @@ These are the available config options for making requests. Only the `url` is re
// browser only: 'blob'
responseType: 'json', // default
- // `responseEncoding` indicates encoding to use for decoding responses
+ // `responseEncoding` indicates encoding to use for decoding responses (Node.js only)
// Note: Ignored for `responseType` of 'stream' or client-side requests
responseEncoding: 'utf8', // default
@@ -341,18 +381,23 @@ These are the available config options for making requests. Only the `url` is re
xsrfHeaderName: 'X-XSRF-TOKEN', // default
// `onUploadProgress` allows handling of progress events for uploads
+ // browser only
onUploadProgress: function (progressEvent) {
// Do whatever you want with the native progress event
},
// `onDownloadProgress` allows handling of progress events for downloads
+ // browser only
onDownloadProgress: function (progressEvent) {
// Do whatever you want with the native progress event
},
- // `maxContentLength` defines the max size of the http response content in bytes allowed
+ // `maxContentLength` defines the max size of the http response content in bytes allowed in node.js
maxContentLength: 2000,
+ // `maxBodyLength` (Node only option) defines the max size of the http request content in bytes allowed
+ maxBodyLength: 2000,
+
// `validateStatus` defines whether to resolve or reject the promise for a given
// HTTP response status code. If `validateStatus` returns `true` (or is set to `null`
// or `undefined`), the promise will be resolved; otherwise, the promise will be
@@ -377,7 +422,7 @@ These are the available config options for making requests. Only the `url` is re
httpAgent: new http.Agent({ keepAlive: true }),
httpsAgent: new https.Agent({ keepAlive: true }),
- // 'proxy' defines the hostname and port of the proxy server.
+ // `proxy` defines the hostname, port, and protocol of the proxy server.
// You can also define your proxy using the conventional `http_proxy` and
// `https_proxy` environment variables. If you are using environment variables
// for your proxy configuration, you can also define a `no_proxy` environment
@@ -387,7 +432,9 @@ These are the available config options for making requests. Only the `url` is re
// supplies credentials.
// This will set an `Proxy-Authorization` header, overwriting any existing
// `Proxy-Authorization` custom headers you have set using `headers`.
+ // If the proxy server uses HTTPS, then you must set the protocol to `https`.
proxy: {
+ protocol: 'https',
host: '127.0.0.1',
port: 9000,
auth: {
@@ -399,7 +446,14 @@ These are the available config options for making requests. Only the `url` is re
// `cancelToken` specifies a cancel token that can be used to cancel the request
// (see Cancellation section below for details)
cancelToken: new CancelToken(function (cancel) {
- })
+ }),
+
+ // `decompress` indicates whether or not the response body should be decompressed
+ // automatically. If set to `true` will also remove the 'content-encoding' header
+ // from the responses objects of all decompressed responses
+ // - Node only (XHR cannot turn off decompression)
+ decompress: true // default
+
}
```
@@ -418,8 +472,9 @@ The response for a request contains the following information.
// `statusText` is the HTTP status message from the server response
statusText: 'OK',
- // `headers` the headers that the server responded with
- // All header names are lower cased
+ // `headers` the HTTP headers that the server responded with
+ // All header names are lower cased and can be accessed using the bracket notation.
+ // Example: `response.headers['content-type']`
headers: {},
// `config` is the config that was provided to `axios` for the request
@@ -559,7 +614,7 @@ Using the `validateStatus` config option, you can define HTTP code(s) that shoul
```js
axios.get('/user/12345', {
validateStatus: function (status) {
- return status < 500; // Reject only if the status code is greater than or equal to 500
+ return status < 500; // Resolve only if the status code is less than 500
}
})
```
@@ -664,6 +719,8 @@ axios(options);
### Node.js
+#### Query string
+
In node.js, you can use the [`querystring`](https://nodejs.org/api/querystring.html) module as follows:
```js
@@ -671,11 +728,45 @@ const querystring = require('querystring');
axios.post('http://something.com/', querystring.stringify({ foo: 'bar' }));
```
+or ['URLSearchParams'](https://nodejs.org/api/url.html#url_class_urlsearchparams) from ['url module'](https://nodejs.org/api/url.html) as follows:
+
+```js
+const url = require('url');
+const params = new url.URLSearchParams({ foo: 'bar' });
+axios.post('http://something.com/', params.toString());
+```
+
You can also use the [`qs`](https://github.com/ljharb/qs) library.
###### NOTE
The `qs` library is preferable if you need to stringify nested objects, as the `querystring` method has known issues with that use case (https://github.com/nodejs/node-v0.x-archive/issues/1665).
+#### Form data
+
+In node.js, you can use the [`form-data`](https://github.com/form-data/form-data) library as follows:
+
+```js
+const FormData = require('form-data');
+
+const form = new FormData();
+form.append('my_field', 'my value');
+form.append('my_buffer', new Buffer(10));
+form.append('my_file', fs.createReadStream('/foo/bar.jpg'));
+
+axios.post('https://example.com', form, { headers: form.getHeaders() })
+```
+
+Alternatively, use an interceptor:
+
+```js
+axios.interceptors.request.use(config => {
+ if (config.data instanceof FormData) {
+ Object.assign(config.headers, config.data.getHeaders());
+ }
+ return config;
+});
+```
+
## Semver
Until axios reaches a `1.0` release, breaking changes will be released with a new minor version. For example `0.5.1`, and `0.5.4` will have the same API, but `0.6.0` will have breaking changes.
diff --git a/server/node_modules/axios/UPGRADE_GUIDE.md b/server/node_modules/axios/UPGRADE_GUIDE.md
old mode 100755
new mode 100644
index eedb049..745e804
--- a/server/node_modules/axios/UPGRADE_GUIDE.md
+++ b/server/node_modules/axios/UPGRADE_GUIDE.md
@@ -135,7 +135,7 @@ This will polyfill the global environment, and only needs to be done once.
#### `axios.success`/`axios.error`
-The `success`, and `error` aliases were deprectated in [0.4.0](https://github.com/axios/axios/blob/master/CHANGELOG.md#040-oct-03-2014). As of this release they have been removed entirely. Instead please use `axios.then`, and `axios.catch` respectively.
+The `success`, and `error` aliases were deprecated in [0.4.0](https://github.com/axios/axios/blob/master/CHANGELOG.md#040-oct-03-2014). As of this release they have been removed entirely. Instead please use `axios.then`, and `axios.catch` respectively.
```js
axios.get('some/url')
diff --git a/server/node_modules/axios/dist/axios.js b/server/node_modules/axios/dist/axios.js
old mode 100755
new mode 100644
index d9c0c71..6dd94bd
--- a/server/node_modules/axios/dist/axios.js
+++ b/server/node_modules/axios/dist/axios.js
@@ -1,4 +1,4 @@
-/* axios v0.19.2 | (c) 2020 by Matt Zabriskie */
+/* axios v0.21.1 | (c) 2020 by Matt Zabriskie */
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
@@ -110,6 +110,9 @@ return /******/ (function(modules) { // webpackBootstrap
};
axios.spread = __webpack_require__(25);
+ // Expose isAxiosError
+ axios.isAxiosError = __webpack_require__(26);
+
module.exports = axios;
// Allow use of default import syntax in TypeScript
@@ -227,6 +230,21 @@ return /******/ (function(modules) { // webpackBootstrap
return val !== null && typeof val === 'object';
}
+ /**
+ * Determine if a value is a plain Object
+ *
+ * @param {Object} val The value to test
+ * @return {boolean} True if value is a plain Object, otherwise false
+ */
+ function isPlainObject(val) {
+ if (toString.call(val) !== '[object Object]') {
+ return false;
+ }
+
+ var prototype = Object.getPrototypeOf(val);
+ return prototype === null || prototype === Object.prototype;
+ }
+
/**
* Determine if a value is a Date
*
@@ -383,34 +401,12 @@ return /******/ (function(modules) { // webpackBootstrap
function merge(/* obj1, obj2, obj3, ... */) {
var result = {};
function assignValue(val, key) {
- if (typeof result[key] === 'object' && typeof val === 'object') {
+ if (isPlainObject(result[key]) && isPlainObject(val)) {
result[key] = merge(result[key], val);
- } else {
- result[key] = val;
- }
- }
-
- for (var i = 0, l = arguments.length; i < l; i++) {
- forEach(arguments[i], assignValue);
- }
- return result;
- }
-
- /**
- * Function equal to merge with the difference being that no reference
- * to original objects is kept.
- *
- * @see merge
- * @param {Object} obj1 Object to merge
- * @returns {Object} Result of all merge properties
- */
- function deepMerge(/* obj1, obj2, obj3, ... */) {
- var result = {};
- function assignValue(val, key) {
- if (typeof result[key] === 'object' && typeof val === 'object') {
- result[key] = deepMerge(result[key], val);
- } else if (typeof val === 'object') {
- result[key] = deepMerge({}, val);
+ } else if (isPlainObject(val)) {
+ result[key] = merge({}, val);
+ } else if (isArray(val)) {
+ result[key] = val.slice();
} else {
result[key] = val;
}
@@ -441,6 +437,19 @@ return /******/ (function(modules) { // webpackBootstrap
return a;
}
+ /**
+ * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
+ *
+ * @param {string} content with BOM
+ * @return {string} content value without BOM
+ */
+ function stripBOM(content) {
+ if (content.charCodeAt(0) === 0xFEFF) {
+ content = content.slice(1);
+ }
+ return content;
+ }
+
module.exports = {
isArray: isArray,
isArrayBuffer: isArrayBuffer,
@@ -450,6 +459,7 @@ return /******/ (function(modules) { // webpackBootstrap
isString: isString,
isNumber: isNumber,
isObject: isObject,
+ isPlainObject: isPlainObject,
isUndefined: isUndefined,
isDate: isDate,
isFile: isFile,
@@ -460,9 +470,9 @@ return /******/ (function(modules) { // webpackBootstrap
isStandardBrowserEnv: isStandardBrowserEnv,
forEach: forEach,
merge: merge,
- deepMerge: deepMerge,
extend: extend,
- trim: trim
+ trim: trim,
+ stripBOM: stripBOM
};
@@ -562,9 +572,10 @@ return /******/ (function(modules) { // webpackBootstrap
utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
/*eslint func-names:0*/
Axios.prototype[method] = function(url, config) {
- return this.request(utils.merge(config || {}, {
+ return this.request(mergeConfig(config || {}, {
method: method,
- url: url
+ url: url,
+ data: (config || {}).data
}));
};
});
@@ -572,7 +583,7 @@ return /******/ (function(modules) { // webpackBootstrap
utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
/*eslint func-names:0*/
Axios.prototype[method] = function(url, data, config) {
- return this.request(utils.merge(config || {}, {
+ return this.request(mergeConfig(config || {}, {
method: method,
url: url,
data: data
@@ -593,7 +604,6 @@ return /******/ (function(modules) { // webpackBootstrap
function encode(val) {
return encodeURIComponent(val).
- replace(/%40/gi, '@').
replace(/%3A/gi, ':').
replace(/%24/g, '$').
replace(/%2C/gi, ',').
@@ -920,6 +930,7 @@ return /******/ (function(modules) { // webpackBootstrap
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
+ maxBodyLength: -1,
validateStatus: function validateStatus(status) {
return status >= 200 && status < 300;
@@ -969,10 +980,11 @@ return /******/ (function(modules) { // webpackBootstrap
var utils = __webpack_require__(2);
var settle = __webpack_require__(13);
+ var cookies = __webpack_require__(16);
var buildURL = __webpack_require__(5);
- var buildFullPath = __webpack_require__(16);
- var parseHeaders = __webpack_require__(19);
- var isURLSameOrigin = __webpack_require__(20);
+ var buildFullPath = __webpack_require__(17);
+ var parseHeaders = __webpack_require__(20);
+ var isURLSameOrigin = __webpack_require__(21);
var createError = __webpack_require__(14);
module.exports = function xhrAdapter(config) {
@@ -989,7 +1001,7 @@ return /******/ (function(modules) { // webpackBootstrap
// HTTP basic authentication
if (config.auth) {
var username = config.auth.username || '';
- var password = config.auth.password || '';
+ var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';
requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);
}
@@ -1070,8 +1082,6 @@ return /******/ (function(modules) { // webpackBootstrap
// This is only done if running in a standard browser environment.
// Specifically not if we're in a web worker, or react-native.
if (utils.isStandardBrowserEnv()) {
- var cookies = __webpack_require__(21);
-
// Add xsrf header
var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?
cookies.read(config.xsrfCookieName) :
@@ -1137,7 +1147,7 @@ return /******/ (function(modules) { // webpackBootstrap
});
}
- if (requestData === undefined) {
+ if (!requestData) {
requestData = null;
}
@@ -1164,7 +1174,7 @@ return /******/ (function(modules) { // webpackBootstrap
*/
module.exports = function settle(resolve, reject, response) {
var validateStatus = response.config.validateStatus;
- if (!validateStatus || validateStatus(response.status)) {
+ if (!response.status || !validateStatus || validateStatus(response.status)) {
resolve(response);
} else {
reject(createError(
@@ -1228,7 +1238,7 @@ return /******/ (function(modules) { // webpackBootstrap
error.response = response;
error.isAxiosError = true;
- error.toJSON = function() {
+ error.toJSON = function toJSON() {
return {
// Standard
message: this.message,
@@ -1256,8 +1266,67 @@ return /******/ (function(modules) { // webpackBootstrap
'use strict';
- var isAbsoluteURL = __webpack_require__(17);
- var combineURLs = __webpack_require__(18);
+ var utils = __webpack_require__(2);
+
+ module.exports = (
+ utils.isStandardBrowserEnv() ?
+
+ // Standard browser envs support document.cookie
+ (function standardBrowserEnv() {
+ return {
+ write: function write(name, value, expires, path, domain, secure) {
+ var cookie = [];
+ cookie.push(name + '=' + encodeURIComponent(value));
+
+ if (utils.isNumber(expires)) {
+ cookie.push('expires=' + new Date(expires).toGMTString());
+ }
+
+ if (utils.isString(path)) {
+ cookie.push('path=' + path);
+ }
+
+ if (utils.isString(domain)) {
+ cookie.push('domain=' + domain);
+ }
+
+ if (secure === true) {
+ cookie.push('secure');
+ }
+
+ document.cookie = cookie.join('; ');
+ },
+
+ read: function read(name) {
+ var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
+ return (match ? decodeURIComponent(match[3]) : null);
+ },
+
+ remove: function remove(name) {
+ this.write(name, '', Date.now() - 86400000);
+ }
+ };
+ })() :
+
+ // Non standard browser env (web workers, react-native) lack needed support.
+ (function nonStandardBrowserEnv() {
+ return {
+ write: function write() {},
+ read: function read() { return null; },
+ remove: function remove() {}
+ };
+ })()
+ );
+
+
+/***/ }),
+/* 17 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var isAbsoluteURL = __webpack_require__(18);
+ var combineURLs = __webpack_require__(19);
/**
* Creates a new URL by combining the baseURL with the requestedURL,
@@ -1277,7 +1346,7 @@ return /******/ (function(modules) { // webpackBootstrap
/***/ }),
-/* 17 */
+/* 18 */
/***/ (function(module, exports) {
'use strict';
@@ -1297,7 +1366,7 @@ return /******/ (function(modules) { // webpackBootstrap
/***/ }),
-/* 18 */
+/* 19 */
/***/ (function(module, exports) {
'use strict';
@@ -1317,7 +1386,7 @@ return /******/ (function(modules) { // webpackBootstrap
/***/ }),
-/* 19 */
+/* 20 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@@ -1376,7 +1445,7 @@ return /******/ (function(modules) { // webpackBootstrap
/***/ }),
-/* 20 */
+/* 21 */
/***/ (function(module, exports, __webpack_require__) {
'use strict';
@@ -1449,65 +1518,6 @@ return /******/ (function(modules) { // webpackBootstrap
);
-/***/ }),
-/* 21 */
-/***/ (function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var utils = __webpack_require__(2);
-
- module.exports = (
- utils.isStandardBrowserEnv() ?
-
- // Standard browser envs support document.cookie
- (function standardBrowserEnv() {
- return {
- write: function write(name, value, expires, path, domain, secure) {
- var cookie = [];
- cookie.push(name + '=' + encodeURIComponent(value));
-
- if (utils.isNumber(expires)) {
- cookie.push('expires=' + new Date(expires).toGMTString());
- }
-
- if (utils.isString(path)) {
- cookie.push('path=' + path);
- }
-
- if (utils.isString(domain)) {
- cookie.push('domain=' + domain);
- }
-
- if (secure === true) {
- cookie.push('secure');
- }
-
- document.cookie = cookie.join('; ');
- },
-
- read: function read(name) {
- var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
- return (match ? decodeURIComponent(match[3]) : null);
- },
-
- remove: function remove(name) {
- this.write(name, '', Date.now() - 86400000);
- }
- };
- })() :
-
- // Non standard browser env (web workers, react-native) lack needed support.
- (function nonStandardBrowserEnv() {
- return {
- write: function write() {},
- read: function read() { return null; },
- remove: function remove() {}
- };
- })()
- );
-
-
/***/ }),
/* 22 */
/***/ (function(module, exports, __webpack_require__) {
@@ -1529,59 +1539,73 @@ return /******/ (function(modules) { // webpackBootstrap
config2 = config2 || {};
var config = {};
- var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];
- var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];
+ var valueFromConfig2Keys = ['url', 'method', 'data'];
+ var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];
var defaultToConfig2Keys = [
- 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',
- 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',
- 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',
- 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',
- 'httpsAgent', 'cancelToken', 'socketPath'
+ 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',
+ 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',
+ 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',
+ 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',
+ 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'
];
+ var directMergeKeys = ['validateStatus'];
+
+ function getMergedValue(target, source) {
+ if (utils.isPlainObject(target) && utils.isPlainObject(source)) {
+ return utils.merge(target, source);
+ } else if (utils.isPlainObject(source)) {
+ return utils.merge({}, source);
+ } else if (utils.isArray(source)) {
+ return source.slice();
+ }
+ return source;
+ }
+
+ function mergeDeepProperties(prop) {
+ if (!utils.isUndefined(config2[prop])) {
+ config[prop] = getMergedValue(config1[prop], config2[prop]);
+ } else if (!utils.isUndefined(config1[prop])) {
+ config[prop] = getMergedValue(undefined, config1[prop]);
+ }
+ }
utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {
- if (typeof config2[prop] !== 'undefined') {
- config[prop] = config2[prop];
+ if (!utils.isUndefined(config2[prop])) {
+ config[prop] = getMergedValue(undefined, config2[prop]);
}
});
- utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {
- if (utils.isObject(config2[prop])) {
- config[prop] = utils.deepMerge(config1[prop], config2[prop]);
- } else if (typeof config2[prop] !== 'undefined') {
- config[prop] = config2[prop];
- } else if (utils.isObject(config1[prop])) {
- config[prop] = utils.deepMerge(config1[prop]);
- } else if (typeof config1[prop] !== 'undefined') {
- config[prop] = config1[prop];
+ utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);
+
+ utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {
+ if (!utils.isUndefined(config2[prop])) {
+ config[prop] = getMergedValue(undefined, config2[prop]);
+ } else if (!utils.isUndefined(config1[prop])) {
+ config[prop] = getMergedValue(undefined, config1[prop]);
}
});
- utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {
- if (typeof config2[prop] !== 'undefined') {
- config[prop] = config2[prop];
- } else if (typeof config1[prop] !== 'undefined') {
- config[prop] = config1[prop];
+ utils.forEach(directMergeKeys, function merge(prop) {
+ if (prop in config2) {
+ config[prop] = getMergedValue(config1[prop], config2[prop]);
+ } else if (prop in config1) {
+ config[prop] = getMergedValue(undefined, config1[prop]);
}
});
var axiosKeys = valueFromConfig2Keys
.concat(mergeDeepPropertiesKeys)
- .concat(defaultToConfig2Keys);
+ .concat(defaultToConfig2Keys)
+ .concat(directMergeKeys);
var otherKeys = Object
- .keys(config2)
+ .keys(config1)
+ .concat(Object.keys(config2))
.filter(function filterAxiosKeys(key) {
return axiosKeys.indexOf(key) === -1;
});
- utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {
- if (typeof config2[prop] !== 'undefined') {
- config[prop] = config2[prop];
- } else if (typeof config1[prop] !== 'undefined') {
- config[prop] = config1[prop];
- }
- });
+ utils.forEach(otherKeys, mergeDeepProperties);
return config;
};
@@ -1708,6 +1732,23 @@ return /******/ (function(modules) { // webpackBootstrap
};
+/***/ }),
+/* 26 */
+/***/ (function(module, exports) {
+
+ 'use strict';
+
+ /**
+ * Determines whether the payload is an error thrown by Axios
+ *
+ * @param {*} payload The value to test
+ * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
+ */
+ module.exports = function isAxiosError(payload) {
+ return (typeof payload === 'object') && (payload.isAxiosError === true);
+ };
+
+
/***/ })
/******/ ])
});
diff --git a/server/node_modules/axios/dist/axios.map b/server/node_modules/axios/dist/axios.map
old mode 100755
new mode 100644
index 4370129..6d61f7e
--- a/server/node_modules/axios/dist/axios.map
+++ b/server/node_modules/axios/dist/axios.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 18e5718d1c92e108675b","webpack:///./index.js","webpack:///./lib/axios.js","webpack:///./lib/utils.js","webpack:///./lib/helpers/bind.js","webpack:///./lib/core/Axios.js","webpack:///./lib/helpers/buildURL.js","webpack:///./lib/core/InterceptorManager.js","webpack:///./lib/core/dispatchRequest.js","webpack:///./lib/core/transformData.js","webpack:///./lib/cancel/isCancel.js","webpack:///./lib/defaults.js","webpack:///./lib/helpers/normalizeHeaderName.js","webpack:///./lib/adapters/xhr.js","webpack:///./lib/core/settle.js","webpack:///./lib/core/createError.js","webpack:///./lib/core/enhanceError.js","webpack:///./lib/core/buildFullPath.js","webpack:///./lib/helpers/isAbsoluteURL.js","webpack:///./lib/helpers/combineURLs.js","webpack:///./lib/helpers/parseHeaders.js","webpack:///./lib/helpers/isURLSameOrigin.js","webpack:///./lib/helpers/cookies.js","webpack:///./lib/core/mergeConfig.js","webpack:///./lib/cancel/Cancel.js","webpack:///./lib/cancel/CancelToken.js","webpack:///./lib/helpers/spread.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA,yC;;;;;;ACAA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,MAAM;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;ACpDA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA2B;AAC3B;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,iCAAgC;AAChC,MAAK;AACL;AACA;AACA;;AAEA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvVA;;AAEA;AACA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;ACVA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAgD;AAChD;AACA;AACA,MAAK;AACL;AACA,EAAC;;AAED;AACA;AACA;AACA,iDAAgD;AAChD;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC;;AAED;;;;;;;AC7FA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB;AACA,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;;;;;;ACnDA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAA+B;AAC/B,wCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;;;;;;;AC9EA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,cAAc;AACzB,YAAW,MAAM;AACjB,YAAW,eAAe;AAC1B,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;;;;;;ACnBA;;AAEA;AACA;AACA;;;;;;;ACJA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAwE;AACxE;AACA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,QAAO,YAAY;AACnB;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;;;;;;;AChGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;;;;;;ACXA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA4C;AAC5C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;;;;;;ACnLA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzCA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnBA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACbA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;;;;;;ACbA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAiB,eAAe;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;;;;;;;ACpDA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;;;;;;ACnEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA0C;AAC1C,UAAS;;AAET;AACA,6DAA4D,wBAAwB;AACpF;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,mCAAkC;AAClC,gCAA+B,aAAa,EAAE;AAC9C;AACA;AACA,MAAK;AACL;;;;;;;ACpDA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;;;;;;;ACxEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;AClBA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,YAAW,SAAS;AACpB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA","file":"axios.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 18e5718d1c92e108675b","module.exports = require('./lib/axios');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/axios.js\n// module id = 1\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/utils.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/bind.js\n// module id = 3\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/Axios.js\n// module id = 4\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/buildURL.js\n// module id = 5\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/InterceptorManager.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/dispatchRequest.js\n// module id = 7\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/transformData.js\n// module id = 8\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/isCancel.js\n// module id = 9\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/defaults.js\n// module id = 10\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/normalizeHeaderName.js\n// module id = 11\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/adapters/xhr.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/settle.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/createError.js\n// module id = 14\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/enhanceError.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/buildFullPath.js\n// module id = 16\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isAbsoluteURL.js\n// module id = 17\n// module chunks = 0","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/combineURLs.js\n// module id = 18\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/parseHeaders.js\n// module id = 19\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isURLSameOrigin.js\n// module id = 20\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/cookies.js\n// module id = 21\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = [\n 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath'\n ];\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys);\n\n var otherKeys = Object\n .keys(config2)\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/mergeConfig.js\n// module id = 22\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/Cancel.js\n// module id = 23\n// module chunks = 0","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/CancelToken.js\n// module id = 24\n// module chunks = 0","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/spread.js\n// module id = 25\n// module chunks = 0"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 0ad9e9f79033ec4fb28f","webpack:///./index.js","webpack:///./lib/axios.js","webpack:///./lib/utils.js","webpack:///./lib/helpers/bind.js","webpack:///./lib/core/Axios.js","webpack:///./lib/helpers/buildURL.js","webpack:///./lib/core/InterceptorManager.js","webpack:///./lib/core/dispatchRequest.js","webpack:///./lib/core/transformData.js","webpack:///./lib/cancel/isCancel.js","webpack:///./lib/defaults.js","webpack:///./lib/helpers/normalizeHeaderName.js","webpack:///./lib/adapters/xhr.js","webpack:///./lib/core/settle.js","webpack:///./lib/core/createError.js","webpack:///./lib/core/enhanceError.js","webpack:///./lib/helpers/cookies.js","webpack:///./lib/core/buildFullPath.js","webpack:///./lib/helpers/isAbsoluteURL.js","webpack:///./lib/helpers/combineURLs.js","webpack:///./lib/helpers/parseHeaders.js","webpack:///./lib/helpers/isURLSameOrigin.js","webpack:///./lib/core/mergeConfig.js","webpack:///./lib/cancel/Cancel.js","webpack:///./lib/cancel/CancelToken.js","webpack:///./lib/helpers/spread.js","webpack:///./lib/helpers/isAxiosError.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA,yC;;;;;;ACAA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,MAAM;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;;;;;ACvDA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA2B;AAC3B;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,6BAA4B;AAC5B,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA,wCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9VA;;AAEA;AACA;AACA;AACA,oBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;ACVA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAgD;AAChD;AACA;AACA,0BAAyB;AACzB,MAAK;AACL;AACA,EAAC;;AAED;AACA;AACA;AACA,iDAAgD;AAChD;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC;;AAED;;;;;;;AC9FA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACrEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB;AACA,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;;;;;;ACnDA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAA+B;AAC/B,wCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;AACH;;;;;;;AC9EA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,cAAc;AACzB,YAAW,MAAM;AACjB,YAAW,eAAe;AAC1B,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;;;;;;ACnBA;;AAEA;AACA;AACA;;;;;;;ACJA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAwE;AACxE;AACA;AACA;AACA,wDAAuD;AACvD;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,QAAO,YAAY;AACnB;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA,EAAC;;AAED;;;;;;;ACjGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;;;;;;ACXA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA4C;AAC5C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;;;;;;AClLA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxBA;;AAEA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzCA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA0C;AAC1C,UAAS;;AAET;AACA,6DAA4D,wBAAwB;AACpF;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,mCAAkC;AAClC,gCAA+B,aAAa,EAAE;AAC9C;AACA;AACA,MAAK;AACL;;;;;;;ACpDA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACnBA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACbA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;;;;;;ACbA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAiB,eAAe;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,IAAG;;AAEH;AACA;;;;;;;ACpDA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;;;;;;ACnEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL,4BAA2B;AAC3B,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;;;;;;;ACtFA;;AAEA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;AClBA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,YAAW,SAAS;AACpB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1BA;;AAEA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA","file":"axios.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0ad9e9f79033ec4fb28f","module.exports = require('./lib/axios');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/axios.js\n// module id = 1\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/utils.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/bind.js\n// module id = 3\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/Axios.js\n// module id = 4\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/buildURL.js\n// module id = 5\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/InterceptorManager.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/dispatchRequest.js\n// module id = 7\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/transformData.js\n// module id = 8\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/isCancel.js\n// module id = 9\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/defaults.js\n// module id = 10\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/normalizeHeaderName.js\n// module id = 11\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/adapters/xhr.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/settle.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/createError.js\n// module id = 14\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/enhanceError.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/cookies.js\n// module id = 16\n// module chunks = 0","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/buildFullPath.js\n// module id = 17\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isAbsoluteURL.js\n// module id = 18\n// module chunks = 0","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/combineURLs.js\n// module id = 19\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/parseHeaders.js\n// module id = 20\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isURLSameOrigin.js\n// module id = 21\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/mergeConfig.js\n// module id = 22\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/Cancel.js\n// module id = 23\n// module chunks = 0","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/CancelToken.js\n// module id = 24\n// module chunks = 0","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/spread.js\n// module id = 25\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isAxiosError.js\n// module id = 26\n// module chunks = 0"],"sourceRoot":""}
\ No newline at end of file
diff --git a/server/node_modules/axios/dist/axios.min.js b/server/node_modules/axios/dist/axios.min.js
old mode 100755
new mode 100644
index b87c0e3..fc6c8b6
--- a/server/node_modules/axios/dist/axios.min.js
+++ b/server/node_modules/axios/dist/axios.min.js
@@ -1,3 +1,3 @@
-/* axios v0.19.2 | (c) 2020 by Matt Zabriskie */
-!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.axios=t():e.axios=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";function r(e){var t=new s(e),n=i(s.prototype.request,t);return o.extend(n,s.prototype,t),o.extend(n,t),n}var o=n(2),i=n(3),s=n(4),a=n(22),u=n(10),c=r(u);c.Axios=s,c.create=function(e){return r(a(c.defaults,e))},c.Cancel=n(23),c.CancelToken=n(24),c.isCancel=n(9),c.all=function(e){return Promise.all(e)},c.spread=n(25),e.exports=c,e.exports.default=c},function(e,t,n){"use strict";function r(e){return"[object Array]"===j.call(e)}function o(e){return"undefined"==typeof e}function i(e){return null!==e&&!o(e)&&null!==e.constructor&&!o(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function s(e){return"[object ArrayBuffer]"===j.call(e)}function a(e){return"undefined"!=typeof FormData&&e instanceof FormData}function u(e){var t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function c(e){return"string"==typeof e}function f(e){return"number"==typeof e}function p(e){return null!==e&&"object"==typeof e}function d(e){return"[object Date]"===j.call(e)}function l(e){return"[object File]"===j.call(e)}function h(e){return"[object Blob]"===j.call(e)}function m(e){return"[object Function]"===j.call(e)}function y(e){return p(e)&&m(e.pipe)}function g(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams}function v(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function x(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)}function w(e,t){if(null!==e&&"undefined"!=typeof e)if("object"!=typeof e&&(e=[e]),r(e))for(var n=0,o=e.length;n=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},i.forEach(["delete","get","head"],function(e){u.headers[e]={}}),i.forEach(["post","put","patch"],function(e){u.headers[e]=i.merge(a)}),e.exports=u},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},function(e,t,n){"use strict";var r=n(2),o=n(13),i=n(5),s=n(16),a=n(19),u=n(20),c=n(14);e.exports=function(e){return new Promise(function(t,f){var p=e.data,d=e.headers;r.isFormData(p)&&delete d["Content-Type"];var l=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password||"";d.Authorization="Basic "+btoa(h+":"+m)}var y=s(e.baseURL,e.url);if(l.open(e.method.toUpperCase(),i(y,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,l.onreadystatechange=function(){if(l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in l?a(l.getAllResponseHeaders()):null,r=e.responseType&&"text"!==e.responseType?l.response:l.responseText,i={data:r,status:l.status,statusText:l.statusText,headers:n,config:e,request:l};o(t,f,i),l=null}},l.onabort=function(){l&&(f(c("Request aborted",e,"ECONNABORTED",l)),l=null)},l.onerror=function(){f(c("Network Error",e,null,l)),l=null},l.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),f(c(t,e,"ECONNABORTED",l)),l=null},r.isStandardBrowserEnv()){var g=n(21),v=(e.withCredentials||u(y))&&e.xsrfCookieName?g.read(e.xsrfCookieName):void 0;v&&(d[e.xsrfHeaderName]=v)}if("setRequestHeader"in l&&r.forEach(d,function(e,t){"undefined"==typeof p&&"content-type"===t.toLowerCase()?delete d[t]:l.setRequestHeader(t,e)}),r.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),e.responseType)try{l.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){l&&(l.abort(),f(e),l=null)}),void 0===p&&(p=null),l.send(p)})}},function(e,t,n){"use strict";var r=n(14);e.exports=function(e,t,n){var o=n.config.validateStatus;!o||o(n.status)?e(n):t(r("Request failed with status code "+n.status,n.config,null,n.request,n))}},function(e,t,n){"use strict";var r=n(15);e.exports=function(e,t,n,o,i){var s=new Error(e);return r(s,t,n,o,i)}},function(e,t){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,t,n){"use strict";var r=n(17),o=n(18);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},function(e,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(2),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,s={};return e?(r.forEach(e.split("\n"),function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(s[t]&&o.indexOf(t)>=0)return;"set-cookie"===t?s[t]=(s[t]?s[t]:[]).concat([n]):s[t]=s[t]?s[t]+", "+n:n}}),s):s}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,i,s){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(i)&&a.push("domain="+i),s===!0&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){t=t||{};var n={},o=["url","method","params","data"],i=["headers","auth","proxy"],s=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];r.forEach(o,function(e){"undefined"!=typeof t[e]&&(n[e]=t[e])}),r.forEach(i,function(o){r.isObject(t[o])?n[o]=r.deepMerge(e[o],t[o]):"undefined"!=typeof t[o]?n[o]=t[o]:r.isObject(e[o])?n[o]=r.deepMerge(e[o]):"undefined"!=typeof e[o]&&(n[o]=e[o])}),r.forEach(s,function(r){"undefined"!=typeof t[r]?n[r]=t[r]:"undefined"!=typeof e[r]&&(n[r]=e[r])});var a=o.concat(i).concat(s),u=Object.keys(t).filter(function(e){return a.indexOf(e)===-1});return r.forEach(u,function(r){"undefined"!=typeof t[r]?n[r]=t[r]:"undefined"!=typeof e[r]&&(n[r]=e[r])}),n}},function(e,t){"use strict";function n(e){this.message=e}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,e.exports=n},function(e,t,n){"use strict";function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new o(e),t(n.reason))})}var o=n(23);r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e,t=new r(function(t){e=t});return{token:t,cancel:e}},e.exports=r},function(e,t){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}}])});
+/* axios v0.21.1 | (c) 2020 by Matt Zabriskie */
+!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.axios=t():e.axios=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";function r(e){var t=new i(e),n=s(i.prototype.request,t);return o.extend(n,i.prototype,t),o.extend(n,t),n}var o=n(2),s=n(3),i=n(4),a=n(22),u=n(10),c=r(u);c.Axios=i,c.create=function(e){return r(a(c.defaults,e))},c.Cancel=n(23),c.CancelToken=n(24),c.isCancel=n(9),c.all=function(e){return Promise.all(e)},c.spread=n(25),c.isAxiosError=n(26),e.exports=c,e.exports.default=c},function(e,t,n){"use strict";function r(e){return"[object Array]"===R.call(e)}function o(e){return"undefined"==typeof e}function s(e){return null!==e&&!o(e)&&null!==e.constructor&&!o(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function i(e){return"[object ArrayBuffer]"===R.call(e)}function a(e){return"undefined"!=typeof FormData&&e instanceof FormData}function u(e){var t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function c(e){return"string"==typeof e}function f(e){return"number"==typeof e}function p(e){return null!==e&&"object"==typeof e}function d(e){if("[object Object]"!==R.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function l(e){return"[object Date]"===R.call(e)}function h(e){return"[object File]"===R.call(e)}function m(e){return"[object Blob]"===R.call(e)}function y(e){return"[object Function]"===R.call(e)}function g(e){return p(e)&&y(e.pipe)}function v(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams}function x(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function w(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)}function b(e,t){if(null!==e&&"undefined"!=typeof e)if("object"!=typeof e&&(e=[e]),r(e))for(var n=0,o=e.length;n=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},s.forEach(["delete","get","head"],function(e){u.headers[e]={}}),s.forEach(["post","put","patch"],function(e){u.headers[e]=s.merge(a)}),e.exports=u},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},function(e,t,n){"use strict";var r=n(2),o=n(13),s=n(16),i=n(5),a=n(17),u=n(20),c=n(21),f=n(14);e.exports=function(e){return new Promise(function(t,n){var p=e.data,d=e.headers;r.isFormData(p)&&delete d["Content-Type"];var l=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";d.Authorization="Basic "+btoa(h+":"+m)}var y=a(e.baseURL,e.url);if(l.open(e.method.toUpperCase(),i(y,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,l.onreadystatechange=function(){if(l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in l?u(l.getAllResponseHeaders()):null,s=e.responseType&&"text"!==e.responseType?l.response:l.responseText,i={data:s,status:l.status,statusText:l.statusText,headers:r,config:e,request:l};o(t,n,i),l=null}},l.onabort=function(){l&&(n(f("Request aborted",e,"ECONNABORTED",l)),l=null)},l.onerror=function(){n(f("Network Error",e,null,l)),l=null},l.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(f(t,e,"ECONNABORTED",l)),l=null},r.isStandardBrowserEnv()){var g=(e.withCredentials||c(y))&&e.xsrfCookieName?s.read(e.xsrfCookieName):void 0;g&&(d[e.xsrfHeaderName]=g)}if("setRequestHeader"in l&&r.forEach(d,function(e,t){"undefined"==typeof p&&"content-type"===t.toLowerCase()?delete d[t]:l.setRequestHeader(t,e)}),r.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),e.responseType)try{l.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){l&&(l.abort(),n(e),l=null)}),p||(p=null),l.send(p)})}},function(e,t,n){"use strict";var r=n(14);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},function(e,t,n){"use strict";var r=n(15);e.exports=function(e,t,n,o,s){var i=new Error(e);return r(i,t,n,o,s)}},function(e,t){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,s,i){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(s)&&a.push("domain="+s),i===!0&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,t,n){"use strict";var r=n(18),o=n(19);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},function(e,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(2),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,s,i={};return e?(r.forEach(e.split("\n"),function(e){if(s=e.indexOf(":"),t=r.trim(e.substr(0,s)).toLowerCase(),n=r.trim(e.substr(s+1)),t){if(i[t]&&o.indexOf(t)>=0)return;"set-cookie"===t?i[t]=(i[t]?i[t]:[]).concat([n]):i[t]=i[t]?i[t]+", "+n:n}}),i):i}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){function n(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function o(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(s[o]=n(void 0,e[o])):s[o]=n(e[o],t[o])}t=t||{};var s={},i=["url","method","data"],a=["headers","auth","proxy","params"],u=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],c=["validateStatus"];r.forEach(i,function(e){r.isUndefined(t[e])||(s[e]=n(void 0,t[e]))}),r.forEach(a,o),r.forEach(u,function(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(s[o]=n(void 0,e[o])):s[o]=n(void 0,t[o])}),r.forEach(c,function(r){r in t?s[r]=n(e[r],t[r]):r in e&&(s[r]=n(void 0,e[r]))});var f=i.concat(a).concat(u).concat(c),p=Object.keys(e).concat(Object.keys(t)).filter(function(e){return f.indexOf(e)===-1});return r.forEach(p,o),s}},function(e,t){"use strict";function n(e){this.message=e}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,e.exports=n},function(e,t,n){"use strict";function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new o(e),t(n.reason))})}var o=n(23);r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e,t=new r(function(t){e=t});return{token:t,cancel:e}},e.exports=r},function(e,t){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t){"use strict";e.exports=function(e){return"object"==typeof e&&e.isAxiosError===!0}}])});
//# sourceMappingURL=axios.min.map
\ No newline at end of file
diff --git a/server/node_modules/axios/dist/axios.min.map b/server/node_modules/axios/dist/axios.min.map
old mode 100755
new mode 100644
index 82849cc..a897631
--- a/server/node_modules/axios/dist/axios.min.map
+++ b/server/node_modules/axios/dist/axios.min.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///axios.min.js","webpack:///webpack/bootstrap be8c45a40d7c235b46c5","webpack:///./index.js","webpack:///./lib/axios.js","webpack:///./lib/utils.js","webpack:///./lib/helpers/bind.js","webpack:///./lib/core/Axios.js","webpack:///./lib/helpers/buildURL.js","webpack:///./lib/core/InterceptorManager.js","webpack:///./lib/core/dispatchRequest.js","webpack:///./lib/core/transformData.js","webpack:///./lib/cancel/isCancel.js","webpack:///./lib/defaults.js","webpack:///./lib/helpers/normalizeHeaderName.js","webpack:///./lib/adapters/xhr.js","webpack:///./lib/core/settle.js","webpack:///./lib/core/createError.js","webpack:///./lib/core/enhanceError.js","webpack:///./lib/core/buildFullPath.js","webpack:///./lib/helpers/isAbsoluteURL.js","webpack:///./lib/helpers/combineURLs.js","webpack:///./lib/helpers/parseHeaders.js","webpack:///./lib/helpers/isURLSameOrigin.js","webpack:///./lib/helpers/cookies.js","webpack:///./lib/core/mergeConfig.js","webpack:///./lib/cancel/Cancel.js","webpack:///./lib/cancel/CancelToken.js","webpack:///./lib/helpers/spread.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","createInstance","defaultConfig","context","Axios","instance","bind","prototype","request","utils","extend","mergeConfig","defaults","axios","create","instanceConfig","Cancel","CancelToken","isCancel","all","promises","Promise","spread","default","isArray","val","toString","isUndefined","isBuffer","constructor","isArrayBuffer","isFormData","FormData","isArrayBufferView","result","ArrayBuffer","isView","buffer","isString","isNumber","isObject","isDate","isFile","isBlob","isFunction","isStream","pipe","isURLSearchParams","URLSearchParams","trim","str","replace","isStandardBrowserEnv","navigator","product","window","document","forEach","obj","fn","i","l","length","key","Object","hasOwnProperty","merge","assignValue","arguments","deepMerge","a","b","thisArg","args","Array","apply","interceptors","InterceptorManager","response","buildURL","dispatchRequest","config","url","method","toLowerCase","chain","undefined","promise","resolve","interceptor","unshift","fulfilled","rejected","push","then","shift","getUri","params","paramsSerializer","data","encode","encodeURIComponent","serializedParams","parts","v","toISOString","JSON","stringify","join","hashmarkIndex","indexOf","slice","handlers","use","eject","h","throwIfCancellationRequested","cancelToken","throwIfRequested","transformData","headers","transformRequest","common","adapter","transformResponse","reason","reject","fns","value","__CANCEL__","setContentTypeIfUnset","getDefaultAdapter","XMLHttpRequest","process","normalizeHeaderName","DEFAULT_CONTENT_TYPE","Content-Type","parse","e","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","Accept","normalizedName","name","toUpperCase","settle","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","username","password","Authorization","btoa","fullPath","baseURL","open","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","cookies","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","send","enhanceError","message","code","error","Error","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","isAbsoluteURL","combineURLs","requestedURL","test","relativeURL","ignoreDuplicateOf","parsed","split","line","substr","concat","resolveURL","href","msie","urlParsingNode","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","originURL","userAgent","createElement","location","requestURL","write","expires","path","domain","secure","cookie","Date","toGMTString","match","RegExp","decodeURIComponent","remove","now","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","prop","axiosKeys","otherKeys","keys","filter","executor","TypeError","resolvePromise","token","source","callback","arr"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,UAAAH,GACA,gBAAAC,SACAA,QAAA,MAAAD,IAEAD,EAAA,MAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAP,WACAS,GAAAF,EACAG,QAAA,EAUA,OANAL,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,QAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KAqCA,OATAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,GAGAR,EAAA,KDgBM,SAAUL,EAAQD,EAASM,GEtDjCL,EAAAD,QAAAM,EAAA,IF4DM,SAAUL,EAAQD,EAASM,GG5DjC,YAcA,SAAAS,GAAAC,GACA,GAAAC,GAAA,GAAAC,GAAAF,GACAG,EAAAC,EAAAF,EAAAG,UAAAC,QAAAL,EAQA,OALAM,GAAAC,OAAAL,EAAAD,EAAAG,UAAAJ,GAGAM,EAAAC,OAAAL,EAAAF,GAEAE,EAtBA,GAAAI,GAAAjB,EAAA,GACAc,EAAAd,EAAA,GACAY,EAAAZ,EAAA,GACAmB,EAAAnB,EAAA,IACAoB,EAAApB,EAAA,IAsBAqB,EAAAZ,EAAAW,EAGAC,GAAAT,QAGAS,EAAAC,OAAA,SAAAC,GACA,MAAAd,GAAAU,EAAAE,EAAAD,SAAAG,KAIAF,EAAAG,OAAAxB,EAAA,IACAqB,EAAAI,YAAAzB,EAAA,IACAqB,EAAAK,SAAA1B,EAAA,GAGAqB,EAAAM,IAAA,SAAAC,GACA,MAAAC,SAAAF,IAAAC,IAEAP,EAAAS,OAAA9B,EAAA,IAEAL,EAAAD,QAAA2B,EAGA1B,EAAAD,QAAAqC,QAAAV,GHmEM,SAAU1B,EAAQD,EAASM,GIvHjC,YAgBA,SAAAgC,GAAAC,GACA,yBAAAC,EAAA7B,KAAA4B,GASA,QAAAE,GAAAF,GACA,yBAAAA,GASA,QAAAG,GAAAH,GACA,cAAAA,IAAAE,EAAAF,IAAA,OAAAA,EAAAI,cAAAF,EAAAF,EAAAI,cACA,kBAAAJ,GAAAI,YAAAD,UAAAH,EAAAI,YAAAD,SAAAH,GASA,QAAAK,GAAAL,GACA,+BAAAC,EAAA7B,KAAA4B,GASA,QAAAM,GAAAN,GACA,yBAAAO,WAAAP,YAAAO,UASA,QAAAC,GAAAR,GACA,GAAAS,EAMA,OAJAA,GADA,mBAAAC,0BAAA,OACAA,YAAAC,OAAAX,GAEA,GAAAA,EAAA,QAAAA,EAAAY,iBAAAF,aAWA,QAAAG,GAAAb,GACA,sBAAAA,GASA,QAAAc,GAAAd,GACA,sBAAAA,GASA,QAAAe,GAAAf,GACA,cAAAA,GAAA,gBAAAA,GASA,QAAAgB,GAAAhB,GACA,wBAAAC,EAAA7B,KAAA4B,GASA,QAAAiB,GAAAjB,GACA,wBAAAC,EAAA7B,KAAA4B,GASA,QAAAkB,GAAAlB,GACA,wBAAAC,EAAA7B,KAAA4B,GASA,QAAAmB,GAAAnB,GACA,4BAAAC,EAAA7B,KAAA4B,GASA,QAAAoB,GAAApB,GACA,MAAAe,GAAAf,IAAAmB,EAAAnB,EAAAqB,MASA,QAAAC,GAAAtB,GACA,yBAAAuB,kBAAAvB,YAAAuB,iBASA,QAAAC,GAAAC,GACA,MAAAA,GAAAC,QAAA,WAAAA,QAAA,WAkBA,QAAAC,KACA,0BAAAC,YAAA,gBAAAA,UAAAC,SACA,iBAAAD,UAAAC,SACA,OAAAD,UAAAC,WAIA,mBAAAC,SACA,mBAAAC,WAgBA,QAAAC,GAAAC,EAAAC,GAEA,UAAAD,GAAA,mBAAAA,GAUA,GALA,gBAAAA,KAEAA,OAGAlC,EAAAkC,GAEA,OAAAE,GAAA,EAAAC,EAAAH,EAAAI,OAAmCF,EAAAC,EAAOD,IAC1CD,EAAA9D,KAAA,KAAA6D,EAAAE,KAAAF,OAIA,QAAAK,KAAAL,GACAM,OAAAzD,UAAA0D,eAAApE,KAAA6D,EAAAK,IACAJ,EAAA9D,KAAA,KAAA6D,EAAAK,KAAAL,GAuBA,QAAAQ,KAEA,QAAAC,GAAA1C,EAAAsC,GACA,gBAAA7B,GAAA6B,IAAA,gBAAAtC,GACAS,EAAA6B,GAAAG,EAAAhC,EAAA6B,GAAAtC,GAEAS,EAAA6B,GAAAtC,EAIA,OATAS,MASA0B,EAAA,EAAAC,EAAAO,UAAAN,OAAuCF,EAAAC,EAAOD,IAC9CH,EAAAW,UAAAR,GAAAO,EAEA,OAAAjC,GAWA,QAAAmC,KAEA,QAAAF,GAAA1C,EAAAsC,GACA,gBAAA7B,GAAA6B,IAAA,gBAAAtC,GACAS,EAAA6B,GAAAM,EAAAnC,EAAA6B,GAAAtC,GACK,gBAAAA,GACLS,EAAA6B,GAAAM,KAAgC5C,GAEhCS,EAAA6B,GAAAtC,EAIA,OAXAS,MAWA0B,EAAA,EAAAC,EAAAO,UAAAN,OAAuCF,EAAAC,EAAOD,IAC9CH,EAAAW,UAAAR,GAAAO,EAEA,OAAAjC,GAWA,QAAAxB,GAAA4D,EAAAC,EAAAC,GAQA,MAPAf,GAAAc,EAAA,SAAA9C,EAAAsC,GACAS,GAAA,kBAAA/C,GACA6C,EAAAP,GAAAzD,EAAAmB,EAAA+C,GAEAF,EAAAP,GAAAtC,IAGA6C,EA5TA,GAAAhE,GAAAd,EAAA,GAMAkC,EAAAsC,OAAAzD,UAAAmB,QAyTAvC,GAAAD,SACAsC,UACAM,gBACAF,WACAG,aACAE,oBACAK,WACAC,WACAC,WACAb,cACAc,SACAC,SACAC,SACAC,aACAC,WACAE,oBACAK,uBACAK,UACAS,QACAG,YACA3D,SACAuC,SJ+HM,SAAU9D,EAAQD,GKrdxB,YAEAC,GAAAD,QAAA,SAAAyE,EAAAa,GACA,kBAEA,OADAC,GAAA,GAAAC,OAAAN,UAAAN,QACAF,EAAA,EAAmBA,EAAAa,EAAAX,OAAiBF,IACpCa,EAAAb,GAAAQ,UAAAR,EAEA,OAAAD,GAAAgB,MAAAH,EAAAC,ML8dM,SAAUtF,EAAQD,EAASM,GMtejC,YAaA,SAAAY,GAAAW,GACAzB,KAAAsB,SAAAG,EACAzB,KAAAsF,cACApE,QAAA,GAAAqE,GACAC,SAAA,GAAAD,IAfA,GAAApE,GAAAjB,EAAA,GACAuF,EAAAvF,EAAA,GACAqF,EAAArF,EAAA,GACAwF,EAAAxF,EAAA,GACAmB,EAAAnB,EAAA,GAoBAY,GAAAG,UAAAC,QAAA,SAAAyE,GAGA,gBAAAA,IACAA,EAAAb,UAAA,OACAa,EAAAC,IAAAd,UAAA,IAEAa,QAGAA,EAAAtE,EAAArB,KAAAsB,SAAAqE,GAGAA,EAAAE,OACAF,EAAAE,OAAAF,EAAAE,OAAAC,cACG9F,KAAAsB,SAAAuE,OACHF,EAAAE,OAAA7F,KAAAsB,SAAAuE,OAAAC,cAEAH,EAAAE,OAAA,KAIA,IAAAE,IAAAL,EAAAM,QACAC,EAAAlE,QAAAmE,QAAAP,EAUA,KARA3F,KAAAsF,aAAApE,QAAAiD,QAAA,SAAAgC,GACAJ,EAAAK,QAAAD,EAAAE,UAAAF,EAAAG,YAGAtG,KAAAsF,aAAAE,SAAArB,QAAA,SAAAgC,GACAJ,EAAAQ,KAAAJ,EAAAE,UAAAF,EAAAG,YAGAP,EAAAvB,QACAyB,IAAAO,KAAAT,EAAAU,QAAAV,EAAAU,QAGA,OAAAR,IAGAnF,EAAAG,UAAAyF,OAAA,SAAAf,GAEA,MADAA,GAAAtE,EAAArB,KAAAsB,SAAAqE,GACAF,EAAAE,EAAAC,IAAAD,EAAAgB,OAAAhB,EAAAiB,kBAAA/C,QAAA,WAIA1C,EAAAgD,SAAA,0CAAA0B,GAEA/E,EAAAG,UAAA4E,GAAA,SAAAD,EAAAD,GACA,MAAA3F,MAAAkB,QAAAC,EAAAyD,MAAAe,OACAE,SACAD,YAKAzE,EAAAgD,SAAA,+BAAA0B,GAEA/E,EAAAG,UAAA4E,GAAA,SAAAD,EAAAiB,EAAAlB,GACA,MAAA3F,MAAAkB,QAAAC,EAAAyD,MAAAe,OACAE,SACAD,MACAiB,aAKAhH,EAAAD,QAAAkB,GN6eM,SAAUjB,EAAQD,EAASM,GO1kBjC,YAIA,SAAA4G,GAAA3E,GACA,MAAA4E,oBAAA5E,GACA0B,QAAA,aACAA,QAAA,aACAA,QAAA,YACAA,QAAA,aACAA,QAAA,YACAA,QAAA,aACAA,QAAA,aAVA,GAAA1C,GAAAjB,EAAA,EAoBAL,GAAAD,QAAA,SAAAgG,EAAAe,EAAAC,GAEA,IAAAD,EACA,MAAAf,EAGA,IAAAoB,EACA,IAAAJ,EACAI,EAAAJ,EAAAD,OACG,IAAAxF,EAAAsC,kBAAAkD,GACHK,EAAAL,EAAAvE,eACG,CACH,GAAA6E,KAEA9F,GAAAgD,QAAAwC,EAAA,SAAAxE,EAAAsC,GACA,OAAAtC,GAAA,mBAAAA,KAIAhB,EAAAe,QAAAC,GACAsC,GAAA,KAEAtC,MAGAhB,EAAAgD,QAAAhC,EAAA,SAAA+E,GACA/F,EAAAgC,OAAA+D,GACAA,IAAAC,cACShG,EAAA+B,SAAAgE,KACTA,EAAAE,KAAAC,UAAAH,IAEAD,EAAAV,KAAAO,EAAArC,GAAA,IAAAqC,EAAAI,SAIAF,EAAAC,EAAAK,KAAA,KAGA,GAAAN,EAAA,CACA,GAAAO,GAAA3B,EAAA4B,QAAA,IACAD,MAAA,IACA3B,IAAA6B,MAAA,EAAAF,IAGA3B,MAAA4B,QAAA,mBAAAR,EAGA,MAAApB,KPklBM,SAAU/F,EAAQD,EAASM,GQvpBjC,YAIA,SAAAqF,KACAvF,KAAA0H,YAHA,GAAAvG,GAAAjB,EAAA,EAcAqF,GAAAtE,UAAA0G,IAAA,SAAAtB,EAAAC,GAKA,MAJAtG,MAAA0H,SAAAnB,MACAF,YACAC,aAEAtG,KAAA0H,SAAAlD,OAAA,GAQAe,EAAAtE,UAAA2G,MAAA,SAAAvH,GACAL,KAAA0H,SAAArH,KACAL,KAAA0H,SAAArH,GAAA,OAYAkF,EAAAtE,UAAAkD,QAAA,SAAAE,GACAlD,EAAAgD,QAAAnE,KAAA0H,SAAA,SAAAG,GACA,OAAAA,GACAxD,EAAAwD,MAKAhI,EAAAD,QAAA2F,GR8pBM,SAAU1F,EAAQD,EAASM,GSjtBjC,YAUA,SAAA4H,GAAAnC,GACAA,EAAAoC,aACApC,EAAAoC,YAAAC,mBAVA,GAAA7G,GAAAjB,EAAA,GACA+H,EAAA/H,EAAA,GACA0B,EAAA1B,EAAA,GACAoB,EAAApB,EAAA,GAiBAL,GAAAD,QAAA,SAAA+F,GACAmC,EAAAnC,GAGAA,EAAAuC,QAAAvC,EAAAuC,YAGAvC,EAAAkB,KAAAoB,EACAtC,EAAAkB,KACAlB,EAAAuC,QACAvC,EAAAwC,kBAIAxC,EAAAuC,QAAA/G,EAAAyD,MACAe,EAAAuC,QAAAE,WACAzC,EAAAuC,QAAAvC,EAAAE,YACAF,EAAAuC,SAGA/G,EAAAgD,SACA,qDACA,SAAA0B,SACAF,GAAAuC,QAAArC,IAIA,IAAAwC,GAAA1C,EAAA0C,SAAA/G,EAAA+G,OAEA,OAAAA,GAAA1C,GAAAa,KAAA,SAAAhB,GAUA,MATAsC,GAAAnC,GAGAH,EAAAqB,KAAAoB,EACAzC,EAAAqB,KACArB,EAAA0C,QACAvC,EAAA2C,mBAGA9C,GACG,SAAA+C,GAcH,MAbA3G,GAAA2G,KACAT,EAAAnC,GAGA4C,KAAA/C,WACA+C,EAAA/C,SAAAqB,KAAAoB,EACAM,EAAA/C,SAAAqB,KACA0B,EAAA/C,SAAA0C,QACAvC,EAAA2C,qBAKAvG,QAAAyG,OAAAD,OT0tBM,SAAU1I,EAAQD,EAASM,GUtyBjC,YAEA,IAAAiB,GAAAjB,EAAA,EAUAL,GAAAD,QAAA,SAAAiH,EAAAqB,EAAAO,GAMA,MAJAtH,GAAAgD,QAAAsE,EAAA,SAAApE,GACAwC,EAAAxC,EAAAwC,EAAAqB,KAGArB,IV8yBM,SAAUhH,EAAQD,GWh0BxB,YAEAC,GAAAD,QAAA,SAAA8I,GACA,SAAAA,MAAAC,cXw0BM,SAAU9I,EAAQD,EAASM,GY30BjC,YASA,SAAA0I,GAAAV,EAAAQ,IACAvH,EAAAkB,YAAA6F,IAAA/G,EAAAkB,YAAA6F,EAAA,mBACAA,EAAA,gBAAAQ,GAIA,QAAAG,KACA,GAAAR,EAQA,OAPA,mBAAAS,gBAEAT,EAAAnI,EAAA,IACG,mBAAA6I,UAAA,qBAAArE,OAAAzD,UAAAmB,SAAA7B,KAAAwI,WAEHV,EAAAnI,EAAA,KAEAmI,EAtBA,GAAAlH,GAAAjB,EAAA,GACA8I,EAAA9I,EAAA,IAEA+I,GACAC,eAAA,qCAqBA5H,GACA+G,QAAAQ,IAEAV,kBAAA,SAAAtB,EAAAqB,GAGA,MAFAc,GAAAd,EAAA,UACAc,EAAAd,EAAA,gBACA/G,EAAAsB,WAAAoE,IACA1F,EAAAqB,cAAAqE,IACA1F,EAAAmB,SAAAuE,IACA1F,EAAAoC,SAAAsD,IACA1F,EAAAiC,OAAAyD,IACA1F,EAAAkC,OAAAwD,GAEAA,EAEA1F,EAAAwB,kBAAAkE,GACAA,EAAA9D,OAEA5B,EAAAsC,kBAAAoD,IACA+B,EAAAV,EAAA,mDACArB,EAAAzE,YAEAjB,EAAA+B,SAAA2D,IACA+B,EAAAV,EAAA,kCACAd,KAAAC,UAAAR,IAEAA,IAGAyB,mBAAA,SAAAzB,GAEA,mBAAAA,GACA,IACAA,EAAAO,KAAA+B,MAAAtC,GACO,MAAAuC,IAEP,MAAAvC,KAOAwC,QAAA,EAEAC,eAAA,aACAC,eAAA,eAEAC,kBAAA,EAEAC,eAAA,SAAAC,GACA,MAAAA,IAAA,KAAAA,EAAA,KAIApI,GAAA4G,SACAE,QACAuB,OAAA,sCAIAxI,EAAAgD,SAAA,gCAAA0B,GACAvE,EAAA4G,QAAArC,QAGA1E,EAAAgD,SAAA,+BAAA0B,GACAvE,EAAA4G,QAAArC,GAAA1E,EAAAyD,MAAAqE,KAGApJ,EAAAD,QAAA0B,GZk1BM,SAAUzB,EAAQD,EAASM,Gal7BjC,YAEA,IAAAiB,GAAAjB,EAAA,EAEAL,GAAAD,QAAA,SAAAsI,EAAA0B,GACAzI,EAAAgD,QAAA+D,EAAA,SAAAQ,EAAAmB,GACAA,IAAAD,GAAAC,EAAAC,gBAAAF,EAAAE,gBACA5B,EAAA0B,GAAAlB,QACAR,GAAA2B,Qb47BM,SAAUhK,EAAQD,EAASM,Gcp8BjC,YAEA,IAAAiB,GAAAjB,EAAA,GACA6J,EAAA7J,EAAA,IACAuF,EAAAvF,EAAA,GACA8J,EAAA9J,EAAA,IACA+J,EAAA/J,EAAA,IACAgK,EAAAhK,EAAA,IACAiK,EAAAjK,EAAA,GAEAL,GAAAD,QAAA,SAAA+F,GACA,UAAA5D,SAAA,SAAAmE,EAAAsC,GACA,GAAA4B,GAAAzE,EAAAkB,KACAwD,EAAA1E,EAAAuC,OAEA/G,GAAAsB,WAAA2H,UACAC,GAAA,eAGA,IAAAnJ,GAAA,GAAA4H,eAGA,IAAAnD,EAAA2E,KAAA,CACA,GAAAC,GAAA5E,EAAA2E,KAAAC,UAAA,GACAC,EAAA7E,EAAA2E,KAAAE,UAAA,EACAH,GAAAI,cAAA,SAAAC,KAAAH,EAAA,IAAAC,GAGA,GAAAG,GAAAX,EAAArE,EAAAiF,QAAAjF,EAAAC,IA4EA,IA3EA1E,EAAA2J,KAAAlF,EAAAE,OAAAiE,cAAArE,EAAAkF,EAAAhF,EAAAgB,OAAAhB,EAAAiB,mBAAA,GAGA1F,EAAAmI,QAAA1D,EAAA0D,QAGAnI,EAAA4J,mBAAA,WACA,GAAA5J,GAAA,IAAAA,EAAA6J,aAQA,IAAA7J,EAAAwI,QAAAxI,EAAA8J,aAAA,IAAA9J,EAAA8J,YAAAxD,QAAA,WAKA,GAAAyD,GAAA,yBAAA/J,GAAA+I,EAAA/I,EAAAgK,yBAAA,KACAC,EAAAxF,EAAAyF,cAAA,SAAAzF,EAAAyF,aAAAlK,EAAAsE,SAAAtE,EAAAmK,aACA7F,GACAqB,KAAAsE,EACAzB,OAAAxI,EAAAwI,OACA4B,WAAApK,EAAAoK,WACApD,QAAA+C,EACAtF,SACAzE,UAGA6I,GAAA7D,EAAAsC,EAAAhD,GAGAtE,EAAA,OAIAA,EAAAqK,QAAA,WACArK,IAIAsH,EAAA2B,EAAA,kBAAAxE,EAAA,eAAAzE,IAGAA,EAAA,OAIAA,EAAAsK,QAAA,WAGAhD,EAAA2B,EAAA,gBAAAxE,EAAA,KAAAzE,IAGAA,EAAA,MAIAA,EAAAuK,UAAA,WACA,GAAAC,GAAA,cAAA/F,EAAA0D,QAAA,aACA1D,GAAA+F,sBACAA,EAAA/F,EAAA+F,qBAEAlD,EAAA2B,EAAAuB,EAAA/F,EAAA,eACAzE,IAGAA,EAAA,MAMAC,EAAA2C,uBAAA,CACA,GAAA6H,GAAAzL,EAAA,IAGA0L,GAAAjG,EAAAkG,iBAAA3B,EAAAS,KAAAhF,EAAA2D,eACAqC,EAAAG,KAAAnG,EAAA2D,gBACAtD,MAEA4F,KACAvB,EAAA1E,EAAA4D,gBAAAqC,GAuBA,GAlBA,oBAAA1K,IACAC,EAAAgD,QAAAkG,EAAA,SAAAlI,EAAAsC,GACA,mBAAA2F,IAAA,iBAAA3F,EAAAqB,oBAEAuE,GAAA5F,GAGAvD,EAAA6K,iBAAAtH,EAAAtC,KAMAhB,EAAAkB,YAAAsD,EAAAkG,mBACA3K,EAAA2K,kBAAAlG,EAAAkG,iBAIAlG,EAAAyF,aACA,IACAlK,EAAAkK,aAAAzF,EAAAyF,aACO,MAAAhC,GAGP,YAAAzD,EAAAyF,aACA,KAAAhC,GAMA,kBAAAzD,GAAAqG,oBACA9K,EAAA+K,iBAAA,WAAAtG,EAAAqG,oBAIA,kBAAArG,GAAAuG,kBAAAhL,EAAAiL,QACAjL,EAAAiL,OAAAF,iBAAA,WAAAtG,EAAAuG,kBAGAvG,EAAAoC,aAEApC,EAAAoC,YAAA9B,QAAAO,KAAA,SAAA4F,GACAlL,IAIAA,EAAAmL,QACA7D,EAAA4D,GAEAlL,EAAA,QAIA8E,SAAAoE,IACAA,EAAA,MAIAlJ,EAAAoL,KAAAlC,Od68BM,SAAUvK,EAAQD,EAASM,Ge9nCjC,YAEA,IAAAiK,GAAAjK,EAAA,GASAL,GAAAD,QAAA,SAAAsG,EAAAsC,EAAAhD,GACA,GAAAiE,GAAAjE,EAAAG,OAAA8D,gBACAA,KAAAjE,EAAAkE,QACAxD,EAAAV,GAEAgD,EAAA2B,EACA,mCAAA3E,EAAAkE,OACAlE,EAAAG,OACA,KACAH,EAAAtE,QACAsE,MfwoCM,SAAU3F,EAAQD,EAASM,GgB7pCjC,YAEA,IAAAqM,GAAArM,EAAA,GAYAL,GAAAD,QAAA,SAAA4M,EAAA7G,EAAA8G,EAAAvL,EAAAsE,GACA,GAAAkH,GAAA,GAAAC,OAAAH,EACA,OAAAD,GAAAG,EAAA/G,EAAA8G,EAAAvL,EAAAsE,KhBqqCM,SAAU3F,EAAQD,GiBrrCxB,YAYAC,GAAAD,QAAA,SAAA8M,EAAA/G,EAAA8G,EAAAvL,EAAAsE,GA4BA,MA3BAkH,GAAA/G,SACA8G,IACAC,EAAAD,QAGAC,EAAAxL,UACAwL,EAAAlH,WACAkH,EAAAE,cAAA,EAEAF,EAAAG,OAAA,WACA,OAEAL,QAAAxM,KAAAwM,QACA3C,KAAA7J,KAAA6J,KAEAiD,YAAA9M,KAAA8M,YACAC,OAAA/M,KAAA+M,OAEAC,SAAAhN,KAAAgN,SACAC,WAAAjN,KAAAiN,WACAC,aAAAlN,KAAAkN,aACAC,MAAAnN,KAAAmN,MAEAxH,OAAA3F,KAAA2F,OACA8G,KAAAzM,KAAAyM,OAGAC,IjB6rCM,SAAU7M,EAAQD,EAASM,GkBruCjC,YAEA,IAAAkN,GAAAlN,EAAA,IACAmN,EAAAnN,EAAA,GAWAL,GAAAD,QAAA,SAAAgL,EAAA0C,GACA,MAAA1C,KAAAwC,EAAAE,GACAD,EAAAzC,EAAA0C,GAEAA,IlB6uCM,SAAUzN,EAAQD,GmB/vCxB,YAQAC,GAAAD,QAAA,SAAAgG,GAIA,sCAAA2H,KAAA3H,KnBuwCM,SAAU/F,EAAQD,GoBnxCxB,YASAC,GAAAD,QAAA,SAAAgL,EAAA4C,GACA,MAAAA,GACA5C,EAAA/G,QAAA,eAAA2J,EAAA3J,QAAA,WACA+G,IpB2xCM,SAAU/K,EAAQD,EAASM,GqBvyCjC,YAEA,IAAAiB,GAAAjB,EAAA,GAIAuN,GACA,6DACA,kEACA,gEACA,qCAgBA5N,GAAAD,QAAA,SAAAsI,GACA,GACAzD,GACAtC,EACAmC,EAHAoJ,IAKA,OAAAxF,IAEA/G,EAAAgD,QAAA+D,EAAAyF,MAAA,eAAAC,GAKA,GAJAtJ,EAAAsJ,EAAApG,QAAA,KACA/C,EAAAtD,EAAAwC,KAAAiK,EAAAC,OAAA,EAAAvJ,IAAAwB,cACA3D,EAAAhB,EAAAwC,KAAAiK,EAAAC,OAAAvJ,EAAA,IAEAG,EAAA,CACA,GAAAiJ,EAAAjJ,IAAAgJ,EAAAjG,QAAA/C,IAAA,EACA,MAEA,gBAAAA,EACAiJ,EAAAjJ,IAAAiJ,EAAAjJ,GAAAiJ,EAAAjJ,OAAAqJ,QAAA3L,IAEAuL,EAAAjJ,GAAAiJ,EAAAjJ,GAAAiJ,EAAAjJ,GAAA,KAAAtC,OAKAuL,GAnBiBA,IrBk0CX,SAAU7N,EAAQD,EAASM,GsBl2CjC,YAEA,IAAAiB,GAAAjB,EAAA,EAEAL,GAAAD,QACAuB,EAAA2C,uBAIA,WAWA,QAAAiK,GAAAnI,GACA,GAAAoI,GAAApI,CAWA,OATAqI,KAEAC,EAAAC,aAAA,OAAAH,GACAA,EAAAE,EAAAF,MAGAE,EAAAC,aAAA,OAAAH,IAIAA,KAAAE,EAAAF,KACAI,SAAAF,EAAAE,SAAAF,EAAAE,SAAAvK,QAAA,YACAwK,KAAAH,EAAAG,KACAC,OAAAJ,EAAAI,OAAAJ,EAAAI,OAAAzK,QAAA,aACA0K,KAAAL,EAAAK,KAAAL,EAAAK,KAAA1K,QAAA,YACA2K,SAAAN,EAAAM,SACAC,KAAAP,EAAAO,KACAC,SAAA,MAAAR,EAAAQ,SAAAC,OAAA,GACAT,EAAAQ,SACA,IAAAR,EAAAQ,UAhCA,GAEAE,GAFAX,EAAA,kBAAAV,KAAAxJ,UAAA8K,WACAX,EAAAhK,SAAA4K,cAAA,IA2CA,OARAF,GAAAb,EAAA9J,OAAA8K,SAAAf,MAQA,SAAAgB,GACA,GAAAtB,GAAAvM,EAAA6B,SAAAgM,GAAAjB,EAAAiB,IACA,OAAAtB,GAAAU,WAAAQ,EAAAR,UACAV,EAAAW,OAAAO,EAAAP,SAKA,WACA,kBACA,ctB42CM,SAAUxO,EAAQD,EAASM,GuB56CjC,YAEA,IAAAiB,GAAAjB,EAAA,EAEAL,GAAAD,QACAuB,EAAA2C,uBAGA,WACA,OACAmL,MAAA,SAAApF,EAAAnB,EAAAwG,EAAAC,EAAAC,EAAAC,GACA,GAAAC,KACAA,GAAA/I,KAAAsD,EAAA,IAAA9C,mBAAA2B,IAEAvH,EAAA8B,SAAAiM,IACAI,EAAA/I,KAAA,cAAAgJ,MAAAL,GAAAM,eAGArO,EAAA6B,SAAAmM,IACAG,EAAA/I,KAAA,QAAA4I,GAGAhO,EAAA6B,SAAAoM,IACAE,EAAA/I,KAAA,UAAA6I,GAGAC,KAAA,GACAC,EAAA/I,KAAA,UAGArC,SAAAoL,SAAAhI,KAAA,OAGAwE,KAAA,SAAAjC,GACA,GAAA4F,GAAAvL,SAAAoL,OAAAG,MAAA,GAAAC,QAAA,aAA4D7F,EAAA,aAC5D,OAAA4F,GAAAE,mBAAAF,EAAA,UAGAG,OAAA,SAAA/F,GACA7J,KAAAiP,MAAApF,EAAA,GAAA0F,KAAAM,MAAA,YAMA,WACA,OACAZ,MAAA,aACAnD,KAAA,WAA+B,aAC/B8D,OAAA,kBvBs7CM,SAAU/P,EAAQD,EAASM,GwBv+CjC,YAEA,IAAAiB,GAAAjB,EAAA,EAUAL,GAAAD,QAAA,SAAAkQ,EAAAC,GAEAA,OACA,IAAApK,MAEAqK,GAAA,gCACAC,GAAA,0BACAC,GACA,0EACA,sEACA,yDACA,+DACA,wCAGA/O,GAAAgD,QAAA6L,EAAA,SAAAG,GACA,mBAAAJ,GAAAI,KACAxK,EAAAwK,GAAAJ,EAAAI,MAIAhP,EAAAgD,QAAA8L,EAAA,SAAAE,GACAhP,EAAA+B,SAAA6M,EAAAI,IACAxK,EAAAwK,GAAAhP,EAAA4D,UAAA+K,EAAAK,GAAAJ,EAAAI,IACK,mBAAAJ,GAAAI,GACLxK,EAAAwK,GAAAJ,EAAAI,GACKhP,EAAA+B,SAAA4M,EAAAK,IACLxK,EAAAwK,GAAAhP,EAAA4D,UAAA+K,EAAAK,IACK,mBAAAL,GAAAK,KACLxK,EAAAwK,GAAAL,EAAAK,MAIAhP,EAAAgD,QAAA+L,EAAA,SAAAC,GACA,mBAAAJ,GAAAI,GACAxK,EAAAwK,GAAAJ,EAAAI,GACK,mBAAAL,GAAAK,KACLxK,EAAAwK,GAAAL,EAAAK,KAIA,IAAAC,GAAAJ,EACAlC,OAAAmC,GACAnC,OAAAoC,GAEAG,EAAA3L,OACA4L,KAAAP,GACAQ,OAAA,SAAA9L,GACA,MAAA2L,GAAA5I,QAAA/C,MAAA,GAWA,OARAtD,GAAAgD,QAAAkM,EAAA,SAAAF,GACA,mBAAAJ,GAAAI,GACAxK,EAAAwK,GAAAJ,EAAAI,GACK,mBAAAL,GAAAK,KACLxK,EAAAwK,GAAAL,EAAAK,MAIAxK,IxB++CM,SAAU9F,EAAQD,GyBtjDxB,YAQA,SAAA8B,GAAA8K,GACAxM,KAAAwM,UAGA9K,EAAAT,UAAAmB,SAAA,WACA,gBAAApC,KAAAwM,QAAA,KAAAxM,KAAAwM,QAAA,KAGA9K,EAAAT,UAAA0H,YAAA,EAEA9I,EAAAD,QAAA8B,GzB6jDM,SAAU7B,EAAQD,EAASM,G0B/kDjC,YAUA,SAAAyB,GAAA6O,GACA,qBAAAA,GACA,SAAAC,WAAA,+BAGA,IAAAC,EACA1Q,MAAAiG,QAAA,GAAAlE,SAAA,SAAAmE,GACAwK,EAAAxK,GAGA,IAAAyK,GAAA3Q,IACAwQ,GAAA,SAAAhE,GACAmE,EAAApI,SAKAoI,EAAApI,OAAA,GAAA7G,GAAA8K,GACAkE,EAAAC,EAAApI,WA1BA,GAAA7G,GAAAxB,EAAA,GAiCAyB,GAAAV,UAAA+G,iBAAA,WACA,GAAAhI,KAAAuI,OACA,KAAAvI,MAAAuI,QAQA5G,EAAAiP,OAAA,WACA,GAAAxE,GACAuE,EAAA,GAAAhP,GAAA,SAAAlB,GACA2L,EAAA3L,GAEA,QACAkQ,QACAvE,WAIAvM,EAAAD,QAAA+B,G1BslDM,SAAU9B,EAAQD,G2B9oDxB,YAsBAC,GAAAD,QAAA,SAAAiR,GACA,gBAAAC,GACA,MAAAD,GAAAxL,MAAA,KAAAyL","file":"axios.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1);\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar bind = __webpack_require__(3);\n\tvar Axios = __webpack_require__(4);\n\tvar mergeConfig = __webpack_require__(22);\n\tvar defaults = __webpack_require__(10);\n\t\n\t/**\n\t * Create an instance of Axios\n\t *\n\t * @param {Object} defaultConfig The default config for the instance\n\t * @return {Axios} A new instance of Axios\n\t */\n\tfunction createInstance(defaultConfig) {\n\t var context = new Axios(defaultConfig);\n\t var instance = bind(Axios.prototype.request, context);\n\t\n\t // Copy axios.prototype to instance\n\t utils.extend(instance, Axios.prototype, context);\n\t\n\t // Copy context to instance\n\t utils.extend(instance, context);\n\t\n\t return instance;\n\t}\n\t\n\t// Create the default instance to be exported\n\tvar axios = createInstance(defaults);\n\t\n\t// Expose Axios class to allow class inheritance\n\taxios.Axios = Axios;\n\t\n\t// Factory for creating new instances\n\taxios.create = function create(instanceConfig) {\n\t return createInstance(mergeConfig(axios.defaults, instanceConfig));\n\t};\n\t\n\t// Expose Cancel & CancelToken\n\taxios.Cancel = __webpack_require__(23);\n\taxios.CancelToken = __webpack_require__(24);\n\taxios.isCancel = __webpack_require__(9);\n\t\n\t// Expose all/spread\n\taxios.all = function all(promises) {\n\t return Promise.all(promises);\n\t};\n\taxios.spread = __webpack_require__(25);\n\t\n\tmodule.exports = axios;\n\t\n\t// Allow use of default import syntax in TypeScript\n\tmodule.exports.default = axios;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar bind = __webpack_require__(3);\n\t\n\t/*global toString:true*/\n\t\n\t// utils is a library of generic helper functions non-specific to axios\n\t\n\tvar toString = Object.prototype.toString;\n\t\n\t/**\n\t * Determine if a value is an Array\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an Array, otherwise false\n\t */\n\tfunction isArray(val) {\n\t return toString.call(val) === '[object Array]';\n\t}\n\t\n\t/**\n\t * Determine if a value is undefined\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if the value is undefined, otherwise false\n\t */\n\tfunction isUndefined(val) {\n\t return typeof val === 'undefined';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Buffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Buffer, otherwise false\n\t */\n\tfunction isBuffer(val) {\n\t return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n\t && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n\t}\n\t\n\t/**\n\t * Determine if a value is an ArrayBuffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n\t */\n\tfunction isArrayBuffer(val) {\n\t return toString.call(val) === '[object ArrayBuffer]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a FormData\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an FormData, otherwise false\n\t */\n\tfunction isFormData(val) {\n\t return (typeof FormData !== 'undefined') && (val instanceof FormData);\n\t}\n\t\n\t/**\n\t * Determine if a value is a view on an ArrayBuffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n\t */\n\tfunction isArrayBufferView(val) {\n\t var result;\n\t if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n\t result = ArrayBuffer.isView(val);\n\t } else {\n\t result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Determine if a value is a String\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a String, otherwise false\n\t */\n\tfunction isString(val) {\n\t return typeof val === 'string';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Number\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Number, otherwise false\n\t */\n\tfunction isNumber(val) {\n\t return typeof val === 'number';\n\t}\n\t\n\t/**\n\t * Determine if a value is an Object\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an Object, otherwise false\n\t */\n\tfunction isObject(val) {\n\t return val !== null && typeof val === 'object';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Date\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Date, otherwise false\n\t */\n\tfunction isDate(val) {\n\t return toString.call(val) === '[object Date]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a File\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a File, otherwise false\n\t */\n\tfunction isFile(val) {\n\t return toString.call(val) === '[object File]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Blob\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Blob, otherwise false\n\t */\n\tfunction isBlob(val) {\n\t return toString.call(val) === '[object Blob]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Function\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Function, otherwise false\n\t */\n\tfunction isFunction(val) {\n\t return toString.call(val) === '[object Function]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Stream\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Stream, otherwise false\n\t */\n\tfunction isStream(val) {\n\t return isObject(val) && isFunction(val.pipe);\n\t}\n\t\n\t/**\n\t * Determine if a value is a URLSearchParams object\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n\t */\n\tfunction isURLSearchParams(val) {\n\t return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n\t}\n\t\n\t/**\n\t * Trim excess whitespace off the beginning and end of a string\n\t *\n\t * @param {String} str The String to trim\n\t * @returns {String} The String freed of excess whitespace\n\t */\n\tfunction trim(str) {\n\t return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n\t}\n\t\n\t/**\n\t * Determine if we're running in a standard browser environment\n\t *\n\t * This allows axios to run in a web worker, and react-native.\n\t * Both environments support XMLHttpRequest, but not fully standard globals.\n\t *\n\t * web workers:\n\t * typeof window -> undefined\n\t * typeof document -> undefined\n\t *\n\t * react-native:\n\t * navigator.product -> 'ReactNative'\n\t * nativescript\n\t * navigator.product -> 'NativeScript' or 'NS'\n\t */\n\tfunction isStandardBrowserEnv() {\n\t if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n\t navigator.product === 'NativeScript' ||\n\t navigator.product === 'NS')) {\n\t return false;\n\t }\n\t return (\n\t typeof window !== 'undefined' &&\n\t typeof document !== 'undefined'\n\t );\n\t}\n\t\n\t/**\n\t * Iterate over an Array or an Object invoking a function for each item.\n\t *\n\t * If `obj` is an Array callback will be called passing\n\t * the value, index, and complete array for each item.\n\t *\n\t * If 'obj' is an Object callback will be called passing\n\t * the value, key, and complete object for each property.\n\t *\n\t * @param {Object|Array} obj The object to iterate\n\t * @param {Function} fn The callback to invoke for each item\n\t */\n\tfunction forEach(obj, fn) {\n\t // Don't bother if no value provided\n\t if (obj === null || typeof obj === 'undefined') {\n\t return;\n\t }\n\t\n\t // Force an array if not already something iterable\n\t if (typeof obj !== 'object') {\n\t /*eslint no-param-reassign:0*/\n\t obj = [obj];\n\t }\n\t\n\t if (isArray(obj)) {\n\t // Iterate over array values\n\t for (var i = 0, l = obj.length; i < l; i++) {\n\t fn.call(null, obj[i], i, obj);\n\t }\n\t } else {\n\t // Iterate over object keys\n\t for (var key in obj) {\n\t if (Object.prototype.hasOwnProperty.call(obj, key)) {\n\t fn.call(null, obj[key], key, obj);\n\t }\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * Accepts varargs expecting each argument to be an object, then\n\t * immutably merges the properties of each object and returns result.\n\t *\n\t * When multiple objects contain the same key the later object in\n\t * the arguments list will take precedence.\n\t *\n\t * Example:\n\t *\n\t * ```js\n\t * var result = merge({foo: 123}, {foo: 456});\n\t * console.log(result.foo); // outputs 456\n\t * ```\n\t *\n\t * @param {Object} obj1 Object to merge\n\t * @returns {Object} Result of all merge properties\n\t */\n\tfunction merge(/* obj1, obj2, obj3, ... */) {\n\t var result = {};\n\t function assignValue(val, key) {\n\t if (typeof result[key] === 'object' && typeof val === 'object') {\n\t result[key] = merge(result[key], val);\n\t } else {\n\t result[key] = val;\n\t }\n\t }\n\t\n\t for (var i = 0, l = arguments.length; i < l; i++) {\n\t forEach(arguments[i], assignValue);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Function equal to merge with the difference being that no reference\n\t * to original objects is kept.\n\t *\n\t * @see merge\n\t * @param {Object} obj1 Object to merge\n\t * @returns {Object} Result of all merge properties\n\t */\n\tfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n\t var result = {};\n\t function assignValue(val, key) {\n\t if (typeof result[key] === 'object' && typeof val === 'object') {\n\t result[key] = deepMerge(result[key], val);\n\t } else if (typeof val === 'object') {\n\t result[key] = deepMerge({}, val);\n\t } else {\n\t result[key] = val;\n\t }\n\t }\n\t\n\t for (var i = 0, l = arguments.length; i < l; i++) {\n\t forEach(arguments[i], assignValue);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Extends object a by mutably adding to it the properties of object b.\n\t *\n\t * @param {Object} a The object to be extended\n\t * @param {Object} b The object to copy properties from\n\t * @param {Object} thisArg The object to bind function to\n\t * @return {Object} The resulting value of object a\n\t */\n\tfunction extend(a, b, thisArg) {\n\t forEach(b, function assignValue(val, key) {\n\t if (thisArg && typeof val === 'function') {\n\t a[key] = bind(val, thisArg);\n\t } else {\n\t a[key] = val;\n\t }\n\t });\n\t return a;\n\t}\n\t\n\tmodule.exports = {\n\t isArray: isArray,\n\t isArrayBuffer: isArrayBuffer,\n\t isBuffer: isBuffer,\n\t isFormData: isFormData,\n\t isArrayBufferView: isArrayBufferView,\n\t isString: isString,\n\t isNumber: isNumber,\n\t isObject: isObject,\n\t isUndefined: isUndefined,\n\t isDate: isDate,\n\t isFile: isFile,\n\t isBlob: isBlob,\n\t isFunction: isFunction,\n\t isStream: isStream,\n\t isURLSearchParams: isURLSearchParams,\n\t isStandardBrowserEnv: isStandardBrowserEnv,\n\t forEach: forEach,\n\t merge: merge,\n\t deepMerge: deepMerge,\n\t extend: extend,\n\t trim: trim\n\t};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = function bind(fn, thisArg) {\n\t return function wrap() {\n\t var args = new Array(arguments.length);\n\t for (var i = 0; i < args.length; i++) {\n\t args[i] = arguments[i];\n\t }\n\t return fn.apply(thisArg, args);\n\t };\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar buildURL = __webpack_require__(5);\n\tvar InterceptorManager = __webpack_require__(6);\n\tvar dispatchRequest = __webpack_require__(7);\n\tvar mergeConfig = __webpack_require__(22);\n\t\n\t/**\n\t * Create a new instance of Axios\n\t *\n\t * @param {Object} instanceConfig The default config for the instance\n\t */\n\tfunction Axios(instanceConfig) {\n\t this.defaults = instanceConfig;\n\t this.interceptors = {\n\t request: new InterceptorManager(),\n\t response: new InterceptorManager()\n\t };\n\t}\n\t\n\t/**\n\t * Dispatch a request\n\t *\n\t * @param {Object} config The config specific for this request (merged with this.defaults)\n\t */\n\tAxios.prototype.request = function request(config) {\n\t /*eslint no-param-reassign:0*/\n\t // Allow for axios('example/url'[, config]) a la fetch API\n\t if (typeof config === 'string') {\n\t config = arguments[1] || {};\n\t config.url = arguments[0];\n\t } else {\n\t config = config || {};\n\t }\n\t\n\t config = mergeConfig(this.defaults, config);\n\t\n\t // Set config.method\n\t if (config.method) {\n\t config.method = config.method.toLowerCase();\n\t } else if (this.defaults.method) {\n\t config.method = this.defaults.method.toLowerCase();\n\t } else {\n\t config.method = 'get';\n\t }\n\t\n\t // Hook up interceptors middleware\n\t var chain = [dispatchRequest, undefined];\n\t var promise = Promise.resolve(config);\n\t\n\t this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n\t chain.unshift(interceptor.fulfilled, interceptor.rejected);\n\t });\n\t\n\t this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n\t chain.push(interceptor.fulfilled, interceptor.rejected);\n\t });\n\t\n\t while (chain.length) {\n\t promise = promise.then(chain.shift(), chain.shift());\n\t }\n\t\n\t return promise;\n\t};\n\t\n\tAxios.prototype.getUri = function getUri(config) {\n\t config = mergeConfig(this.defaults, config);\n\t return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n\t};\n\t\n\t// Provide aliases for supported request methods\n\tutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n\t /*eslint func-names:0*/\n\t Axios.prototype[method] = function(url, config) {\n\t return this.request(utils.merge(config || {}, {\n\t method: method,\n\t url: url\n\t }));\n\t };\n\t});\n\t\n\tutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n\t /*eslint func-names:0*/\n\t Axios.prototype[method] = function(url, data, config) {\n\t return this.request(utils.merge(config || {}, {\n\t method: method,\n\t url: url,\n\t data: data\n\t }));\n\t };\n\t});\n\t\n\tmodule.exports = Axios;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tfunction encode(val) {\n\t return encodeURIComponent(val).\n\t replace(/%40/gi, '@').\n\t replace(/%3A/gi, ':').\n\t replace(/%24/g, '$').\n\t replace(/%2C/gi, ',').\n\t replace(/%20/g, '+').\n\t replace(/%5B/gi, '[').\n\t replace(/%5D/gi, ']');\n\t}\n\t\n\t/**\n\t * Build a URL by appending params to the end\n\t *\n\t * @param {string} url The base of the url (e.g., http://www.google.com)\n\t * @param {object} [params] The params to be appended\n\t * @returns {string} The formatted url\n\t */\n\tmodule.exports = function buildURL(url, params, paramsSerializer) {\n\t /*eslint no-param-reassign:0*/\n\t if (!params) {\n\t return url;\n\t }\n\t\n\t var serializedParams;\n\t if (paramsSerializer) {\n\t serializedParams = paramsSerializer(params);\n\t } else if (utils.isURLSearchParams(params)) {\n\t serializedParams = params.toString();\n\t } else {\n\t var parts = [];\n\t\n\t utils.forEach(params, function serialize(val, key) {\n\t if (val === null || typeof val === 'undefined') {\n\t return;\n\t }\n\t\n\t if (utils.isArray(val)) {\n\t key = key + '[]';\n\t } else {\n\t val = [val];\n\t }\n\t\n\t utils.forEach(val, function parseValue(v) {\n\t if (utils.isDate(v)) {\n\t v = v.toISOString();\n\t } else if (utils.isObject(v)) {\n\t v = JSON.stringify(v);\n\t }\n\t parts.push(encode(key) + '=' + encode(v));\n\t });\n\t });\n\t\n\t serializedParams = parts.join('&');\n\t }\n\t\n\t if (serializedParams) {\n\t var hashmarkIndex = url.indexOf('#');\n\t if (hashmarkIndex !== -1) {\n\t url = url.slice(0, hashmarkIndex);\n\t }\n\t\n\t url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n\t }\n\t\n\t return url;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tfunction InterceptorManager() {\n\t this.handlers = [];\n\t}\n\t\n\t/**\n\t * Add a new interceptor to the stack\n\t *\n\t * @param {Function} fulfilled The function to handle `then` for a `Promise`\n\t * @param {Function} rejected The function to handle `reject` for a `Promise`\n\t *\n\t * @return {Number} An ID used to remove interceptor later\n\t */\n\tInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n\t this.handlers.push({\n\t fulfilled: fulfilled,\n\t rejected: rejected\n\t });\n\t return this.handlers.length - 1;\n\t};\n\t\n\t/**\n\t * Remove an interceptor from the stack\n\t *\n\t * @param {Number} id The ID that was returned by `use`\n\t */\n\tInterceptorManager.prototype.eject = function eject(id) {\n\t if (this.handlers[id]) {\n\t this.handlers[id] = null;\n\t }\n\t};\n\t\n\t/**\n\t * Iterate over all the registered interceptors\n\t *\n\t * This method is particularly useful for skipping over any\n\t * interceptors that may have become `null` calling `eject`.\n\t *\n\t * @param {Function} fn The function to call for each interceptor\n\t */\n\tInterceptorManager.prototype.forEach = function forEach(fn) {\n\t utils.forEach(this.handlers, function forEachHandler(h) {\n\t if (h !== null) {\n\t fn(h);\n\t }\n\t });\n\t};\n\t\n\tmodule.exports = InterceptorManager;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar transformData = __webpack_require__(8);\n\tvar isCancel = __webpack_require__(9);\n\tvar defaults = __webpack_require__(10);\n\t\n\t/**\n\t * Throws a `Cancel` if cancellation has been requested.\n\t */\n\tfunction throwIfCancellationRequested(config) {\n\t if (config.cancelToken) {\n\t config.cancelToken.throwIfRequested();\n\t }\n\t}\n\t\n\t/**\n\t * Dispatch a request to the server using the configured adapter.\n\t *\n\t * @param {object} config The config that is to be used for the request\n\t * @returns {Promise} The Promise to be fulfilled\n\t */\n\tmodule.exports = function dispatchRequest(config) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Ensure headers exist\n\t config.headers = config.headers || {};\n\t\n\t // Transform request data\n\t config.data = transformData(\n\t config.data,\n\t config.headers,\n\t config.transformRequest\n\t );\n\t\n\t // Flatten headers\n\t config.headers = utils.merge(\n\t config.headers.common || {},\n\t config.headers[config.method] || {},\n\t config.headers\n\t );\n\t\n\t utils.forEach(\n\t ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n\t function cleanHeaderConfig(method) {\n\t delete config.headers[method];\n\t }\n\t );\n\t\n\t var adapter = config.adapter || defaults.adapter;\n\t\n\t return adapter(config).then(function onAdapterResolution(response) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Transform response data\n\t response.data = transformData(\n\t response.data,\n\t response.headers,\n\t config.transformResponse\n\t );\n\t\n\t return response;\n\t }, function onAdapterRejection(reason) {\n\t if (!isCancel(reason)) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Transform response data\n\t if (reason && reason.response) {\n\t reason.response.data = transformData(\n\t reason.response.data,\n\t reason.response.headers,\n\t config.transformResponse\n\t );\n\t }\n\t }\n\t\n\t return Promise.reject(reason);\n\t });\n\t};\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t/**\n\t * Transform the data for a request or a response\n\t *\n\t * @param {Object|String} data The data to be transformed\n\t * @param {Array} headers The headers for the request or response\n\t * @param {Array|Function} fns A single function or Array of functions\n\t * @returns {*} The resulting transformed data\n\t */\n\tmodule.exports = function transformData(data, headers, fns) {\n\t /*eslint no-param-reassign:0*/\n\t utils.forEach(fns, function transform(fn) {\n\t data = fn(data, headers);\n\t });\n\t\n\t return data;\n\t};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = function isCancel(value) {\n\t return !!(value && value.__CANCEL__);\n\t};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar normalizeHeaderName = __webpack_require__(11);\n\t\n\tvar DEFAULT_CONTENT_TYPE = {\n\t 'Content-Type': 'application/x-www-form-urlencoded'\n\t};\n\t\n\tfunction setContentTypeIfUnset(headers, value) {\n\t if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n\t headers['Content-Type'] = value;\n\t }\n\t}\n\t\n\tfunction getDefaultAdapter() {\n\t var adapter;\n\t if (typeof XMLHttpRequest !== 'undefined') {\n\t // For browsers use XHR adapter\n\t adapter = __webpack_require__(12);\n\t } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n\t // For node use HTTP adapter\n\t adapter = __webpack_require__(12);\n\t }\n\t return adapter;\n\t}\n\t\n\tvar defaults = {\n\t adapter: getDefaultAdapter(),\n\t\n\t transformRequest: [function transformRequest(data, headers) {\n\t normalizeHeaderName(headers, 'Accept');\n\t normalizeHeaderName(headers, 'Content-Type');\n\t if (utils.isFormData(data) ||\n\t utils.isArrayBuffer(data) ||\n\t utils.isBuffer(data) ||\n\t utils.isStream(data) ||\n\t utils.isFile(data) ||\n\t utils.isBlob(data)\n\t ) {\n\t return data;\n\t }\n\t if (utils.isArrayBufferView(data)) {\n\t return data.buffer;\n\t }\n\t if (utils.isURLSearchParams(data)) {\n\t setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n\t return data.toString();\n\t }\n\t if (utils.isObject(data)) {\n\t setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n\t return JSON.stringify(data);\n\t }\n\t return data;\n\t }],\n\t\n\t transformResponse: [function transformResponse(data) {\n\t /*eslint no-param-reassign:0*/\n\t if (typeof data === 'string') {\n\t try {\n\t data = JSON.parse(data);\n\t } catch (e) { /* Ignore */ }\n\t }\n\t return data;\n\t }],\n\t\n\t /**\n\t * A timeout in milliseconds to abort a request. If set to 0 (default) a\n\t * timeout is not created.\n\t */\n\t timeout: 0,\n\t\n\t xsrfCookieName: 'XSRF-TOKEN',\n\t xsrfHeaderName: 'X-XSRF-TOKEN',\n\t\n\t maxContentLength: -1,\n\t\n\t validateStatus: function validateStatus(status) {\n\t return status >= 200 && status < 300;\n\t }\n\t};\n\t\n\tdefaults.headers = {\n\t common: {\n\t 'Accept': 'application/json, text/plain, */*'\n\t }\n\t};\n\t\n\tutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n\t defaults.headers[method] = {};\n\t});\n\t\n\tutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n\t defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n\t});\n\t\n\tmodule.exports = defaults;\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n\t utils.forEach(headers, function processHeader(value, name) {\n\t if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n\t headers[normalizedName] = value;\n\t delete headers[name];\n\t }\n\t });\n\t};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar settle = __webpack_require__(13);\n\tvar buildURL = __webpack_require__(5);\n\tvar buildFullPath = __webpack_require__(16);\n\tvar parseHeaders = __webpack_require__(19);\n\tvar isURLSameOrigin = __webpack_require__(20);\n\tvar createError = __webpack_require__(14);\n\t\n\tmodule.exports = function xhrAdapter(config) {\n\t return new Promise(function dispatchXhrRequest(resolve, reject) {\n\t var requestData = config.data;\n\t var requestHeaders = config.headers;\n\t\n\t if (utils.isFormData(requestData)) {\n\t delete requestHeaders['Content-Type']; // Let the browser set it\n\t }\n\t\n\t var request = new XMLHttpRequest();\n\t\n\t // HTTP basic authentication\n\t if (config.auth) {\n\t var username = config.auth.username || '';\n\t var password = config.auth.password || '';\n\t requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n\t }\n\t\n\t var fullPath = buildFullPath(config.baseURL, config.url);\n\t request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\t\n\t // Set the request timeout in MS\n\t request.timeout = config.timeout;\n\t\n\t // Listen for ready state\n\t request.onreadystatechange = function handleLoad() {\n\t if (!request || request.readyState !== 4) {\n\t return;\n\t }\n\t\n\t // The request errored out and we didn't get a response, this will be\n\t // handled by onerror instead\n\t // With one exception: request that using file: protocol, most browsers\n\t // will return status as 0 even though it's a successful request\n\t if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n\t return;\n\t }\n\t\n\t // Prepare the response\n\t var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n\t var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n\t var response = {\n\t data: responseData,\n\t status: request.status,\n\t statusText: request.statusText,\n\t headers: responseHeaders,\n\t config: config,\n\t request: request\n\t };\n\t\n\t settle(resolve, reject, response);\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle browser request cancellation (as opposed to a manual cancellation)\n\t request.onabort = function handleAbort() {\n\t if (!request) {\n\t return;\n\t }\n\t\n\t reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle low level network errors\n\t request.onerror = function handleError() {\n\t // Real errors are hidden from us by the browser\n\t // onerror should only fire if it's a network error\n\t reject(createError('Network Error', config, null, request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle timeout\n\t request.ontimeout = function handleTimeout() {\n\t var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\t if (config.timeoutErrorMessage) {\n\t timeoutErrorMessage = config.timeoutErrorMessage;\n\t }\n\t reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n\t request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Add xsrf header\n\t // This is only done if running in a standard browser environment.\n\t // Specifically not if we're in a web worker, or react-native.\n\t if (utils.isStandardBrowserEnv()) {\n\t var cookies = __webpack_require__(21);\n\t\n\t // Add xsrf header\n\t var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n\t cookies.read(config.xsrfCookieName) :\n\t undefined;\n\t\n\t if (xsrfValue) {\n\t requestHeaders[config.xsrfHeaderName] = xsrfValue;\n\t }\n\t }\n\t\n\t // Add headers to the request\n\t if ('setRequestHeader' in request) {\n\t utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n\t if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n\t // Remove Content-Type if data is undefined\n\t delete requestHeaders[key];\n\t } else {\n\t // Otherwise add header to the request\n\t request.setRequestHeader(key, val);\n\t }\n\t });\n\t }\n\t\n\t // Add withCredentials to request if needed\n\t if (!utils.isUndefined(config.withCredentials)) {\n\t request.withCredentials = !!config.withCredentials;\n\t }\n\t\n\t // Add responseType to request if needed\n\t if (config.responseType) {\n\t try {\n\t request.responseType = config.responseType;\n\t } catch (e) {\n\t // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n\t // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n\t if (config.responseType !== 'json') {\n\t throw e;\n\t }\n\t }\n\t }\n\t\n\t // Handle progress if needed\n\t if (typeof config.onDownloadProgress === 'function') {\n\t request.addEventListener('progress', config.onDownloadProgress);\n\t }\n\t\n\t // Not all browsers support upload events\n\t if (typeof config.onUploadProgress === 'function' && request.upload) {\n\t request.upload.addEventListener('progress', config.onUploadProgress);\n\t }\n\t\n\t if (config.cancelToken) {\n\t // Handle cancellation\n\t config.cancelToken.promise.then(function onCanceled(cancel) {\n\t if (!request) {\n\t return;\n\t }\n\t\n\t request.abort();\n\t reject(cancel);\n\t // Clean up request\n\t request = null;\n\t });\n\t }\n\t\n\t if (requestData === undefined) {\n\t requestData = null;\n\t }\n\t\n\t // Send the request\n\t request.send(requestData);\n\t });\n\t};\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar createError = __webpack_require__(14);\n\t\n\t/**\n\t * Resolve or reject a Promise based on response status.\n\t *\n\t * @param {Function} resolve A function that resolves the promise.\n\t * @param {Function} reject A function that rejects the promise.\n\t * @param {object} response The response.\n\t */\n\tmodule.exports = function settle(resolve, reject, response) {\n\t var validateStatus = response.config.validateStatus;\n\t if (!validateStatus || validateStatus(response.status)) {\n\t resolve(response);\n\t } else {\n\t reject(createError(\n\t 'Request failed with status code ' + response.status,\n\t response.config,\n\t null,\n\t response.request,\n\t response\n\t ));\n\t }\n\t};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar enhanceError = __webpack_require__(15);\n\t\n\t/**\n\t * Create an Error with the specified message, config, error code, request and response.\n\t *\n\t * @param {string} message The error message.\n\t * @param {Object} config The config.\n\t * @param {string} [code] The error code (for example, 'ECONNABORTED').\n\t * @param {Object} [request] The request.\n\t * @param {Object} [response] The response.\n\t * @returns {Error} The created error.\n\t */\n\tmodule.exports = function createError(message, config, code, request, response) {\n\t var error = new Error(message);\n\t return enhanceError(error, config, code, request, response);\n\t};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Update an Error with the specified config, error code, and response.\n\t *\n\t * @param {Error} error The error to update.\n\t * @param {Object} config The config.\n\t * @param {string} [code] The error code (for example, 'ECONNABORTED').\n\t * @param {Object} [request] The request.\n\t * @param {Object} [response] The response.\n\t * @returns {Error} The error.\n\t */\n\tmodule.exports = function enhanceError(error, config, code, request, response) {\n\t error.config = config;\n\t if (code) {\n\t error.code = code;\n\t }\n\t\n\t error.request = request;\n\t error.response = response;\n\t error.isAxiosError = true;\n\t\n\t error.toJSON = function() {\n\t return {\n\t // Standard\n\t message: this.message,\n\t name: this.name,\n\t // Microsoft\n\t description: this.description,\n\t number: this.number,\n\t // Mozilla\n\t fileName: this.fileName,\n\t lineNumber: this.lineNumber,\n\t columnNumber: this.columnNumber,\n\t stack: this.stack,\n\t // Axios\n\t config: this.config,\n\t code: this.code\n\t };\n\t };\n\t return error;\n\t};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar isAbsoluteURL = __webpack_require__(17);\n\tvar combineURLs = __webpack_require__(18);\n\t\n\t/**\n\t * Creates a new URL by combining the baseURL with the requestedURL,\n\t * only when the requestedURL is not already an absolute URL.\n\t * If the requestURL is absolute, this function returns the requestedURL untouched.\n\t *\n\t * @param {string} baseURL The base URL\n\t * @param {string} requestedURL Absolute or relative URL to combine\n\t * @returns {string} The combined full path\n\t */\n\tmodule.exports = function buildFullPath(baseURL, requestedURL) {\n\t if (baseURL && !isAbsoluteURL(requestedURL)) {\n\t return combineURLs(baseURL, requestedURL);\n\t }\n\t return requestedURL;\n\t};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Determines whether the specified URL is absolute\n\t *\n\t * @param {string} url The URL to test\n\t * @returns {boolean} True if the specified URL is absolute, otherwise false\n\t */\n\tmodule.exports = function isAbsoluteURL(url) {\n\t // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n\t // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n\t // by any combination of letters, digits, plus, period, or hyphen.\n\t return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n\t};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Creates a new URL by combining the specified URLs\n\t *\n\t * @param {string} baseURL The base URL\n\t * @param {string} relativeURL The relative URL\n\t * @returns {string} The combined URL\n\t */\n\tmodule.exports = function combineURLs(baseURL, relativeURL) {\n\t return relativeURL\n\t ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n\t : baseURL;\n\t};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t// Headers whose duplicates are ignored by node\n\t// c.f. https://nodejs.org/api/http.html#http_message_headers\n\tvar ignoreDuplicateOf = [\n\t 'age', 'authorization', 'content-length', 'content-type', 'etag',\n\t 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n\t 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n\t 'referer', 'retry-after', 'user-agent'\n\t];\n\t\n\t/**\n\t * Parse headers into an object\n\t *\n\t * ```\n\t * Date: Wed, 27 Aug 2014 08:58:49 GMT\n\t * Content-Type: application/json\n\t * Connection: keep-alive\n\t * Transfer-Encoding: chunked\n\t * ```\n\t *\n\t * @param {String} headers Headers needing to be parsed\n\t * @returns {Object} Headers parsed into an object\n\t */\n\tmodule.exports = function parseHeaders(headers) {\n\t var parsed = {};\n\t var key;\n\t var val;\n\t var i;\n\t\n\t if (!headers) { return parsed; }\n\t\n\t utils.forEach(headers.split('\\n'), function parser(line) {\n\t i = line.indexOf(':');\n\t key = utils.trim(line.substr(0, i)).toLowerCase();\n\t val = utils.trim(line.substr(i + 1));\n\t\n\t if (key) {\n\t if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n\t return;\n\t }\n\t if (key === 'set-cookie') {\n\t parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n\t } else {\n\t parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n\t }\n\t }\n\t });\n\t\n\t return parsed;\n\t};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = (\n\t utils.isStandardBrowserEnv() ?\n\t\n\t // Standard browser envs have full support of the APIs needed to test\n\t // whether the request URL is of the same origin as current location.\n\t (function standardBrowserEnv() {\n\t var msie = /(msie|trident)/i.test(navigator.userAgent);\n\t var urlParsingNode = document.createElement('a');\n\t var originURL;\n\t\n\t /**\n\t * Parse a URL to discover it's components\n\t *\n\t * @param {String} url The URL to be parsed\n\t * @returns {Object}\n\t */\n\t function resolveURL(url) {\n\t var href = url;\n\t\n\t if (msie) {\n\t // IE needs attribute set twice to normalize properties\n\t urlParsingNode.setAttribute('href', href);\n\t href = urlParsingNode.href;\n\t }\n\t\n\t urlParsingNode.setAttribute('href', href);\n\t\n\t // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\t return {\n\t href: urlParsingNode.href,\n\t protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n\t host: urlParsingNode.host,\n\t search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n\t hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n\t hostname: urlParsingNode.hostname,\n\t port: urlParsingNode.port,\n\t pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n\t urlParsingNode.pathname :\n\t '/' + urlParsingNode.pathname\n\t };\n\t }\n\t\n\t originURL = resolveURL(window.location.href);\n\t\n\t /**\n\t * Determine if a URL shares the same origin as the current location\n\t *\n\t * @param {String} requestURL The URL to test\n\t * @returns {boolean} True if URL shares the same origin, otherwise false\n\t */\n\t return function isURLSameOrigin(requestURL) {\n\t var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n\t return (parsed.protocol === originURL.protocol &&\n\t parsed.host === originURL.host);\n\t };\n\t })() :\n\t\n\t // Non standard browser envs (web workers, react-native) lack needed support.\n\t (function nonStandardBrowserEnv() {\n\t return function isURLSameOrigin() {\n\t return true;\n\t };\n\t })()\n\t);\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = (\n\t utils.isStandardBrowserEnv() ?\n\t\n\t // Standard browser envs support document.cookie\n\t (function standardBrowserEnv() {\n\t return {\n\t write: function write(name, value, expires, path, domain, secure) {\n\t var cookie = [];\n\t cookie.push(name + '=' + encodeURIComponent(value));\n\t\n\t if (utils.isNumber(expires)) {\n\t cookie.push('expires=' + new Date(expires).toGMTString());\n\t }\n\t\n\t if (utils.isString(path)) {\n\t cookie.push('path=' + path);\n\t }\n\t\n\t if (utils.isString(domain)) {\n\t cookie.push('domain=' + domain);\n\t }\n\t\n\t if (secure === true) {\n\t cookie.push('secure');\n\t }\n\t\n\t document.cookie = cookie.join('; ');\n\t },\n\t\n\t read: function read(name) {\n\t var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n\t return (match ? decodeURIComponent(match[3]) : null);\n\t },\n\t\n\t remove: function remove(name) {\n\t this.write(name, '', Date.now() - 86400000);\n\t }\n\t };\n\t })() :\n\t\n\t // Non standard browser env (web workers, react-native) lack needed support.\n\t (function nonStandardBrowserEnv() {\n\t return {\n\t write: function write() {},\n\t read: function read() { return null; },\n\t remove: function remove() {}\n\t };\n\t })()\n\t);\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t/**\n\t * Config-specific merge-function which creates a new config-object\n\t * by merging two configuration objects together.\n\t *\n\t * @param {Object} config1\n\t * @param {Object} config2\n\t * @returns {Object} New object resulting from merging config2 to config1\n\t */\n\tmodule.exports = function mergeConfig(config1, config2) {\n\t // eslint-disable-next-line no-param-reassign\n\t config2 = config2 || {};\n\t var config = {};\n\t\n\t var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n\t var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n\t var defaultToConfig2Keys = [\n\t 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n\t 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n\t 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n\t 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n\t 'httpsAgent', 'cancelToken', 'socketPath'\n\t ];\n\t\n\t utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n\t if (typeof config2[prop] !== 'undefined') {\n\t config[prop] = config2[prop];\n\t }\n\t });\n\t\n\t utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n\t if (utils.isObject(config2[prop])) {\n\t config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n\t } else if (typeof config2[prop] !== 'undefined') {\n\t config[prop] = config2[prop];\n\t } else if (utils.isObject(config1[prop])) {\n\t config[prop] = utils.deepMerge(config1[prop]);\n\t } else if (typeof config1[prop] !== 'undefined') {\n\t config[prop] = config1[prop];\n\t }\n\t });\n\t\n\t utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n\t if (typeof config2[prop] !== 'undefined') {\n\t config[prop] = config2[prop];\n\t } else if (typeof config1[prop] !== 'undefined') {\n\t config[prop] = config1[prop];\n\t }\n\t });\n\t\n\t var axiosKeys = valueFromConfig2Keys\n\t .concat(mergeDeepPropertiesKeys)\n\t .concat(defaultToConfig2Keys);\n\t\n\t var otherKeys = Object\n\t .keys(config2)\n\t .filter(function filterAxiosKeys(key) {\n\t return axiosKeys.indexOf(key) === -1;\n\t });\n\t\n\t utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n\t if (typeof config2[prop] !== 'undefined') {\n\t config[prop] = config2[prop];\n\t } else if (typeof config1[prop] !== 'undefined') {\n\t config[prop] = config1[prop];\n\t }\n\t });\n\t\n\t return config;\n\t};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * A `Cancel` is an object that is thrown when an operation is canceled.\n\t *\n\t * @class\n\t * @param {string=} message The message.\n\t */\n\tfunction Cancel(message) {\n\t this.message = message;\n\t}\n\t\n\tCancel.prototype.toString = function toString() {\n\t return 'Cancel' + (this.message ? ': ' + this.message : '');\n\t};\n\t\n\tCancel.prototype.__CANCEL__ = true;\n\t\n\tmodule.exports = Cancel;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar Cancel = __webpack_require__(23);\n\t\n\t/**\n\t * A `CancelToken` is an object that can be used to request cancellation of an operation.\n\t *\n\t * @class\n\t * @param {Function} executor The executor function.\n\t */\n\tfunction CancelToken(executor) {\n\t if (typeof executor !== 'function') {\n\t throw new TypeError('executor must be a function.');\n\t }\n\t\n\t var resolvePromise;\n\t this.promise = new Promise(function promiseExecutor(resolve) {\n\t resolvePromise = resolve;\n\t });\n\t\n\t var token = this;\n\t executor(function cancel(message) {\n\t if (token.reason) {\n\t // Cancellation has already been requested\n\t return;\n\t }\n\t\n\t token.reason = new Cancel(message);\n\t resolvePromise(token.reason);\n\t });\n\t}\n\t\n\t/**\n\t * Throws a `Cancel` if cancellation has been requested.\n\t */\n\tCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n\t if (this.reason) {\n\t throw this.reason;\n\t }\n\t};\n\t\n\t/**\n\t * Returns an object that contains a new `CancelToken` and a function that, when called,\n\t * cancels the `CancelToken`.\n\t */\n\tCancelToken.source = function source() {\n\t var cancel;\n\t var token = new CancelToken(function executor(c) {\n\t cancel = c;\n\t });\n\t return {\n\t token: token,\n\t cancel: cancel\n\t };\n\t};\n\t\n\tmodule.exports = CancelToken;\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Syntactic sugar for invoking a function and expanding an array for arguments.\n\t *\n\t * Common use case would be to use `Function.prototype.apply`.\n\t *\n\t * ```js\n\t * function f(x, y, z) {}\n\t * var args = [1, 2, 3];\n\t * f.apply(null, args);\n\t * ```\n\t *\n\t * With `spread` this example can be re-written.\n\t *\n\t * ```js\n\t * spread(function(x, y, z) {})([1, 2, 3]);\n\t * ```\n\t *\n\t * @param {Function} callback\n\t * @returns {Function}\n\t */\n\tmodule.exports = function spread(callback) {\n\t return function wrap(arr) {\n\t return callback.apply(null, arr);\n\t };\n\t};\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// axios.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap be8c45a40d7c235b46c5","module.exports = require('./lib/axios');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/axios.js\n// module id = 1\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/utils.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/bind.js\n// module id = 3\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/Axios.js\n// module id = 4\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/buildURL.js\n// module id = 5\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/InterceptorManager.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/dispatchRequest.js\n// module id = 7\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/transformData.js\n// module id = 8\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/isCancel.js\n// module id = 9\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/defaults.js\n// module id = 10\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/normalizeHeaderName.js\n// module id = 11\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/adapters/xhr.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/settle.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/createError.js\n// module id = 14\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/enhanceError.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/buildFullPath.js\n// module id = 16\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isAbsoluteURL.js\n// module id = 17\n// module chunks = 0","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/combineURLs.js\n// module id = 18\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/parseHeaders.js\n// module id = 19\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isURLSameOrigin.js\n// module id = 20\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/cookies.js\n// module id = 21\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = [\n 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath'\n ];\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys);\n\n var otherKeys = Object\n .keys(config2)\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/mergeConfig.js\n// module id = 22\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/Cancel.js\n// module id = 23\n// module chunks = 0","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/CancelToken.js\n// module id = 24\n// module chunks = 0","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/spread.js\n// module id = 25\n// module chunks = 0"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///axios.min.js","webpack:///webpack/bootstrap 081842adca0968bb3270","webpack:///./index.js","webpack:///./lib/axios.js","webpack:///./lib/utils.js","webpack:///./lib/helpers/bind.js","webpack:///./lib/core/Axios.js","webpack:///./lib/helpers/buildURL.js","webpack:///./lib/core/InterceptorManager.js","webpack:///./lib/core/dispatchRequest.js","webpack:///./lib/core/transformData.js","webpack:///./lib/cancel/isCancel.js","webpack:///./lib/defaults.js","webpack:///./lib/helpers/normalizeHeaderName.js","webpack:///./lib/adapters/xhr.js","webpack:///./lib/core/settle.js","webpack:///./lib/core/createError.js","webpack:///./lib/core/enhanceError.js","webpack:///./lib/helpers/cookies.js","webpack:///./lib/core/buildFullPath.js","webpack:///./lib/helpers/isAbsoluteURL.js","webpack:///./lib/helpers/combineURLs.js","webpack:///./lib/helpers/parseHeaders.js","webpack:///./lib/helpers/isURLSameOrigin.js","webpack:///./lib/core/mergeConfig.js","webpack:///./lib/cancel/Cancel.js","webpack:///./lib/cancel/CancelToken.js","webpack:///./lib/helpers/spread.js","webpack:///./lib/helpers/isAxiosError.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","createInstance","defaultConfig","context","Axios","instance","bind","prototype","request","utils","extend","mergeConfig","defaults","axios","create","instanceConfig","Cancel","CancelToken","isCancel","all","promises","Promise","spread","isAxiosError","default","isArray","val","toString","isUndefined","isBuffer","constructor","isArrayBuffer","isFormData","FormData","isArrayBufferView","result","ArrayBuffer","isView","buffer","isString","isNumber","isObject","isPlainObject","Object","getPrototypeOf","isDate","isFile","isBlob","isFunction","isStream","pipe","isURLSearchParams","URLSearchParams","trim","str","replace","isStandardBrowserEnv","navigator","product","window","document","forEach","obj","fn","i","l","length","key","hasOwnProperty","merge","assignValue","slice","arguments","a","b","thisArg","stripBOM","content","charCodeAt","args","Array","apply","interceptors","InterceptorManager","response","buildURL","dispatchRequest","config","url","method","toLowerCase","chain","undefined","promise","resolve","interceptor","unshift","fulfilled","rejected","push","then","shift","getUri","params","paramsSerializer","data","encode","encodeURIComponent","serializedParams","parts","v","toISOString","JSON","stringify","join","hashmarkIndex","indexOf","handlers","use","eject","h","throwIfCancellationRequested","cancelToken","throwIfRequested","transformData","headers","transformRequest","common","adapter","transformResponse","reason","reject","fns","value","__CANCEL__","setContentTypeIfUnset","getDefaultAdapter","XMLHttpRequest","process","normalizeHeaderName","DEFAULT_CONTENT_TYPE","Content-Type","parse","e","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","Accept","normalizedName","name","toUpperCase","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","username","password","unescape","Authorization","btoa","fullPath","baseURL","open","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","send","enhanceError","message","code","error","Error","toJSON","description","number","fileName","lineNumber","columnNumber","stack","write","expires","path","domain","secure","cookie","Date","toGMTString","match","RegExp","decodeURIComponent","remove","now","isAbsoluteURL","combineURLs","requestedURL","test","relativeURL","ignoreDuplicateOf","parsed","split","line","substr","concat","resolveURL","href","msie","urlParsingNode","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","originURL","userAgent","createElement","location","requestURL","config1","config2","getMergedValue","target","source","mergeDeepProperties","prop","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","axiosKeys","otherKeys","keys","filter","executor","TypeError","resolvePromise","token","callback","arr","payload"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,UAAAH,GACA,gBAAAC,SACAA,QAAA,MAAAD,IAEAD,EAAA,MAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAP,WACAS,GAAAF,EACAG,QAAA,EAUA,OANAL,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,QAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KAqCA,OATAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,GAGAR,EAAA,KDgBM,SAAUL,EAAQD,EAASM,GEtDjCL,EAAAD,QAAAM,EAAA,IF4DM,SAAUL,EAAQD,EAASM,GG5DjC,YAcA,SAAAS,GAAAC,GACA,GAAAC,GAAA,GAAAC,GAAAF,GACAG,EAAAC,EAAAF,EAAAG,UAAAC,QAAAL,EAQA,OALAM,GAAAC,OAAAL,EAAAD,EAAAG,UAAAJ,GAGAM,EAAAC,OAAAL,EAAAF,GAEAE,EAtBA,GAAAI,GAAAjB,EAAA,GACAc,EAAAd,EAAA,GACAY,EAAAZ,EAAA,GACAmB,EAAAnB,EAAA,IACAoB,EAAApB,EAAA,IAsBAqB,EAAAZ,EAAAW,EAGAC,GAAAT,QAGAS,EAAAC,OAAA,SAAAC,GACA,MAAAd,GAAAU,EAAAE,EAAAD,SAAAG,KAIAF,EAAAG,OAAAxB,EAAA,IACAqB,EAAAI,YAAAzB,EAAA,IACAqB,EAAAK,SAAA1B,EAAA,GAGAqB,EAAAM,IAAA,SAAAC,GACA,MAAAC,SAAAF,IAAAC,IAEAP,EAAAS,OAAA9B,EAAA,IAGAqB,EAAAU,aAAA/B,EAAA,IAEAL,EAAAD,QAAA2B,EAGA1B,EAAAD,QAAAsC,QAAAX,GHmEM,SAAU1B,EAAQD,EAASM,GI1HjC,YAgBA,SAAAiC,GAAAC,GACA,yBAAAC,EAAA9B,KAAA6B,GASA,QAAAE,GAAAF,GACA,yBAAAA,GASA,QAAAG,GAAAH,GACA,cAAAA,IAAAE,EAAAF,IAAA,OAAAA,EAAAI,cAAAF,EAAAF,EAAAI,cACA,kBAAAJ,GAAAI,YAAAD,UAAAH,EAAAI,YAAAD,SAAAH,GASA,QAAAK,GAAAL,GACA,+BAAAC,EAAA9B,KAAA6B,GASA,QAAAM,GAAAN,GACA,yBAAAO,WAAAP,YAAAO,UASA,QAAAC,GAAAR,GACA,GAAAS,EAMA,OAJAA,GADA,mBAAAC,0BAAA,OACAA,YAAAC,OAAAX,GAEA,GAAAA,EAAA,QAAAA,EAAAY,iBAAAF,aAWA,QAAAG,GAAAb,GACA,sBAAAA,GASA,QAAAc,GAAAd,GACA,sBAAAA,GASA,QAAAe,GAAAf,GACA,cAAAA,GAAA,gBAAAA,GASA,QAAAgB,GAAAhB,GACA,uBAAAC,EAAA9B,KAAA6B,GACA,QAGA,IAAAnB,GAAAoC,OAAAC,eAAAlB,EACA,eAAAnB,OAAAoC,OAAApC,UASA,QAAAsC,GAAAnB,GACA,wBAAAC,EAAA9B,KAAA6B,GASA,QAAAoB,GAAApB,GACA,wBAAAC,EAAA9B,KAAA6B,GASA,QAAAqB,GAAArB,GACA,wBAAAC,EAAA9B,KAAA6B,GASA,QAAAsB,GAAAtB,GACA,4BAAAC,EAAA9B,KAAA6B,GASA,QAAAuB,GAAAvB,GACA,MAAAe,GAAAf,IAAAsB,EAAAtB,EAAAwB,MASA,QAAAC,GAAAzB,GACA,yBAAA0B,kBAAA1B,YAAA0B,iBASA,QAAAC,GAAAC,GACA,MAAAA,GAAAC,QAAA,WAAAA,QAAA,WAkBA,QAAAC,KACA,0BAAAC,YAAA,gBAAAA,UAAAC,SACA,iBAAAD,UAAAC,SACA,OAAAD,UAAAC,WAIA,mBAAAC,SACA,mBAAAC,WAgBA,QAAAC,GAAAC,EAAAC,GAEA,UAAAD,GAAA,mBAAAA,GAUA,GALA,gBAAAA,KAEAA,OAGArC,EAAAqC,GAEA,OAAAE,GAAA,EAAAC,EAAAH,EAAAI,OAAmCF,EAAAC,EAAOD,IAC1CD,EAAAlE,KAAA,KAAAiE,EAAAE,KAAAF,OAIA,QAAAK,KAAAL,GACAnB,OAAApC,UAAA6D,eAAAvE,KAAAiE,EAAAK,IACAJ,EAAAlE,KAAA,KAAAiE,EAAAK,KAAAL,GAuBA,QAAAO,KAEA,QAAAC,GAAA5C,EAAAyC,GACAzB,EAAAP,EAAAgC,KAAAzB,EAAAhB,GACAS,EAAAgC,GAAAE,EAAAlC,EAAAgC,GAAAzC,GACKgB,EAAAhB,GACLS,EAAAgC,GAAAE,KAA4B3C,GACvBD,EAAAC,GACLS,EAAAgC,GAAAzC,EAAA6C,QAEApC,EAAAgC,GAAAzC,EAIA,OAbAS,MAaA6B,EAAA,EAAAC,EAAAO,UAAAN,OAAuCF,EAAAC,EAAOD,IAC9CH,EAAAW,UAAAR,GAAAM,EAEA,OAAAnC,GAWA,QAAAzB,GAAA+D,EAAAC,EAAAC,GAQA,MAPAd,GAAAa,EAAA,SAAAhD,EAAAyC,GACAQ,GAAA,kBAAAjD,GACA+C,EAAAN,GAAA7D,EAAAoB,EAAAiD,GAEAF,EAAAN,GAAAzC,IAGA+C,EASA,QAAAG,GAAAC,GAIA,MAHA,SAAAA,EAAAC,WAAA,KACAD,IAAAN,MAAA,IAEAM,EAlUA,GAAAvE,GAAAd,EAAA,GAMAmC,EAAAgB,OAAApC,UAAAoB,QA+TAxC,GAAAD,SACAuC,UACAM,gBACAF,WACAG,aACAE,oBACAK,WACAC,WACAC,WACAC,gBACAd,cACAiB,SACAC,SACAC,SACAC,aACAC,WACAE,oBACAK,uBACAK,UACAQ,QACA3D,SACA2C,OACAuB,aJkIM,SAAUzF,EAAQD,GK/dxB,YAEAC,GAAAD,QAAA,SAAA6E,EAAAY,GACA,kBAEA,OADAI,GAAA,GAAAC,OAAAR,UAAAN,QACAF,EAAA,EAAmBA,EAAAe,EAAAb,OAAiBF,IACpCe,EAAAf,GAAAQ,UAAAR,EAEA,OAAAD,GAAAkB,MAAAN,EAAAI,MLweM,SAAU5F,EAAQD,EAASM,GMhfjC,YAaA,SAAAY,GAAAW,GACAzB,KAAAsB,SAAAG,EACAzB,KAAA4F,cACA1E,QAAA,GAAA2E,GACAC,SAAA,GAAAD,IAfA,GAAA1E,GAAAjB,EAAA,GACA6F,EAAA7F,EAAA,GACA2F,EAAA3F,EAAA,GACA8F,EAAA9F,EAAA,GACAmB,EAAAnB,EAAA,GAoBAY,GAAAG,UAAAC,QAAA,SAAA+E,GAGA,gBAAAA,IACAA,EAAAf,UAAA,OACAe,EAAAC,IAAAhB,UAAA,IAEAe,QAGAA,EAAA5E,EAAArB,KAAAsB,SAAA2E,GAGAA,EAAAE,OACAF,EAAAE,OAAAF,EAAAE,OAAAC,cACGpG,KAAAsB,SAAA6E,OACHF,EAAAE,OAAAnG,KAAAsB,SAAA6E,OAAAC,cAEAH,EAAAE,OAAA,KAIA,IAAAE,IAAAL,EAAAM,QACAC,EAAAxE,QAAAyE,QAAAP,EAUA,KARAjG,KAAA4F,aAAA1E,QAAAqD,QAAA,SAAAkC,GACAJ,EAAAK,QAAAD,EAAAE,UAAAF,EAAAG,YAGA5G,KAAA4F,aAAAE,SAAAvB,QAAA,SAAAkC,GACAJ,EAAAQ,KAAAJ,EAAAE,UAAAF,EAAAG,YAGAP,EAAAzB,QACA2B,IAAAO,KAAAT,EAAAU,QAAAV,EAAAU,QAGA,OAAAR,IAGAzF,EAAAG,UAAA+F,OAAA,SAAAf,GAEA,MADAA,GAAA5E,EAAArB,KAAAsB,SAAA2E,GACAF,EAAAE,EAAAC,IAAAD,EAAAgB,OAAAhB,EAAAiB,kBAAAjD,QAAA,WAIA9C,EAAAoD,SAAA,0CAAA4B,GAEArF,EAAAG,UAAAkF,GAAA,SAAAD,EAAAD,GACA,MAAAjG,MAAAkB,QAAAG,EAAA4E,OACAE,SACAD,MACAiB,MAAAlB,OAAyBkB,WAKzBhG,EAAAoD,SAAA,+BAAA4B,GAEArF,EAAAG,UAAAkF,GAAA,SAAAD,EAAAiB,EAAAlB,GACA,MAAAjG,MAAAkB,QAAAG,EAAA4E,OACAE,SACAD,MACAiB,aAKAtH,EAAAD,QAAAkB,GNufM,SAAUjB,EAAQD,EAASM,GOrlBjC,YAIA,SAAAkH,GAAAhF,GACA,MAAAiF,oBAAAjF,GACA6B,QAAA,aACAA,QAAA,YACAA,QAAA,aACAA,QAAA,YACAA,QAAA,aACAA,QAAA,aATA,GAAA9C,GAAAjB,EAAA,EAmBAL,GAAAD,QAAA,SAAAsG,EAAAe,EAAAC,GAEA,IAAAD,EACA,MAAAf,EAGA,IAAAoB,EACA,IAAAJ,EACAI,EAAAJ,EAAAD,OACG,IAAA9F,EAAA0C,kBAAAoD,GACHK,EAAAL,EAAA5E,eACG,CACH,GAAAkF,KAEApG,GAAAoD,QAAA0C,EAAA,SAAA7E,EAAAyC,GACA,OAAAzC,GAAA,mBAAAA,KAIAjB,EAAAgB,QAAAC,GACAyC,GAAA,KAEAzC,MAGAjB,EAAAoD,QAAAnC,EAAA,SAAAoF,GACArG,EAAAoC,OAAAiE,GACAA,IAAAC,cACStG,EAAAgC,SAAAqE,KACTA,EAAAE,KAAAC,UAAAH,IAEAD,EAAAV,KAAAO,EAAAvC,GAAA,IAAAuC,EAAAI,SAIAF,EAAAC,EAAAK,KAAA,KAGA,GAAAN,EAAA,CACA,GAAAO,GAAA3B,EAAA4B,QAAA,IACAD,MAAA,IACA3B,IAAAjB,MAAA,EAAA4C,IAGA3B,MAAA4B,QAAA,mBAAAR,EAGA,MAAApB,KP6lBM,SAAUrG,EAAQD,EAASM,GQjqBjC,YAIA,SAAA2F,KACA7F,KAAA+H,YAHA,GAAA5G,GAAAjB,EAAA,EAcA2F,GAAA5E,UAAA+G,IAAA,SAAArB,EAAAC,GAKA,MAJA5G,MAAA+H,SAAAlB,MACAF,YACAC,aAEA5G,KAAA+H,SAAAnD,OAAA,GAQAiB,EAAA5E,UAAAgH,MAAA,SAAA5H,GACAL,KAAA+H,SAAA1H,KACAL,KAAA+H,SAAA1H,GAAA,OAYAwF,EAAA5E,UAAAsD,QAAA,SAAAE,GACAtD,EAAAoD,QAAAvE,KAAA+H,SAAA,SAAAG,GACA,OAAAA,GACAzD,EAAAyD,MAKArI,EAAAD,QAAAiG,GRwqBM,SAAUhG,EAAQD,EAASM,GS3tBjC,YAUA,SAAAiI,GAAAlC,GACAA,EAAAmC,aACAnC,EAAAmC,YAAAC,mBAVA,GAAAlH,GAAAjB,EAAA,GACAoI,EAAApI,EAAA,GACA0B,EAAA1B,EAAA,GACAoB,EAAApB,EAAA,GAiBAL,GAAAD,QAAA,SAAAqG,GACAkC,EAAAlC,GAGAA,EAAAsC,QAAAtC,EAAAsC,YAGAtC,EAAAkB,KAAAmB,EACArC,EAAAkB,KACAlB,EAAAsC,QACAtC,EAAAuC,kBAIAvC,EAAAsC,QAAApH,EAAA4D,MACAkB,EAAAsC,QAAAE,WACAxC,EAAAsC,QAAAtC,EAAAE,YACAF,EAAAsC,SAGApH,EAAAoD,SACA,qDACA,SAAA4B,SACAF,GAAAsC,QAAApC,IAIA,IAAAuC,GAAAzC,EAAAyC,SAAApH,EAAAoH,OAEA,OAAAA,GAAAzC,GAAAa,KAAA,SAAAhB,GAUA,MATAqC,GAAAlC,GAGAH,EAAAqB,KAAAmB,EACAxC,EAAAqB,KACArB,EAAAyC,QACAtC,EAAA0C,mBAGA7C,GACG,SAAA8C,GAcH,MAbAhH,GAAAgH,KACAT,EAAAlC,GAGA2C,KAAA9C,WACA8C,EAAA9C,SAAAqB,KAAAmB,EACAM,EAAA9C,SAAAqB,KACAyB,EAAA9C,SAAAyC,QACAtC,EAAA0C,qBAKA5G,QAAA8G,OAAAD,OTouBM,SAAU/I,EAAQD,EAASM,GUhzBjC,YAEA,IAAAiB,GAAAjB,EAAA,EAUAL,GAAAD,QAAA,SAAAuH,EAAAoB,EAAAO,GAMA,MAJA3H,GAAAoD,QAAAuE,EAAA,SAAArE,GACA0C,EAAA1C,EAAA0C,EAAAoB,KAGApB,IVwzBM,SAAUtH,EAAQD,GW10BxB,YAEAC,GAAAD,QAAA,SAAAmJ,GACA,SAAAA,MAAAC,cXk1BM,SAAUnJ,EAAQD,EAASM,GYr1BjC,YASA,SAAA+I,GAAAV,EAAAQ,IACA5H,EAAAmB,YAAAiG,IAAApH,EAAAmB,YAAAiG,EAAA,mBACAA,EAAA,gBAAAQ,GAIA,QAAAG,KACA,GAAAR,EAQA,OAPA,mBAAAS,gBAEAT,EAAAxI,EAAA,IACG,mBAAAkJ,UAAA,qBAAA/F,OAAApC,UAAAoB,SAAA9B,KAAA6I,WAEHV,EAAAxI,EAAA,KAEAwI,EAtBA,GAAAvH,GAAAjB,EAAA,GACAmJ,EAAAnJ,EAAA,IAEAoJ,GACAC,eAAA,qCAqBAjI,GACAoH,QAAAQ,IAEAV,kBAAA,SAAArB,EAAAoB,GAGA,MAFAc,GAAAd,EAAA,UACAc,EAAAd,EAAA,gBACApH,EAAAuB,WAAAyE,IACAhG,EAAAsB,cAAA0E,IACAhG,EAAAoB,SAAA4E,IACAhG,EAAAwC,SAAAwD,IACAhG,EAAAqC,OAAA2D,IACAhG,EAAAsC,OAAA0D,GAEAA,EAEAhG,EAAAyB,kBAAAuE,GACAA,EAAAnE,OAEA7B,EAAA0C,kBAAAsD,IACA8B,EAAAV,EAAA,mDACApB,EAAA9E,YAEAlB,EAAAgC,SAAAgE,IACA8B,EAAAV,EAAA,kCACAb,KAAAC,UAAAR,IAEAA,IAGAwB,mBAAA,SAAAxB,GAEA,mBAAAA,GACA,IACAA,EAAAO,KAAA8B,MAAArC,GACO,MAAAsC,IAEP,MAAAtC,KAOAuC,QAAA,EAEAC,eAAA,aACAC,eAAA,eAEAC,kBAAA,EACAC,eAAA,EAEAC,eAAA,SAAAC,GACA,MAAAA,IAAA,KAAAA,EAAA,KAIA1I,GAAAiH,SACAE,QACAwB,OAAA,sCAIA9I,EAAAoD,SAAA,gCAAA4B,GACA7E,EAAAiH,QAAApC,QAGAhF,EAAAoD,SAAA,+BAAA4B,GACA7E,EAAAiH,QAAApC,GAAAhF,EAAA4D,MAAAuE,KAGAzJ,EAAAD,QAAA0B,GZ41BM,SAAUzB,EAAQD,EAASM,Ga77BjC,YAEA,IAAAiB,GAAAjB,EAAA,EAEAL,GAAAD,QAAA,SAAA2I,EAAA2B,GACA/I,EAAAoD,QAAAgE,EAAA,SAAAQ,EAAAoB,GACAA,IAAAD,GAAAC,EAAAC,gBAAAF,EAAAE,gBACA7B,EAAA2B,GAAAnB,QACAR,GAAA4B,Qbu8BM,SAAUtK,EAAQD,EAASM,Gc/8BjC,YAEA,IAAAiB,GAAAjB,EAAA,GACAmK,EAAAnK,EAAA,IACAoK,EAAApK,EAAA,IACA6F,EAAA7F,EAAA,GACAqK,EAAArK,EAAA,IACAsK,EAAAtK,EAAA,IACAuK,EAAAvK,EAAA,IACAwK,EAAAxK,EAAA,GAEAL,GAAAD,QAAA,SAAAqG,GACA,UAAAlE,SAAA,SAAAyE,EAAAqC,GACA,GAAA8B,GAAA1E,EAAAkB,KACAyD,EAAA3E,EAAAsC,OAEApH,GAAAuB,WAAAiI,UACAC,GAAA,eAGA,IAAA1J,GAAA,GAAAiI,eAGA,IAAAlD,EAAA4E,KAAA,CACA,GAAAC,GAAA7E,EAAA4E,KAAAC,UAAA,GACAC,EAAA9E,EAAA4E,KAAAE,SAAAC,SAAA3D,mBAAApB,EAAA4E,KAAAE,WAAA,EACAH,GAAAK,cAAA,SAAAC,KAAAJ,EAAA,IAAAC,GAGA,GAAAI,GAAAZ,EAAAtE,EAAAmF,QAAAnF,EAAAC,IA4EA,IA3EAhF,EAAAmK,KAAApF,EAAAE,OAAAiE,cAAArE,EAAAoF,EAAAlF,EAAAgB,OAAAhB,EAAAiB,mBAAA,GAGAhG,EAAAwI,QAAAzD,EAAAyD,QAGAxI,EAAAoK,mBAAA,WACA,GAAApK,GAAA,IAAAA,EAAAqK,aAQA,IAAArK,EAAA8I,QAAA9I,EAAAsK,aAAA,IAAAtK,EAAAsK,YAAA1D,QAAA,WAKA,GAAA2D,GAAA,yBAAAvK,GAAAsJ,EAAAtJ,EAAAwK,yBAAA,KACAC,EAAA1F,EAAA2F,cAAA,SAAA3F,EAAA2F,aAAA1K,EAAA4E,SAAA5E,EAAA2K,aACA/F,GACAqB,KAAAwE,EACA3B,OAAA9I,EAAA8I,OACA8B,WAAA5K,EAAA4K,WACAvD,QAAAkD,EACAxF,SACA/E,UAGAmJ,GAAA7D,EAAAqC,EAAA/C,GAGA5E,EAAA,OAIAA,EAAA6K,QAAA,WACA7K,IAIA2H,EAAA6B,EAAA,kBAAAzE,EAAA,eAAA/E,IAGAA,EAAA,OAIAA,EAAA8K,QAAA,WAGAnD,EAAA6B,EAAA,gBAAAzE,EAAA,KAAA/E,IAGAA,EAAA,MAIAA,EAAA+K,UAAA,WACA,GAAAC,GAAA,cAAAjG,EAAAyD,QAAA,aACAzD,GAAAiG,sBACAA,EAAAjG,EAAAiG,qBAEArD,EAAA6B,EAAAwB,EAAAjG,EAAA,eACA/E,IAGAA,EAAA,MAMAC,EAAA+C,uBAAA,CAEA,GAAAiI,IAAAlG,EAAAmG,iBAAA3B,EAAAU,KAAAlF,EAAA0D,eACAW,EAAA+B,KAAApG,EAAA0D,gBACArD,MAEA6F,KACAvB,EAAA3E,EAAA2D,gBAAAuC,GAuBA,GAlBA,oBAAAjL,IACAC,EAAAoD,QAAAqG,EAAA,SAAAxI,EAAAyC,GACA,mBAAA8F,IAAA,iBAAA9F,EAAAuB,oBAEAwE,GAAA/F,GAGA3D,EAAAoL,iBAAAzH,EAAAzC,KAMAjB,EAAAmB,YAAA2D,EAAAmG,mBACAlL,EAAAkL,kBAAAnG,EAAAmG,iBAIAnG,EAAA2F,aACA,IACA1K,EAAA0K,aAAA3F,EAAA2F,aACO,MAAAnC,GAGP,YAAAxD,EAAA2F,aACA,KAAAnC,GAMA,kBAAAxD,GAAAsG,oBACArL,EAAAsL,iBAAA,WAAAvG,EAAAsG,oBAIA,kBAAAtG,GAAAwG,kBAAAvL,EAAAwL,QACAxL,EAAAwL,OAAAF,iBAAA,WAAAvG,EAAAwG,kBAGAxG,EAAAmC,aAEAnC,EAAAmC,YAAA7B,QAAAO,KAAA,SAAA6F,GACAzL,IAIAA,EAAA0L,QACA/D,EAAA8D,GAEAzL,EAAA,QAIAyJ,IACAA,EAAA,MAIAzJ,EAAA2L,KAAAlC,Odw9BM,SAAU9K,EAAQD,EAASM,GexoCjC,YAEA,IAAAwK,GAAAxK,EAAA,GASAL,GAAAD,QAAA,SAAA4G,EAAAqC,EAAA/C,GACA,GAAAiE,GAAAjE,EAAAG,OAAA8D,cACAjE,GAAAkE,QAAAD,MAAAjE,EAAAkE,QAGAnB,EAAA6B,EACA,mCAAA5E,EAAAkE,OACAlE,EAAAG,OACA,KACAH,EAAA5E,QACA4E,IAPAU,EAAAV,KfypCM,SAAUjG,EAAQD,EAASM,GgBvqCjC,YAEA,IAAA4M,GAAA5M,EAAA,GAYAL,GAAAD,QAAA,SAAAmN,EAAA9G,EAAA+G,EAAA9L,EAAA4E,GACA,GAAAmH,GAAA,GAAAC,OAAAH,EACA,OAAAD,GAAAG,EAAAhH,EAAA+G,EAAA9L,EAAA4E,KhB+qCM,SAAUjG,EAAQD,GiB/rCxB,YAYAC,GAAAD,QAAA,SAAAqN,EAAAhH,EAAA+G,EAAA9L,EAAA4E,GA4BA,MA3BAmH,GAAAhH,SACA+G,IACAC,EAAAD,QAGAC,EAAA/L,UACA+L,EAAAnH,WACAmH,EAAAhL,cAAA,EAEAgL,EAAAE,OAAA,WACA,OAEAJ,QAAA/M,KAAA+M,QACA5C,KAAAnK,KAAAmK,KAEAiD,YAAApN,KAAAoN,YACAC,OAAArN,KAAAqN,OAEAC,SAAAtN,KAAAsN,SACAC,WAAAvN,KAAAuN,WACAC,aAAAxN,KAAAwN,aACAC,MAAAzN,KAAAyN,MAEAxH,OAAAjG,KAAAiG,OACA+G,KAAAhN,KAAAgN,OAGAC,IjBusCM,SAAUpN,EAAQD,EAASM,GkB/uCjC,YAEA,IAAAiB,GAAAjB,EAAA,EAEAL,GAAAD,QACAuB,EAAA+C,uBAGA,WACA,OACAwJ,MAAA,SAAAvD,EAAApB,EAAA4E,EAAAC,EAAAC,EAAAC,GACA,GAAAC,KACAA,GAAAlH,KAAAsD,EAAA,IAAA9C,mBAAA0B,IAEA5H,EAAA+B,SAAAyK,IACAI,EAAAlH,KAAA,cAAAmH,MAAAL,GAAAM,eAGA9M,EAAA8B,SAAA2K,IACAG,EAAAlH,KAAA,QAAA+G,GAGAzM,EAAA8B,SAAA4K,IACAE,EAAAlH,KAAA,UAAAgH,GAGAC,KAAA,GACAC,EAAAlH,KAAA,UAGAvC,SAAAyJ,SAAAnG,KAAA,OAGAyE,KAAA,SAAAlC,GACA,GAAA+D,GAAA5J,SAAAyJ,OAAAG,MAAA,GAAAC,QAAA,aAA4DhE,EAAA,aAC5D,OAAA+D,GAAAE,mBAAAF,EAAA,UAGAG,OAAA,SAAAlE,GACAnK,KAAA0N,MAAAvD,EAAA,GAAA6D,KAAAM,MAAA,YAMA,WACA,OACAZ,MAAA,aACArB,KAAA,WAA+B,aAC/BgC,OAAA,kBlByvCM,SAAUxO,EAAQD,EAASM,GmB1yCjC,YAEA,IAAAqO,GAAArO,EAAA,IACAsO,EAAAtO,EAAA,GAWAL,GAAAD,QAAA,SAAAwL,EAAAqD,GACA,MAAArD,KAAAmD,EAAAE,GACAD,EAAApD,EAAAqD,GAEAA,InBkzCM,SAAU5O,EAAQD,GoBp0CxB,YAQAC,GAAAD,QAAA,SAAAsG,GAIA,sCAAAwI,KAAAxI,KpB40CM,SAAUrG,EAAQD,GqBx1CxB,YASAC,GAAAD,QAAA,SAAAwL,EAAAuD,GACA,MAAAA,GACAvD,EAAAnH,QAAA,eAAA0K,EAAA1K,QAAA,WACAmH,IrBg2CM,SAAUvL,EAAQD,EAASM,GsB52CjC,YAEA,IAAAiB,GAAAjB,EAAA,GAIA0O,GACA,6DACA,kEACA,gEACA,qCAgBA/O,GAAAD,QAAA,SAAA2I,GACA,GACA1D,GACAzC,EACAsC,EAHAmK,IAKA,OAAAtG,IAEApH,EAAAoD,QAAAgE,EAAAuG,MAAA,eAAAC,GAKA,GAJArK,EAAAqK,EAAAjH,QAAA,KACAjD,EAAA1D,EAAA4C,KAAAgL,EAAAC,OAAA,EAAAtK,IAAA0B,cACAhE,EAAAjB,EAAA4C,KAAAgL,EAAAC,OAAAtK,EAAA,IAEAG,EAAA,CACA,GAAAgK,EAAAhK,IAAA+J,EAAA9G,QAAAjD,IAAA,EACA,MAEA,gBAAAA,EACAgK,EAAAhK,IAAAgK,EAAAhK,GAAAgK,EAAAhK,OAAAoK,QAAA7M,IAEAyM,EAAAhK,GAAAgK,EAAAhK,GAAAgK,EAAAhK,GAAA,KAAAzC,OAKAyM,GAnBiBA,ItBu4CX,SAAUhP,EAAQD,EAASM,GuBv6CjC,YAEA,IAAAiB,GAAAjB,EAAA,EAEAL,GAAAD,QACAuB,EAAA+C,uBAIA,WAWA,QAAAgL,GAAAhJ,GACA,GAAAiJ,GAAAjJ,CAWA,OATAkJ,KAEAC,EAAAC,aAAA,OAAAH,GACAA,EAAAE,EAAAF,MAGAE,EAAAC,aAAA,OAAAH,IAIAA,KAAAE,EAAAF,KACAI,SAAAF,EAAAE,SAAAF,EAAAE,SAAAtL,QAAA,YACAuL,KAAAH,EAAAG,KACAC,OAAAJ,EAAAI,OAAAJ,EAAAI,OAAAxL,QAAA,aACAyL,KAAAL,EAAAK,KAAAL,EAAAK,KAAAzL,QAAA,YACA0L,SAAAN,EAAAM,SACAC,KAAAP,EAAAO,KACAC,SAAA,MAAAR,EAAAQ,SAAAC,OAAA,GACAT,EAAAQ,SACA,IAAAR,EAAAQ,UAhCA,GAEAE,GAFAX,EAAA,kBAAAV,KAAAvK,UAAA6L,WACAX,EAAA/K,SAAA2L,cAAA,IA2CA,OARAF,GAAAb,EAAA7K,OAAA6L,SAAAf,MAQA,SAAAgB,GACA,GAAAtB,GAAA1N,EAAA8B,SAAAkN,GAAAjB,EAAAiB,IACA,OAAAtB,GAAAU,WAAAQ,EAAAR,UACAV,EAAAW,OAAAO,EAAAP,SAKA,WACA,kBACA,cvBi7CM,SAAU3P,EAAQD,EAASM,GwBj/CjC,YAEA,IAAAiB,GAAAjB,EAAA,EAUAL,GAAAD,QAAA,SAAAwQ,EAAAC,GAgBA,QAAAC,GAAAC,EAAAC,GACA,MAAArP,GAAAiC,cAAAmN,IAAApP,EAAAiC,cAAAoN,GACArP,EAAA4D,MAAAwL,EAAAC,GACKrP,EAAAiC,cAAAoN,GACLrP,EAAA4D,SAA2ByL,GACtBrP,EAAAgB,QAAAqO,GACLA,EAAAvL,QAEAuL,EAGA,QAAAC,GAAAC,GACAvP,EAAAmB,YAAA+N,EAAAK,IAEKvP,EAAAmB,YAAA8N,EAAAM,MACLzK,EAAAyK,GAAAJ,EAAAhK,OAAA8J,EAAAM,KAFAzK,EAAAyK,GAAAJ,EAAAF,EAAAM,GAAAL,EAAAK,IA3BAL,OACA,IAAApK,MAEA0K,GAAA,uBACAC,GAAA,mCACAC,GACA,oEACA,uFACA,sEACA,0EACA,4DAEAC,GAAA,iBAqBA3P,GAAAoD,QAAAoM,EAAA,SAAAD,GACAvP,EAAAmB,YAAA+N,EAAAK,MACAzK,EAAAyK,GAAAJ,EAAAhK,OAAA+J,EAAAK,OAIAvP,EAAAoD,QAAAqM,EAAAH,GAEAtP,EAAAoD,QAAAsM,EAAA,SAAAH,GACAvP,EAAAmB,YAAA+N,EAAAK,IAEKvP,EAAAmB,YAAA8N,EAAAM,MACLzK,EAAAyK,GAAAJ,EAAAhK,OAAA8J,EAAAM,KAFAzK,EAAAyK,GAAAJ,EAAAhK,OAAA+J,EAAAK,MAMAvP,EAAAoD,QAAAuM,EAAA,SAAAJ,GACAA,IAAAL,GACApK,EAAAyK,GAAAJ,EAAAF,EAAAM,GAAAL,EAAAK,IACKA,IAAAN,KACLnK,EAAAyK,GAAAJ,EAAAhK,OAAA8J,EAAAM,MAIA,IAAAK,GAAAJ,EACA1B,OAAA2B,GACA3B,OAAA4B,GACA5B,OAAA6B,GAEAE,EAAA3N,OACA4N,KAAAb,GACAnB,OAAA5L,OAAA4N,KAAAZ,IACAa,OAAA,SAAArM,GACA,MAAAkM,GAAAjJ,QAAAjD,MAAA,GAKA,OAFA1D,GAAAoD,QAAAyM,EAAAP,GAEAxK,IxBy/CM,SAAUpG,EAAQD,GyB9kDxB,YAQA,SAAA8B,GAAAqL,GACA/M,KAAA+M,UAGArL,EAAAT,UAAAoB,SAAA,WACA,gBAAArC,KAAA+M,QAAA,KAAA/M,KAAA+M,QAAA,KAGArL,EAAAT,UAAA+H,YAAA,EAEAnJ,EAAAD,QAAA8B,GzBqlDM,SAAU7B,EAAQD,EAASM,G0BvmDjC,YAUA,SAAAyB,GAAAwP,GACA,qBAAAA,GACA,SAAAC,WAAA,+BAGA,IAAAC,EACArR,MAAAuG,QAAA,GAAAxE,SAAA,SAAAyE,GACA6K,EAAA7K,GAGA,IAAA8K,GAAAtR,IACAmR,GAAA,SAAApE,GACAuE,EAAA1I,SAKA0I,EAAA1I,OAAA,GAAAlH,GAAAqL,GACAsE,EAAAC,EAAA1I,WA1BA,GAAAlH,GAAAxB,EAAA,GAiCAyB,GAAAV,UAAAoH,iBAAA,WACA,GAAArI,KAAA4I,OACA,KAAA5I,MAAA4I,QAQAjH,EAAA6O,OAAA,WACA,GAAA7D,GACA2E,EAAA,GAAA3P,GAAA,SAAAlB,GACAkM,EAAAlM,GAEA,QACA6Q,QACA3E,WAIA9M,EAAAD,QAAA+B,G1B8mDM,SAAU9B,EAAQD,G2BtqDxB,YAsBAC,GAAAD,QAAA,SAAA2R,GACA,gBAAAC,GACA,MAAAD,GAAA5L,MAAA,KAAA6L,M3B+qDM,SAAU3R,EAAQD,G4BvsDxB,YAQAC,GAAAD,QAAA,SAAA6R,GACA,sBAAAA,MAAAxP,gBAAA","file":"axios.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"axios\"] = factory();\n\telse\n\t\troot[\"axios\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1);\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar bind = __webpack_require__(3);\n\tvar Axios = __webpack_require__(4);\n\tvar mergeConfig = __webpack_require__(22);\n\tvar defaults = __webpack_require__(10);\n\t\n\t/**\n\t * Create an instance of Axios\n\t *\n\t * @param {Object} defaultConfig The default config for the instance\n\t * @return {Axios} A new instance of Axios\n\t */\n\tfunction createInstance(defaultConfig) {\n\t var context = new Axios(defaultConfig);\n\t var instance = bind(Axios.prototype.request, context);\n\t\n\t // Copy axios.prototype to instance\n\t utils.extend(instance, Axios.prototype, context);\n\t\n\t // Copy context to instance\n\t utils.extend(instance, context);\n\t\n\t return instance;\n\t}\n\t\n\t// Create the default instance to be exported\n\tvar axios = createInstance(defaults);\n\t\n\t// Expose Axios class to allow class inheritance\n\taxios.Axios = Axios;\n\t\n\t// Factory for creating new instances\n\taxios.create = function create(instanceConfig) {\n\t return createInstance(mergeConfig(axios.defaults, instanceConfig));\n\t};\n\t\n\t// Expose Cancel & CancelToken\n\taxios.Cancel = __webpack_require__(23);\n\taxios.CancelToken = __webpack_require__(24);\n\taxios.isCancel = __webpack_require__(9);\n\t\n\t// Expose all/spread\n\taxios.all = function all(promises) {\n\t return Promise.all(promises);\n\t};\n\taxios.spread = __webpack_require__(25);\n\t\n\t// Expose isAxiosError\n\taxios.isAxiosError = __webpack_require__(26);\n\t\n\tmodule.exports = axios;\n\t\n\t// Allow use of default import syntax in TypeScript\n\tmodule.exports.default = axios;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar bind = __webpack_require__(3);\n\t\n\t/*global toString:true*/\n\t\n\t// utils is a library of generic helper functions non-specific to axios\n\t\n\tvar toString = Object.prototype.toString;\n\t\n\t/**\n\t * Determine if a value is an Array\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an Array, otherwise false\n\t */\n\tfunction isArray(val) {\n\t return toString.call(val) === '[object Array]';\n\t}\n\t\n\t/**\n\t * Determine if a value is undefined\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if the value is undefined, otherwise false\n\t */\n\tfunction isUndefined(val) {\n\t return typeof val === 'undefined';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Buffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Buffer, otherwise false\n\t */\n\tfunction isBuffer(val) {\n\t return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n\t && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n\t}\n\t\n\t/**\n\t * Determine if a value is an ArrayBuffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n\t */\n\tfunction isArrayBuffer(val) {\n\t return toString.call(val) === '[object ArrayBuffer]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a FormData\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an FormData, otherwise false\n\t */\n\tfunction isFormData(val) {\n\t return (typeof FormData !== 'undefined') && (val instanceof FormData);\n\t}\n\t\n\t/**\n\t * Determine if a value is a view on an ArrayBuffer\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n\t */\n\tfunction isArrayBufferView(val) {\n\t var result;\n\t if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n\t result = ArrayBuffer.isView(val);\n\t } else {\n\t result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Determine if a value is a String\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a String, otherwise false\n\t */\n\tfunction isString(val) {\n\t return typeof val === 'string';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Number\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Number, otherwise false\n\t */\n\tfunction isNumber(val) {\n\t return typeof val === 'number';\n\t}\n\t\n\t/**\n\t * Determine if a value is an Object\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is an Object, otherwise false\n\t */\n\tfunction isObject(val) {\n\t return val !== null && typeof val === 'object';\n\t}\n\t\n\t/**\n\t * Determine if a value is a plain Object\n\t *\n\t * @param {Object} val The value to test\n\t * @return {boolean} True if value is a plain Object, otherwise false\n\t */\n\tfunction isPlainObject(val) {\n\t if (toString.call(val) !== '[object Object]') {\n\t return false;\n\t }\n\t\n\t var prototype = Object.getPrototypeOf(val);\n\t return prototype === null || prototype === Object.prototype;\n\t}\n\t\n\t/**\n\t * Determine if a value is a Date\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Date, otherwise false\n\t */\n\tfunction isDate(val) {\n\t return toString.call(val) === '[object Date]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a File\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a File, otherwise false\n\t */\n\tfunction isFile(val) {\n\t return toString.call(val) === '[object File]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Blob\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Blob, otherwise false\n\t */\n\tfunction isBlob(val) {\n\t return toString.call(val) === '[object Blob]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Function\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Function, otherwise false\n\t */\n\tfunction isFunction(val) {\n\t return toString.call(val) === '[object Function]';\n\t}\n\t\n\t/**\n\t * Determine if a value is a Stream\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a Stream, otherwise false\n\t */\n\tfunction isStream(val) {\n\t return isObject(val) && isFunction(val.pipe);\n\t}\n\t\n\t/**\n\t * Determine if a value is a URLSearchParams object\n\t *\n\t * @param {Object} val The value to test\n\t * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n\t */\n\tfunction isURLSearchParams(val) {\n\t return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n\t}\n\t\n\t/**\n\t * Trim excess whitespace off the beginning and end of a string\n\t *\n\t * @param {String} str The String to trim\n\t * @returns {String} The String freed of excess whitespace\n\t */\n\tfunction trim(str) {\n\t return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n\t}\n\t\n\t/**\n\t * Determine if we're running in a standard browser environment\n\t *\n\t * This allows axios to run in a web worker, and react-native.\n\t * Both environments support XMLHttpRequest, but not fully standard globals.\n\t *\n\t * web workers:\n\t * typeof window -> undefined\n\t * typeof document -> undefined\n\t *\n\t * react-native:\n\t * navigator.product -> 'ReactNative'\n\t * nativescript\n\t * navigator.product -> 'NativeScript' or 'NS'\n\t */\n\tfunction isStandardBrowserEnv() {\n\t if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n\t navigator.product === 'NativeScript' ||\n\t navigator.product === 'NS')) {\n\t return false;\n\t }\n\t return (\n\t typeof window !== 'undefined' &&\n\t typeof document !== 'undefined'\n\t );\n\t}\n\t\n\t/**\n\t * Iterate over an Array or an Object invoking a function for each item.\n\t *\n\t * If `obj` is an Array callback will be called passing\n\t * the value, index, and complete array for each item.\n\t *\n\t * If 'obj' is an Object callback will be called passing\n\t * the value, key, and complete object for each property.\n\t *\n\t * @param {Object|Array} obj The object to iterate\n\t * @param {Function} fn The callback to invoke for each item\n\t */\n\tfunction forEach(obj, fn) {\n\t // Don't bother if no value provided\n\t if (obj === null || typeof obj === 'undefined') {\n\t return;\n\t }\n\t\n\t // Force an array if not already something iterable\n\t if (typeof obj !== 'object') {\n\t /*eslint no-param-reassign:0*/\n\t obj = [obj];\n\t }\n\t\n\t if (isArray(obj)) {\n\t // Iterate over array values\n\t for (var i = 0, l = obj.length; i < l; i++) {\n\t fn.call(null, obj[i], i, obj);\n\t }\n\t } else {\n\t // Iterate over object keys\n\t for (var key in obj) {\n\t if (Object.prototype.hasOwnProperty.call(obj, key)) {\n\t fn.call(null, obj[key], key, obj);\n\t }\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * Accepts varargs expecting each argument to be an object, then\n\t * immutably merges the properties of each object and returns result.\n\t *\n\t * When multiple objects contain the same key the later object in\n\t * the arguments list will take precedence.\n\t *\n\t * Example:\n\t *\n\t * ```js\n\t * var result = merge({foo: 123}, {foo: 456});\n\t * console.log(result.foo); // outputs 456\n\t * ```\n\t *\n\t * @param {Object} obj1 Object to merge\n\t * @returns {Object} Result of all merge properties\n\t */\n\tfunction merge(/* obj1, obj2, obj3, ... */) {\n\t var result = {};\n\t function assignValue(val, key) {\n\t if (isPlainObject(result[key]) && isPlainObject(val)) {\n\t result[key] = merge(result[key], val);\n\t } else if (isPlainObject(val)) {\n\t result[key] = merge({}, val);\n\t } else if (isArray(val)) {\n\t result[key] = val.slice();\n\t } else {\n\t result[key] = val;\n\t }\n\t }\n\t\n\t for (var i = 0, l = arguments.length; i < l; i++) {\n\t forEach(arguments[i], assignValue);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Extends object a by mutably adding to it the properties of object b.\n\t *\n\t * @param {Object} a The object to be extended\n\t * @param {Object} b The object to copy properties from\n\t * @param {Object} thisArg The object to bind function to\n\t * @return {Object} The resulting value of object a\n\t */\n\tfunction extend(a, b, thisArg) {\n\t forEach(b, function assignValue(val, key) {\n\t if (thisArg && typeof val === 'function') {\n\t a[key] = bind(val, thisArg);\n\t } else {\n\t a[key] = val;\n\t }\n\t });\n\t return a;\n\t}\n\t\n\t/**\n\t * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n\t *\n\t * @param {string} content with BOM\n\t * @return {string} content value without BOM\n\t */\n\tfunction stripBOM(content) {\n\t if (content.charCodeAt(0) === 0xFEFF) {\n\t content = content.slice(1);\n\t }\n\t return content;\n\t}\n\t\n\tmodule.exports = {\n\t isArray: isArray,\n\t isArrayBuffer: isArrayBuffer,\n\t isBuffer: isBuffer,\n\t isFormData: isFormData,\n\t isArrayBufferView: isArrayBufferView,\n\t isString: isString,\n\t isNumber: isNumber,\n\t isObject: isObject,\n\t isPlainObject: isPlainObject,\n\t isUndefined: isUndefined,\n\t isDate: isDate,\n\t isFile: isFile,\n\t isBlob: isBlob,\n\t isFunction: isFunction,\n\t isStream: isStream,\n\t isURLSearchParams: isURLSearchParams,\n\t isStandardBrowserEnv: isStandardBrowserEnv,\n\t forEach: forEach,\n\t merge: merge,\n\t extend: extend,\n\t trim: trim,\n\t stripBOM: stripBOM\n\t};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = function bind(fn, thisArg) {\n\t return function wrap() {\n\t var args = new Array(arguments.length);\n\t for (var i = 0; i < args.length; i++) {\n\t args[i] = arguments[i];\n\t }\n\t return fn.apply(thisArg, args);\n\t };\n\t};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar buildURL = __webpack_require__(5);\n\tvar InterceptorManager = __webpack_require__(6);\n\tvar dispatchRequest = __webpack_require__(7);\n\tvar mergeConfig = __webpack_require__(22);\n\t\n\t/**\n\t * Create a new instance of Axios\n\t *\n\t * @param {Object} instanceConfig The default config for the instance\n\t */\n\tfunction Axios(instanceConfig) {\n\t this.defaults = instanceConfig;\n\t this.interceptors = {\n\t request: new InterceptorManager(),\n\t response: new InterceptorManager()\n\t };\n\t}\n\t\n\t/**\n\t * Dispatch a request\n\t *\n\t * @param {Object} config The config specific for this request (merged with this.defaults)\n\t */\n\tAxios.prototype.request = function request(config) {\n\t /*eslint no-param-reassign:0*/\n\t // Allow for axios('example/url'[, config]) a la fetch API\n\t if (typeof config === 'string') {\n\t config = arguments[1] || {};\n\t config.url = arguments[0];\n\t } else {\n\t config = config || {};\n\t }\n\t\n\t config = mergeConfig(this.defaults, config);\n\t\n\t // Set config.method\n\t if (config.method) {\n\t config.method = config.method.toLowerCase();\n\t } else if (this.defaults.method) {\n\t config.method = this.defaults.method.toLowerCase();\n\t } else {\n\t config.method = 'get';\n\t }\n\t\n\t // Hook up interceptors middleware\n\t var chain = [dispatchRequest, undefined];\n\t var promise = Promise.resolve(config);\n\t\n\t this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n\t chain.unshift(interceptor.fulfilled, interceptor.rejected);\n\t });\n\t\n\t this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n\t chain.push(interceptor.fulfilled, interceptor.rejected);\n\t });\n\t\n\t while (chain.length) {\n\t promise = promise.then(chain.shift(), chain.shift());\n\t }\n\t\n\t return promise;\n\t};\n\t\n\tAxios.prototype.getUri = function getUri(config) {\n\t config = mergeConfig(this.defaults, config);\n\t return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n\t};\n\t\n\t// Provide aliases for supported request methods\n\tutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n\t /*eslint func-names:0*/\n\t Axios.prototype[method] = function(url, config) {\n\t return this.request(mergeConfig(config || {}, {\n\t method: method,\n\t url: url,\n\t data: (config || {}).data\n\t }));\n\t };\n\t});\n\t\n\tutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n\t /*eslint func-names:0*/\n\t Axios.prototype[method] = function(url, data, config) {\n\t return this.request(mergeConfig(config || {}, {\n\t method: method,\n\t url: url,\n\t data: data\n\t }));\n\t };\n\t});\n\t\n\tmodule.exports = Axios;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tfunction encode(val) {\n\t return encodeURIComponent(val).\n\t replace(/%3A/gi, ':').\n\t replace(/%24/g, '$').\n\t replace(/%2C/gi, ',').\n\t replace(/%20/g, '+').\n\t replace(/%5B/gi, '[').\n\t replace(/%5D/gi, ']');\n\t}\n\t\n\t/**\n\t * Build a URL by appending params to the end\n\t *\n\t * @param {string} url The base of the url (e.g., http://www.google.com)\n\t * @param {object} [params] The params to be appended\n\t * @returns {string} The formatted url\n\t */\n\tmodule.exports = function buildURL(url, params, paramsSerializer) {\n\t /*eslint no-param-reassign:0*/\n\t if (!params) {\n\t return url;\n\t }\n\t\n\t var serializedParams;\n\t if (paramsSerializer) {\n\t serializedParams = paramsSerializer(params);\n\t } else if (utils.isURLSearchParams(params)) {\n\t serializedParams = params.toString();\n\t } else {\n\t var parts = [];\n\t\n\t utils.forEach(params, function serialize(val, key) {\n\t if (val === null || typeof val === 'undefined') {\n\t return;\n\t }\n\t\n\t if (utils.isArray(val)) {\n\t key = key + '[]';\n\t } else {\n\t val = [val];\n\t }\n\t\n\t utils.forEach(val, function parseValue(v) {\n\t if (utils.isDate(v)) {\n\t v = v.toISOString();\n\t } else if (utils.isObject(v)) {\n\t v = JSON.stringify(v);\n\t }\n\t parts.push(encode(key) + '=' + encode(v));\n\t });\n\t });\n\t\n\t serializedParams = parts.join('&');\n\t }\n\t\n\t if (serializedParams) {\n\t var hashmarkIndex = url.indexOf('#');\n\t if (hashmarkIndex !== -1) {\n\t url = url.slice(0, hashmarkIndex);\n\t }\n\t\n\t url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n\t }\n\t\n\t return url;\n\t};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tfunction InterceptorManager() {\n\t this.handlers = [];\n\t}\n\t\n\t/**\n\t * Add a new interceptor to the stack\n\t *\n\t * @param {Function} fulfilled The function to handle `then` for a `Promise`\n\t * @param {Function} rejected The function to handle `reject` for a `Promise`\n\t *\n\t * @return {Number} An ID used to remove interceptor later\n\t */\n\tInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n\t this.handlers.push({\n\t fulfilled: fulfilled,\n\t rejected: rejected\n\t });\n\t return this.handlers.length - 1;\n\t};\n\t\n\t/**\n\t * Remove an interceptor from the stack\n\t *\n\t * @param {Number} id The ID that was returned by `use`\n\t */\n\tInterceptorManager.prototype.eject = function eject(id) {\n\t if (this.handlers[id]) {\n\t this.handlers[id] = null;\n\t }\n\t};\n\t\n\t/**\n\t * Iterate over all the registered interceptors\n\t *\n\t * This method is particularly useful for skipping over any\n\t * interceptors that may have become `null` calling `eject`.\n\t *\n\t * @param {Function} fn The function to call for each interceptor\n\t */\n\tInterceptorManager.prototype.forEach = function forEach(fn) {\n\t utils.forEach(this.handlers, function forEachHandler(h) {\n\t if (h !== null) {\n\t fn(h);\n\t }\n\t });\n\t};\n\t\n\tmodule.exports = InterceptorManager;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar transformData = __webpack_require__(8);\n\tvar isCancel = __webpack_require__(9);\n\tvar defaults = __webpack_require__(10);\n\t\n\t/**\n\t * Throws a `Cancel` if cancellation has been requested.\n\t */\n\tfunction throwIfCancellationRequested(config) {\n\t if (config.cancelToken) {\n\t config.cancelToken.throwIfRequested();\n\t }\n\t}\n\t\n\t/**\n\t * Dispatch a request to the server using the configured adapter.\n\t *\n\t * @param {object} config The config that is to be used for the request\n\t * @returns {Promise} The Promise to be fulfilled\n\t */\n\tmodule.exports = function dispatchRequest(config) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Ensure headers exist\n\t config.headers = config.headers || {};\n\t\n\t // Transform request data\n\t config.data = transformData(\n\t config.data,\n\t config.headers,\n\t config.transformRequest\n\t );\n\t\n\t // Flatten headers\n\t config.headers = utils.merge(\n\t config.headers.common || {},\n\t config.headers[config.method] || {},\n\t config.headers\n\t );\n\t\n\t utils.forEach(\n\t ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n\t function cleanHeaderConfig(method) {\n\t delete config.headers[method];\n\t }\n\t );\n\t\n\t var adapter = config.adapter || defaults.adapter;\n\t\n\t return adapter(config).then(function onAdapterResolution(response) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Transform response data\n\t response.data = transformData(\n\t response.data,\n\t response.headers,\n\t config.transformResponse\n\t );\n\t\n\t return response;\n\t }, function onAdapterRejection(reason) {\n\t if (!isCancel(reason)) {\n\t throwIfCancellationRequested(config);\n\t\n\t // Transform response data\n\t if (reason && reason.response) {\n\t reason.response.data = transformData(\n\t reason.response.data,\n\t reason.response.headers,\n\t config.transformResponse\n\t );\n\t }\n\t }\n\t\n\t return Promise.reject(reason);\n\t });\n\t};\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t/**\n\t * Transform the data for a request or a response\n\t *\n\t * @param {Object|String} data The data to be transformed\n\t * @param {Array} headers The headers for the request or response\n\t * @param {Array|Function} fns A single function or Array of functions\n\t * @returns {*} The resulting transformed data\n\t */\n\tmodule.exports = function transformData(data, headers, fns) {\n\t /*eslint no-param-reassign:0*/\n\t utils.forEach(fns, function transform(fn) {\n\t data = fn(data, headers);\n\t });\n\t\n\t return data;\n\t};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = function isCancel(value) {\n\t return !!(value && value.__CANCEL__);\n\t};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar normalizeHeaderName = __webpack_require__(11);\n\t\n\tvar DEFAULT_CONTENT_TYPE = {\n\t 'Content-Type': 'application/x-www-form-urlencoded'\n\t};\n\t\n\tfunction setContentTypeIfUnset(headers, value) {\n\t if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n\t headers['Content-Type'] = value;\n\t }\n\t}\n\t\n\tfunction getDefaultAdapter() {\n\t var adapter;\n\t if (typeof XMLHttpRequest !== 'undefined') {\n\t // For browsers use XHR adapter\n\t adapter = __webpack_require__(12);\n\t } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n\t // For node use HTTP adapter\n\t adapter = __webpack_require__(12);\n\t }\n\t return adapter;\n\t}\n\t\n\tvar defaults = {\n\t adapter: getDefaultAdapter(),\n\t\n\t transformRequest: [function transformRequest(data, headers) {\n\t normalizeHeaderName(headers, 'Accept');\n\t normalizeHeaderName(headers, 'Content-Type');\n\t if (utils.isFormData(data) ||\n\t utils.isArrayBuffer(data) ||\n\t utils.isBuffer(data) ||\n\t utils.isStream(data) ||\n\t utils.isFile(data) ||\n\t utils.isBlob(data)\n\t ) {\n\t return data;\n\t }\n\t if (utils.isArrayBufferView(data)) {\n\t return data.buffer;\n\t }\n\t if (utils.isURLSearchParams(data)) {\n\t setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n\t return data.toString();\n\t }\n\t if (utils.isObject(data)) {\n\t setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n\t return JSON.stringify(data);\n\t }\n\t return data;\n\t }],\n\t\n\t transformResponse: [function transformResponse(data) {\n\t /*eslint no-param-reassign:0*/\n\t if (typeof data === 'string') {\n\t try {\n\t data = JSON.parse(data);\n\t } catch (e) { /* Ignore */ }\n\t }\n\t return data;\n\t }],\n\t\n\t /**\n\t * A timeout in milliseconds to abort a request. If set to 0 (default) a\n\t * timeout is not created.\n\t */\n\t timeout: 0,\n\t\n\t xsrfCookieName: 'XSRF-TOKEN',\n\t xsrfHeaderName: 'X-XSRF-TOKEN',\n\t\n\t maxContentLength: -1,\n\t maxBodyLength: -1,\n\t\n\t validateStatus: function validateStatus(status) {\n\t return status >= 200 && status < 300;\n\t }\n\t};\n\t\n\tdefaults.headers = {\n\t common: {\n\t 'Accept': 'application/json, text/plain, */*'\n\t }\n\t};\n\t\n\tutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n\t defaults.headers[method] = {};\n\t});\n\t\n\tutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n\t defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n\t});\n\t\n\tmodule.exports = defaults;\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n\t utils.forEach(headers, function processHeader(value, name) {\n\t if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n\t headers[normalizedName] = value;\n\t delete headers[name];\n\t }\n\t });\n\t};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\tvar settle = __webpack_require__(13);\n\tvar cookies = __webpack_require__(16);\n\tvar buildURL = __webpack_require__(5);\n\tvar buildFullPath = __webpack_require__(17);\n\tvar parseHeaders = __webpack_require__(20);\n\tvar isURLSameOrigin = __webpack_require__(21);\n\tvar createError = __webpack_require__(14);\n\t\n\tmodule.exports = function xhrAdapter(config) {\n\t return new Promise(function dispatchXhrRequest(resolve, reject) {\n\t var requestData = config.data;\n\t var requestHeaders = config.headers;\n\t\n\t if (utils.isFormData(requestData)) {\n\t delete requestHeaders['Content-Type']; // Let the browser set it\n\t }\n\t\n\t var request = new XMLHttpRequest();\n\t\n\t // HTTP basic authentication\n\t if (config.auth) {\n\t var username = config.auth.username || '';\n\t var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n\t requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n\t }\n\t\n\t var fullPath = buildFullPath(config.baseURL, config.url);\n\t request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\t\n\t // Set the request timeout in MS\n\t request.timeout = config.timeout;\n\t\n\t // Listen for ready state\n\t request.onreadystatechange = function handleLoad() {\n\t if (!request || request.readyState !== 4) {\n\t return;\n\t }\n\t\n\t // The request errored out and we didn't get a response, this will be\n\t // handled by onerror instead\n\t // With one exception: request that using file: protocol, most browsers\n\t // will return status as 0 even though it's a successful request\n\t if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n\t return;\n\t }\n\t\n\t // Prepare the response\n\t var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n\t var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n\t var response = {\n\t data: responseData,\n\t status: request.status,\n\t statusText: request.statusText,\n\t headers: responseHeaders,\n\t config: config,\n\t request: request\n\t };\n\t\n\t settle(resolve, reject, response);\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle browser request cancellation (as opposed to a manual cancellation)\n\t request.onabort = function handleAbort() {\n\t if (!request) {\n\t return;\n\t }\n\t\n\t reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle low level network errors\n\t request.onerror = function handleError() {\n\t // Real errors are hidden from us by the browser\n\t // onerror should only fire if it's a network error\n\t reject(createError('Network Error', config, null, request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Handle timeout\n\t request.ontimeout = function handleTimeout() {\n\t var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\t if (config.timeoutErrorMessage) {\n\t timeoutErrorMessage = config.timeoutErrorMessage;\n\t }\n\t reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n\t request));\n\t\n\t // Clean up request\n\t request = null;\n\t };\n\t\n\t // Add xsrf header\n\t // This is only done if running in a standard browser environment.\n\t // Specifically not if we're in a web worker, or react-native.\n\t if (utils.isStandardBrowserEnv()) {\n\t // Add xsrf header\n\t var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n\t cookies.read(config.xsrfCookieName) :\n\t undefined;\n\t\n\t if (xsrfValue) {\n\t requestHeaders[config.xsrfHeaderName] = xsrfValue;\n\t }\n\t }\n\t\n\t // Add headers to the request\n\t if ('setRequestHeader' in request) {\n\t utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n\t if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n\t // Remove Content-Type if data is undefined\n\t delete requestHeaders[key];\n\t } else {\n\t // Otherwise add header to the request\n\t request.setRequestHeader(key, val);\n\t }\n\t });\n\t }\n\t\n\t // Add withCredentials to request if needed\n\t if (!utils.isUndefined(config.withCredentials)) {\n\t request.withCredentials = !!config.withCredentials;\n\t }\n\t\n\t // Add responseType to request if needed\n\t if (config.responseType) {\n\t try {\n\t request.responseType = config.responseType;\n\t } catch (e) {\n\t // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n\t // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n\t if (config.responseType !== 'json') {\n\t throw e;\n\t }\n\t }\n\t }\n\t\n\t // Handle progress if needed\n\t if (typeof config.onDownloadProgress === 'function') {\n\t request.addEventListener('progress', config.onDownloadProgress);\n\t }\n\t\n\t // Not all browsers support upload events\n\t if (typeof config.onUploadProgress === 'function' && request.upload) {\n\t request.upload.addEventListener('progress', config.onUploadProgress);\n\t }\n\t\n\t if (config.cancelToken) {\n\t // Handle cancellation\n\t config.cancelToken.promise.then(function onCanceled(cancel) {\n\t if (!request) {\n\t return;\n\t }\n\t\n\t request.abort();\n\t reject(cancel);\n\t // Clean up request\n\t request = null;\n\t });\n\t }\n\t\n\t if (!requestData) {\n\t requestData = null;\n\t }\n\t\n\t // Send the request\n\t request.send(requestData);\n\t });\n\t};\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar createError = __webpack_require__(14);\n\t\n\t/**\n\t * Resolve or reject a Promise based on response status.\n\t *\n\t * @param {Function} resolve A function that resolves the promise.\n\t * @param {Function} reject A function that rejects the promise.\n\t * @param {object} response The response.\n\t */\n\tmodule.exports = function settle(resolve, reject, response) {\n\t var validateStatus = response.config.validateStatus;\n\t if (!response.status || !validateStatus || validateStatus(response.status)) {\n\t resolve(response);\n\t } else {\n\t reject(createError(\n\t 'Request failed with status code ' + response.status,\n\t response.config,\n\t null,\n\t response.request,\n\t response\n\t ));\n\t }\n\t};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar enhanceError = __webpack_require__(15);\n\t\n\t/**\n\t * Create an Error with the specified message, config, error code, request and response.\n\t *\n\t * @param {string} message The error message.\n\t * @param {Object} config The config.\n\t * @param {string} [code] The error code (for example, 'ECONNABORTED').\n\t * @param {Object} [request] The request.\n\t * @param {Object} [response] The response.\n\t * @returns {Error} The created error.\n\t */\n\tmodule.exports = function createError(message, config, code, request, response) {\n\t var error = new Error(message);\n\t return enhanceError(error, config, code, request, response);\n\t};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Update an Error with the specified config, error code, and response.\n\t *\n\t * @param {Error} error The error to update.\n\t * @param {Object} config The config.\n\t * @param {string} [code] The error code (for example, 'ECONNABORTED').\n\t * @param {Object} [request] The request.\n\t * @param {Object} [response] The response.\n\t * @returns {Error} The error.\n\t */\n\tmodule.exports = function enhanceError(error, config, code, request, response) {\n\t error.config = config;\n\t if (code) {\n\t error.code = code;\n\t }\n\t\n\t error.request = request;\n\t error.response = response;\n\t error.isAxiosError = true;\n\t\n\t error.toJSON = function toJSON() {\n\t return {\n\t // Standard\n\t message: this.message,\n\t name: this.name,\n\t // Microsoft\n\t description: this.description,\n\t number: this.number,\n\t // Mozilla\n\t fileName: this.fileName,\n\t lineNumber: this.lineNumber,\n\t columnNumber: this.columnNumber,\n\t stack: this.stack,\n\t // Axios\n\t config: this.config,\n\t code: this.code\n\t };\n\t };\n\t return error;\n\t};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = (\n\t utils.isStandardBrowserEnv() ?\n\t\n\t // Standard browser envs support document.cookie\n\t (function standardBrowserEnv() {\n\t return {\n\t write: function write(name, value, expires, path, domain, secure) {\n\t var cookie = [];\n\t cookie.push(name + '=' + encodeURIComponent(value));\n\t\n\t if (utils.isNumber(expires)) {\n\t cookie.push('expires=' + new Date(expires).toGMTString());\n\t }\n\t\n\t if (utils.isString(path)) {\n\t cookie.push('path=' + path);\n\t }\n\t\n\t if (utils.isString(domain)) {\n\t cookie.push('domain=' + domain);\n\t }\n\t\n\t if (secure === true) {\n\t cookie.push('secure');\n\t }\n\t\n\t document.cookie = cookie.join('; ');\n\t },\n\t\n\t read: function read(name) {\n\t var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n\t return (match ? decodeURIComponent(match[3]) : null);\n\t },\n\t\n\t remove: function remove(name) {\n\t this.write(name, '', Date.now() - 86400000);\n\t }\n\t };\n\t })() :\n\t\n\t // Non standard browser env (web workers, react-native) lack needed support.\n\t (function nonStandardBrowserEnv() {\n\t return {\n\t write: function write() {},\n\t read: function read() { return null; },\n\t remove: function remove() {}\n\t };\n\t })()\n\t);\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar isAbsoluteURL = __webpack_require__(18);\n\tvar combineURLs = __webpack_require__(19);\n\t\n\t/**\n\t * Creates a new URL by combining the baseURL with the requestedURL,\n\t * only when the requestedURL is not already an absolute URL.\n\t * If the requestURL is absolute, this function returns the requestedURL untouched.\n\t *\n\t * @param {string} baseURL The base URL\n\t * @param {string} requestedURL Absolute or relative URL to combine\n\t * @returns {string} The combined full path\n\t */\n\tmodule.exports = function buildFullPath(baseURL, requestedURL) {\n\t if (baseURL && !isAbsoluteURL(requestedURL)) {\n\t return combineURLs(baseURL, requestedURL);\n\t }\n\t return requestedURL;\n\t};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Determines whether the specified URL is absolute\n\t *\n\t * @param {string} url The URL to test\n\t * @returns {boolean} True if the specified URL is absolute, otherwise false\n\t */\n\tmodule.exports = function isAbsoluteURL(url) {\n\t // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n\t // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n\t // by any combination of letters, digits, plus, period, or hyphen.\n\t return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n\t};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Creates a new URL by combining the specified URLs\n\t *\n\t * @param {string} baseURL The base URL\n\t * @param {string} relativeURL The relative URL\n\t * @returns {string} The combined URL\n\t */\n\tmodule.exports = function combineURLs(baseURL, relativeURL) {\n\t return relativeURL\n\t ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n\t : baseURL;\n\t};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t// Headers whose duplicates are ignored by node\n\t// c.f. https://nodejs.org/api/http.html#http_message_headers\n\tvar ignoreDuplicateOf = [\n\t 'age', 'authorization', 'content-length', 'content-type', 'etag',\n\t 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n\t 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n\t 'referer', 'retry-after', 'user-agent'\n\t];\n\t\n\t/**\n\t * Parse headers into an object\n\t *\n\t * ```\n\t * Date: Wed, 27 Aug 2014 08:58:49 GMT\n\t * Content-Type: application/json\n\t * Connection: keep-alive\n\t * Transfer-Encoding: chunked\n\t * ```\n\t *\n\t * @param {String} headers Headers needing to be parsed\n\t * @returns {Object} Headers parsed into an object\n\t */\n\tmodule.exports = function parseHeaders(headers) {\n\t var parsed = {};\n\t var key;\n\t var val;\n\t var i;\n\t\n\t if (!headers) { return parsed; }\n\t\n\t utils.forEach(headers.split('\\n'), function parser(line) {\n\t i = line.indexOf(':');\n\t key = utils.trim(line.substr(0, i)).toLowerCase();\n\t val = utils.trim(line.substr(i + 1));\n\t\n\t if (key) {\n\t if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n\t return;\n\t }\n\t if (key === 'set-cookie') {\n\t parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n\t } else {\n\t parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n\t }\n\t }\n\t });\n\t\n\t return parsed;\n\t};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\tmodule.exports = (\n\t utils.isStandardBrowserEnv() ?\n\t\n\t // Standard browser envs have full support of the APIs needed to test\n\t // whether the request URL is of the same origin as current location.\n\t (function standardBrowserEnv() {\n\t var msie = /(msie|trident)/i.test(navigator.userAgent);\n\t var urlParsingNode = document.createElement('a');\n\t var originURL;\n\t\n\t /**\n\t * Parse a URL to discover it's components\n\t *\n\t * @param {String} url The URL to be parsed\n\t * @returns {Object}\n\t */\n\t function resolveURL(url) {\n\t var href = url;\n\t\n\t if (msie) {\n\t // IE needs attribute set twice to normalize properties\n\t urlParsingNode.setAttribute('href', href);\n\t href = urlParsingNode.href;\n\t }\n\t\n\t urlParsingNode.setAttribute('href', href);\n\t\n\t // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\t return {\n\t href: urlParsingNode.href,\n\t protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n\t host: urlParsingNode.host,\n\t search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n\t hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n\t hostname: urlParsingNode.hostname,\n\t port: urlParsingNode.port,\n\t pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n\t urlParsingNode.pathname :\n\t '/' + urlParsingNode.pathname\n\t };\n\t }\n\t\n\t originURL = resolveURL(window.location.href);\n\t\n\t /**\n\t * Determine if a URL shares the same origin as the current location\n\t *\n\t * @param {String} requestURL The URL to test\n\t * @returns {boolean} True if URL shares the same origin, otherwise false\n\t */\n\t return function isURLSameOrigin(requestURL) {\n\t var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n\t return (parsed.protocol === originURL.protocol &&\n\t parsed.host === originURL.host);\n\t };\n\t })() :\n\t\n\t // Non standard browser envs (web workers, react-native) lack needed support.\n\t (function nonStandardBrowserEnv() {\n\t return function isURLSameOrigin() {\n\t return true;\n\t };\n\t })()\n\t);\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar utils = __webpack_require__(2);\n\t\n\t/**\n\t * Config-specific merge-function which creates a new config-object\n\t * by merging two configuration objects together.\n\t *\n\t * @param {Object} config1\n\t * @param {Object} config2\n\t * @returns {Object} New object resulting from merging config2 to config1\n\t */\n\tmodule.exports = function mergeConfig(config1, config2) {\n\t // eslint-disable-next-line no-param-reassign\n\t config2 = config2 || {};\n\t var config = {};\n\t\n\t var valueFromConfig2Keys = ['url', 'method', 'data'];\n\t var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n\t var defaultToConfig2Keys = [\n\t 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n\t 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n\t 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n\t 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n\t 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n\t ];\n\t var directMergeKeys = ['validateStatus'];\n\t\n\t function getMergedValue(target, source) {\n\t if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n\t return utils.merge(target, source);\n\t } else if (utils.isPlainObject(source)) {\n\t return utils.merge({}, source);\n\t } else if (utils.isArray(source)) {\n\t return source.slice();\n\t }\n\t return source;\n\t }\n\t\n\t function mergeDeepProperties(prop) {\n\t if (!utils.isUndefined(config2[prop])) {\n\t config[prop] = getMergedValue(config1[prop], config2[prop]);\n\t } else if (!utils.isUndefined(config1[prop])) {\n\t config[prop] = getMergedValue(undefined, config1[prop]);\n\t }\n\t }\n\t\n\t utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n\t if (!utils.isUndefined(config2[prop])) {\n\t config[prop] = getMergedValue(undefined, config2[prop]);\n\t }\n\t });\n\t\n\t utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\t\n\t utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n\t if (!utils.isUndefined(config2[prop])) {\n\t config[prop] = getMergedValue(undefined, config2[prop]);\n\t } else if (!utils.isUndefined(config1[prop])) {\n\t config[prop] = getMergedValue(undefined, config1[prop]);\n\t }\n\t });\n\t\n\t utils.forEach(directMergeKeys, function merge(prop) {\n\t if (prop in config2) {\n\t config[prop] = getMergedValue(config1[prop], config2[prop]);\n\t } else if (prop in config1) {\n\t config[prop] = getMergedValue(undefined, config1[prop]);\n\t }\n\t });\n\t\n\t var axiosKeys = valueFromConfig2Keys\n\t .concat(mergeDeepPropertiesKeys)\n\t .concat(defaultToConfig2Keys)\n\t .concat(directMergeKeys);\n\t\n\t var otherKeys = Object\n\t .keys(config1)\n\t .concat(Object.keys(config2))\n\t .filter(function filterAxiosKeys(key) {\n\t return axiosKeys.indexOf(key) === -1;\n\t });\n\t\n\t utils.forEach(otherKeys, mergeDeepProperties);\n\t\n\t return config;\n\t};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * A `Cancel` is an object that is thrown when an operation is canceled.\n\t *\n\t * @class\n\t * @param {string=} message The message.\n\t */\n\tfunction Cancel(message) {\n\t this.message = message;\n\t}\n\t\n\tCancel.prototype.toString = function toString() {\n\t return 'Cancel' + (this.message ? ': ' + this.message : '');\n\t};\n\t\n\tCancel.prototype.__CANCEL__ = true;\n\t\n\tmodule.exports = Cancel;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar Cancel = __webpack_require__(23);\n\t\n\t/**\n\t * A `CancelToken` is an object that can be used to request cancellation of an operation.\n\t *\n\t * @class\n\t * @param {Function} executor The executor function.\n\t */\n\tfunction CancelToken(executor) {\n\t if (typeof executor !== 'function') {\n\t throw new TypeError('executor must be a function.');\n\t }\n\t\n\t var resolvePromise;\n\t this.promise = new Promise(function promiseExecutor(resolve) {\n\t resolvePromise = resolve;\n\t });\n\t\n\t var token = this;\n\t executor(function cancel(message) {\n\t if (token.reason) {\n\t // Cancellation has already been requested\n\t return;\n\t }\n\t\n\t token.reason = new Cancel(message);\n\t resolvePromise(token.reason);\n\t });\n\t}\n\t\n\t/**\n\t * Throws a `Cancel` if cancellation has been requested.\n\t */\n\tCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n\t if (this.reason) {\n\t throw this.reason;\n\t }\n\t};\n\t\n\t/**\n\t * Returns an object that contains a new `CancelToken` and a function that, when called,\n\t * cancels the `CancelToken`.\n\t */\n\tCancelToken.source = function source() {\n\t var cancel;\n\t var token = new CancelToken(function executor(c) {\n\t cancel = c;\n\t });\n\t return {\n\t token: token,\n\t cancel: cancel\n\t };\n\t};\n\t\n\tmodule.exports = CancelToken;\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Syntactic sugar for invoking a function and expanding an array for arguments.\n\t *\n\t * Common use case would be to use `Function.prototype.apply`.\n\t *\n\t * ```js\n\t * function f(x, y, z) {}\n\t * var args = [1, 2, 3];\n\t * f.apply(null, args);\n\t * ```\n\t *\n\t * With `spread` this example can be re-written.\n\t *\n\t * ```js\n\t * spread(function(x, y, z) {})([1, 2, 3]);\n\t * ```\n\t *\n\t * @param {Function} callback\n\t * @returns {Function}\n\t */\n\tmodule.exports = function spread(callback) {\n\t return function wrap(arr) {\n\t return callback.apply(null, arr);\n\t };\n\t};\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t * Determines whether the payload is an error thrown by Axios\n\t *\n\t * @param {*} payload The value to test\n\t * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n\t */\n\tmodule.exports = function isAxiosError(payload) {\n\t return (typeof payload === 'object') && (payload.isAxiosError === true);\n\t};\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// axios.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 081842adca0968bb3270","module.exports = require('./lib/axios');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.js\n// module id = 0\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/axios.js\n// module id = 1\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/utils.js\n// module id = 2\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/bind.js\n// module id = 3\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/Axios.js\n// module id = 4\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/buildURL.js\n// module id = 5\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/InterceptorManager.js\n// module id = 6\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/dispatchRequest.js\n// module id = 7\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/transformData.js\n// module id = 8\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/isCancel.js\n// module id = 9\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/defaults.js\n// module id = 10\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/normalizeHeaderName.js\n// module id = 11\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/adapters/xhr.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/settle.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/createError.js\n// module id = 14\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/enhanceError.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/cookies.js\n// module id = 16\n// module chunks = 0","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/buildFullPath.js\n// module id = 17\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isAbsoluteURL.js\n// module id = 18\n// module chunks = 0","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/combineURLs.js\n// module id = 19\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/parseHeaders.js\n// module id = 20\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isURLSameOrigin.js\n// module id = 21\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/core/mergeConfig.js\n// module id = 22\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/Cancel.js\n// module id = 23\n// module chunks = 0","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/cancel/CancelToken.js\n// module id = 24\n// module chunks = 0","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/spread.js\n// module id = 25\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./lib/helpers/isAxiosError.js\n// module id = 26\n// module chunks = 0"],"sourceRoot":""}
\ No newline at end of file
diff --git a/server/node_modules/axios/index.d.ts b/server/node_modules/axios/index.d.ts
old mode 100755
new mode 100644
index fc1fd18..c74e93c
--- a/server/node_modules/axios/index.d.ts
+++ b/server/node_modules/axios/index.d.ts
@@ -29,15 +29,16 @@ export type Method =
| 'post' | 'POST'
| 'put' | 'PUT'
| 'patch' | 'PATCH'
+ | 'purge' | 'PURGE'
| 'link' | 'LINK'
| 'unlink' | 'UNLINK'
-export type ResponseType =
- | 'arraybuffer'
- | 'blob'
- | 'document'
- | 'json'
- | 'text'
+export type ResponseType =
+ | 'arraybuffer'
+ | 'blob'
+ | 'document'
+ | 'json'
+ | 'text'
| 'stream'
export interface AxiosRequestConfig {
@@ -61,13 +62,15 @@ export interface AxiosRequestConfig {
onUploadProgress?: (progressEvent: any) => void;
onDownloadProgress?: (progressEvent: any) => void;
maxContentLength?: number;
- validateStatus?: (status: number) => boolean;
+ validateStatus?: ((status: number) => boolean) | null;
+ maxBodyLength?: number;
maxRedirects?: number;
socketPath?: string | null;
httpAgent?: any;
httpsAgent?: any;
proxy?: AxiosProxyConfig | false;
cancelToken?: CancelToken;
+ decompress?: boolean;
}
export interface AxiosResponse {
@@ -150,8 +153,9 @@ export interface AxiosStatic extends AxiosInstance {
isCancel(value: any): boolean;
all(values: (T | Promise)[]): Promise;
spread(callback: (...args: T[]) => R): (array: T[]) => R;
+ isAxiosError(payload: any): payload is AxiosError;
}
-declare const Axios: AxiosStatic;
+declare const axios: AxiosStatic;
-export default Axios;
+export default axios;
diff --git a/server/node_modules/axios/index.js b/server/node_modules/axios/index.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/adapters/README.md b/server/node_modules/axios/lib/adapters/README.md
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/adapters/http.js b/server/node_modules/axios/lib/adapters/http.js
index 16dad12..f32241f 100755
--- a/server/node_modules/axios/lib/adapters/http.js
+++ b/server/node_modules/axios/lib/adapters/http.js
@@ -16,6 +16,31 @@ var enhanceError = require('../core/enhanceError');
var isHttps = /https:?/;
+/**
+ *
+ * @param {http.ClientRequestArgs} options
+ * @param {AxiosProxyConfig} proxy
+ * @param {string} location
+ */
+function setProxy(options, proxy, location) {
+ options.hostname = proxy.host;
+ options.host = proxy.host;
+ options.port = proxy.port;
+ options.path = location;
+
+ // Basic proxy authorization
+ if (proxy.auth) {
+ var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');
+ options.headers['Proxy-Authorization'] = 'Basic ' + base64;
+ }
+
+ // If a proxy is used, any redirects must also pass through the proxy
+ options.beforeRedirect = function beforeRedirect(redirection) {
+ redirection.headers.host = redirection.host;
+ setProxy(redirection, proxy, redirection.href);
+ };
+}
+
/*eslint consistent-return:0*/
module.exports = function httpAdapter(config) {
return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) {
@@ -126,11 +151,11 @@ module.exports = function httpAdapter(config) {
});
}
-
if (shouldProxy) {
proxy = {
host: parsedProxyUrl.hostname,
- port: parsedProxyUrl.port
+ port: parsedProxyUrl.port,
+ protocol: parsedProxyUrl.protocol
};
if (parsedProxyUrl.auth) {
@@ -145,17 +170,8 @@ module.exports = function httpAdapter(config) {
}
if (proxy) {
- options.hostname = proxy.host;
- options.host = proxy.host;
options.headers.host = parsed.hostname + (parsed.port ? ':' + parsed.port : '');
- options.port = proxy.port;
- options.path = protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path;
-
- // Basic proxy authorization
- if (proxy.auth) {
- var base64 = Buffer.from(proxy.auth.username + ':' + proxy.auth.password, 'utf8').toString('base64');
- options.headers['Proxy-Authorization'] = 'Basic ' + base64;
- }
+ setProxy(options, proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);
}
var transport;
@@ -171,8 +187,8 @@ module.exports = function httpAdapter(config) {
transport = isHttpsProxy ? httpsFollow : httpFollow;
}
- if (config.maxContentLength && config.maxContentLength > -1) {
- options.maxBodyLength = config.maxContentLength;
+ if (config.maxBodyLength > -1) {
+ options.maxBodyLength = config.maxBodyLength;
}
// Create the request
@@ -181,22 +197,27 @@ module.exports = function httpAdapter(config) {
// uncompress the response body transparently if required
var stream = res;
- switch (res.headers['content-encoding']) {
- /*eslint default-case:0*/
- case 'gzip':
- case 'compress':
- case 'deflate':
- // add the unzipper to the body stream processing pipeline
- stream = (res.statusCode === 204) ? stream : stream.pipe(zlib.createUnzip());
-
- // remove the content-encoding in order to not confuse downstream operations
- delete res.headers['content-encoding'];
- break;
- }
// return the last request in case of redirects
var lastRequest = res.req || req;
+
+ // if no content, is HEAD request or decompress disabled we should not decompress
+ if (res.statusCode !== 204 && lastRequest.method !== 'HEAD' && config.decompress !== false) {
+ switch (res.headers['content-encoding']) {
+ /*eslint default-case:0*/
+ case 'gzip':
+ case 'compress':
+ case 'deflate':
+ // add the unzipper to the body stream processing pipeline
+ stream = stream.pipe(zlib.createUnzip());
+
+ // remove the content-encoding in order to not confuse downstream operations
+ delete res.headers['content-encoding'];
+ break;
+ }
+ }
+
var response = {
status: res.statusCode,
statusText: res.statusMessage,
@@ -230,6 +251,9 @@ module.exports = function httpAdapter(config) {
var responseData = Buffer.concat(responseBuffer);
if (config.responseType !== 'arraybuffer') {
responseData = responseData.toString(config.responseEncoding);
+ if (!config.responseEncoding || config.responseEncoding === 'utf8') {
+ responseData = utils.stripBOM(responseData);
+ }
}
response.data = responseData;
@@ -240,7 +264,7 @@ module.exports = function httpAdapter(config) {
// Handle errors
req.on('error', function handleRequestError(err) {
- if (req.aborted) return;
+ if (req.aborted && err.code !== 'ERR_FR_TOO_MANY_REDIRECTS') return;
reject(enhanceError(err, config, null, req));
});
diff --git a/server/node_modules/axios/lib/adapters/xhr.js b/server/node_modules/axios/lib/adapters/xhr.js
old mode 100755
new mode 100644
index 377e3e9..3027752
--- a/server/node_modules/axios/lib/adapters/xhr.js
+++ b/server/node_modules/axios/lib/adapters/xhr.js
@@ -2,6 +2,7 @@
var utils = require('./../utils');
var settle = require('./../core/settle');
+var cookies = require('./../helpers/cookies');
var buildURL = require('./../helpers/buildURL');
var buildFullPath = require('../core/buildFullPath');
var parseHeaders = require('./../helpers/parseHeaders');
@@ -22,7 +23,7 @@ module.exports = function xhrAdapter(config) {
// HTTP basic authentication
if (config.auth) {
var username = config.auth.username || '';
- var password = config.auth.password || '';
+ var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';
requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);
}
@@ -103,8 +104,6 @@ module.exports = function xhrAdapter(config) {
// This is only done if running in a standard browser environment.
// Specifically not if we're in a web worker, or react-native.
if (utils.isStandardBrowserEnv()) {
- var cookies = require('./../helpers/cookies');
-
// Add xsrf header
var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?
cookies.read(config.xsrfCookieName) :
@@ -170,7 +169,7 @@ module.exports = function xhrAdapter(config) {
});
}
- if (requestData === undefined) {
+ if (!requestData) {
requestData = null;
}
diff --git a/server/node_modules/axios/lib/axios.js b/server/node_modules/axios/lib/axios.js
old mode 100755
new mode 100644
index 8142437..c6357b0
--- a/server/node_modules/axios/lib/axios.js
+++ b/server/node_modules/axios/lib/axios.js
@@ -47,6 +47,9 @@ axios.all = function all(promises) {
};
axios.spread = require('./helpers/spread');
+// Expose isAxiosError
+axios.isAxiosError = require('./helpers/isAxiosError');
+
module.exports = axios;
// Allow use of default import syntax in TypeScript
diff --git a/server/node_modules/axios/lib/cancel/Cancel.js b/server/node_modules/axios/lib/cancel/Cancel.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/cancel/CancelToken.js b/server/node_modules/axios/lib/cancel/CancelToken.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/cancel/isCancel.js b/server/node_modules/axios/lib/cancel/isCancel.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/core/Axios.js b/server/node_modules/axios/lib/core/Axios.js
old mode 100755
new mode 100644
index fb34ace..c28c413
--- a/server/node_modules/axios/lib/core/Axios.js
+++ b/server/node_modules/axios/lib/core/Axios.js
@@ -73,9 +73,10 @@ Axios.prototype.getUri = function getUri(config) {
utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
/*eslint func-names:0*/
Axios.prototype[method] = function(url, config) {
- return this.request(utils.merge(config || {}, {
+ return this.request(mergeConfig(config || {}, {
method: method,
- url: url
+ url: url,
+ data: (config || {}).data
}));
};
});
@@ -83,7 +84,7 @@ utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData
utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
/*eslint func-names:0*/
Axios.prototype[method] = function(url, data, config) {
- return this.request(utils.merge(config || {}, {
+ return this.request(mergeConfig(config || {}, {
method: method,
url: url,
data: data
diff --git a/server/node_modules/axios/lib/core/InterceptorManager.js b/server/node_modules/axios/lib/core/InterceptorManager.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/core/README.md b/server/node_modules/axios/lib/core/README.md
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/core/buildFullPath.js b/server/node_modules/axios/lib/core/buildFullPath.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/core/createError.js b/server/node_modules/axios/lib/core/createError.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/core/dispatchRequest.js b/server/node_modules/axios/lib/core/dispatchRequest.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/core/enhanceError.js b/server/node_modules/axios/lib/core/enhanceError.js
old mode 100755
new mode 100644
index 02fbbd6..b6bc444
--- a/server/node_modules/axios/lib/core/enhanceError.js
+++ b/server/node_modules/axios/lib/core/enhanceError.js
@@ -20,7 +20,7 @@ module.exports = function enhanceError(error, config, code, request, response) {
error.response = response;
error.isAxiosError = true;
- error.toJSON = function() {
+ error.toJSON = function toJSON() {
return {
// Standard
message: this.message,
diff --git a/server/node_modules/axios/lib/core/mergeConfig.js b/server/node_modules/axios/lib/core/mergeConfig.js
old mode 100755
new mode 100644
index 8e1ce61..5a2c10c
--- a/server/node_modules/axios/lib/core/mergeConfig.js
+++ b/server/node_modules/axios/lib/core/mergeConfig.js
@@ -15,59 +15,73 @@ module.exports = function mergeConfig(config1, config2) {
config2 = config2 || {};
var config = {};
- var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];
- var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];
+ var valueFromConfig2Keys = ['url', 'method', 'data'];
+ var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];
var defaultToConfig2Keys = [
- 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',
- 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',
- 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',
- 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',
- 'httpsAgent', 'cancelToken', 'socketPath'
+ 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',
+ 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',
+ 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',
+ 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',
+ 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'
];
+ var directMergeKeys = ['validateStatus'];
+
+ function getMergedValue(target, source) {
+ if (utils.isPlainObject(target) && utils.isPlainObject(source)) {
+ return utils.merge(target, source);
+ } else if (utils.isPlainObject(source)) {
+ return utils.merge({}, source);
+ } else if (utils.isArray(source)) {
+ return source.slice();
+ }
+ return source;
+ }
+
+ function mergeDeepProperties(prop) {
+ if (!utils.isUndefined(config2[prop])) {
+ config[prop] = getMergedValue(config1[prop], config2[prop]);
+ } else if (!utils.isUndefined(config1[prop])) {
+ config[prop] = getMergedValue(undefined, config1[prop]);
+ }
+ }
utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {
- if (typeof config2[prop] !== 'undefined') {
- config[prop] = config2[prop];
+ if (!utils.isUndefined(config2[prop])) {
+ config[prop] = getMergedValue(undefined, config2[prop]);
}
});
- utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {
- if (utils.isObject(config2[prop])) {
- config[prop] = utils.deepMerge(config1[prop], config2[prop]);
- } else if (typeof config2[prop] !== 'undefined') {
- config[prop] = config2[prop];
- } else if (utils.isObject(config1[prop])) {
- config[prop] = utils.deepMerge(config1[prop]);
- } else if (typeof config1[prop] !== 'undefined') {
- config[prop] = config1[prop];
+ utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);
+
+ utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {
+ if (!utils.isUndefined(config2[prop])) {
+ config[prop] = getMergedValue(undefined, config2[prop]);
+ } else if (!utils.isUndefined(config1[prop])) {
+ config[prop] = getMergedValue(undefined, config1[prop]);
}
});
- utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {
- if (typeof config2[prop] !== 'undefined') {
- config[prop] = config2[prop];
- } else if (typeof config1[prop] !== 'undefined') {
- config[prop] = config1[prop];
+ utils.forEach(directMergeKeys, function merge(prop) {
+ if (prop in config2) {
+ config[prop] = getMergedValue(config1[prop], config2[prop]);
+ } else if (prop in config1) {
+ config[prop] = getMergedValue(undefined, config1[prop]);
}
});
var axiosKeys = valueFromConfig2Keys
.concat(mergeDeepPropertiesKeys)
- .concat(defaultToConfig2Keys);
+ .concat(defaultToConfig2Keys)
+ .concat(directMergeKeys);
var otherKeys = Object
- .keys(config2)
+ .keys(config1)
+ .concat(Object.keys(config2))
.filter(function filterAxiosKeys(key) {
return axiosKeys.indexOf(key) === -1;
});
- utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {
- if (typeof config2[prop] !== 'undefined') {
- config[prop] = config2[prop];
- } else if (typeof config1[prop] !== 'undefined') {
- config[prop] = config1[prop];
- }
- });
+ utils.forEach(otherKeys, mergeDeepProperties);
return config;
};
diff --git a/server/node_modules/axios/lib/core/settle.js b/server/node_modules/axios/lib/core/settle.js
old mode 100755
new mode 100644
index 071d9e3..886adb0
--- a/server/node_modules/axios/lib/core/settle.js
+++ b/server/node_modules/axios/lib/core/settle.js
@@ -11,7 +11,7 @@ var createError = require('./createError');
*/
module.exports = function settle(resolve, reject, response) {
var validateStatus = response.config.validateStatus;
- if (!validateStatus || validateStatus(response.status)) {
+ if (!response.status || !validateStatus || validateStatus(response.status)) {
resolve(response);
} else {
reject(createError(
diff --git a/server/node_modules/axios/lib/core/transformData.js b/server/node_modules/axios/lib/core/transformData.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/defaults.js b/server/node_modules/axios/lib/defaults.js
old mode 100755
new mode 100644
index 23e1cbd..2b2a1a7
--- a/server/node_modules/axios/lib/defaults.js
+++ b/server/node_modules/axios/lib/defaults.js
@@ -74,6 +74,7 @@ var defaults = {
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
+ maxBodyLength: -1,
validateStatus: function validateStatus(status) {
return status >= 200 && status < 300;
diff --git a/server/node_modules/axios/lib/helpers/README.md b/server/node_modules/axios/lib/helpers/README.md
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/helpers/bind.js b/server/node_modules/axios/lib/helpers/bind.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/helpers/buildURL.js b/server/node_modules/axios/lib/helpers/buildURL.js
old mode 100755
new mode 100644
index 8c40e40..31595c3
--- a/server/node_modules/axios/lib/helpers/buildURL.js
+++ b/server/node_modules/axios/lib/helpers/buildURL.js
@@ -4,7 +4,6 @@ var utils = require('./../utils');
function encode(val) {
return encodeURIComponent(val).
- replace(/%40/gi, '@').
replace(/%3A/gi, ':').
replace(/%24/g, '$').
replace(/%2C/gi, ',').
diff --git a/server/node_modules/axios/lib/helpers/combineURLs.js b/server/node_modules/axios/lib/helpers/combineURLs.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/helpers/cookies.js b/server/node_modules/axios/lib/helpers/cookies.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/helpers/deprecatedMethod.js b/server/node_modules/axios/lib/helpers/deprecatedMethod.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/helpers/isAbsoluteURL.js b/server/node_modules/axios/lib/helpers/isAbsoluteURL.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/helpers/isAxiosError.js b/server/node_modules/axios/lib/helpers/isAxiosError.js
new file mode 100644
index 0000000..29ff41a
--- /dev/null
+++ b/server/node_modules/axios/lib/helpers/isAxiosError.js
@@ -0,0 +1,11 @@
+'use strict';
+
+/**
+ * Determines whether the payload is an error thrown by Axios
+ *
+ * @param {*} payload The value to test
+ * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
+ */
+module.exports = function isAxiosError(payload) {
+ return (typeof payload === 'object') && (payload.isAxiosError === true);
+};
diff --git a/server/node_modules/axios/lib/helpers/isURLSameOrigin.js b/server/node_modules/axios/lib/helpers/isURLSameOrigin.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/helpers/normalizeHeaderName.js b/server/node_modules/axios/lib/helpers/normalizeHeaderName.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/helpers/parseHeaders.js b/server/node_modules/axios/lib/helpers/parseHeaders.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/helpers/spread.js b/server/node_modules/axios/lib/helpers/spread.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/axios/lib/utils.js b/server/node_modules/axios/lib/utils.js
old mode 100755
new mode 100644
index e028c67..83eb1c6
--- a/server/node_modules/axios/lib/utils.js
+++ b/server/node_modules/axios/lib/utils.js
@@ -105,6 +105,21 @@ function isObject(val) {
return val !== null && typeof val === 'object';
}
+/**
+ * Determine if a value is a plain Object
+ *
+ * @param {Object} val The value to test
+ * @return {boolean} True if value is a plain Object, otherwise false
+ */
+function isPlainObject(val) {
+ if (toString.call(val) !== '[object Object]') {
+ return false;
+ }
+
+ var prototype = Object.getPrototypeOf(val);
+ return prototype === null || prototype === Object.prototype;
+}
+
/**
* Determine if a value is a Date
*
@@ -261,34 +276,12 @@ function forEach(obj, fn) {
function merge(/* obj1, obj2, obj3, ... */) {
var result = {};
function assignValue(val, key) {
- if (typeof result[key] === 'object' && typeof val === 'object') {
+ if (isPlainObject(result[key]) && isPlainObject(val)) {
result[key] = merge(result[key], val);
- } else {
- result[key] = val;
- }
- }
-
- for (var i = 0, l = arguments.length; i < l; i++) {
- forEach(arguments[i], assignValue);
- }
- return result;
-}
-
-/**
- * Function equal to merge with the difference being that no reference
- * to original objects is kept.
- *
- * @see merge
- * @param {Object} obj1 Object to merge
- * @returns {Object} Result of all merge properties
- */
-function deepMerge(/* obj1, obj2, obj3, ... */) {
- var result = {};
- function assignValue(val, key) {
- if (typeof result[key] === 'object' && typeof val === 'object') {
- result[key] = deepMerge(result[key], val);
- } else if (typeof val === 'object') {
- result[key] = deepMerge({}, val);
+ } else if (isPlainObject(val)) {
+ result[key] = merge({}, val);
+ } else if (isArray(val)) {
+ result[key] = val.slice();
} else {
result[key] = val;
}
@@ -319,6 +312,19 @@ function extend(a, b, thisArg) {
return a;
}
+/**
+ * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
+ *
+ * @param {string} content with BOM
+ * @return {string} content value without BOM
+ */
+function stripBOM(content) {
+ if (content.charCodeAt(0) === 0xFEFF) {
+ content = content.slice(1);
+ }
+ return content;
+}
+
module.exports = {
isArray: isArray,
isArrayBuffer: isArrayBuffer,
@@ -328,6 +334,7 @@ module.exports = {
isString: isString,
isNumber: isNumber,
isObject: isObject,
+ isPlainObject: isPlainObject,
isUndefined: isUndefined,
isDate: isDate,
isFile: isFile,
@@ -338,7 +345,7 @@ module.exports = {
isStandardBrowserEnv: isStandardBrowserEnv,
forEach: forEach,
merge: merge,
- deepMerge: deepMerge,
extend: extend,
- trim: trim
+ trim: trim,
+ stripBOM: stripBOM
};
diff --git a/server/node_modules/axios/node_modules/follow-redirects/LICENSE b/server/node_modules/axios/node_modules/follow-redirects/LICENSE
new file mode 100644
index 0000000..742cbad
--- /dev/null
+++ b/server/node_modules/axios/node_modules/follow-redirects/LICENSE
@@ -0,0 +1,18 @@
+Copyright 2014–present Olivier Lalonde , James Talmage , Ruben Verborgh
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/server/node_modules/axios/node_modules/follow-redirects/README.md b/server/node_modules/axios/node_modules/follow-redirects/README.md
new file mode 100644
index 0000000..ea618ab
--- /dev/null
+++ b/server/node_modules/axios/node_modules/follow-redirects/README.md
@@ -0,0 +1,148 @@
+## Follow Redirects
+
+Drop-in replacement for Node's `http` and `https` modules that automatically follows redirects.
+
+[![npm version](https://img.shields.io/npm/v/follow-redirects.svg)](https://www.npmjs.com/package/follow-redirects)
+[![Build Status](https://github.com/follow-redirects/follow-redirects/workflows/CI/badge.svg)](https://github.com/follow-redirects/follow-redirects/actions)
+[![Coverage Status](https://coveralls.io/repos/follow-redirects/follow-redirects/badge.svg?branch=master)](https://coveralls.io/r/follow-redirects/follow-redirects?branch=master)
+[![npm downloads](https://img.shields.io/npm/dm/follow-redirects.svg)](https://www.npmjs.com/package/follow-redirects)
+[![Sponsor on GitHub](https://img.shields.io/static/v1?label=Sponsor&message=%F0%9F%92%96&logo=GitHub)](https://github.com/sponsors/RubenVerborgh)
+
+`follow-redirects` provides [request](https://nodejs.org/api/http.html#http_http_request_options_callback) and [get](https://nodejs.org/api/http.html#http_http_get_options_callback)
+ methods that behave identically to those found on the native [http](https://nodejs.org/api/http.html#http_http_request_options_callback) and [https](https://nodejs.org/api/https.html#https_https_request_options_callback)
+ modules, with the exception that they will seamlessly follow redirects.
+
+```javascript
+const { http, https } = require('follow-redirects');
+
+http.get('http://bit.ly/900913', response => {
+ response.on('data', chunk => {
+ console.log(chunk);
+ });
+}).on('error', err => {
+ console.error(err);
+});
+```
+
+You can inspect the final redirected URL through the `responseUrl` property on the `response`.
+If no redirection happened, `responseUrl` is the original request URL.
+
+```javascript
+const request = https.request({
+ host: 'bitly.com',
+ path: '/UHfDGO',
+}, response => {
+ console.log(response.responseUrl);
+ // 'http://duckduckgo.com/robots.txt'
+});
+request.end();
+```
+
+## Options
+### Global options
+Global options are set directly on the `follow-redirects` module:
+
+```javascript
+const followRedirects = require('follow-redirects');
+followRedirects.maxRedirects = 10;
+followRedirects.maxBodyLength = 20 * 1024 * 1024; // 20 MB
+```
+
+The following global options are supported:
+
+- `maxRedirects` (default: `21`) – sets the maximum number of allowed redirects; if exceeded, an error will be emitted.
+
+- `maxBodyLength` (default: 10MB) – sets the maximum size of the request body; if exceeded, an error will be emitted.
+
+### Per-request options
+Per-request options are set by passing an `options` object:
+
+```javascript
+const url = require('url');
+const { http, https } = require('follow-redirects');
+
+const options = url.parse('http://bit.ly/900913');
+options.maxRedirects = 10;
+options.beforeRedirect = (options, { headers }) => {
+ // Use this to adjust the request options upon redirecting,
+ // to inspect the latest response headers,
+ // or to cancel the request by throwing an error
+ if (options.hostname === "example.com") {
+ options.auth = "user:password";
+ }
+};
+http.request(options);
+```
+
+In addition to the [standard HTTP](https://nodejs.org/api/http.html#http_http_request_options_callback) and [HTTPS options](https://nodejs.org/api/https.html#https_https_request_options_callback),
+the following per-request options are supported:
+- `followRedirects` (default: `true`) – whether redirects should be followed.
+
+- `maxRedirects` (default: `21`) – sets the maximum number of allowed redirects; if exceeded, an error will be emitted.
+
+- `maxBodyLength` (default: 10MB) – sets the maximum size of the request body; if exceeded, an error will be emitted.
+
+- `beforeRedirect` (default: `undefined`) – optionally change the request `options` on redirects, or abort the request by throwing an error.
+
+- `agents` (default: `undefined`) – sets the `agent` option per protocol, since HTTP and HTTPS use different agents. Example value: `{ http: new http.Agent(), https: new https.Agent() }`
+
+- `trackRedirects` (default: `false`) – whether to store the redirected response details into the `redirects` array on the response object.
+
+
+### Advanced usage
+By default, `follow-redirects` will use the Node.js default implementations
+of [`http`](https://nodejs.org/api/http.html)
+and [`https`](https://nodejs.org/api/https.html).
+To enable features such as caching and/or intermediate request tracking,
+you might instead want to wrap `follow-redirects` around custom protocol implementations:
+
+```javascript
+const { http, https } = require('follow-redirects').wrap({
+ http: require('your-custom-http'),
+ https: require('your-custom-https'),
+});
+```
+
+Such custom protocols only need an implementation of the `request` method.
+
+## Browser Usage
+
+Due to the way the browser works,
+the `http` and `https` browser equivalents perform redirects by default.
+
+By requiring `follow-redirects` this way:
+```javascript
+const http = require('follow-redirects/http');
+const https = require('follow-redirects/https');
+```
+you can easily tell webpack and friends to replace
+`follow-redirect` by the built-in versions:
+
+```json
+{
+ "follow-redirects/http" : "http",
+ "follow-redirects/https" : "https"
+}
+```
+
+## Contributing
+
+Pull Requests are always welcome. Please [file an issue](https://github.com/follow-redirects/follow-redirects/issues)
+ detailing your proposal before you invest your valuable time. Additional features and bug fixes should be accompanied
+ by tests. You can run the test suite locally with a simple `npm test` command.
+
+## Debug Logging
+
+`follow-redirects` uses the excellent [debug](https://www.npmjs.com/package/debug) for logging. To turn on logging
+ set the environment variable `DEBUG=follow-redirects` for debug output from just this module. When running the test
+ suite it is sometimes advantageous to set `DEBUG=*` to see output from the express server as well.
+
+## Authors
+
+- [Ruben Verborgh](https://ruben.verborgh.org/)
+- [Olivier Lalonde](mailto:olalonde@gmail.com)
+- [James Talmage](mailto:james@talmage.io)
+
+## License
+
+[MIT License](https://github.com/follow-redirects/follow-redirects/blob/master/LICENSE)
diff --git a/server/node_modules/axios/node_modules/follow-redirects/debug.js b/server/node_modules/axios/node_modules/follow-redirects/debug.js
new file mode 100644
index 0000000..f2556d7
--- /dev/null
+++ b/server/node_modules/axios/node_modules/follow-redirects/debug.js
@@ -0,0 +1,14 @@
+var debug;
+
+module.exports = function () {
+ if (!debug) {
+ try {
+ /* eslint global-require: off */
+ debug = require("debug")("follow-redirects");
+ }
+ catch (error) {
+ debug = function () { /* */ };
+ }
+ }
+ debug.apply(null, arguments);
+};
diff --git a/server/node_modules/axios/node_modules/follow-redirects/http.js b/server/node_modules/axios/node_modules/follow-redirects/http.js
new file mode 100644
index 0000000..695e356
--- /dev/null
+++ b/server/node_modules/axios/node_modules/follow-redirects/http.js
@@ -0,0 +1 @@
+module.exports = require("./").http;
diff --git a/server/node_modules/axios/node_modules/follow-redirects/https.js b/server/node_modules/axios/node_modules/follow-redirects/https.js
new file mode 100644
index 0000000..d21c921
--- /dev/null
+++ b/server/node_modules/axios/node_modules/follow-redirects/https.js
@@ -0,0 +1 @@
+module.exports = require("./").https;
diff --git a/server/node_modules/axios/node_modules/follow-redirects/index.js b/server/node_modules/axios/node_modules/follow-redirects/index.js
new file mode 100644
index 0000000..98db8ee
--- /dev/null
+++ b/server/node_modules/axios/node_modules/follow-redirects/index.js
@@ -0,0 +1,504 @@
+var url = require("url");
+var URL = url.URL;
+var http = require("http");
+var https = require("https");
+var Writable = require("stream").Writable;
+var assert = require("assert");
+var debug = require("./debug");
+
+// Create handlers that pass events from native requests
+var eventHandlers = Object.create(null);
+["abort", "aborted", "connect", "error", "socket", "timeout"].forEach(function (event) {
+ eventHandlers[event] = function (arg1, arg2, arg3) {
+ this._redirectable.emit(event, arg1, arg2, arg3);
+ };
+});
+
+// Error types with codes
+var RedirectionError = createErrorType(
+ "ERR_FR_REDIRECTION_FAILURE",
+ ""
+);
+var TooManyRedirectsError = createErrorType(
+ "ERR_FR_TOO_MANY_REDIRECTS",
+ "Maximum number of redirects exceeded"
+);
+var MaxBodyLengthExceededError = createErrorType(
+ "ERR_FR_MAX_BODY_LENGTH_EXCEEDED",
+ "Request body larger than maxBodyLength limit"
+);
+var WriteAfterEndError = createErrorType(
+ "ERR_STREAM_WRITE_AFTER_END",
+ "write after end"
+);
+
+// An HTTP(S) request that can be redirected
+function RedirectableRequest(options, responseCallback) {
+ // Initialize the request
+ Writable.call(this);
+ this._sanitizeOptions(options);
+ this._options = options;
+ this._ended = false;
+ this._ending = false;
+ this._redirectCount = 0;
+ this._redirects = [];
+ this._requestBodyLength = 0;
+ this._requestBodyBuffers = [];
+
+ // Attach a callback if passed
+ if (responseCallback) {
+ this.on("response", responseCallback);
+ }
+
+ // React to responses of native requests
+ var self = this;
+ this._onNativeResponse = function (response) {
+ self._processResponse(response);
+ };
+
+ // Perform the first request
+ this._performRequest();
+}
+RedirectableRequest.prototype = Object.create(Writable.prototype);
+
+// Writes buffered data to the current native request
+RedirectableRequest.prototype.write = function (data, encoding, callback) {
+ // Writing is not allowed if end has been called
+ if (this._ending) {
+ throw new WriteAfterEndError();
+ }
+
+ // Validate input and shift parameters if necessary
+ if (!(typeof data === "string" || typeof data === "object" && ("length" in data))) {
+ throw new TypeError("data should be a string, Buffer or Uint8Array");
+ }
+ if (typeof encoding === "function") {
+ callback = encoding;
+ encoding = null;
+ }
+
+ // Ignore empty buffers, since writing them doesn't invoke the callback
+ // https://github.com/nodejs/node/issues/22066
+ if (data.length === 0) {
+ if (callback) {
+ callback();
+ }
+ return;
+ }
+ // Only write when we don't exceed the maximum body length
+ if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {
+ this._requestBodyLength += data.length;
+ this._requestBodyBuffers.push({ data: data, encoding: encoding });
+ this._currentRequest.write(data, encoding, callback);
+ }
+ // Error when we exceed the maximum body length
+ else {
+ this.emit("error", new MaxBodyLengthExceededError());
+ this.abort();
+ }
+};
+
+// Ends the current native request
+RedirectableRequest.prototype.end = function (data, encoding, callback) {
+ // Shift parameters if necessary
+ if (typeof data === "function") {
+ callback = data;
+ data = encoding = null;
+ }
+ else if (typeof encoding === "function") {
+ callback = encoding;
+ encoding = null;
+ }
+
+ // Write data if needed and end
+ if (!data) {
+ this._ended = this._ending = true;
+ this._currentRequest.end(null, null, callback);
+ }
+ else {
+ var self = this;
+ var currentRequest = this._currentRequest;
+ this.write(data, encoding, function () {
+ self._ended = true;
+ currentRequest.end(null, null, callback);
+ });
+ this._ending = true;
+ }
+};
+
+// Sets a header value on the current native request
+RedirectableRequest.prototype.setHeader = function (name, value) {
+ this._options.headers[name] = value;
+ this._currentRequest.setHeader(name, value);
+};
+
+// Clears a header value on the current native request
+RedirectableRequest.prototype.removeHeader = function (name) {
+ delete this._options.headers[name];
+ this._currentRequest.removeHeader(name);
+};
+
+// Global timeout for all underlying requests
+RedirectableRequest.prototype.setTimeout = function (msecs, callback) {
+ if (callback) {
+ this.once("timeout", callback);
+ }
+
+ if (this.socket) {
+ startTimer(this, msecs);
+ }
+ else {
+ var self = this;
+ this._currentRequest.once("socket", function () {
+ startTimer(self, msecs);
+ });
+ }
+
+ this.once("response", clearTimer);
+ this.once("error", clearTimer);
+
+ return this;
+};
+
+function startTimer(request, msecs) {
+ clearTimeout(request._timeout);
+ request._timeout = setTimeout(function () {
+ request.emit("timeout");
+ }, msecs);
+}
+
+function clearTimer() {
+ clearTimeout(this._timeout);
+}
+
+// Proxy all other public ClientRequest methods
+[
+ "abort", "flushHeaders", "getHeader",
+ "setNoDelay", "setSocketKeepAlive",
+].forEach(function (method) {
+ RedirectableRequest.prototype[method] = function (a, b) {
+ return this._currentRequest[method](a, b);
+ };
+});
+
+// Proxy all public ClientRequest properties
+["aborted", "connection", "socket"].forEach(function (property) {
+ Object.defineProperty(RedirectableRequest.prototype, property, {
+ get: function () { return this._currentRequest[property]; },
+ });
+});
+
+RedirectableRequest.prototype._sanitizeOptions = function (options) {
+ // Ensure headers are always present
+ if (!options.headers) {
+ options.headers = {};
+ }
+
+ // Since http.request treats host as an alias of hostname,
+ // but the url module interprets host as hostname plus port,
+ // eliminate the host property to avoid confusion.
+ if (options.host) {
+ // Use hostname if set, because it has precedence
+ if (!options.hostname) {
+ options.hostname = options.host;
+ }
+ delete options.host;
+ }
+
+ // Complete the URL object when necessary
+ if (!options.pathname && options.path) {
+ var searchPos = options.path.indexOf("?");
+ if (searchPos < 0) {
+ options.pathname = options.path;
+ }
+ else {
+ options.pathname = options.path.substring(0, searchPos);
+ options.search = options.path.substring(searchPos);
+ }
+ }
+};
+
+
+// Executes the next native request (initial or redirect)
+RedirectableRequest.prototype._performRequest = function () {
+ // Load the native protocol
+ var protocol = this._options.protocol;
+ var nativeProtocol = this._options.nativeProtocols[protocol];
+ if (!nativeProtocol) {
+ this.emit("error", new TypeError("Unsupported protocol " + protocol));
+ return;
+ }
+
+ // If specified, use the agent corresponding to the protocol
+ // (HTTP and HTTPS use different types of agents)
+ if (this._options.agents) {
+ var scheme = protocol.substr(0, protocol.length - 1);
+ this._options.agent = this._options.agents[scheme];
+ }
+
+ // Create the native request
+ var request = this._currentRequest =
+ nativeProtocol.request(this._options, this._onNativeResponse);
+ this._currentUrl = url.format(this._options);
+
+ // Set up event handlers
+ request._redirectable = this;
+ for (var event in eventHandlers) {
+ /* istanbul ignore else */
+ if (event) {
+ request.on(event, eventHandlers[event]);
+ }
+ }
+
+ // End a redirected request
+ // (The first request must be ended explicitly with RedirectableRequest#end)
+ if (this._isRedirect) {
+ // Write the request entity and end.
+ var i = 0;
+ var self = this;
+ var buffers = this._requestBodyBuffers;
+ (function writeNext(error) {
+ // Only write if this request has not been redirected yet
+ /* istanbul ignore else */
+ if (request === self._currentRequest) {
+ // Report any write errors
+ /* istanbul ignore if */
+ if (error) {
+ self.emit("error", error);
+ }
+ // Write the next buffer if there are still left
+ else if (i < buffers.length) {
+ var buffer = buffers[i++];
+ /* istanbul ignore else */
+ if (!request.finished) {
+ request.write(buffer.data, buffer.encoding, writeNext);
+ }
+ }
+ // End the request if `end` has been called on us
+ else if (self._ended) {
+ request.end();
+ }
+ }
+ }());
+ }
+};
+
+// Processes a response from the current native request
+RedirectableRequest.prototype._processResponse = function (response) {
+ // Store the redirected response
+ var statusCode = response.statusCode;
+ if (this._options.trackRedirects) {
+ this._redirects.push({
+ url: this._currentUrl,
+ headers: response.headers,
+ statusCode: statusCode,
+ });
+ }
+
+ // RFC7231§6.4: The 3xx (Redirection) class of status code indicates
+ // that further action needs to be taken by the user agent in order to
+ // fulfill the request. If a Location header field is provided,
+ // the user agent MAY automatically redirect its request to the URI
+ // referenced by the Location field value,
+ // even if the specific status code is not understood.
+ var location = response.headers.location;
+ if (location && this._options.followRedirects !== false &&
+ statusCode >= 300 && statusCode < 400) {
+ // Abort the current request
+ this._currentRequest.removeAllListeners();
+ this._currentRequest.on("error", noop);
+ this._currentRequest.abort();
+ // Discard the remainder of the response to avoid waiting for data
+ response.destroy();
+
+ // RFC7231§6.4: A client SHOULD detect and intervene
+ // in cyclical redirections (i.e., "infinite" redirection loops).
+ if (++this._redirectCount > this._options.maxRedirects) {
+ this.emit("error", new TooManyRedirectsError());
+ return;
+ }
+
+ // RFC7231§6.4: Automatic redirection needs to done with
+ // care for methods not known to be safe, […]
+ // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change
+ // the request method from POST to GET for the subsequent request.
+ if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" ||
+ // RFC7231§6.4.4: The 303 (See Other) status code indicates that
+ // the server is redirecting the user agent to a different resource […]
+ // A user agent can perform a retrieval request targeting that URI
+ // (a GET or HEAD request if using HTTP) […]
+ (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {
+ this._options.method = "GET";
+ // Drop a possible entity and headers related to it
+ this._requestBodyBuffers = [];
+ removeMatchingHeaders(/^content-/i, this._options.headers);
+ }
+
+ // Drop the Host header, as the redirect might lead to a different host
+ var previousHostName = removeMatchingHeaders(/^host$/i, this._options.headers) ||
+ url.parse(this._currentUrl).hostname;
+
+ // Create the redirected request
+ var redirectUrl = url.resolve(this._currentUrl, location);
+ debug("redirecting to", redirectUrl);
+ this._isRedirect = true;
+ var redirectUrlParts = url.parse(redirectUrl);
+ Object.assign(this._options, redirectUrlParts);
+
+ // Drop the Authorization header if redirecting to another host
+ if (redirectUrlParts.hostname !== previousHostName) {
+ removeMatchingHeaders(/^authorization$/i, this._options.headers);
+ }
+
+ // Evaluate the beforeRedirect callback
+ if (typeof this._options.beforeRedirect === "function") {
+ var responseDetails = { headers: response.headers };
+ try {
+ this._options.beforeRedirect.call(null, this._options, responseDetails);
+ }
+ catch (err) {
+ this.emit("error", err);
+ return;
+ }
+ this._sanitizeOptions(this._options);
+ }
+
+ // Perform the redirected request
+ try {
+ this._performRequest();
+ }
+ catch (cause) {
+ var error = new RedirectionError("Redirected request failed: " + cause.message);
+ error.cause = cause;
+ this.emit("error", error);
+ }
+ }
+ else {
+ // The response is not a redirect; return it as-is
+ response.responseUrl = this._currentUrl;
+ response.redirects = this._redirects;
+ this.emit("response", response);
+
+ // Clean up
+ this._requestBodyBuffers = [];
+ }
+};
+
+// Wraps the key/value object of protocols with redirect functionality
+function wrap(protocols) {
+ // Default settings
+ var exports = {
+ maxRedirects: 21,
+ maxBodyLength: 10 * 1024 * 1024,
+ };
+
+ // Wrap each protocol
+ var nativeProtocols = {};
+ Object.keys(protocols).forEach(function (scheme) {
+ var protocol = scheme + ":";
+ var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];
+ var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);
+
+ // Executes a request, following redirects
+ function request(input, options, callback) {
+ // Parse parameters
+ if (typeof input === "string") {
+ var urlStr = input;
+ try {
+ input = urlToOptions(new URL(urlStr));
+ }
+ catch (err) {
+ /* istanbul ignore next */
+ input = url.parse(urlStr);
+ }
+ }
+ else if (URL && (input instanceof URL)) {
+ input = urlToOptions(input);
+ }
+ else {
+ callback = options;
+ options = input;
+ input = { protocol: protocol };
+ }
+ if (typeof options === "function") {
+ callback = options;
+ options = null;
+ }
+
+ // Set defaults
+ options = Object.assign({
+ maxRedirects: exports.maxRedirects,
+ maxBodyLength: exports.maxBodyLength,
+ }, input, options);
+ options.nativeProtocols = nativeProtocols;
+
+ assert.equal(options.protocol, protocol, "protocol mismatch");
+ debug("options", options);
+ return new RedirectableRequest(options, callback);
+ }
+
+ // Executes a GET request, following redirects
+ function get(input, options, callback) {
+ var wrappedRequest = wrappedProtocol.request(input, options, callback);
+ wrappedRequest.end();
+ return wrappedRequest;
+ }
+
+ // Expose the properties on the wrapped protocol
+ Object.defineProperties(wrappedProtocol, {
+ request: { value: request, configurable: true, enumerable: true, writable: true },
+ get: { value: get, configurable: true, enumerable: true, writable: true },
+ });
+ });
+ return exports;
+}
+
+/* istanbul ignore next */
+function noop() { /* empty */ }
+
+// from https://github.com/nodejs/node/blob/master/lib/internal/url.js
+function urlToOptions(urlObject) {
+ var options = {
+ protocol: urlObject.protocol,
+ hostname: urlObject.hostname.startsWith("[") ?
+ /* istanbul ignore next */
+ urlObject.hostname.slice(1, -1) :
+ urlObject.hostname,
+ hash: urlObject.hash,
+ search: urlObject.search,
+ pathname: urlObject.pathname,
+ path: urlObject.pathname + urlObject.search,
+ href: urlObject.href,
+ };
+ if (urlObject.port !== "") {
+ options.port = Number(urlObject.port);
+ }
+ return options;
+}
+
+function removeMatchingHeaders(regex, headers) {
+ var lastValue;
+ for (var header in headers) {
+ if (regex.test(header)) {
+ lastValue = headers[header];
+ delete headers[header];
+ }
+ }
+ return lastValue;
+}
+
+function createErrorType(code, defaultMessage) {
+ function CustomError(message) {
+ Error.captureStackTrace(this, this.constructor);
+ this.message = message || defaultMessage;
+ }
+ CustomError.prototype = new Error();
+ CustomError.prototype.constructor = CustomError;
+ CustomError.prototype.name = "Error [" + code + "]";
+ CustomError.prototype.code = code;
+ return CustomError;
+}
+
+// Exports
+module.exports = wrap({ http: http, https: https });
+module.exports.wrap = wrap;
diff --git a/server/node_modules/axios/node_modules/follow-redirects/package.json b/server/node_modules/axios/node_modules/follow-redirects/package.json
new file mode 100644
index 0000000..4862637
--- /dev/null
+++ b/server/node_modules/axios/node_modules/follow-redirects/package.json
@@ -0,0 +1,98 @@
+{
+ "_args": [
+ [
+ "follow-redirects@1.13.2",
+ "/home/sigonasr2/divar/server"
+ ]
+ ],
+ "_from": "follow-redirects@1.13.2",
+ "_id": "follow-redirects@1.13.2",
+ "_inBundle": false,
+ "_integrity": "sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA==",
+ "_location": "/axios/follow-redirects",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "follow-redirects@1.13.2",
+ "name": "follow-redirects",
+ "escapedName": "follow-redirects",
+ "rawSpec": "1.13.2",
+ "saveSpec": null,
+ "fetchSpec": "1.13.2"
+ },
+ "_requiredBy": [
+ "/axios"
+ ],
+ "_resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.2.tgz",
+ "_spec": "1.13.2",
+ "_where": "/home/sigonasr2/divar/server",
+ "author": {
+ "name": "Ruben Verborgh",
+ "email": "ruben@verborgh.org",
+ "url": "https://ruben.verborgh.org/"
+ },
+ "bugs": {
+ "url": "https://github.com/follow-redirects/follow-redirects/issues"
+ },
+ "contributors": [
+ {
+ "name": "Olivier Lalonde",
+ "email": "olalonde@gmail.com",
+ "url": "http://www.syskall.com"
+ },
+ {
+ "name": "James Talmage",
+ "email": "james@talmage.io"
+ }
+ ],
+ "description": "HTTP and HTTPS modules that follow redirects.",
+ "devDependencies": {
+ "concat-stream": "^2.0.0",
+ "eslint": "^5.16.0",
+ "express": "^4.16.4",
+ "lolex": "^3.1.0",
+ "mocha": "^6.0.2",
+ "nyc": "^14.1.1"
+ },
+ "engines": {
+ "node": ">=4.0"
+ },
+ "files": [
+ "*.js"
+ ],
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "homepage": "https://github.com/follow-redirects/follow-redirects",
+ "keywords": [
+ "http",
+ "https",
+ "url",
+ "redirect",
+ "client",
+ "location",
+ "utility"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "follow-redirects",
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/follow-redirects/follow-redirects.git"
+ },
+ "scripts": {
+ "lint": "eslint *.js test",
+ "mocha": "nyc mocha",
+ "test": "npm run lint && npm run mocha"
+ },
+ "version": "1.13.2"
+}
diff --git a/server/node_modules/axios/package.json b/server/node_modules/axios/package.json
old mode 100755
new mode 100644
index 2701294..b277337
--- a/server/node_modules/axios/package.json
+++ b/server/node_modules/axios/package.json
@@ -1,27 +1,31 @@
{
- "_from": "axios@^0.19.2",
- "_id": "axios@0.19.2",
+ "_args": [
+ [
+ "axios@0.21.1",
+ "/home/sigonasr2/divar/server"
+ ]
+ ],
+ "_from": "axios@0.21.1",
+ "_id": "axios@0.21.1",
"_inBundle": false,
- "_integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==",
+ "_integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
"_location": "/axios",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "axios@^0.19.2",
+ "raw": "axios@0.21.1",
"name": "axios",
"escapedName": "axios",
- "rawSpec": "^0.19.2",
+ "rawSpec": "0.21.1",
"saveSpec": null,
- "fetchSpec": "^0.19.2"
+ "fetchSpec": "0.21.1"
},
"_requiredBy": [
- "#USER",
"/"
],
- "_resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz",
- "_shasum": "3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27",
- "_spec": "axios@^0.19.2",
+ "_resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
+ "_spec": "0.21.1",
"_where": "/home/sigonasr2/divar/server",
"author": {
"name": "Matt Zabriskie"
@@ -32,7 +36,6 @@
"bugs": {
"url": "https://github.com/axios/axios/issues"
},
- "bundleDependencies": false,
"bundlesize": [
{
"path": "./dist/axios.min.js",
@@ -40,9 +43,8 @@
}
],
"dependencies": {
- "follow-redirects": "1.5.10"
+ "follow-redirects": "^1.10.0"
},
- "deprecated": false,
"description": "Promise based HTTP client for the browser and node.js",
"devDependencies": {
"bundlesize": "^0.17.0",
@@ -82,6 +84,7 @@
"webpack-dev-server": "^1.14.1"
},
"homepage": "https://github.com/axios/axios",
+ "jsdelivr": "dist/axios.min.js",
"keywords": [
"xhr",
"http",
@@ -108,5 +111,6 @@
"version": "npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json"
},
"typings": "./index.d.ts",
- "version": "0.19.2"
+ "unpkg": "dist/axios.min.js",
+ "version": "0.21.1"
}
diff --git a/server/node_modules/bluebird/LICENSE b/server/node_modules/bluebird/LICENSE
old mode 100755
new mode 100644
index 4182a1e..b24e635
--- a/server/node_modules/bluebird/LICENSE
+++ b/server/node_modules/bluebird/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2013-2015 Petka Antonov
+Copyright (c) 2013-2018 Petka Antonov
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/server/node_modules/bluebird/README.md b/server/node_modules/bluebird/README.md
old mode 100755
new mode 100644
index 3772161..7c1dd66
--- a/server/node_modules/bluebird/README.md
+++ b/server/node_modules/bluebird/README.md
@@ -2,8 +2,10 @@
+
+
[![Build Status](https://travis-ci.org/petkaantonov/bluebird.svg?branch=master)](https://travis-ci.org/petkaantonov/bluebird)
-[![coverage-98%](http://img.shields.io/badge/coverage-98%-brightgreen.svg?style=flat)](http://petkaantonov.github.io/bluebird/coverage/debug/index.html)
+[![coverage-98%](https://img.shields.io/badge/coverage-98%25-brightgreen.svg?style=flat)](http://petkaantonov.github.io/bluebird/coverage/debug/index.html)
**Got a question?** Join us on [stackoverflow](http://stackoverflow.com/questions/tagged/bluebird), the [mailing list](https://groups.google.com/forum/#!forum/bluebird-js) or chat on [IRC](https://webchat.freenode.net/?channels=#promises)
@@ -15,6 +17,10 @@ See the [**bluebird website**](http://bluebirdjs.com/docs/getting-started.html)
For bluebird 2.x documentation and files, see the [2.x tree](https://github.com/petkaantonov/bluebird/tree/2.x).
+### Note
+
+Promises in Node.js 10 are significantly faster than before. Bluebird still includes a lot of features like cancellation, iteration methods and warnings that native promises don't. If you are using Bluebird for performance rather than for those - please consider giving native promises a shot and running the benchmarks yourself.
+
# Questions and issues
The [github issue tracker](https://github.com/petkaantonov/bluebird/issues) is **_only_** for bug reports and feature requests. Anything else, such as questions for help in using the library, should be posted in [StackOverflow](http://stackoverflow.com/questions/tagged/bluebird) under tags `promise` and `bluebird`.
@@ -29,7 +35,7 @@ Thanks to BrowserStack for providing us with a free account which lets us suppor
The MIT License (MIT)
-Copyright (c) 2013-2016 Petka Antonov
+Copyright (c) 2013-2019 Petka Antonov
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/server/node_modules/bluebird/changelog.md b/server/node_modules/bluebird/changelog.md
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/browser/bluebird.core.js b/server/node_modules/bluebird/js/browser/bluebird.core.js
old mode 100755
new mode 100644
index ffb6538..24a8bf2
--- a/server/node_modules/bluebird/js/browser/bluebird.core.js
+++ b/server/node_modules/bluebird/js/browser/bluebird.core.js
@@ -1,7 +1,7 @@
/* @preserve
* The MIT License (MIT)
*
- * Copyright (c) 2013-2015 Petka Antonov
+ * Copyright (c) 2013-2018 Petka Antonov
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -23,7 +23,7 @@
*
*/
/**
- * bluebird build version 3.4.7
+ * bluebird build version 3.7.2
* Features enabled: core
* Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each
*/
@@ -33,7 +33,6 @@ var firstLineError;
try {throw new Error(); } catch (e) {firstLineError = e;}
var schedule = _dereq_("./schedule");
var Queue = _dereq_("./queue");
-var util = _dereq_("./util");
function Async() {
this._customScheduler = false;
@@ -41,7 +40,6 @@ function Async() {
this._lateQueue = new Queue(16);
this._normalQueue = new Queue(16);
this._haveDrainedQueues = false;
- this._trampolineEnabled = true;
var self = this;
this.drainQueues = function () {
self._drainQueues();
@@ -60,16 +58,6 @@ Async.prototype.hasCustomScheduler = function() {
return this._customScheduler;
};
-Async.prototype.enableTrampoline = function() {
- this._trampolineEnabled = true;
-};
-
-Async.prototype.disableTrampolineIfNecessary = function() {
- if (util.hasDevTools) {
- this._trampolineEnabled = false;
- }
-};
-
Async.prototype.haveItemsQueued = function () {
return this._isTickUsed || this._haveDrainedQueues;
};
@@ -118,62 +106,33 @@ function AsyncSettlePromises(promise) {
this._queueTick();
}
-if (!util.hasDevTools) {
- Async.prototype.invokeLater = AsyncInvokeLater;
- Async.prototype.invoke = AsyncInvoke;
- Async.prototype.settlePromises = AsyncSettlePromises;
-} else {
- Async.prototype.invokeLater = function (fn, receiver, arg) {
- if (this._trampolineEnabled) {
- AsyncInvokeLater.call(this, fn, receiver, arg);
- } else {
- this._schedule(function() {
- setTimeout(function() {
- fn.call(receiver, arg);
- }, 100);
- });
- }
- };
+Async.prototype.invokeLater = AsyncInvokeLater;
+Async.prototype.invoke = AsyncInvoke;
+Async.prototype.settlePromises = AsyncSettlePromises;
- Async.prototype.invoke = function (fn, receiver, arg) {
- if (this._trampolineEnabled) {
- AsyncInvoke.call(this, fn, receiver, arg);
- } else {
- this._schedule(function() {
- fn.call(receiver, arg);
- });
- }
- };
- Async.prototype.settlePromises = function(promise) {
- if (this._trampolineEnabled) {
- AsyncSettlePromises.call(this, promise);
- } else {
- this._schedule(function() {
- promise._settlePromises();
- });
- }
- };
+function _drainQueue(queue) {
+ while (queue.length() > 0) {
+ _drainQueueStep(queue);
+ }
}
-Async.prototype._drainQueue = function(queue) {
- while (queue.length() > 0) {
- var fn = queue.shift();
- if (typeof fn !== "function") {
- fn._settlePromises();
- continue;
- }
+function _drainQueueStep(queue) {
+ var fn = queue.shift();
+ if (typeof fn !== "function") {
+ fn._settlePromises();
+ } else {
var receiver = queue.shift();
var arg = queue.shift();
fn.call(receiver, arg);
}
-};
+}
Async.prototype._drainQueues = function () {
- this._drainQueue(this._normalQueue);
+ _drainQueue(this._normalQueue);
this._reset();
this._haveDrainedQueues = true;
- this._drainQueue(this._lateQueue);
+ _drainQueue(this._lateQueue);
};
Async.prototype._queueTick = function () {
@@ -190,7 +149,7 @@ Async.prototype._reset = function () {
module.exports = Async;
module.exports.firstLineError = firstLineError;
-},{"./queue":17,"./schedule":18,"./util":21}],2:[function(_dereq_,module,exports){
+},{"./queue":17,"./schedule":18}],2:[function(_dereq_,module,exports){
"use strict";
module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) {
var calledBind = false;
@@ -520,11 +479,12 @@ return Context;
},{}],7:[function(_dereq_,module,exports){
"use strict";
-module.exports = function(Promise, Context) {
-var getDomain = Promise._getDomain;
+module.exports = function(Promise, Context,
+ enableAsyncHooks, disableAsyncHooks) {
var async = Promise._async;
var Warning = _dereq_("./errors").Warning;
var util = _dereq_("./util");
+var es5 = _dereq_("./es5");
var canAttachTrace = util.canAttachTrace;
var unhandledRejectionHandled;
var possiblyUnhandledRejection;
@@ -550,6 +510,34 @@ var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 &&
var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 &&
(warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN"));
+var deferUnhandledRejectionCheck;
+(function() {
+ var promises = [];
+
+ function unhandledRejectionCheck() {
+ for (var i = 0; i < promises.length; ++i) {
+ promises[i]._notifyUnhandledRejection();
+ }
+ unhandledRejectionClear();
+ }
+
+ function unhandledRejectionClear() {
+ promises.length = 0;
+ }
+
+ deferUnhandledRejectionCheck = function(promise) {
+ promises.push(promise);
+ setTimeout(unhandledRejectionCheck, 1);
+ };
+
+ es5.defineProperty(Promise, "_unhandledRejectionCheck", {
+ value: unhandledRejectionCheck
+ });
+ es5.defineProperty(Promise, "_unhandledRejectionClear", {
+ value: unhandledRejectionClear
+ });
+})();
+
Promise.prototype.suppressUnhandledRejections = function() {
var target = this._target();
target._bitField = ((target._bitField & (~1048576)) |
@@ -559,7 +547,7 @@ Promise.prototype.suppressUnhandledRejections = function() {
Promise.prototype._ensurePossibleRejectionHandled = function () {
if ((this._bitField & 524288) !== 0) return;
this._setRejectionIsUnhandled();
- async.invokeLater(this._notifyUnhandledRejection, this, undefined);
+ deferUnhandledRejectionCheck(this);
};
Promise.prototype._notifyUnhandledRejectionIsHandled = function () {
@@ -617,19 +605,13 @@ Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) {
};
Promise.onPossiblyUnhandledRejection = function (fn) {
- var domain = getDomain();
- possiblyUnhandledRejection =
- typeof fn === "function" ? (domain === null ?
- fn : util.domainBind(domain, fn))
- : undefined;
+ var context = Promise._getContext();
+ possiblyUnhandledRejection = util.contextBind(context, fn);
};
Promise.onUnhandledRejectionHandled = function (fn) {
- var domain = getDomain();
- unhandledRejectionHandled =
- typeof fn === "function" ? (domain === null ?
- fn : util.domainBind(domain, fn))
- : undefined;
+ var context = Promise._getContext();
+ unhandledRejectionHandled = util.contextBind(context, fn);
};
var disableLongStackTraces = function() {};
@@ -640,6 +622,7 @@ Promise.longStackTraces = function () {
if (!config.longStackTraces && longStackTracesIsSupported()) {
var Promise_captureStackTrace = Promise.prototype._captureStackTrace;
var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;
+ var Promise_dereferenceTrace = Promise.prototype._dereferenceTrace;
config.longStackTraces = true;
disableLongStackTraces = function() {
if (async.haveItemsQueued() && !config.longStackTraces) {
@@ -647,14 +630,14 @@ Promise.longStackTraces = function () {
}
Promise.prototype._captureStackTrace = Promise_captureStackTrace;
Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;
+ Promise.prototype._dereferenceTrace = Promise_dereferenceTrace;
Context.deactivateLongStackTraces();
- async.enableTrampoline();
config.longStackTraces = false;
};
Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;
Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;
+ Promise.prototype._dereferenceTrace = longStackTracesDereferenceTrace;
Context.activateLongStackTraces();
- async.disableTrampolineIfNecessary();
}
};
@@ -662,37 +645,85 @@ Promise.hasLongStackTraces = function () {
return config.longStackTraces && longStackTracesIsSupported();
};
+
+var legacyHandlers = {
+ unhandledrejection: {
+ before: function() {
+ var ret = util.global.onunhandledrejection;
+ util.global.onunhandledrejection = null;
+ return ret;
+ },
+ after: function(fn) {
+ util.global.onunhandledrejection = fn;
+ }
+ },
+ rejectionhandled: {
+ before: function() {
+ var ret = util.global.onrejectionhandled;
+ util.global.onrejectionhandled = null;
+ return ret;
+ },
+ after: function(fn) {
+ util.global.onrejectionhandled = fn;
+ }
+ }
+};
+
var fireDomEvent = (function() {
+ var dispatch = function(legacy, e) {
+ if (legacy) {
+ var fn;
+ try {
+ fn = legacy.before();
+ return !util.global.dispatchEvent(e);
+ } finally {
+ legacy.after(fn);
+ }
+ } else {
+ return !util.global.dispatchEvent(e);
+ }
+ };
try {
if (typeof CustomEvent === "function") {
var event = new CustomEvent("CustomEvent");
util.global.dispatchEvent(event);
return function(name, event) {
- var domEvent = new CustomEvent(name.toLowerCase(), {
+ name = name.toLowerCase();
+ var eventData = {
detail: event,
cancelable: true
- });
- return !util.global.dispatchEvent(domEvent);
+ };
+ var domEvent = new CustomEvent(name, eventData);
+ es5.defineProperty(
+ domEvent, "promise", {value: event.promise});
+ es5.defineProperty(
+ domEvent, "reason", {value: event.reason});
+
+ return dispatch(legacyHandlers[name], domEvent);
};
} else if (typeof Event === "function") {
var event = new Event("CustomEvent");
util.global.dispatchEvent(event);
return function(name, event) {
- var domEvent = new Event(name.toLowerCase(), {
+ name = name.toLowerCase();
+ var domEvent = new Event(name, {
cancelable: true
});
domEvent.detail = event;
- return !util.global.dispatchEvent(domEvent);
+ es5.defineProperty(domEvent, "promise", {value: event.promise});
+ es5.defineProperty(domEvent, "reason", {value: event.reason});
+ return dispatch(legacyHandlers[name], domEvent);
};
} else {
var event = document.createEvent("CustomEvent");
event.initCustomEvent("testingtheevent", false, true, {});
util.global.dispatchEvent(event);
return function(name, event) {
+ name = name.toLowerCase();
var domEvent = document.createEvent("CustomEvent");
- domEvent.initCustomEvent(name.toLowerCase(), false, true,
+ domEvent.initCustomEvent(name, false, true,
event);
- return !util.global.dispatchEvent(domEvent);
+ return dispatch(legacyHandlers[name], domEvent);
};
}
} catch (e) {}
@@ -810,6 +841,18 @@ Promise.config = function(opts) {
Promise.prototype._fireEvent = defaultFireEvent;
}
}
+ if ("asyncHooks" in opts && util.nodeSupportsAsyncResource) {
+ var prev = config.asyncHooks;
+ var cur = !!opts.asyncHooks;
+ if (prev !== cur) {
+ config.asyncHooks = cur;
+ if (cur) {
+ enableAsyncHooks();
+ } else {
+ disableAsyncHooks();
+ }
+ }
+ }
return Promise;
};
@@ -830,6 +873,7 @@ Promise.prototype._attachCancellationCallback = function(onCancel) {
};
Promise.prototype._captureStackTrace = function () {};
Promise.prototype._attachExtraTrace = function () {};
+Promise.prototype._dereferenceTrace = function () {};
Promise.prototype._clearCancellationData = function() {};
Promise.prototype._propagateFrom = function (parent, flags) {
;
@@ -935,6 +979,10 @@ function longStackTracesAttachExtraTrace(error, ignoreSelf) {
}
}
+function longStackTracesDereferenceTrace() {
+ this._trace = undefined;
+}
+
function checkForgottenReturns(returnValue, promiseCreated, name, promise,
parent) {
if (returnValue === undefined && promiseCreated !== null &&
@@ -1192,8 +1240,8 @@ function parseLineInfo(line) {
function setBounds(firstLineError, lastLineError) {
if (!longStackTracesIsSupported()) return;
- var firstStackLines = firstLineError.stack.split("\n");
- var lastStackLines = lastLineError.stack.split("\n");
+ var firstStackLines = (firstLineError.stack || "").split("\n");
+ var lastStackLines = (lastLineError.stack || "").split("\n");
var firstIndex = -1;
var lastIndex = -1;
var firstFileName;
@@ -1402,12 +1450,16 @@ var config = {
warnings: warnings,
longStackTraces: false,
cancellation: false,
- monitoring: false
+ monitoring: false,
+ asyncHooks: false
};
if (longStackTraces) Promise.longStackTraces();
return {
+ asyncHooks: function() {
+ return config.asyncHooks;
+ },
longStackTraces: function() {
return config.longStackTraces;
},
@@ -1436,7 +1488,7 @@ return {
};
};
-},{"./errors":9,"./util":21}],8:[function(_dereq_,module,exports){
+},{"./errors":9,"./es5":10,"./util":21}],8:[function(_dereq_,module,exports){
"use strict";
module.exports = function(Promise) {
function returner() {
@@ -1686,10 +1738,11 @@ if (isES5) {
},{}],11:[function(_dereq_,module,exports){
"use strict";
-module.exports = function(Promise, tryConvertToPromise) {
+module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) {
var util = _dereq_("./util");
var CancellationError = Promise.CancellationError;
var errorObj = util.errorObj;
+var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER);
function PassThroughHandlerContext(promise, type, handler) {
this.promise = promise;
@@ -1741,7 +1794,9 @@ function finallyHandler(reasonOrValue) {
var ret = this.isFinallyHandler()
? handler.call(promise._boundValue())
: handler.call(promise._boundValue(), reasonOrValue);
- if (ret !== undefined) {
+ if (ret === NEXT_FILTER) {
+ return ret;
+ } else if (ret !== undefined) {
promise._setReturnedNonUndefined();
var maybePromise = tryConvertToPromise(ret, promise);
if (maybePromise instanceof Promise) {
@@ -1790,18 +1845,49 @@ Promise.prototype["finally"] = function (handler) {
finallyHandler);
};
+
Promise.prototype.tap = function (handler) {
return this._passThrough(handler, 1, finallyHandler);
};
+Promise.prototype.tapCatch = function (handlerOrPredicate) {
+ var len = arguments.length;
+ if(len === 1) {
+ return this._passThrough(handlerOrPredicate,
+ 1,
+ undefined,
+ finallyHandler);
+ } else {
+ var catchInstances = new Array(len - 1),
+ j = 0, i;
+ for (i = 0; i < len - 1; ++i) {
+ var item = arguments[i];
+ if (util.isObject(item)) {
+ catchInstances[j++] = item;
+ } else {
+ return Promise.reject(new TypeError(
+ "tapCatch statement predicate: "
+ + "expecting an object but got " + util.classString(item)
+ ));
+ }
+ }
+ catchInstances.length = j;
+ var handler = arguments[i];
+ return this._passThrough(catchFilter(catchInstances, handler, this),
+ 1,
+ undefined,
+ finallyHandler);
+ }
+
+};
+
return PassThroughHandlerContext;
};
-},{"./util":21}],12:[function(_dereq_,module,exports){
+},{"./catch_filter":5,"./util":21}],12:[function(_dereq_,module,exports){
"use strict";
module.exports =
-function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async,
- getDomain) {
+function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async) {
var util = _dereq_("./util");
var canEvaluate = util.canEvaluate;
var tryCatch = util.tryCatch;
@@ -1947,10 +2033,8 @@ Promise.join = function () {
if (!ret._isFateSealed()) {
if (holder.asyncNeeded) {
- var domain = getDomain();
- if (domain !== null) {
- holder.fn = util.domainBind(domain, holder.fn);
- }
+ var context = Promise._getContext();
+ holder.fn = util.contextBind(context, holder.fn);
}
ret._setAsyncGuaranteed();
ret._setOnCancel(holder);
@@ -2092,20 +2176,42 @@ var apiRejection = function(msg) {
function Proxyable() {}
var UNDEFINED_BINDING = {};
var util = _dereq_("./util");
+util.setReflectHandler(reflectHandler);
-var getDomain;
-if (util.isNode) {
- getDomain = function() {
- var ret = process.domain;
- if (ret === undefined) ret = null;
- return ret;
- };
-} else {
- getDomain = function() {
+var getDomain = function() {
+ var domain = process.domain;
+ if (domain === undefined) {
return null;
+ }
+ return domain;
+};
+var getContextDefault = function() {
+ return null;
+};
+var getContextDomain = function() {
+ return {
+ domain: getDomain(),
+ async: null
};
-}
-util.notEnumerableProp(Promise, "_getDomain", getDomain);
+};
+var AsyncResource = util.isNode && util.nodeSupportsAsyncResource ?
+ _dereq_("async_hooks").AsyncResource : null;
+var getContextAsyncHooks = function() {
+ return {
+ domain: getDomain(),
+ async: new AsyncResource("Bluebird::Promise")
+ };
+};
+var getContext = util.isNode ? getContextDomain : getContextDefault;
+util.notEnumerableProp(Promise, "_getContext", getContext);
+var enableAsyncHooks = function() {
+ getContext = getContextAsyncHooks;
+ util.notEnumerableProp(Promise, "_getContext", getContextAsyncHooks);
+};
+var disableAsyncHooks = function() {
+ getContext = getContextDomain;
+ util.notEnumerableProp(Promise, "_getContext", getContextDomain);
+};
var es5 = _dereq_("./es5");
var Async = _dereq_("./async");
@@ -2129,33 +2235,36 @@ var PromiseArray =
var Context = _dereq_("./context")(Promise);
/*jshint unused:false*/
var createContext = Context.create;
-var debug = _dereq_("./debuggability")(Promise, Context);
+
+var debug = _dereq_("./debuggability")(Promise, Context,
+ enableAsyncHooks, disableAsyncHooks);
var CapturedTrace = debug.CapturedTrace;
var PassThroughHandlerContext =
- _dereq_("./finally")(Promise, tryConvertToPromise);
+ _dereq_("./finally")(Promise, tryConvertToPromise, NEXT_FILTER);
var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER);
var nodebackForPromise = _dereq_("./nodeback");
var errorObj = util.errorObj;
var tryCatch = util.tryCatch;
function check(self, executor) {
+ if (self == null || self.constructor !== Promise) {
+ throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a");
+ }
if (typeof executor !== "function") {
throw new TypeError("expecting a function but got " + util.classString(executor));
}
- if (self.constructor !== Promise) {
- throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a");
- }
+
}
function Promise(executor) {
+ if (executor !== INTERNAL) {
+ check(this, executor);
+ }
this._bitField = 0;
this._fulfillmentHandler0 = undefined;
this._rejectionHandler0 = undefined;
this._promise0 = undefined;
this._receiver0 = undefined;
- if (executor !== INTERNAL) {
- check(this, executor);
- this._resolveFromExecutor(executor);
- }
+ this._resolveFromExecutor(executor);
this._promiseCreated();
this._fireEvent("promiseCreated", this);
}
@@ -2174,12 +2283,17 @@ Promise.prototype.caught = Promise.prototype["catch"] = function (fn) {
if (util.isObject(item)) {
catchInstances[j++] = item;
} else {
- return apiRejection("expecting an object but got " +
- "A catch statement predicate " + util.classString(item));
+ return apiRejection("Catch statement predicate: " +
+ "expecting an object but got " + util.classString(item));
}
}
catchInstances.length = j;
fn = arguments[i];
+
+ if (typeof fn !== "function") {
+ throw new TypeError("The last argument to .catch() " +
+ "must be a function, got " + util.toString(fn));
+ }
return this.then(undefined, catchFilter(catchInstances, fn, this));
}
return this.then(undefined, fn);
@@ -2320,7 +2434,7 @@ Promise.prototype._then = function (
this._fireEvent("promiseChained", this, promise);
}
- var domain = getDomain();
+ var context = getContext();
if (!((bitField & 50397184) === 0)) {
var handler, value, settler = target._settlePromiseCtx;
if (((bitField & 33554432) !== 0)) {
@@ -2338,15 +2452,14 @@ Promise.prototype._then = function (
}
async.invoke(settler, target, {
- handler: domain === null ? handler
- : (typeof handler === "function" &&
- util.domainBind(domain, handler)),
+ handler: util.contextBind(context, handler),
promise: promise,
receiver: receiver,
value: value
});
} else {
- target._addCallbacks(didFulfill, didReject, promise, receiver, domain);
+ target._addCallbacks(didFulfill, didReject, promise,
+ receiver, context);
}
return promise;
@@ -2407,7 +2520,15 @@ Promise.prototype._setWillBeCancelled = function() {
Promise.prototype._setAsyncGuaranteed = function() {
if (async.hasCustomScheduler()) return;
- this._bitField = this._bitField | 134217728;
+ var bitField = this._bitField;
+ this._bitField = bitField |
+ (((bitField & 536870912) >> 2) ^
+ 134217728);
+};
+
+Promise.prototype._setNoAsyncGuarantee = function() {
+ this._bitField = (this._bitField | 536870912) &
+ (~134217728);
};
Promise.prototype._receiverAt = function (index) {
@@ -2462,7 +2583,7 @@ Promise.prototype._addCallbacks = function (
reject,
promise,
receiver,
- domain
+ context
) {
var index = this._length();
@@ -2475,12 +2596,10 @@ Promise.prototype._addCallbacks = function (
this._promise0 = promise;
this._receiver0 = receiver;
if (typeof fulfill === "function") {
- this._fulfillmentHandler0 =
- domain === null ? fulfill : util.domainBind(domain, fulfill);
+ this._fulfillmentHandler0 = util.contextBind(context, fulfill);
}
if (typeof reject === "function") {
- this._rejectionHandler0 =
- domain === null ? reject : util.domainBind(domain, reject);
+ this._rejectionHandler0 = util.contextBind(context, reject);
}
} else {
var base = index * 4 - 4;
@@ -2488,11 +2607,11 @@ Promise.prototype._addCallbacks = function (
this[base + 3] = receiver;
if (typeof fulfill === "function") {
this[base + 0] =
- domain === null ? fulfill : util.domainBind(domain, fulfill);
+ util.contextBind(context, fulfill);
}
if (typeof reject === "function") {
this[base + 1] =
- domain === null ? reject : util.domainBind(domain, reject);
+ util.contextBind(context, reject);
}
}
this._setLength(index + 1);
@@ -2512,6 +2631,7 @@ Promise.prototype._resolveCallback = function(value, shouldBind) {
if (shouldBind) this._propagateFrom(maybePromise, 2);
+
var promise = maybePromise._target();
if (promise === this) {
@@ -2528,7 +2648,7 @@ Promise.prototype._resolveCallback = function(value, shouldBind) {
}
this._setFollowing();
this._setLength(0);
- this._setFollowee(promise);
+ this._setFollowee(maybePromise);
} else if (((bitField & 33554432) !== 0)) {
this._fulfill(promise._value());
} else if (((bitField & 16777216) !== 0)) {
@@ -2554,6 +2674,7 @@ function(reason, synchronous, ignoreNonErrorWarnings) {
};
Promise.prototype._resolveFromExecutor = function (executor) {
+ if (executor === INTERNAL) return;
var promise = this;
this._captureStackTrace();
this._pushContext();
@@ -2717,6 +2838,7 @@ Promise.prototype._fulfill = function (value) {
} else {
async.settlePromises(this);
}
+ this._dereferenceTrace();
}
};
@@ -2785,6 +2907,14 @@ Promise.prototype._settledValue = function() {
}
};
+if (typeof Symbol !== "undefined" && Symbol.toStringTag) {
+ es5.defineProperty(Promise.prototype, Symbol.toStringTag, {
+ get: function () {
+ return "Object";
+ }
+ });
+}
+
function deferResolve(v) {this.promise._resolveCallback(v);}
function deferReject(v) {this.promise._rejectCallback(v, false);}
@@ -2809,9 +2939,9 @@ _dereq_("./cancel")(Promise, PromiseArray, apiRejection, debug);
_dereq_("./direct_resolve")(Promise);
_dereq_("./synchronous_inspection")(Promise);
_dereq_("./join")(
- Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain);
+ Promise, PromiseArray, tryConvertToPromise, INTERNAL, async);
Promise.Promise = Promise;
-Promise.version = "3.4.7";
+Promise.version = "3.7.2";
util.toFastProperties(Promise);
util.toFastProperties(Promise.prototype);
@@ -2837,7 +2967,7 @@ Promise.version = "3.4.7";
};
-},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(_dereq_,module,exports){
+},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21,"async_hooks":undefined}],16:[function(_dereq_,module,exports){
"use strict";
module.exports = function(Promise, INTERNAL, tryConvertToPromise,
apiRejection, Proxyable) {
@@ -2848,6 +2978,7 @@ function toResolutionValue(val) {
switch(val) {
case -2: return [];
case -3: return {};
+ case -6: return new Map();
}
}
@@ -2855,6 +2986,7 @@ function PromiseArray(values) {
var promise = this._promise = new Promise(INTERNAL);
if (values instanceof Promise) {
promise._propagateFrom(values, 3);
+ values.suppressUnhandledRejections();
}
promise._setOnCancel(this);
this._values = values;
@@ -3121,7 +3253,8 @@ if (util.isNode && typeof MutationObserver === "undefined") {
} else if ((typeof MutationObserver !== "undefined") &&
!(typeof window !== "undefined" &&
window.navigator &&
- (window.navigator.standalone || window.cordova))) {
+ (window.navigator.standalone || window.cordova)) &&
+ ("classList" in document.documentElement)) {
schedule = (function() {
var div = document.createElement("div");
var opts = {attributes: true};
@@ -3135,11 +3268,11 @@ if (util.isNode && typeof MutationObserver === "undefined") {
var scheduleToggle = function() {
if (toggleScheduled) return;
- toggleScheduled = true;
- div2.classList.toggle("foo");
- };
+ toggleScheduled = true;
+ div2.classList.toggle("foo");
+ };
- return function schedule(fn) {
+ return function schedule(fn) {
var o = new MutationObserver(function() {
o.disconnect();
fn();
@@ -3552,8 +3685,12 @@ function toFastProperties(obj) {
/*jshint -W027,-W055,-W031*/
function FakeConstructor() {}
FakeConstructor.prototype = obj;
- var l = 8;
- while (l--) new FakeConstructor();
+ var receiver = new FakeConstructor();
+ function ic() {
+ return typeof receiver.foo;
+ }
+ ic();
+ ic();
return obj;
eval(obj);
}
@@ -3580,10 +3717,11 @@ function safeToString(obj) {
}
function isError(obj) {
- return obj !== null &&
+ return obj instanceof Error ||
+ (obj !== null &&
typeof obj === "object" &&
typeof obj.message === "string" &&
- typeof obj.name === "string";
+ typeof obj.name === "string");
}
function markAsOriginatingFromRejection(e) {
@@ -3678,18 +3816,42 @@ function getNativePromise() {
if (typeof Promise === "function") {
try {
var promise = new Promise(function(){});
- if ({}.toString.call(promise) === "[object Promise]") {
+ if (classString(promise) === "[object Promise]") {
return Promise;
}
} catch (e) {}
}
}
-function domainBind(self, cb) {
- return self.bind(cb);
+var reflectHandler;
+function contextBind(ctx, cb) {
+ if (ctx === null ||
+ typeof cb !== "function" ||
+ cb === reflectHandler) {
+ return cb;
+ }
+
+ if (ctx.domain !== null) {
+ cb = ctx.domain.bind(cb);
+ }
+
+ var async = ctx.async;
+ if (async !== null) {
+ var old = cb;
+ cb = function() {
+ var args = (new Array(2)).concat([].slice.call(arguments));;
+ args[0] = old;
+ args[1] = this;
+ return async.runInAsyncScope.apply(async, args);
+ };
+ }
+ return cb;
}
var ret = {
+ setReflectHandler: function(fn) {
+ reflectHandler = fn;
+ },
isClass: isClass,
isIdentifier: isIdentifier,
inheritedDataKeys: inheritedDataKeys,
@@ -3716,24 +3878,37 @@ var ret = {
markAsOriginatingFromRejection: markAsOriginatingFromRejection,
classString: classString,
copyDescriptors: copyDescriptors,
- hasDevTools: typeof chrome !== "undefined" && chrome &&
- typeof chrome.loadTimes === "function",
isNode: isNode,
hasEnvVariables: hasEnvVariables,
env: env,
global: globalObject,
getNativePromise: getNativePromise,
- domainBind: domainBind
+ contextBind: contextBind
};
ret.isRecentNode = ret.isNode && (function() {
- var version = process.versions.node.split(".").map(Number);
+ var version;
+ if (process.versions && process.versions.node) {
+ version = process.versions.node.split(".").map(Number);
+ } else if (process.version) {
+ version = process.version.split(".").map(Number);
+ }
return (version[0] === 0 && version[1] > 10) || (version[0] > 0);
})();
+ret.nodeSupportsAsyncResource = ret.isNode && (function() {
+ var supportsAsync = false;
+ try {
+ var res = _dereq_("async_hooks").AsyncResource;
+ supportsAsync = typeof res.prototype.runInAsyncScope === "function";
+ } catch (e) {
+ supportsAsync = false;
+ }
+ return supportsAsync;
+})();
if (ret.isNode) ret.toFastProperties(process);
try {throw new Error(); } catch (e) {ret.lastLineError = e;}
module.exports = ret;
-},{"./es5":10}]},{},[3])(3)
+},{"./es5":10,"async_hooks":undefined}]},{},[3])(3)
}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; }
\ No newline at end of file
diff --git a/server/node_modules/bluebird/js/browser/bluebird.core.min.js b/server/node_modules/bluebird/js/browser/bluebird.core.min.js
old mode 100755
new mode 100644
index 84bc422..836176e
--- a/server/node_modules/bluebird/js/browser/bluebird.core.min.js
+++ b/server/node_modules/bluebird/js/browser/bluebird.core.min.js
@@ -1,7 +1,7 @@
/* @preserve
* The MIT License (MIT)
*
- * Copyright (c) 2013-2015 Petka Antonov
+ * Copyright (c) 2013-2018 Petka Antonov
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -23,9 +23,9 @@
*
*/
/**
- * bluebird build version 3.4.7
+ * bluebird build version 3.7.2
* Features enabled: core
* Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each
*/
-!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(a,s){if(!e[a]){if(!t[a]){var c="function"==typeof _dereq_&&_dereq_;if(!s&&c)return c(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[a].exports}for(var o="function"==typeof _dereq_&&_dereq_,a=0;a0;){var e=t.shift();if("function"==typeof e){var n=t.shift(),r=t.shift();e.call(n,r)}else e._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=s},{"./queue":17,"./schedule":18,"./util":21}],2:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},a=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},s=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var f={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,a,void 0,u,f),l._then(s,c,void 0,u,f),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],3:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":15}],4:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),a=o.tryCatch,s=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,a=t._peekContext,s=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=a,t.prototype._peekContext=s,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],7:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+I.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function a(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?I.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function s(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function f(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function h(){this._trace=new x(this._peekContext())}function _(t,e){if(H(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=E(t);I.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),I.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(t,e,n,r,i){if(void 0===t&&null!==e&&X){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",a="";if(e._trace){for(var s=e._trace.stack.split("\n"),c=C(s),l=c.length-1;l>=0;--l){var u=c[l];if(!V.test(u)){var p=u.match(Q);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var f=c[0],l=0;l0&&(a="\n"+s[l-1]);break}}var h="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+a;r._warn(h,!0,e)}}function v(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),y(n)}function y(t,n,r){if(ot.warnings){var i,o=new U(t);if(n)r._attachExtraTrace(o);else if(ot.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var a=E(o);o.stack=a.message+"\n"+a.stack.join("\n")}tt("warning",o)||k(o,"",!0)}}function g(t,e){for(var n=0;n=0;--s)if(r[s]===o){a=s;break}for(var s=a;s>=0;--s){var c=r[s];if(e[i]!==c)break;e.pop(),i--}e=r}}function C(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function E(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?w(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:C(e)}}function k(t,e,n){if("undefined"!=typeof console){var r;if(I.isObject(t)){var i=t.stack;r=e+G(i,t)}else r=e+String(t);"function"==typeof L?L(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function j(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){B.throwLater(o)}"unhandledRejection"===t?tt(t,n,r)||i||k(n,"Unhandled rejection "):tt(t,r)}function F(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():I.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+T(e)+">, no stack trace)"}function T(t){var e=41;return t.lengtha||0>s||!n||!r||n!==r||a>=s||(nt=function(t){if(D.test(t))return!0;var e=R(t);return e&&e.fileName===n&&a<=e.line&&e.line<=s?!0:!1})}}function x(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);it(this,x),e>32&&this.uncycle()}var O,A,L,N=e._getDomain,B=e._async,U=t("./errors").Warning,I=t("./util"),H=I.canAttachTrace,D=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,V=/\((?:timers\.js):\d+:\d+\)/,Q=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,q=null,G=null,M=!1,W=!(0==I.env("BLUEBIRD_DEBUG")||!I.env("BLUEBIRD_DEBUG")&&"development"!==I.env("NODE_ENV")),$=!(0==I.env("BLUEBIRD_WARNINGS")||!W&&!I.env("BLUEBIRD_WARNINGS")),z=!(0==I.env("BLUEBIRD_LONG_STACK_TRACES")||!W&&!I.env("BLUEBIRD_LONG_STACK_TRACES")),X=0!=I.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&($||!!I.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){0===(524288&this._bitField)&&(this._setRejectionIsUnhandled(),B.invokeLater(this._notifyUnhandledRejection,this,void 0))},e.prototype._notifyUnhandledRejectionIsHandled=function(){j("rejectionHandled",O,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),j("unhandledRejection",A,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return y(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=N();A="function"==typeof t?null===e?t:I.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=N();O="function"==typeof t?null===e?t:I.domainBind(e,t):void 0};var K=function(){};e.longStackTraces=function(){if(B.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!ot.longStackTraces&&P()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace;ot.longStackTraces=!0,K=function(){if(B.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,n.deactivateLongStackTraces(),B.enableTrampoline(),ot.longStackTraces=!1},e.prototype._captureStackTrace=h,e.prototype._attachExtraTrace=_,n.activateLongStackTraces(),B.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return ot.longStackTraces&&P()};var J=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return I.global.dispatchEvent(t),function(t,e){var n=new CustomEvent(t.toLowerCase(),{detail:e,cancelable:!0});return!I.global.dispatchEvent(n)}}if("function"==typeof Event){var t=new Event("CustomEvent");return I.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,!I.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),I.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!I.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),Y=function(){return I.isNode?function(){return process.emit.apply(process,arguments)}:I.global?function(t){var e="on"+t.toLowerCase(),n=I.global[e];return n?(n.apply(I.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),Z={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},tt=function(t){var e=!1;try{e=Y.apply(null,arguments)}catch(n){B.throwLater(n),e=!0}var r=!1;try{r=J(t,Z[t].apply(null,arguments))}catch(n){B.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&K()),"warnings"in t){var n=t.warnings;ot.warnings=!!n,X=ot.warnings,I.isObject(n)&&"wForgottenReturn"in n&&(X=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!ot.cancellation){if(B.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=s,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=a,e.prototype._execute=o,et=u,ot.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!ot.monitoring?(ot.monitoring=!0,e.prototype._fireEvent=tt):!t.monitoring&&ot.monitoring&&(ot.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var et=p,nt=function(){return!1},rt=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;I.inherits(x,Error),n.CapturedTrace=x,x.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var a=e[r].stack,s=n[a];if(void 0!==s&&s!==r){s>0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>s?(c._parent=e[s+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},x.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=E(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(C(i.stack.split("\n"))),i=i._parent;b(r),m(r),I.notEnumerableProp(t,"stack",g(n,r)),I.notEnumerableProp(t,"__stackCleaned__",!0)}};var it=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():F(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,q=t,G=e;var n=Error.captureStackTrace;return nt=function(t){return D.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return q=/@/,G=e,M=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(G=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?F(e):e.toString()},null):(q=t,G=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(L=function(t){console.warn(t)},I.isNode&&process.stderr.isTTY?L=function(t,e){var n=e?"[33m":"[31m";console.warn(n+t+"[0m\n")}:I.isNode||"string"!=typeof(new Error).stack||(L=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var ot={warnings:$,longStackTraces:!1,cancellation:!1,monitoring:!1};return z&&e.longStackTraces(),{longStackTraces:function(){return ot.longStackTraces},warnings:function(){return ot.warnings},cancellation:function(){return ot.cancellation},monitoring:function(){return ot.monitoring},propagateFromFunction:function(){return et},boundValueFunction:function(){return f},checkForgottenReturns:d,setBounds:S,warn:y,deprecated:v,CapturedTrace:x,fireDomEvent:J,fireGlobalEvent:Y}}},{"./errors":9,"./util":21}],8:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],9:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,a,s=t("./es5"),c=s.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,f=r("Warning","warning"),h=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,a=RangeError}catch(v){o=r("TypeError","type error"),a=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),g=0;g1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function a(){return c.call(this,this.promise._target()._settledValue())}function s(t){return o(this,t)?void 0:(p.e=t,p)}function c(t){var r=this.promise,c=this.handler;if(!this.called){this.called=!0;var l=this.isFinallyHandler()?c.call(r._boundValue()):c.call(r._boundValue(),t);if(void 0!==l){r._setReturnedNonUndefined();var f=n(l,r);if(f instanceof e){if(null!=this.cancelPromise){if(f._isCancelled()){var h=new u("late cancellation observer");return r._attachExtraTrace(h),p.e=h,p}f.isPending()&&f._attachCancellationCallback(new i(this))}return f._then(a,s,void 0,this,void 0)}}}return r.isRejected()?(o(this),p.e=t,p):(o(this),t)}var l=t("./util"),u=e.CancellationError,p=l.errorObj;return r.prototype.isFinallyHandler=function(){return 0===this.type},i.prototype._resultCancelled=function(){o(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,i){return"function"!=typeof t?this.then():this._then(n,i,void 0,new r(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,c,c)},e.prototype.tap=function(t){return this._passThrough(t,1,c)},r}},{"./util":21}],12:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,a){var s=t("./util");s.canEvaluate,s.tryCatch,s.errorObj;e.join=function(){var t,e=arguments.length-1;if(e>0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":21}],13:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var a=t("./util"),s=a.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+a.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=s(t).apply(this,arguments),a=r._popContext();return o.checkForgottenReturns(i,a,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+a.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=a.isArray(l)?s(t).apply(u,l):s(t).call(u,l)}else c=s(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===a.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":21}],14:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!h.isObject(o))return p("expecting an object but got A catch statement predicate "+h.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(F.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+h.classString(t);arguments.length>1&&(n+=", "+h.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+h.classString(t)):this.all()._then(t,void 0,void 0,C,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new k(this).promise();
-},i.prototype.error=function(t){return this.caught(h.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=x(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new k(t).promise()},i.cast=function(t){var e=E(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new g("expecting a function but got "+h.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var a=void 0!==o,s=a?o:new i(b),l=this._target(),u=l._bitField;a||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s));var p=c();if(0!==(50397184&u)){var f,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,f=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,f=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new m("late cancellation observer"),l._attachExtraTrace(_),f=e),v.invoke(d,l,{handler:null===p?f:"function"==typeof f&&h.domainBind(p,f),promise:s,receiver:r,value:_})}else l._addCallbacks(t,e,s,r,p);return s},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===f?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=f),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=f),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:h.domainBind(i,e));else{var a=4*o-4;this[a+2]=n,this[a+3]=r,"function"==typeof t&&(this[a+0]=null===i?t:h.domainBind(i,t)),"function"==typeof e&&(this[a+1]=null===i?e:h.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=E(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var a=this._length();a>0&&r._migrateCallback0(this);for(var s=1;a>s;++s)r._migrateCallbackAt(this,s);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new m("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=h.ensureErrorObject(t),i=r===t;if(!i&&!n&&F.warnings()){var o="a promise was rejected with a non-error: "+h.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===C?n&&"number"==typeof n.length?o=x(t).apply(this._boundValue(),n):(o=S,o.e=new g("cannot .spread() a non-array: "+h.classString(n))):o=x(t).call(e,n);var a=r._popContext();i=r._bitField,0===(65536&i)&&(o===w?r._reject(n):o===S?r._rejectCallback(o.e,!1):(F.checkForgottenReturns(o,a,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var a=t instanceof i,s=this._bitField,c=0!==(134217728&s);0!==(65536&s)?(a&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,x(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):a||t instanceof k?t._cancel():r.cancel()):"function"==typeof e?a?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&s)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):a&&(c&&t._setAsyncGuaranteed(),0!==(33554432&s)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this))}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,h.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){F.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:a}},h.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,E,p,F),t("./bind")(i,b,E,F),t("./cancel")(i,k,p,F),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,k,E,b,v,c),i.Promise=i,i.version="3.4.7",h.toFastProperties(i),h.toFastProperties(i.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new i(b)),F.setBounds(d.firstLineError,h.lastLineError),i}},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function a(t){switch(t){case-2:return[];case-3:return{}}}function s(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(s,o),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var s=o._bitField;if(this._values=o,0===(50397184&s))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&s))return 0!==(16777216&s)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(a(n))):void this._iterate(o)},s.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,a=null,s=0;n>s;++s){var c=r(t[s],i);c instanceof e?(c=c._target(),a=c._bitField):a=null,o?null!==a&&c.suppressUnhandledRejections():null!==a?0===(50397184&a)?(c._proxy(this,s),this._values[s]=c):o=0!==(33554432&a)?this._promiseFulfilled(c._value(),s):0!==(16777216&a)?this._promiseRejected(c._reason(),s):this._promiseCancelled(s):o=this._promiseFulfilled(c,s)}o||i._setAsyncGuaranteed()},s.prototype._isResolved=function(){return null===this._values},s.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},s.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},s.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},s.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;no;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityn;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function f(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function h(t){function e(){}e.prototype=t;for(var n=8;n--;)new e;return t}function _(t){return L.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function g(t){try{u(t,"isOperational",!0)}catch(e){}}function m(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function C(t){return{}.toString.call(t)}function w(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),D.isNode&&D.toFastProperties(process);try{throw new Error}catch(V){D.lastLineError=V}e.exports=D},{"./es5":10}]},{},[3])(3)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise);
\ No newline at end of file
+!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function o(a,s){if(!e[a]){if(!t[a]){var c="function"==typeof _dereq_&&_dereq_;if(!s&&c)return c(a,!0);if(i)return i(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return o(n?n:e)},u,u.exports,r,t,e,n)}return e[a].exports}for(var i="function"==typeof _dereq_&&_dereq_,a=0;a0;)c(t)}function c(t){var e=t.shift();if("function"!=typeof e)e._settlePromises();else{var n=t.shift(),r=t.shift();e.call(n,r)}}var l;try{throw new Error}catch(u){l=u}var p=t("./schedule"),f=t("./queue");r.prototype.setScheduler=function(t){var e=this._schedule;return this._schedule=t,this._customScheduler=!0,e},r.prototype.hasCustomScheduler=function(){return this._customScheduler},r.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues},r.prototype.fatalError=function(t,e){e?(process.stderr.write("Fatal "+(t instanceof Error?t.stack:t)+"\n"),process.exit(2)):this.throwLater(t)},r.prototype.throwLater=function(t,e){if(1===arguments.length&&(e=t,t=function(){throw e}),"undefined"!=typeof setTimeout)setTimeout(function(){t(e)},0);else try{this._schedule(function(){t(e)})}catch(n){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")}},r.prototype.invokeLater=o,r.prototype.invoke=i,r.prototype.settlePromises=a,r.prototype._drainQueues=function(){s(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,s(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=l},{"./queue":17,"./schedule":18}],2:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var o=!1,i=function(t,e){this._reject(e)},a=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(i,i,null,this,t)},s=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(i){o||(o=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(i),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var f={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,a,void 0,u,f),l._then(s,c,void 0,u,f),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],3:[function(t,e,n){"use strict";function r(){try{Promise===i&&(Promise=o)}catch(t){}return i}var o;"undefined"!=typeof Promise&&(o=Promise);var i=t("./promise")();i.noConflict=r,e.exports=i},{"./promise":15}],4:[function(t,e,n){"use strict";e.exports=function(e,n,r,o){var i=t("./util"),a=i.tryCatch,s=i.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!o.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(i.isArray(t))for(var n=0;n=0?i[t]:void 0}var o=!1,i=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,i.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=i.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,i=t.prototype._popContext,a=t._peekContext,s=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=i,t._peekContext=a,t.prototype._peekContext=s,t.prototype._promiseCreated=c,o=!1},o=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],7:[function(t,e,n){"use strict";e.exports=function(e,n,r,o){function i(t,e){return{promise:e}}function a(){return!1}function s(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+V.toString(t));r._attachCancellationCallback(t)})}catch(o){return o}}function c(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?V.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function l(){return this._onCancelField}function u(t){this._onCancelField=t}function p(){this._cancellationParent=void 0,this._onCancelField=void 0}function f(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function h(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function d(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function _(){this._trace=new H(this._peekContext())}function v(t,e){if(q(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=F(t);V.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),V.notEnumerableProp(t,"__stackCleaned__",!0)}}}function y(){this._trace=void 0}function g(t,e,n,r,o){if(void 0===t&&null!==e&&Z){if(void 0!==o&&o._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var i="",a="";if(e._trace){for(var s=e._trace.stack.split("\n"),c=E(s),l=c.length-1;l>=0;--l){var u=c[l];if(!M.test(u)){var p=u.match(W);p&&(i="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var f=c[0],l=0;l0&&(a="\n"+s[l-1]);break}}var h="a promise was created in a "+n+"handler "+i+"but was not returned from it, see http://goo.gl/rRqMUw"+a;r._warn(h,!0,e)}}function m(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),b(n)}function b(t,n,r){if(ut.warnings){var o,i=new D(t);if(n)r._attachExtraTrace(i);else if(ut.longStackTraces&&(o=e._peekContext()))o.attachExtraTrace(i);else{var a=F(i);i.stack=a.message+"\n"+a.stack.join("\n")}it("warning",i)||T(i,"",!0)}}function C(t,e){for(var n=0;n=0;--s)if(r[s]===i){a=s;break}for(var s=a;s>=0;--s){var c=r[s];if(e[o]!==c)break;e.pop(),o--}e=r}}function E(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function F(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?j(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:E(e)}}function T(t,e,n){if("undefined"!=typeof console){var r;if(V.isObject(t)){var o=t.stack;r=e+z(o,t)}else r=e+String(t);"function"==typeof B?B(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function x(t,e,n,r){var o=!1;try{"function"==typeof e&&(o=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(i){I.throwLater(i)}"unhandledRejection"===t?it(t,n,r)||o||T(n,"Unhandled rejection "):it(t,r)}function R(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():V.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(o){}0===e.length&&(e="(empty array)")}return"(<"+S(e)+">, no stack trace)"}function S(t){var e=41;return t.lengtha||0>s||!n||!r||n!==r||a>=s||(st=function(t){if(G.test(t))return!0;var e=O(t);return e&&e.fileName===n&&a<=e.line&&e.line<=s?!0:!1})}}function H(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);lt(this,H),e>32&&this.uncycle()}var N,L,B,U,I=e._async,D=t("./errors").Warning,V=t("./util"),Q=t("./es5"),q=V.canAttachTrace,G=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,M=/\((?:timers\.js):\d+:\d+\)/,W=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,$=null,z=null,X=!1,K=!(0==V.env("BLUEBIRD_DEBUG")||!V.env("BLUEBIRD_DEBUG")&&"development"!==V.env("NODE_ENV")),J=!(0==V.env("BLUEBIRD_WARNINGS")||!K&&!V.env("BLUEBIRD_WARNINGS")),Y=!(0==V.env("BLUEBIRD_LONG_STACK_TRACES")||!K&&!V.env("BLUEBIRD_LONG_STACK_TRACES")),Z=0!=V.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(J||!!V.env("BLUEBIRD_W_FORGOTTEN_RETURN"));!function(){function t(){for(var t=0;t0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return b(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var n=e._getContext();L=V.contextBind(n,t)},e.onUnhandledRejectionHandled=function(t){var n=e._getContext();N=V.contextBind(n,t)};var tt=function(){};e.longStackTraces=function(){if(I.haveItemsQueued()&&!ut.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!ut.longStackTraces&&P()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace,o=e.prototype._dereferenceTrace;ut.longStackTraces=!0,tt=function(){if(I.haveItemsQueued()&&!ut.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,e.prototype._dereferenceTrace=o,n.deactivateLongStackTraces(),ut.longStackTraces=!1},e.prototype._captureStackTrace=_,e.prototype._attachExtraTrace=v,e.prototype._dereferenceTrace=y,n.activateLongStackTraces()}},e.hasLongStackTraces=function(){return ut.longStackTraces&&P()};var et={unhandledrejection:{before:function(){var t=V.global.onunhandledrejection;return V.global.onunhandledrejection=null,t},after:function(t){V.global.onunhandledrejection=t}},rejectionhandled:{before:function(){var t=V.global.onrejectionhandled;return V.global.onrejectionhandled=null,t},after:function(t){V.global.onrejectionhandled=t}}},nt=function(){var t=function(t,e){if(!t)return!V.global.dispatchEvent(e);var n;try{return n=t.before(),!V.global.dispatchEvent(e)}finally{t.after(n)}};try{if("function"==typeof CustomEvent){var e=new CustomEvent("CustomEvent");return V.global.dispatchEvent(e),function(e,n){e=e.toLowerCase();var r={detail:n,cancelable:!0},o=new CustomEvent(e,r);return Q.defineProperty(o,"promise",{value:n.promise}),Q.defineProperty(o,"reason",{value:n.reason}),t(et[e],o)}}if("function"==typeof Event){var e=new Event("CustomEvent");return V.global.dispatchEvent(e),function(e,n){e=e.toLowerCase();var r=new Event(e,{cancelable:!0});return r.detail=n,Q.defineProperty(r,"promise",{value:n.promise}),Q.defineProperty(r,"reason",{value:n.reason}),t(et[e],r)}}var e=document.createEvent("CustomEvent");return e.initCustomEvent("testingtheevent",!1,!0,{}),V.global.dispatchEvent(e),function(e,n){e=e.toLowerCase();var r=document.createEvent("CustomEvent");return r.initCustomEvent(e,!1,!0,n),t(et[e],r)}}catch(n){}return function(){return!1}}(),rt=function(){return V.isNode?function(){return process.emit.apply(process,arguments)}:V.global?function(t){var e="on"+t.toLowerCase(),n=V.global[e];return n?(n.apply(V.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),ot={promiseCreated:i,promiseFulfilled:i,promiseRejected:i,promiseResolved:i,promiseCancelled:i,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:i},it=function(t){var e=!1;try{e=rt.apply(null,arguments)}catch(n){I.throwLater(n),e=!0}var r=!1;try{r=nt(t,ot[t].apply(null,arguments))}catch(n){I.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&tt()),"warnings"in t){var n=t.warnings;ut.warnings=!!n,Z=ut.warnings,V.isObject(n)&&"wForgottenReturn"in n&&(Z=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!ut.cancellation){if(I.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=p,e.prototype._propagateFrom=f,e.prototype._onCancel=l,e.prototype._setOnCancel=u,e.prototype._attachCancellationCallback=c,e.prototype._execute=s,at=f,ut.cancellation=!0}if("monitoring"in t&&(t.monitoring&&!ut.monitoring?(ut.monitoring=!0,e.prototype._fireEvent=it):!t.monitoring&&ut.monitoring&&(ut.monitoring=!1,e.prototype._fireEvent=a)),"asyncHooks"in t&&V.nodeSupportsAsyncResource){var i=ut.asyncHooks,h=!!t.asyncHooks;i!==h&&(ut.asyncHooks=h,h?r():o())}return e},e.prototype._fireEvent=a,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._dereferenceTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var at=h,st=function(){return!1},ct=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;V.inherits(H,Error),n.CapturedTrace=H,H.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,o=this;void 0!==o;++r)e.push(o),o=o._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var i=e[r].stack;void 0===n[i]&&(n[i]=r)}for(var r=0;t>r;++r){var a=e[r].stack,s=n[a];if(void 0!==s&&s!==r){s>0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>s?(c._parent=e[s+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},H.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=F(t),n=e.message,r=[e.stack],o=this;void 0!==o;)r.push(E(o.stack.split("\n"))),o=o._parent;k(r),w(r),V.notEnumerableProp(t,"stack",C(n,r)),V.notEnumerableProp(t,"__stackCleaned__",!0)}};var lt=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():R(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,$=t,z=e;var n=Error.captureStackTrace;return st=function(t){return G.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return $=/@/,z=e,X=!0,function(t){t.stack=(new Error).stack};var o;try{throw new Error}catch(i){o="stack"in i}return"stack"in r||!o||"number"!=typeof Error.stackTraceLimit?(z=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?R(e):e.toString()},null):($=t,z=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(B=function(t){console.warn(t)},V.isNode&&process.stderr.isTTY?B=function(t,e){var n=e?"[33m":"[31m";console.warn(n+t+"[0m\n")}:V.isNode||"string"!=typeof(new Error).stack||(B=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var ut={warnings:J,longStackTraces:!1,cancellation:!1,monitoring:!1,asyncHooks:!1};return Y&&e.longStackTraces(),{asyncHooks:function(){return ut.asyncHooks},longStackTraces:function(){return ut.longStackTraces},warnings:function(){return ut.warnings},cancellation:function(){return ut.cancellation},monitoring:function(){return ut.monitoring},propagateFromFunction:function(){return at},boundValueFunction:function(){return d},checkForgottenReturns:g,setBounds:A,warn:b,deprecated:m,CapturedTrace:H,fireDomEvent:nt,fireGlobalEvent:rt}}},{"./errors":9,"./es5":10,"./util":21}],8:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var o=function(){return r};return this.caught(n,o)}}},{}],9:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function o(t){return this instanceof o?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new o(t)}var i,a,s=t("./es5"),c=s.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,f=r("Warning","warning"),h=r("CancellationError","cancellation error"),d=r("TimeoutError","timeout error"),_=r("AggregateError","aggregate error");try{i=TypeError,a=RangeError}catch(v){i=r("TypeError","type error"),a=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),g=0;g1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function s(){return l.call(this,this.promise._target()._settledValue())}function c(t){return a(this,t)?void 0:(f.e=t,f)}function l(t){var o=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(o._boundValue()):l.call(o._boundValue(),t);if(u===r)return u;if(void 0!==u){o._setReturnedNonUndefined();var h=n(u,o);if(h instanceof e){if(null!=this.cancelPromise){if(h._isCancelled()){var d=new p("late cancellation observer");return o._attachExtraTrace(d),f.e=d,f}h.isPending()&&h._attachCancellationCallback(new i(this))}return h._then(s,c,void 0,this,void 0)}}}return o.isRejected()?(a(this),f.e=t,f):(a(this),t)}var u=t("./util"),p=e.CancellationError,f=u.errorObj,h=t("./catch_filter")(r);return o.prototype.isFinallyHandler=function(){return 0===this.type},i.prototype._resultCancelled=function(){a(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new o(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,o=new Array(n-1),i=0;for(r=0;n-1>r;++r){var a=arguments[r];if(!u.isObject(a))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(a)));o[i++]=a}o.length=i;var s=arguments[r];return this._passThrough(h(o,s,this),1,void 0,l)},o}},{"./catch_filter":5,"./util":21}],12:[function(t,e,n){"use strict";e.exports=function(e,n,r,o,i){var a=t("./util");a.canEvaluate,a.tryCatch,a.errorObj;e.join=function(){var t,e=arguments.length-1;if(e>0&&"function"==typeof arguments[e]){t=arguments[e];var r}var o=[].slice.call(arguments);t&&o.pop();var r=new n(o).promise();return void 0!==t?r.spread(t):r}}},{"./util":21}],13:[function(t,e,n){"use strict";e.exports=function(e,n,r,o,i){var a=t("./util"),s=a.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+a.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var o=s(t).apply(this,arguments),a=r._popContext();return i.checkForgottenReturns(o,a,"Promise.method",r),r._resolveFromSyncValue(o),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return o("expecting a function but got "+a.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){i.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=a.isArray(l)?s(t).apply(u,l):s(t).call(u,l)}else c=s(t)();var p=r._popContext();return i.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===a.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":21}],14:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function o(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),o=0;o1){var n,r=new Array(e-1),o=0;
+for(n=0;e-1>n;++n){var i=arguments[n];if(!f.isObject(i))return u("Catch statement predicate: expecting an object but got "+f.classString(i));r[o++]=i}if(r.length=o,t=arguments[n],"function"!=typeof t)throw new j("The last argument to .catch() must be a function, got "+f.toString(t));return this.then(void 0,N(r,t,this))}return this.then(void 0,t)},o.prototype.reflect=function(){return this._then(l,l,void 0,this,void 0)},o.prototype.then=function(t,e){if(A.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},o.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},o.prototype.spread=function(t){return"function"!=typeof t?u("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,x,void 0)},o.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},o.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new P(this).promise()},o.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},o.getNewLibraryCopy=e.exports,o.is=function(t){return t instanceof o},o.fromNode=o.fromCallback=function(t){var e=new o(T);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=U(t)(L(e,n));return r===B&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},o.all=function(t){return new P(t).promise()},o.cast=function(t){var e=S(t);return e instanceof o||(e=new o(T),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},o.resolve=o.fulfilled=o.cast,o.reject=o.rejected=function(t){var e=new o(T);return e._captureStackTrace(),e._rejectCallback(t,!0),e},o.setScheduler=function(t){if("function"!=typeof t)throw new j("expecting a function but got "+f.classString(t));return k.setScheduler(t)},o.prototype._then=function(t,e,n,r,i){var a=void 0!==i,s=a?i:new o(T),c=this._target(),l=c._bitField;a||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&l)?this._boundValue():c===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s));var u=g();if(0!==(50397184&l)){var p,h,d=c._settlePromiseCtx;0!==(33554432&l)?(h=c._rejectionHandler0,p=t):0!==(16777216&l)?(h=c._fulfillmentHandler0,p=e,c._unsetRejectionIsUnhandled()):(d=c._settlePromiseLateCancellationObserver,h=new F("late cancellation observer"),c._attachExtraTrace(h),p=e),k.invoke(d,c,{handler:f.contextBind(u,p),promise:s,receiver:r,value:h})}else c._addCallbacks(t,e,s,r,u);return s},o.prototype._length=function(){return 65535&this._bitField},o.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},o.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},o.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},o.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},o.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},o.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},o.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},o.prototype._isFinal=function(){return(4194304&this._bitField)>0},o.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},o.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},o.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},o.prototype._setAsyncGuaranteed=function(){if(!k.hasCustomScheduler()){var t=this._bitField;this._bitField=t|(536870912&t)>>2^134217728}},o.prototype._setNoAsyncGuarantee=function(){this._bitField=-134217729&(536870912|this._bitField)},o.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===p?void 0:void 0===e&&this._isBound()?this._boundValue():e},o.prototype._promiseAt=function(t){return this[4*t-4+2]},o.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},o.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},o.prototype._boundValue=function(){},o.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,o=t._receiverAt(0);void 0===o&&(o=p),this._addCallbacks(e,n,r,o,null)},o.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),o=t._promiseAt(e),i=t._receiverAt(e);void 0===i&&(i=p),this._addCallbacks(n,r,o,i,null)},o.prototype._addCallbacks=function(t,e,n,r,o){var i=this._length();if(i>=65531&&(i=0,this._setLength(0)),0===i)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=f.contextBind(o,t)),"function"==typeof e&&(this._rejectionHandler0=f.contextBind(o,e));else{var a=4*i-4;this[a+2]=n,this[a+3]=r,"function"==typeof t&&(this[a+0]=f.contextBind(o,t)),"function"==typeof e&&(this[a+1]=f.contextBind(o,e))}return this._setLength(i+1),i},o.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},o.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(c(),!1);var n=S(t,this);if(!(n instanceof o))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(c());var i=r._bitField;if(0===(50397184&i)){var a=this._length();a>0&&r._migrateCallback0(this);for(var s=1;a>s;++s)r._migrateCallbackAt(this,s);this._setFollowing(),this._setLength(0),this._setFollowee(n)}else if(0!==(33554432&i))this._fulfill(r._value());else if(0!==(16777216&i))this._reject(r._reason());else{var l=new F("late cancellation observer");r._attachExtraTrace(l),this._reject(l)}}},o.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),o=r===t;if(!o&&!n&&A.warnings()){var i="a promise was rejected with a non-error: "+f.classString(t);this._warn(i,!0)}this._attachExtraTrace(r,e?o:!1),this._reject(t)},o.prototype._resolveFromExecutor=function(t){if(t!==T){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},o.prototype._settlePromiseFromHandler=function(t,e,n,r){var o=r._bitField;if(0===(65536&o)){r._pushContext();var i;e===x?n&&"number"==typeof n.length?i=U(t).apply(this._boundValue(),n):(i=B,i.e=new j("cannot .spread() a non-array: "+f.classString(n))):i=U(t).call(e,n);var a=r._popContext();o=r._bitField,0===(65536&o)&&(i===R?r._reject(n):i===B?r._rejectCallback(i.e,!1):(A.checkForgottenReturns(i,a,"",r,this),r._resolveCallback(i)))}},o.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},o.prototype._followee=function(){return this._rejectionHandler0},o.prototype._setFollowee=function(t){this._rejectionHandler0=t},o.prototype._settlePromise=function(t,e,r,i){var a=t instanceof o,s=this._bitField,c=0!==(134217728&s);0!==(65536&s)?(a&&t._invokeInternalOnCancel(),r instanceof H&&r.isFinallyHandler()?(r.cancelPromise=t,U(e).call(r,i)===B&&t._reject(B.e)):e===l?t._fulfill(l.call(r)):r instanceof n?r._promiseCancelled(t):a||t instanceof P?t._cancel():r.cancel()):"function"==typeof e?a?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,i,t)):e.call(r,i,t):r instanceof n?r._isResolved()||(0!==(33554432&s)?r._promiseFulfilled(i,t):r._promiseRejected(i,t)):a&&(c&&t._setAsyncGuaranteed(),0!==(33554432&s)?t._fulfill(i):t._reject(i))},o.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,i=t.value;"function"==typeof e?n instanceof o?this._settlePromiseFromHandler(e,r,i,n):e.call(r,i,n):n instanceof o&&n._reject(i)},o.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},o.prototype._settlePromise0=function(t,e,n){var r=this._promise0,o=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,o,e)},o.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},o.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=c();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():k.settlePromises(this),this._dereferenceTrace())}},o.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?k.fatalError(t,f.isNode):void((65535&e)>0?k.settlePromises(this):this._ensurePossibleRejectionHandled())},o.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),o=this._promiseAt(n),i=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(o,r,i,e)}},o.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),o=this._promiseAt(n),i=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(o,r,i,e)}},o.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},o.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},"undefined"!=typeof Symbol&&Symbol.toStringTag&&C.defineProperty(o.prototype,Symbol.toStringTag,{get:function(){return"Object"}}),o.defer=o.pending=function(){A.deprecated("Promise.defer","new Promise");var t=new o(T);return{promise:t,resolve:i,reject:a}},f.notEnumerableProp(o,"_makeSelfResolutionError",c),t("./method")(o,T,S,u,A),t("./bind")(o,T,S,A),t("./cancel")(o,P,u,A),t("./direct_resolve")(o),t("./synchronous_inspection")(o),t("./join")(o,P,S,T,k),o.Promise=o,o.version="3.7.2",f.toFastProperties(o),f.toFastProperties(o.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new o(T)),A.setBounds(w.firstLineError,f.lastLineError),o}},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21,async_hooks:void 0}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,o,i){function a(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function s(t){var r=this._promise=new e(n);t instanceof e&&(r._propagateFrom(t,3),t.suppressUnhandledRejections()),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(s,i),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function l(t,n){var i=r(this._values,this._promise);if(i instanceof e){i=i._target();var s=i._bitField;if(this._values=i,0===(50397184&s))return this._promise._setAsyncGuaranteed(),i._then(l,this._reject,void 0,this,n);if(0===(33554432&s))return 0!==(16777216&s)?this._reject(i._reason()):this._cancel();i=i._value()}if(i=c.asArray(i),null===i){var u=o("expecting an array or an iterable object but got "+c.classString(i)).reason();return void this._promise._rejectCallback(u,!1)}return 0===i.length?void(-5===n?this._resolveEmptyArray():this._resolve(a(n))):void this._iterate(i)},s.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var o=this._promise,i=!1,a=null,s=0;n>s;++s){var c=r(t[s],o);c instanceof e?(c=c._target(),a=c._bitField):a=null,i?null!==a&&c.suppressUnhandledRejections():null!==a?0===(50397184&a)?(c._proxy(this,s),this._values[s]=c):i=0!==(33554432&a)?this._promiseFulfilled(c._value(),s):0!==(16777216&a)?this._promiseRejected(c._reason(),s):this._promiseCancelled(s):i=this._promiseFulfilled(c,s)}i||o._setAsyncGuaranteed()},s.prototype._isResolved=function(){return null===this._values},s.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},s.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},s.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},s.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;ni;++i)n[i+r]=t[i+e],t[i+e]=void 0}function o(t){this._capacity=t,this._length=0,this._front=0}o.prototype._willBeOverCapacity=function(t){return this._capacityn;++n)o[n]=t[n];return o[n]=e,o}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(i(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function f(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),o=A.test(t+"")&&F.names(t).length>0;if(n||r||o)return!0}return!1}catch(i){return!1}}function h(t){function e(){}function n(){return typeof r.foo}e.prototype=t;var r=new e;return n(),n(),t}function d(t){return H.test(t)}function _(t,e,n){for(var r=new Array(t),o=0;t>o;++o)r[o]=e+o+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function g(t){try{u(t,"isOperational",!0)}catch(e){}}function m(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function C(t){return{}.toString.call(t)}function w(t,e,n){for(var r=F.names(t),o=0;o10||t[0]>0}(),V.nodeSupportsAsyncResource=V.isNode&&function(){var e=!1;try{var n=t("async_hooks").AsyncResource;e="function"==typeof n.prototype.runInAsyncScope}catch(r){e=!1}return e}(),V.isNode&&V.toFastProperties(process);try{throw new Error}catch(Q){V.lastLineError=Q}e.exports=V},{"./es5":10,async_hooks:void 0}]},{},[3])(3)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise);
\ No newline at end of file
diff --git a/server/node_modules/bluebird/js/browser/bluebird.js b/server/node_modules/bluebird/js/browser/bluebird.js
old mode 100755
new mode 100644
index dc80cb6..7f0686f
--- a/server/node_modules/bluebird/js/browser/bluebird.js
+++ b/server/node_modules/bluebird/js/browser/bluebird.js
@@ -1,7 +1,7 @@
/* @preserve
* The MIT License (MIT)
*
- * Copyright (c) 2013-2015 Petka Antonov
+ * Copyright (c) 2013-2018 Petka Antonov
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -23,7 +23,7 @@
*
*/
/**
- * bluebird build version 3.4.7
+ * bluebird build version 3.7.2
* Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each
*/
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_=="function"&&_dereq_;for(var o=0;o 0) {
+ _drainQueueStep(queue);
+ }
}
-Async.prototype._drainQueue = function(queue) {
- while (queue.length() > 0) {
- var fn = queue.shift();
- if (typeof fn !== "function") {
- fn._settlePromises();
- continue;
- }
+function _drainQueueStep(queue) {
+ var fn = queue.shift();
+ if (typeof fn !== "function") {
+ fn._settlePromises();
+ } else {
var receiver = queue.shift();
var arg = queue.shift();
fn.call(receiver, arg);
}
-};
+}
Async.prototype._drainQueues = function () {
- this._drainQueue(this._normalQueue);
+ _drainQueue(this._normalQueue);
this._reset();
this._haveDrainedQueues = true;
- this._drainQueue(this._lateQueue);
+ _drainQueue(this._lateQueue);
};
Async.prototype._queueTick = function () {
@@ -212,7 +171,7 @@ Async.prototype._reset = function () {
module.exports = Async;
module.exports.firstLineError = firstLineError;
-},{"./queue":26,"./schedule":29,"./util":36}],3:[function(_dereq_,module,exports){
+},{"./queue":26,"./schedule":29}],3:[function(_dereq_,module,exports){
"use strict";
module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) {
var calledBind = false;
@@ -667,11 +626,12 @@ return Context;
},{}],9:[function(_dereq_,module,exports){
"use strict";
-module.exports = function(Promise, Context) {
-var getDomain = Promise._getDomain;
+module.exports = function(Promise, Context,
+ enableAsyncHooks, disableAsyncHooks) {
var async = Promise._async;
var Warning = _dereq_("./errors").Warning;
var util = _dereq_("./util");
+var es5 = _dereq_("./es5");
var canAttachTrace = util.canAttachTrace;
var unhandledRejectionHandled;
var possiblyUnhandledRejection;
@@ -697,6 +657,34 @@ var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 &&
var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 &&
(warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN"));
+var deferUnhandledRejectionCheck;
+(function() {
+ var promises = [];
+
+ function unhandledRejectionCheck() {
+ for (var i = 0; i < promises.length; ++i) {
+ promises[i]._notifyUnhandledRejection();
+ }
+ unhandledRejectionClear();
+ }
+
+ function unhandledRejectionClear() {
+ promises.length = 0;
+ }
+
+ deferUnhandledRejectionCheck = function(promise) {
+ promises.push(promise);
+ setTimeout(unhandledRejectionCheck, 1);
+ };
+
+ es5.defineProperty(Promise, "_unhandledRejectionCheck", {
+ value: unhandledRejectionCheck
+ });
+ es5.defineProperty(Promise, "_unhandledRejectionClear", {
+ value: unhandledRejectionClear
+ });
+})();
+
Promise.prototype.suppressUnhandledRejections = function() {
var target = this._target();
target._bitField = ((target._bitField & (~1048576)) |
@@ -706,7 +694,7 @@ Promise.prototype.suppressUnhandledRejections = function() {
Promise.prototype._ensurePossibleRejectionHandled = function () {
if ((this._bitField & 524288) !== 0) return;
this._setRejectionIsUnhandled();
- async.invokeLater(this._notifyUnhandledRejection, this, undefined);
+ deferUnhandledRejectionCheck(this);
};
Promise.prototype._notifyUnhandledRejectionIsHandled = function () {
@@ -764,19 +752,13 @@ Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) {
};
Promise.onPossiblyUnhandledRejection = function (fn) {
- var domain = getDomain();
- possiblyUnhandledRejection =
- typeof fn === "function" ? (domain === null ?
- fn : util.domainBind(domain, fn))
- : undefined;
+ var context = Promise._getContext();
+ possiblyUnhandledRejection = util.contextBind(context, fn);
};
Promise.onUnhandledRejectionHandled = function (fn) {
- var domain = getDomain();
- unhandledRejectionHandled =
- typeof fn === "function" ? (domain === null ?
- fn : util.domainBind(domain, fn))
- : undefined;
+ var context = Promise._getContext();
+ unhandledRejectionHandled = util.contextBind(context, fn);
};
var disableLongStackTraces = function() {};
@@ -787,6 +769,7 @@ Promise.longStackTraces = function () {
if (!config.longStackTraces && longStackTracesIsSupported()) {
var Promise_captureStackTrace = Promise.prototype._captureStackTrace;
var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;
+ var Promise_dereferenceTrace = Promise.prototype._dereferenceTrace;
config.longStackTraces = true;
disableLongStackTraces = function() {
if (async.haveItemsQueued() && !config.longStackTraces) {
@@ -794,14 +777,14 @@ Promise.longStackTraces = function () {
}
Promise.prototype._captureStackTrace = Promise_captureStackTrace;
Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;
+ Promise.prototype._dereferenceTrace = Promise_dereferenceTrace;
Context.deactivateLongStackTraces();
- async.enableTrampoline();
config.longStackTraces = false;
};
Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;
Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;
+ Promise.prototype._dereferenceTrace = longStackTracesDereferenceTrace;
Context.activateLongStackTraces();
- async.disableTrampolineIfNecessary();
}
};
@@ -809,37 +792,85 @@ Promise.hasLongStackTraces = function () {
return config.longStackTraces && longStackTracesIsSupported();
};
+
+var legacyHandlers = {
+ unhandledrejection: {
+ before: function() {
+ var ret = util.global.onunhandledrejection;
+ util.global.onunhandledrejection = null;
+ return ret;
+ },
+ after: function(fn) {
+ util.global.onunhandledrejection = fn;
+ }
+ },
+ rejectionhandled: {
+ before: function() {
+ var ret = util.global.onrejectionhandled;
+ util.global.onrejectionhandled = null;
+ return ret;
+ },
+ after: function(fn) {
+ util.global.onrejectionhandled = fn;
+ }
+ }
+};
+
var fireDomEvent = (function() {
+ var dispatch = function(legacy, e) {
+ if (legacy) {
+ var fn;
+ try {
+ fn = legacy.before();
+ return !util.global.dispatchEvent(e);
+ } finally {
+ legacy.after(fn);
+ }
+ } else {
+ return !util.global.dispatchEvent(e);
+ }
+ };
try {
if (typeof CustomEvent === "function") {
var event = new CustomEvent("CustomEvent");
util.global.dispatchEvent(event);
return function(name, event) {
- var domEvent = new CustomEvent(name.toLowerCase(), {
+ name = name.toLowerCase();
+ var eventData = {
detail: event,
cancelable: true
- });
- return !util.global.dispatchEvent(domEvent);
+ };
+ var domEvent = new CustomEvent(name, eventData);
+ es5.defineProperty(
+ domEvent, "promise", {value: event.promise});
+ es5.defineProperty(
+ domEvent, "reason", {value: event.reason});
+
+ return dispatch(legacyHandlers[name], domEvent);
};
} else if (typeof Event === "function") {
var event = new Event("CustomEvent");
util.global.dispatchEvent(event);
return function(name, event) {
- var domEvent = new Event(name.toLowerCase(), {
+ name = name.toLowerCase();
+ var domEvent = new Event(name, {
cancelable: true
});
domEvent.detail = event;
- return !util.global.dispatchEvent(domEvent);
+ es5.defineProperty(domEvent, "promise", {value: event.promise});
+ es5.defineProperty(domEvent, "reason", {value: event.reason});
+ return dispatch(legacyHandlers[name], domEvent);
};
} else {
var event = document.createEvent("CustomEvent");
event.initCustomEvent("testingtheevent", false, true, {});
util.global.dispatchEvent(event);
return function(name, event) {
+ name = name.toLowerCase();
var domEvent = document.createEvent("CustomEvent");
- domEvent.initCustomEvent(name.toLowerCase(), false, true,
+ domEvent.initCustomEvent(name, false, true,
event);
- return !util.global.dispatchEvent(domEvent);
+ return dispatch(legacyHandlers[name], domEvent);
};
}
} catch (e) {}
@@ -957,6 +988,18 @@ Promise.config = function(opts) {
Promise.prototype._fireEvent = defaultFireEvent;
}
}
+ if ("asyncHooks" in opts && util.nodeSupportsAsyncResource) {
+ var prev = config.asyncHooks;
+ var cur = !!opts.asyncHooks;
+ if (prev !== cur) {
+ config.asyncHooks = cur;
+ if (cur) {
+ enableAsyncHooks();
+ } else {
+ disableAsyncHooks();
+ }
+ }
+ }
return Promise;
};
@@ -977,6 +1020,7 @@ Promise.prototype._attachCancellationCallback = function(onCancel) {
};
Promise.prototype._captureStackTrace = function () {};
Promise.prototype._attachExtraTrace = function () {};
+Promise.prototype._dereferenceTrace = function () {};
Promise.prototype._clearCancellationData = function() {};
Promise.prototype._propagateFrom = function (parent, flags) {
;
@@ -1082,6 +1126,10 @@ function longStackTracesAttachExtraTrace(error, ignoreSelf) {
}
}
+function longStackTracesDereferenceTrace() {
+ this._trace = undefined;
+}
+
function checkForgottenReturns(returnValue, promiseCreated, name, promise,
parent) {
if (returnValue === undefined && promiseCreated !== null &&
@@ -1339,8 +1387,8 @@ function parseLineInfo(line) {
function setBounds(firstLineError, lastLineError) {
if (!longStackTracesIsSupported()) return;
- var firstStackLines = firstLineError.stack.split("\n");
- var lastStackLines = lastLineError.stack.split("\n");
+ var firstStackLines = (firstLineError.stack || "").split("\n");
+ var lastStackLines = (lastLineError.stack || "").split("\n");
var firstIndex = -1;
var lastIndex = -1;
var firstFileName;
@@ -1549,12 +1597,16 @@ var config = {
warnings: warnings,
longStackTraces: false,
cancellation: false,
- monitoring: false
+ monitoring: false,
+ asyncHooks: false
};
if (longStackTraces) Promise.longStackTraces();
return {
+ asyncHooks: function() {
+ return config.asyncHooks;
+ },
longStackTraces: function() {
return config.longStackTraces;
},
@@ -1583,7 +1635,7 @@ return {
};
};
-},{"./errors":12,"./util":36}],10:[function(_dereq_,module,exports){
+},{"./errors":12,"./es5":13,"./util":36}],10:[function(_dereq_,module,exports){
"use strict";
module.exports = function(Promise) {
function returner() {
@@ -1879,10 +1931,11 @@ Promise.filter = function (promises, fn, options) {
},{}],15:[function(_dereq_,module,exports){
"use strict";
-module.exports = function(Promise, tryConvertToPromise) {
+module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) {
var util = _dereq_("./util");
var CancellationError = Promise.CancellationError;
var errorObj = util.errorObj;
+var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER);
function PassThroughHandlerContext(promise, type, handler) {
this.promise = promise;
@@ -1934,7 +1987,9 @@ function finallyHandler(reasonOrValue) {
var ret = this.isFinallyHandler()
? handler.call(promise._boundValue())
: handler.call(promise._boundValue(), reasonOrValue);
- if (ret !== undefined) {
+ if (ret === NEXT_FILTER) {
+ return ret;
+ } else if (ret !== undefined) {
promise._setReturnedNonUndefined();
var maybePromise = tryConvertToPromise(ret, promise);
if (maybePromise instanceof Promise) {
@@ -1983,14 +2038,46 @@ Promise.prototype["finally"] = function (handler) {
finallyHandler);
};
+
Promise.prototype.tap = function (handler) {
return this._passThrough(handler, 1, finallyHandler);
};
+Promise.prototype.tapCatch = function (handlerOrPredicate) {
+ var len = arguments.length;
+ if(len === 1) {
+ return this._passThrough(handlerOrPredicate,
+ 1,
+ undefined,
+ finallyHandler);
+ } else {
+ var catchInstances = new Array(len - 1),
+ j = 0, i;
+ for (i = 0; i < len - 1; ++i) {
+ var item = arguments[i];
+ if (util.isObject(item)) {
+ catchInstances[j++] = item;
+ } else {
+ return Promise.reject(new TypeError(
+ "tapCatch statement predicate: "
+ + "expecting an object but got " + util.classString(item)
+ ));
+ }
+ }
+ catchInstances.length = j;
+ var handler = arguments[i];
+ return this._passThrough(catchFilter(catchInstances, handler, this),
+ 1,
+ undefined,
+ finallyHandler);
+ }
+
+};
+
return PassThroughHandlerContext;
};
-},{"./util":36}],16:[function(_dereq_,module,exports){
+},{"./catch_filter":7,"./util":36}],16:[function(_dereq_,module,exports){
"use strict";
module.exports = function(Promise,
apiRejection,
@@ -2150,7 +2237,7 @@ PromiseSpawn.prototype._continue = function (result) {
if (maybePromise === null) {
this._promiseRejected(
new TypeError(
- "A value %s was yielded that could not be treated as a promise\u000a\u000a See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", value) +
+ "A value %s was yielded that could not be treated as a promise\u000a\u000a See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", String(value)) +
"From coroutine:\u000a" +
this._stack.split("\n").slice(1, -7).join("\n")
)
@@ -2218,8 +2305,7 @@ Promise.spawn = function (generatorFunction) {
},{"./errors":12,"./util":36}],17:[function(_dereq_,module,exports){
"use strict";
module.exports =
-function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async,
- getDomain) {
+function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async) {
var util = _dereq_("./util");
var canEvaluate = util.canEvaluate;
var tryCatch = util.tryCatch;
@@ -2365,10 +2451,8 @@ Promise.join = function () {
if (!ret._isFateSealed()) {
if (holder.asyncNeeded) {
- var domain = getDomain();
- if (domain !== null) {
- holder.fn = util.domainBind(domain, holder.fn);
- }
+ var context = Promise._getContext();
+ holder.fn = util.contextBind(context, holder.fn);
}
ret._setAsyncGuaranteed();
ret._setOnCancel(holder);
@@ -2393,7 +2477,6 @@ module.exports = function(Promise,
tryConvertToPromise,
INTERNAL,
debug) {
-var getDomain = Promise._getDomain;
var util = _dereq_("./util");
var tryCatch = util.tryCatch;
var errorObj = util.errorObj;
@@ -2402,8 +2485,8 @@ var async = Promise._async;
function MappingPromiseArray(promises, fn, limit, _filter) {
this.constructor$(promises);
this._promise._captureStackTrace();
- var domain = getDomain();
- this._callback = domain === null ? fn : util.domainBind(domain, fn);
+ var context = Promise._getContext();
+ this._callback = util.contextBind(context, fn);
this._preservedValues = _filter === INTERNAL
? new Array(this.length())
: null;
@@ -2411,6 +2494,14 @@ function MappingPromiseArray(promises, fn, limit, _filter) {
this._inFlight = 0;
this._queue = [];
async.invoke(this._asyncInit, this, undefined);
+ if (util.isArray(promises)) {
+ for (var i = 0; i < promises.length; ++i) {
+ var maybePromise = promises[i];
+ if (maybePromise instanceof Promise) {
+ maybePromise.suppressUnhandledRejections();
+ }
+ }
+ }
}
util.inherits(MappingPromiseArray, PromiseArray);
@@ -2740,20 +2831,42 @@ var apiRejection = function(msg) {
function Proxyable() {}
var UNDEFINED_BINDING = {};
var util = _dereq_("./util");
+util.setReflectHandler(reflectHandler);
-var getDomain;
-if (util.isNode) {
- getDomain = function() {
- var ret = process.domain;
- if (ret === undefined) ret = null;
- return ret;
- };
-} else {
- getDomain = function() {
+var getDomain = function() {
+ var domain = process.domain;
+ if (domain === undefined) {
return null;
+ }
+ return domain;
+};
+var getContextDefault = function() {
+ return null;
+};
+var getContextDomain = function() {
+ return {
+ domain: getDomain(),
+ async: null
};
-}
-util.notEnumerableProp(Promise, "_getDomain", getDomain);
+};
+var AsyncResource = util.isNode && util.nodeSupportsAsyncResource ?
+ _dereq_("async_hooks").AsyncResource : null;
+var getContextAsyncHooks = function() {
+ return {
+ domain: getDomain(),
+ async: new AsyncResource("Bluebird::Promise")
+ };
+};
+var getContext = util.isNode ? getContextDomain : getContextDefault;
+util.notEnumerableProp(Promise, "_getContext", getContext);
+var enableAsyncHooks = function() {
+ getContext = getContextAsyncHooks;
+ util.notEnumerableProp(Promise, "_getContext", getContextAsyncHooks);
+};
+var disableAsyncHooks = function() {
+ getContext = getContextDomain;
+ util.notEnumerableProp(Promise, "_getContext", getContextDomain);
+};
var es5 = _dereq_("./es5");
var Async = _dereq_("./async");
@@ -2777,33 +2890,36 @@ var PromiseArray =
var Context = _dereq_("./context")(Promise);
/*jshint unused:false*/
var createContext = Context.create;
-var debug = _dereq_("./debuggability")(Promise, Context);
+
+var debug = _dereq_("./debuggability")(Promise, Context,
+ enableAsyncHooks, disableAsyncHooks);
var CapturedTrace = debug.CapturedTrace;
var PassThroughHandlerContext =
- _dereq_("./finally")(Promise, tryConvertToPromise);
+ _dereq_("./finally")(Promise, tryConvertToPromise, NEXT_FILTER);
var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER);
var nodebackForPromise = _dereq_("./nodeback");
var errorObj = util.errorObj;
var tryCatch = util.tryCatch;
function check(self, executor) {
+ if (self == null || self.constructor !== Promise) {
+ throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a");
+ }
if (typeof executor !== "function") {
throw new TypeError("expecting a function but got " + util.classString(executor));
}
- if (self.constructor !== Promise) {
- throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a");
- }
+
}
function Promise(executor) {
+ if (executor !== INTERNAL) {
+ check(this, executor);
+ }
this._bitField = 0;
this._fulfillmentHandler0 = undefined;
this._rejectionHandler0 = undefined;
this._promise0 = undefined;
this._receiver0 = undefined;
- if (executor !== INTERNAL) {
- check(this, executor);
- this._resolveFromExecutor(executor);
- }
+ this._resolveFromExecutor(executor);
this._promiseCreated();
this._fireEvent("promiseCreated", this);
}
@@ -2822,12 +2938,17 @@ Promise.prototype.caught = Promise.prototype["catch"] = function (fn) {
if (util.isObject(item)) {
catchInstances[j++] = item;
} else {
- return apiRejection("expecting an object but got " +
- "A catch statement predicate " + util.classString(item));
+ return apiRejection("Catch statement predicate: " +
+ "expecting an object but got " + util.classString(item));
}
}
catchInstances.length = j;
fn = arguments[i];
+
+ if (typeof fn !== "function") {
+ throw new TypeError("The last argument to .catch() " +
+ "must be a function, got " + util.toString(fn));
+ }
return this.then(undefined, catchFilter(catchInstances, fn, this));
}
return this.then(undefined, fn);
@@ -2968,7 +3089,7 @@ Promise.prototype._then = function (
this._fireEvent("promiseChained", this, promise);
}
- var domain = getDomain();
+ var context = getContext();
if (!((bitField & 50397184) === 0)) {
var handler, value, settler = target._settlePromiseCtx;
if (((bitField & 33554432) !== 0)) {
@@ -2986,15 +3107,14 @@ Promise.prototype._then = function (
}
async.invoke(settler, target, {
- handler: domain === null ? handler
- : (typeof handler === "function" &&
- util.domainBind(domain, handler)),
+ handler: util.contextBind(context, handler),
promise: promise,
receiver: receiver,
value: value
});
} else {
- target._addCallbacks(didFulfill, didReject, promise, receiver, domain);
+ target._addCallbacks(didFulfill, didReject, promise,
+ receiver, context);
}
return promise;
@@ -3055,7 +3175,15 @@ Promise.prototype._setWillBeCancelled = function() {
Promise.prototype._setAsyncGuaranteed = function() {
if (async.hasCustomScheduler()) return;
- this._bitField = this._bitField | 134217728;
+ var bitField = this._bitField;
+ this._bitField = bitField |
+ (((bitField & 536870912) >> 2) ^
+ 134217728);
+};
+
+Promise.prototype._setNoAsyncGuarantee = function() {
+ this._bitField = (this._bitField | 536870912) &
+ (~134217728);
};
Promise.prototype._receiverAt = function (index) {
@@ -3110,7 +3238,7 @@ Promise.prototype._addCallbacks = function (
reject,
promise,
receiver,
- domain
+ context
) {
var index = this._length();
@@ -3123,12 +3251,10 @@ Promise.prototype._addCallbacks = function (
this._promise0 = promise;
this._receiver0 = receiver;
if (typeof fulfill === "function") {
- this._fulfillmentHandler0 =
- domain === null ? fulfill : util.domainBind(domain, fulfill);
+ this._fulfillmentHandler0 = util.contextBind(context, fulfill);
}
if (typeof reject === "function") {
- this._rejectionHandler0 =
- domain === null ? reject : util.domainBind(domain, reject);
+ this._rejectionHandler0 = util.contextBind(context, reject);
}
} else {
var base = index * 4 - 4;
@@ -3136,11 +3262,11 @@ Promise.prototype._addCallbacks = function (
this[base + 3] = receiver;
if (typeof fulfill === "function") {
this[base + 0] =
- domain === null ? fulfill : util.domainBind(domain, fulfill);
+ util.contextBind(context, fulfill);
}
if (typeof reject === "function") {
this[base + 1] =
- domain === null ? reject : util.domainBind(domain, reject);
+ util.contextBind(context, reject);
}
}
this._setLength(index + 1);
@@ -3160,6 +3286,7 @@ Promise.prototype._resolveCallback = function(value, shouldBind) {
if (shouldBind) this._propagateFrom(maybePromise, 2);
+
var promise = maybePromise._target();
if (promise === this) {
@@ -3176,7 +3303,7 @@ Promise.prototype._resolveCallback = function(value, shouldBind) {
}
this._setFollowing();
this._setLength(0);
- this._setFollowee(promise);
+ this._setFollowee(maybePromise);
} else if (((bitField & 33554432) !== 0)) {
this._fulfill(promise._value());
} else if (((bitField & 16777216) !== 0)) {
@@ -3202,6 +3329,7 @@ function(reason, synchronous, ignoreNonErrorWarnings) {
};
Promise.prototype._resolveFromExecutor = function (executor) {
+ if (executor === INTERNAL) return;
var promise = this;
this._captureStackTrace();
this._pushContext();
@@ -3365,6 +3493,7 @@ Promise.prototype._fulfill = function (value) {
} else {
async.settlePromises(this);
}
+ this._dereferenceTrace();
}
};
@@ -3433,6 +3562,14 @@ Promise.prototype._settledValue = function() {
}
};
+if (typeof Symbol !== "undefined" && Symbol.toStringTag) {
+ es5.defineProperty(Promise.prototype, Symbol.toStringTag, {
+ get: function () {
+ return "Object";
+ }
+ });
+}
+
function deferResolve(v) {this.promise._resolveCallback(v);}
function deferReject(v) {this.promise._rejectCallback(v, false);}
@@ -3457,14 +3594,12 @@ _dereq_("./cancel")(Promise, PromiseArray, apiRejection, debug);
_dereq_("./direct_resolve")(Promise);
_dereq_("./synchronous_inspection")(Promise);
_dereq_("./join")(
- Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain);
+ Promise, PromiseArray, tryConvertToPromise, INTERNAL, async);
Promise.Promise = Promise;
-Promise.version = "3.4.7";
-_dereq_('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);
+Promise.version = "3.7.2";
_dereq_('./call_get.js')(Promise);
-_dereq_('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug);
-_dereq_('./timers.js')(Promise, INTERNAL, debug);
_dereq_('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug);
+_dereq_('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);
_dereq_('./nodeify.js')(Promise);
_dereq_('./promisify.js')(Promise, INTERNAL);
_dereq_('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection);
@@ -3472,9 +3607,11 @@ _dereq_('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection);
_dereq_('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);
_dereq_('./settle.js')(Promise, PromiseArray, debug);
_dereq_('./some.js')(Promise, PromiseArray, apiRejection);
-_dereq_('./filter.js')(Promise, INTERNAL);
-_dereq_('./each.js')(Promise, INTERNAL);
+_dereq_('./timers.js')(Promise, INTERNAL, debug);
+_dereq_('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug);
_dereq_('./any.js')(Promise);
+_dereq_('./each.js')(Promise, INTERNAL);
+_dereq_('./filter.js')(Promise, INTERNAL);
util.toFastProperties(Promise);
util.toFastProperties(Promise.prototype);
@@ -3500,7 +3637,7 @@ _dereq_('./any.js')(Promise);
};
-},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(_dereq_,module,exports){
+},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36,"async_hooks":undefined}],23:[function(_dereq_,module,exports){
"use strict";
module.exports = function(Promise, INTERNAL, tryConvertToPromise,
apiRejection, Proxyable) {
@@ -3511,6 +3648,7 @@ function toResolutionValue(val) {
switch(val) {
case -2: return [];
case -3: return {};
+ case -6: return new Map();
}
}
@@ -3518,6 +3656,7 @@ function PromiseArray(values) {
var promise = this._promise = new Promise(INTERNAL);
if (values instanceof Promise) {
promise._propagateFrom(values, 3);
+ values.suppressUnhandledRejections();
}
promise._setOnCancel(this);
this._values = values;
@@ -4060,7 +4199,7 @@ function PropertiesPromiseArray(obj) {
}
this.constructor$(entries);
this._isMap = isMap;
- this._init$(undefined, -3);
+ this._init$(undefined, isMap ? -6 : -3);
}
util.inherits(PropertiesPromiseArray, PromiseArray);
@@ -4256,14 +4395,13 @@ module.exports = function(Promise,
tryConvertToPromise,
INTERNAL,
debug) {
-var getDomain = Promise._getDomain;
var util = _dereq_("./util");
var tryCatch = util.tryCatch;
function ReductionPromiseArray(promises, fn, initialValue, _each) {
this.constructor$(promises);
- var domain = getDomain();
- this._fn = domain === null ? fn : util.domainBind(domain, fn);
+ var context = Promise._getContext();
+ this._fn = util.contextBind(context, fn);
if (initialValue !== undefined) {
initialValue = Promise.resolve(initialValue);
initialValue._attachCancellationCallback(this);
@@ -4283,8 +4421,8 @@ function ReductionPromiseArray(promises, fn, initialValue, _each) {
util.inherits(ReductionPromiseArray, PromiseArray);
ReductionPromiseArray.prototype._gotAccum = function(accum) {
- if (this._eachValues !== undefined &&
- this._eachValues !== null &&
+ if (this._eachValues !== undefined &&
+ this._eachValues !== null &&
accum !== INTERNAL) {
this._eachValues.push(accum);
}
@@ -4340,6 +4478,13 @@ ReductionPromiseArray.prototype._iterate = function (values) {
this._currentCancellable = value;
+ for (var j = i; j < length; ++j) {
+ var maybePromise = values[j];
+ if (maybePromise instanceof Promise) {
+ maybePromise.suppressUnhandledRejections();
+ }
+ }
+
if (!value.isRejected()) {
for (; i < length; ++i) {
var ctx = {
@@ -4349,7 +4494,12 @@ ReductionPromiseArray.prototype._iterate = function (values) {
length: length,
array: this
};
+
value = value._then(gotAccum, undefined, undefined, ctx, undefined);
+
+ if ((i & 127) === 0) {
+ value._setNoAsyncGuarantee();
+ }
}
}
@@ -4445,7 +4595,8 @@ if (util.isNode && typeof MutationObserver === "undefined") {
} else if ((typeof MutationObserver !== "undefined") &&
!(typeof window !== "undefined" &&
window.navigator &&
- (window.navigator.standalone || window.cordova))) {
+ (window.navigator.standalone || window.cordova)) &&
+ ("classList" in document.documentElement)) {
schedule = (function() {
var div = document.createElement("div");
var opts = {attributes: true};
@@ -4459,11 +4610,11 @@ if (util.isNode && typeof MutationObserver === "undefined") {
var scheduleToggle = function() {
if (toggleScheduled) return;
- toggleScheduled = true;
- div2.classList.toggle("foo");
- };
+ toggleScheduled = true;
+ div2.classList.toggle("foo");
+ };
- return function schedule(fn) {
+ return function schedule(fn) {
var o = new MutationObserver(function() {
o.disconnect();
fn();
@@ -4525,6 +4676,10 @@ Promise.settle = function (promises) {
return new SettledPromiseArray(promises).promise();
};
+Promise.allSettled = function (promises) {
+ return new SettledPromiseArray(promises).promise();
+};
+
Promise.prototype.settle = function () {
return Promise.settle(this);
};
@@ -5394,8 +5549,12 @@ function toFastProperties(obj) {
/*jshint -W027,-W055,-W031*/
function FakeConstructor() {}
FakeConstructor.prototype = obj;
- var l = 8;
- while (l--) new FakeConstructor();
+ var receiver = new FakeConstructor();
+ function ic() {
+ return typeof receiver.foo;
+ }
+ ic();
+ ic();
return obj;
eval(obj);
}
@@ -5422,10 +5581,11 @@ function safeToString(obj) {
}
function isError(obj) {
- return obj !== null &&
+ return obj instanceof Error ||
+ (obj !== null &&
typeof obj === "object" &&
typeof obj.message === "string" &&
- typeof obj.name === "string";
+ typeof obj.name === "string");
}
function markAsOriginatingFromRejection(e) {
@@ -5520,18 +5680,42 @@ function getNativePromise() {
if (typeof Promise === "function") {
try {
var promise = new Promise(function(){});
- if ({}.toString.call(promise) === "[object Promise]") {
+ if (classString(promise) === "[object Promise]") {
return Promise;
}
} catch (e) {}
}
}
-function domainBind(self, cb) {
- return self.bind(cb);
+var reflectHandler;
+function contextBind(ctx, cb) {
+ if (ctx === null ||
+ typeof cb !== "function" ||
+ cb === reflectHandler) {
+ return cb;
+ }
+
+ if (ctx.domain !== null) {
+ cb = ctx.domain.bind(cb);
+ }
+
+ var async = ctx.async;
+ if (async !== null) {
+ var old = cb;
+ cb = function() {
+ var args = (new Array(2)).concat([].slice.call(arguments));;
+ args[0] = old;
+ args[1] = this;
+ return async.runInAsyncScope.apply(async, args);
+ };
+ }
+ return cb;
}
var ret = {
+ setReflectHandler: function(fn) {
+ reflectHandler = fn;
+ },
isClass: isClass,
isIdentifier: isIdentifier,
inheritedDataKeys: inheritedDataKeys,
@@ -5558,24 +5742,37 @@ var ret = {
markAsOriginatingFromRejection: markAsOriginatingFromRejection,
classString: classString,
copyDescriptors: copyDescriptors,
- hasDevTools: typeof chrome !== "undefined" && chrome &&
- typeof chrome.loadTimes === "function",
isNode: isNode,
hasEnvVariables: hasEnvVariables,
env: env,
global: globalObject,
getNativePromise: getNativePromise,
- domainBind: domainBind
+ contextBind: contextBind
};
ret.isRecentNode = ret.isNode && (function() {
- var version = process.versions.node.split(".").map(Number);
+ var version;
+ if (process.versions && process.versions.node) {
+ version = process.versions.node.split(".").map(Number);
+ } else if (process.version) {
+ version = process.version.split(".").map(Number);
+ }
return (version[0] === 0 && version[1] > 10) || (version[0] > 0);
})();
+ret.nodeSupportsAsyncResource = ret.isNode && (function() {
+ var supportsAsync = false;
+ try {
+ var res = _dereq_("async_hooks").AsyncResource;
+ supportsAsync = typeof res.prototype.runInAsyncScope === "function";
+ } catch (e) {
+ supportsAsync = false;
+ }
+ return supportsAsync;
+})();
if (ret.isNode) ret.toFastProperties(process);
try {throw new Error(); } catch (e) {ret.lastLineError = e;}
module.exports = ret;
-},{"./es5":13}]},{},[4])(4)
+},{"./es5":13,"async_hooks":undefined}]},{},[4])(4)
}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; }
\ No newline at end of file
diff --git a/server/node_modules/bluebird/js/browser/bluebird.min.js b/server/node_modules/bluebird/js/browser/bluebird.min.js
old mode 100755
new mode 100644
index 242bbfe..c1e907b
--- a/server/node_modules/bluebird/js/browser/bluebird.min.js
+++ b/server/node_modules/bluebird/js/browser/bluebird.min.js
@@ -1,7 +1,7 @@
/* @preserve
* The MIT License (MIT)
*
- * Copyright (c) 2013-2015 Petka Antonov
+ * Copyright (c) 2013-2018 Petka Antonov
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -23,9 +23,9 @@
*
*/
/**
- * bluebird build version 3.4.7
+ * bluebird build version 3.7.2
* Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each
*/
-!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(s,a){if(!e[s]){if(!t[s]){var c="function"==typeof _dereq_&&_dereq_;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[s]={exports:{}};t[s][0].call(u.exports,function(e){var n=t[s][1][e];return i(n?n:e)},u,u.exports,r,t,e,n)}return e[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s0;){var e=t.shift();if("function"==typeof e){var n=t.shift(),r=t.shift();e.call(n,r)}else e._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=a},{"./queue":26,"./schedule":29,"./util":36}],3:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(o),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var h={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,s,void 0,u,h),l._then(a,c,void 0,u,h),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],4:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":22}],5:[function(t,e,n){"use strict";var r=Object.create;if(r){var i=r(null),o=r(null);i[" size"]=o[" size"]=0}e.exports=function(e){function n(t,n){var r;if(null!=t&&(r=t[n]),"function"!=typeof r){var i="Object "+a.classString(t)+" has no method '"+a.toString(n)+"'";throw new e.TypeError(i)}return r}function r(t){var e=this.pop(),r=n(t,e);return r.apply(t,this)}function i(t){return t[this]}function o(t){var e=+this;return 0>e&&(e=Math.max(0,e+t.length)),t[e]}var s,a=t("./util"),c=a.canEvaluate;a.isIdentifier;e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(r,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e,n="number"==typeof t;if(n)e=o;else if(c){var r=s(t);e=null!==r?r:i}else e=i;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],9:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,e){return{promise:e}}function i(){return!1}function o(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+H.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function s(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?H.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function a(){return this._onCancelField}function c(t){this._onCancelField=t}function l(){this._cancellationParent=void 0,this._onCancelField=void 0}function u(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function p(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function h(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function f(){this._trace=new S(this._peekContext())}function _(t,e){if(N(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=j(t);H.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),H.notEnumerableProp(t,"__stackCleaned__",!0)}}}function d(t,e,n,r,i){if(void 0===t&&null!==e&&W){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",s="";if(e._trace){for(var a=e._trace.stack.split("\n"),c=w(a),l=c.length-1;l>=0;--l){var u=c[l];if(!U.test(u)){var p=u.match(M);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var h=c[0],l=0;l0&&(s="\n"+a[l-1]);break}}var f="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+s;r._warn(f,!0,e)}}function v(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),y(n)}function y(t,n,r){if(ot.warnings){var i,o=new L(t);if(n)r._attachExtraTrace(o);else if(ot.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var s=j(o);o.stack=s.message+"\n"+s.stack.join("\n")}tt("warning",o)||E(o,"",!0)}}function m(t,e){for(var n=0;n=0;--a)if(r[a]===o){s=a;break}for(var a=s;a>=0;--a){var c=r[a];if(e[i]!==c)break;e.pop(),i--}e=r}}function w(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function j(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?C(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:w(e)}}function E(t,e,n){if("undefined"!=typeof console){var r;if(H.isObject(t)){var i=t.stack;r=e+Q(i,t)}else r=e+String(t);"function"==typeof D?D(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function k(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){I.throwLater(o)}"unhandledRejection"===t?tt(t,n,r)||i||E(n,"Unhandled rejection "):tt(t,r)}function F(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():H.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+x(e)+">, no stack trace)"}function x(t){var e=41;return t.lengths||0>a||!n||!r||n!==r||s>=a||(nt=function(t){if(B.test(t))return!0;var e=P(t);return e&&e.fileName===n&&s<=e.line&&e.line<=a?!0:!1})}}function S(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);it(this,S),e>32&&this.uncycle()}var O,A,D,V=e._getDomain,I=e._async,L=t("./errors").Warning,H=t("./util"),N=H.canAttachTrace,B=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,U=/\((?:timers\.js):\d+:\d+\)/,M=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,q=null,Q=null,$=!1,G=!(0==H.env("BLUEBIRD_DEBUG")||!H.env("BLUEBIRD_DEBUG")&&"development"!==H.env("NODE_ENV")),z=!(0==H.env("BLUEBIRD_WARNINGS")||!G&&!H.env("BLUEBIRD_WARNINGS")),X=!(0==H.env("BLUEBIRD_LONG_STACK_TRACES")||!G&&!H.env("BLUEBIRD_LONG_STACK_TRACES")),W=0!=H.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(z||!!H.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var t=this._target();t._bitField=-1048577&t._bitField|524288},e.prototype._ensurePossibleRejectionHandled=function(){0===(524288&this._bitField)&&(this._setRejectionIsUnhandled(),I.invokeLater(this._notifyUnhandledRejection,this,void 0))},e.prototype._notifyUnhandledRejectionIsHandled=function(){k("rejectionHandled",O,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var t=this._settledValue();this._setUnhandledRejectionIsNotified(),k("unhandledRejection",A,t,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return y(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var e=V();A="function"==typeof t?null===e?t:H.domainBind(e,t):void 0},e.onUnhandledRejectionHandled=function(t){var e=V();O="function"==typeof t?null===e?t:H.domainBind(e,t):void 0};var K=function(){};e.longStackTraces=function(){if(I.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!ot.longStackTraces&&T()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace;ot.longStackTraces=!0,K=function(){if(I.haveItemsQueued()&&!ot.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,n.deactivateLongStackTraces(),I.enableTrampoline(),ot.longStackTraces=!1},e.prototype._captureStackTrace=f,e.prototype._attachExtraTrace=_,n.activateLongStackTraces(),I.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return ot.longStackTraces&&T()};var J=function(){try{if("function"==typeof CustomEvent){var t=new CustomEvent("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new CustomEvent(t.toLowerCase(),{detail:e,cancelable:!0});return!H.global.dispatchEvent(n)}}if("function"==typeof Event){var t=new Event("CustomEvent");return H.global.dispatchEvent(t),function(t,e){var n=new Event(t.toLowerCase(),{cancelable:!0});return n.detail=e,!H.global.dispatchEvent(n)}}var t=document.createEvent("CustomEvent");return t.initCustomEvent("testingtheevent",!1,!0,{}),H.global.dispatchEvent(t),function(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t.toLowerCase(),!1,!0,e),!H.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),Y=function(){return H.isNode?function(){return process.emit.apply(process,arguments)}:H.global?function(t){var e="on"+t.toLowerCase(),n=H.global[e];return n?(n.apply(H.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),Z={promiseCreated:r,promiseFulfilled:r,promiseRejected:r,promiseResolved:r,promiseCancelled:r,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:r},tt=function(t){var e=!1;try{e=Y.apply(null,arguments)}catch(n){I.throwLater(n),e=!0}var r=!1;try{r=J(t,Z[t].apply(null,arguments))}catch(n){I.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&K()),"warnings"in t){var n=t.warnings;ot.warnings=!!n,W=ot.warnings,H.isObject(n)&&"wForgottenReturn"in n&&(W=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!ot.cancellation){if(I.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=l,e.prototype._propagateFrom=u,e.prototype._onCancel=a,e.prototype._setOnCancel=c,e.prototype._attachCancellationCallback=s,e.prototype._execute=o,et=u,ot.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!ot.monitoring?(ot.monitoring=!0,e.prototype._fireEvent=tt):!t.monitoring&&ot.monitoring&&(ot.monitoring=!1,e.prototype._fireEvent=i)),e},e.prototype._fireEvent=i,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var et=p,nt=function(){return!1},rt=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;H.inherits(S,Error),n.CapturedTrace=S,S.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var s=e[r].stack,a=n[s];if(void 0!==a&&a!==r){a>0&&(e[a-1]._parent=void 0,e[a-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>a?(c._parent=e[a+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},S.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=j(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(w(i.stack.split("\n"))),i=i._parent;b(r),g(r),H.notEnumerableProp(t,"stack",m(n,r)),H.notEnumerableProp(t,"__stackCleaned__",!0)}};var it=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():F(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,q=t,Q=e;var n=Error.captureStackTrace;return nt=function(t){return B.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return q=/@/,Q=e,$=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(Q=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?F(e):e.toString()},null):(q=t,Q=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(D=function(t){console.warn(t)},H.isNode&&process.stderr.isTTY?D=function(t,e){var n=e?"[33m":"[31m";console.warn(n+t+"[0m\n")}:H.isNode||"string"!=typeof(new Error).stack||(D=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var ot={warnings:z,longStackTraces:!1,cancellation:!1,monitoring:!1};return X&&e.longStackTraces(),{longStackTraces:function(){return ot.longStackTraces},warnings:function(){return ot.warnings},cancellation:function(){return ot.cancellation},monitoring:function(){return ot.monitoring},propagateFromFunction:function(){return et},boundValueFunction:function(){return h},checkForgottenReturns:d,setBounds:R,warn:y,deprecated:v,CapturedTrace:S,fireDomEvent:J,fireGlobalEvent:Y}}},{"./errors":12,"./util":36}],10:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t,e){function n(){return o(this)}function r(t,n){return i(t,n,e,e)}var i=t.reduce,o=t.all;t.prototype.each=function(t){return i(this,t,e,0)._then(n,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return i(this,t,e,e)},t.each=function(t,r){return i(t,r,e,0)._then(n,void 0,void 0,t,void 0)},t.mapSeries=r}},{}],12:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,s,a=t("./es5"),c=a.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,h=r("Warning","warning"),f=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,s=RangeError}catch(v){o=r("TypeError","type error"),s=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),m=0;m1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function s(){return c.call(this,this.promise._target()._settledValue())}function a(t){return o(this,t)?void 0:(p.e=t,p)}function c(t){var r=this.promise,c=this.handler;if(!this.called){this.called=!0;var l=this.isFinallyHandler()?c.call(r._boundValue()):c.call(r._boundValue(),t);if(void 0!==l){r._setReturnedNonUndefined();var h=n(l,r);if(h instanceof e){if(null!=this.cancelPromise){if(h._isCancelled()){var f=new u("late cancellation observer");return r._attachExtraTrace(f),p.e=f,p}h.isPending()&&h._attachCancellationCallback(new i(this))}return h._then(s,a,void 0,this,void 0)}}}return r.isRejected()?(o(this),p.e=t,p):(o(this),t)}var l=t("./util"),u=e.CancellationError,p=l.errorObj;return r.prototype.isFinallyHandler=function(){return 0===this.type},i.prototype._resultCancelled=function(){o(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,i){return"function"!=typeof t?this.then():this._then(n,i,void 0,new r(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,c,c)},e.prototype.tap=function(t){return this._passThrough(t,1,c)},r}},{"./util":36}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r){for(var o=0;o0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":36}],18:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,e,n,r){this.constructor$(t),this._promise._captureStackTrace();var i=l();this._callback=null===i?e:u.domainBind(i,e),this._preservedValues=r===o?new Array(this.length()):null,this._limit=n,this._inFlight=0,this._queue=[],f.invoke(this._asyncInit,this,void 0)}function c(t,n,i,o){if("function"!=typeof n)return r("expecting a function but got "+u.classString(n));var s=0;if(void 0!==i){if("object"!=typeof i||null===i)return e.reject(new TypeError("options argument must be an object but it is "+u.classString(i)));if("number"!=typeof i.concurrency)return e.reject(new TypeError("'concurrency' must be a number but it is "+u.classString(i.concurrency)));s=i.concurrency}return s="number"==typeof s&&isFinite(s)&&s>=1?s:0,new a(t,n,s,o).promise()}var l=e._getDomain,u=t("./util"),p=u.tryCatch,h=u.errorObj,f=e._async;u.inherits(a,n),a.prototype._asyncInit=function(){this._init$(void 0,-2)},a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,n){var r=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(0>n){if(n=-1*n-1,r[n]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return r[n]=t,this._queue.push(n),!1;null!==a&&(a[n]=t);var l=this._promise,u=this._callback,f=l._boundValue();l._pushContext();var _=p(u).call(f,t,n,o),d=l._popContext();if(s.checkForgottenReturns(_,d,null!==a?"Promise.filter":"Promise.map",l),_===h)return this._reject(_.e),!0;var v=i(_,this._promise);if(v instanceof e){v=v._target();var y=v._bitField;if(0===(50397184&y))return c>=1&&this._inFlight++,r[n]=v,v._proxy(this,-1*(n+1)),!1;if(0===(33554432&y))return 0!==(16777216&y)?(this._reject(v._reason()),!0):(this._cancel(),!0);_=v._value()}r[n]=_}var m=++this._totalResolved;return m>=o?(null!==a?this._filter(r,a):this._resolve(r),!0):!1},a.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,n=this._values;t.length>0&&this._inFlighto;++o)t[o]&&(r[i++]=e[o]);r.length=i,this._resolve(r)},a.prototype.preservedValues=function(){return this._preservedValues},e.prototype.map=function(t,e){return c(this,t,e,null)},e.map=function(t,e,n,r){return c(t,e,n,r)}}},{"./util":36}],19:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var s=t("./util"),a=s.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+s.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=a(t).apply(this,arguments),s=r._popContext();return o.checkForgottenReturns(i,s,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+s.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=s.isArray(l)?a(t).apply(u,l):a(t).call(u,l)}else c=a(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!f.isObject(o))return p("expecting an object but got A catch statement predicate "+f.classString(o));r[i++]=o}return r.length=i,t=arguments[n],this.then(void 0,P(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(x.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?p("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,w,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new E(this).promise()},i.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(b);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=O(t)(R(e,n));return r===S&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new E(t).promise()},i.cast=function(t){var e=j(t);return e instanceof i||(e=new i(b),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(b);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));return v.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var s=void 0!==o,a=s?o:new i(b),l=this._target(),u=l._bitField;s||(a._propagateFrom(this,3),a._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():l===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,a));var p=c();if(0!==(50397184&u)){var h,_,d=l._settlePromiseCtx;0!==(33554432&u)?(_=l._rejectionHandler0,h=t):0!==(16777216&u)?(_=l._fulfillmentHandler0,h=e,l._unsetRejectionIsUnhandled()):(d=l._settlePromiseLateCancellationObserver,_=new g("late cancellation observer"),l._attachExtraTrace(_),h=e),v.invoke(d,l,{handler:null===p?h:"function"==typeof h&&f.domainBind(p,h),promise:a,receiver:r,value:_})}else l._addCallbacks(t,e,a,r,p);return a},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===h?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=h),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=h),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=null===i?e:f.domainBind(i,e));else{var s=4*o-4;this[s+2]=n,this[s+3]=r,"function"==typeof t&&(this[s+0]=null===i?t:f.domainBind(i,t)),"function"==typeof e&&(this[s+1]=null===i?e:f.domainBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(l(),!1);var n=j(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(l());var o=r._bitField;if(0===(50397184&o)){var s=this._length();s>0&&r._migrateCallback0(this);for(var a=1;s>a;++a)r._migrateCallbackAt(this,a);this._setFollowing(),this._setLength(0),this._setFollowee(r)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var c=new g("late cancellation observer");r._attachExtraTrace(c),this._reject(c)}}},i.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),i=r===t;if(!i&&!n&&x.warnings()){var o="a promise was rejected with a non-error: "+f.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===w?n&&"number"==typeof n.length?o=O(t).apply(this._boundValue(),n):(o=S,o.e=new m("cannot .spread() a non-array: "+f.classString(n))):o=O(t).call(e,n);var s=r._popContext();i=r._bitField,0===(65536&i)&&(o===C?r._reject(n):o===S?r._rejectCallback(o.e,!1):(x.checkForgottenReturns(o,s,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var s=t instanceof i,a=this._bitField,c=0!==(134217728&a);0!==(65536&a)?(s&&t._invokeInternalOnCancel(),r instanceof T&&r.isFinallyHandler()?(r.cancelPromise=t,O(e).call(r,o)===S&&t._reject(S.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):s||t instanceof E?t._cancel():r.cancel()):"function"==typeof e?s?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&a)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):s&&(c&&t._setAsyncGuaranteed(),0!==(33554432&a)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=l();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():v.settlePromises(this))}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?v.fatalError(t,f.isNode):void((65535&e)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},i.defer=i.pending=function(){x.deprecated("Promise.defer","new Promise");var t=new i(b);return{promise:t,resolve:o,reject:s}},f.notEnumerableProp(i,"_makeSelfResolutionError",l),t("./method")(i,b,j,p,x),t("./bind")(i,b,j,x),t("./cancel")(i,E,p,x),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,E,j,b,v,c),i.Promise=i,i.version="3.4.7",t("./map.js")(i,E,p,j,b,x),t("./call_get.js")(i),t("./using.js")(i,p,j,F,b,x),t("./timers.js")(i,b,x),t("./generators.js")(i,p,b,j,n,x),t("./nodeify.js")(i),t("./promisify.js")(i,b),t("./props.js")(i,E,j,p),t("./race.js")(i,b,j,p),t("./reduce.js")(i,E,p,j,b,x),t("./settle.js")(i,E,x),t("./some.js")(i,E,p),t("./filter.js")(i,b),t("./each.js")(i,b),t("./any.js")(i),f.toFastProperties(i),f.toFastProperties(i.prototype),a({a:1}),a({b:2}),a({c:3}),a(1),a(function(){}),a(void 0),a(!1),a(new i(b)),x.setBounds(d.firstLineError,f.lastLineError),i}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function s(t){switch(t){case-2:return[];case-3:return{}}}function a(t){var r=this._promise=new e(n);t instanceof e&&r._propagateFrom(t,3),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function l(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var a=o._bitField;if(this._values=o,0===(50397184&a))return this._promise._setAsyncGuaranteed(),o._then(l,this._reject,void 0,this,n);if(0===(33554432&a))return 0!==(16777216&a)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var u=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(u,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(s(n))):void this._iterate(o)},a.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,s=null,a=0;n>a;++a){var c=r(t[a],i);c instanceof e?(c=c._target(),s=c._bitField):s=null,o?null!==s&&c.suppressUnhandledRejections():null!==s?0===(50397184&s)?(c._proxy(this,a),this._values[a]=c):o=0!==(33554432&s)?this._promiseFulfilled(c._value(),a):0!==(16777216&s)?this._promiseRejected(c._reason(),a):this._promiseCancelled(a):o=this._promiseFulfilled(c,a)}o||i._setAsyncGuaranteed()},a.prototype._isResolved=function(){return null===this._values},a.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},a.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},a.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},a.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;nc;c+=2){var u=s[c],p=s[c+1],_=u+e;if(r===k)t[_]=k(u,h,u,p,e,i);else{var d=r(p,function(){return k(u,h,u,p,e,i)});f.notEnumerableProp(d,"__isPromisified__",!0),t[_]=d}}return f.toFastProperties(t),t}function u(t,e,n){return k(t,e,void 0,t,null,n)}var p,h={},f=t("./util"),_=t("./nodeback"),d=f.withAppended,v=f.maybeWrapAsError,y=f.canEvaluate,m=t("./errors").TypeError,g="Async",b={__isPromisified__:!0},w=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],C=new RegExp("^(?:"+w.join("|")+")$"),j=function(t){return f.isIdentifier(t)&&"_"!==t.charAt(0)&&"constructor"!==t},E=function(t){return t.replace(/([$])/,"\\$")},k=y?p:c;e.promisify=function(t,e){if("function"!=typeof t)throw new m("expecting a function but got "+f.classString(t));if(i(t))return t;e=Object(e);var n=void 0===e.context?h:e.context,o=!!e.multiArgs,s=u(t,n,o);return f.copyDescriptors(t,s,r),s},e.promisifyAll=function(t,e){if("function"!=typeof t&&"object"!=typeof t)throw new m("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n");e=Object(e);var n=!!e.multiArgs,r=e.suffix;"string"!=typeof r&&(r=g);var i=e.filter;"function"!=typeof i&&(i=j);var o=e.promisifier;if("function"!=typeof o&&(o=k),!f.isIdentifier(r))throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n");for(var s=f.inheritedDataKeys(t),a=0;ao;++o){var s=r[o];e[o]=t[s],e[o+i]=s}}this.constructor$(e),this._isMap=n,this._init$(void 0,-3)}function s(t){var n,s=r(t);return l(s)?(n=s instanceof e?s._then(e.props,void 0,void 0,void 0,void 0):new o(s).promise(),s instanceof e&&n._propagateFrom(s,2),n):i("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n")}var a,c=t("./util"),l=c.isObject,u=t("./es5");"function"==typeof Map&&(a=Map);var p=function(){function t(t,r){this[e]=t,this[e+n]=r,e++}var e=0,n=0;return function(r){n=r.size,e=0;var i=new Array(2*r.size);return r.forEach(t,i),i}}(),h=function(t){for(var e=new a,n=t.length/2|0,r=0;n>r;++r){var i=t[n+r],o=t[r];e.set(i,o)}return e};c.inherits(o,n),o.prototype._init=function(){},o.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;if(n>=this._length){var r;if(this._isMap)r=h(this._values);else{r={};for(var i=this.length(),o=0,s=this.length();s>o;++o)r[this._values[o+i]]=this._values[o]}return this._resolve(r),!0}return!1},o.prototype.shouldCopyValues=function(){return!1},o.prototype.getActualLength=function(t){return t>>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,n){"use strict";function r(t,e,n,r,i){for(var o=0;i>o;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityh;++h){var _=t[h];(void 0!==_||h in t)&&e.cast(_)._then(u,p,void 0,l,null)}return l}var s=t("./util"),a=function(t){return t.then(function(e){return o(e,t)})};e.race=function(t){return o(t,void 0)},e.prototype.race=function(){return o(this,void 0)}}},{"./util":36}],28:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t);var s=h();this._fn=null===s?n:f.domainBind(s,n),void 0!==r&&(r=e.resolve(r),r._attachCancellationCallback(this)),this._initialValue=r,this._currentCancellable=null,i===o?this._eachValues=Array(this._length):0===i?this._eachValues=null:this._eachValues=void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}function c(t,e){this.isFulfilled()?e._resolve(t):e._reject(t)}function l(t,e,n,i){if("function"!=typeof e)return r("expecting a function but got "+f.classString(e));var o=new a(t,e,n,i);return o.promise()}function u(t){this.accum=t,this.array._gotAccum(t);var n=i(this.value,this.array._promise);return n instanceof e?(this.array._currentCancellable=n,n._then(p,void 0,void 0,this,void 0)):p.call(this,n)}function p(t){var n=this.array,r=n._promise,i=_(n._fn);r._pushContext();var o;o=void 0!==n._eachValues?i.call(r._boundValue(),t,this.index,this.length):i.call(r._boundValue(),this.accum,t,this.index,this.length),o instanceof e&&(n._currentCancellable=o);var a=r._popContext();return s.checkForgottenReturns(o,a,void 0!==n._eachValues?"Promise.each":"Promise.reduce",r),o}var h=e._getDomain,f=t("./util"),_=f.tryCatch;f.inherits(a,n),a.prototype._gotAccum=function(t){void 0!==this._eachValues&&null!==this._eachValues&&t!==o&&this._eachValues.push(t)},a.prototype._eachComplete=function(t){return null!==this._eachValues&&this._eachValues.push(t),this._eachValues},a.prototype._init=function(){},a.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},a.prototype.shouldCopyValues=function(){return!1},a.prototype._resolve=function(t){this._promise._resolveCallback(t),this._values=null},a.prototype._resultCancelled=function(t){return t===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof e&&this._currentCancellable.cancel(),this._initialValue instanceof e&&this._initialValue.cancel()))},a.prototype._iterate=function(t){this._values=t;var n,r,i=t.length;if(void 0!==this._initialValue?(n=this._initialValue,r=0):(n=e.resolve(t[0]),r=1),this._currentCancellable=n,!n.isRejected())for(;i>r;++r){var o={accum:null,value:t[r],index:r,length:i,array:this};n=n._then(u,void 0,void 0,o,void 0)}void 0!==this._eachValues&&(n=n._then(this._eachComplete,void 0,void 0,this,void 0)),n._then(c,c,void 0,n,this)},e.prototype.reduce=function(t,e){return l(this,t,e,null)},e.reduce=function(t,e,n,r){return l(t,e,n,r)}}},{"./util":36}],29:[function(t,e,n){"use strict";var r,i=t("./util"),o=function(){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")},s=i.getNativePromise();if(i.isNode&&"undefined"==typeof MutationObserver){var a=global.setImmediate,c=process.nextTick;r=i.isRecentNode?function(t){a.call(global,t)}:function(t){c.call(process,t)}}else if("function"==typeof s&&"function"==typeof s.resolve){var l=s.resolve();r=function(t){l.then(t)}}else r="undefined"==typeof MutationObserver||"undefined"!=typeof window&&window.navigator&&(window.navigator.standalone||window.cordova)?"undefined"!=typeof setImmediate?function(t){setImmediate(t)}:"undefined"!=typeof setTimeout?function(t){setTimeout(t,0)}:o:function(){var t=document.createElement("div"),e={attributes:!0},n=!1,r=document.createElement("div"),i=new MutationObserver(function(){t.classList.toggle("foo"),n=!1});i.observe(r,e);var o=function(){n||(n=!0,r.classList.toggle("foo"))};return function(n){var r=new MutationObserver(function(){r.disconnect(),n()});r.observe(t,e),o()}}();e.exports=r},{"./util":36}],30:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t)}var o=e.PromiseInspection,s=t("./util");s.inherits(i,n),i.prototype._promiseResolved=function(t,e){this._values[t]=e;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},i.prototype._promiseFulfilled=function(t,e){var n=new o;return n._bitField=33554432,n._settledValueField=t,this._promiseResolved(e,n)},i.prototype._promiseRejected=function(t,e){var n=new o;return n._bitField=16777216,n._settledValueField=t,this._promiseResolved(e,n)},e.settle=function(t){return r.deprecated(".settle()",".reflect()"),new i(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t),this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(t,e){if((0|e)!==e||0>e)return r("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var n=new i(t),o=n.promise();return n.setHowMany(e),n.init(),o}var s=t("./util"),a=t("./errors").RangeError,c=t("./errors").AggregateError,l=s.isArray,u={};s.inherits(i,n),i.prototype._init=function(){
-if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var t=l(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(t){this._howMany=t},i.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1},i.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(u),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new c,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(t){this._values.push(t)},i.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new a(e)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return o(t,e)},e.prototype.some=function(t){return o(this,t)},e._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(t,e,n){"use strict";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var n=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},r=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0===(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};e.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},t.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},t.prototype._isCancelled=function(){return this._target().__isCancelled()},t.prototype.isCancelled=function(){return 0!==(8454144&this._target()._bitField)},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return n.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),r.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,r){if(u(t)){if(t instanceof e)return t;var i=o(t);if(i===l){r&&r._pushContext();var c=e.reject(i.e);return r&&r._popContext(),c}if("function"==typeof i){if(s(t)){var c=new e(n);return t._then(c._fulfill,c._reject,void 0,c,null),c}return a(t,i,r)}}return t}function i(t){return t.then}function o(t){try{return i(t)}catch(e){return l.e=e,l}}function s(t){try{return p.call(t,"_promise0")}catch(e){return!1}}function a(t,r,i){function o(t){a&&(a._resolveCallback(t),a=null)}function s(t){a&&(a._rejectCallback(t,p,!0),a=null)}var a=new e(n),u=a;i&&i._pushContext(),a._captureStackTrace(),i&&i._popContext();var p=!0,h=c.tryCatch(r).call(t,o,s);return p=!1,a&&h===l&&(a._rejectCallback(h.e,!0,!0),a=null),u}var c=t("./util"),l=c.errorObj,u=c.isObject,p={}.hasOwnProperty;return r}},{"./util":36}],34:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.handle=t}function o(t){return clearTimeout(this.handle),t}function s(t){throw clearTimeout(this.handle),t}var a=t("./util"),c=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var l=function(t){return u(+this).thenReturn(t)},u=e.delay=function(t,o){var s,a;return void 0!==o?(s=e.resolve(o)._then(l,null,null,t,void 0),r.cancellation()&&o instanceof e&&s._setOnCancel(o)):(s=new e(n),a=setTimeout(function(){s._fulfill()},+t),r.cancellation()&&s._setOnCancel(new i(a)),s._captureStackTrace()),s._setAsyncGuaranteed(),s};e.prototype.delay=function(t){return u(t,this)};var p=function(t,e,n){var r;r="string"!=typeof e?e instanceof Error?e:new c("operation timed out"):new c(e),a.markAsOriginatingFromRejection(r),t._attachExtraTrace(r),t._reject(r),null!=n&&n.cancel()};e.prototype.timeout=function(t,e){t=+t;var n,a,c=new i(setTimeout(function(){n.isPending()&&p(n,e,a)},t));return r.cancellation()?(a=this.then(),n=a._then(o,s,void 0,c,void 0),n._setOnCancel(c)):n=this._then(o,s,void 0,c,void 0),n}}},{"./util":36}],35:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t){setTimeout(function(){throw t},0)}function c(t){var e=r(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}function l(t,n){function i(){if(s>=l)return u._fulfill();var o=c(t[s++]);if(o instanceof e&&o._isDisposable()){try{o=r(o._getDisposer().tryDispose(n),t.promise)}catch(p){return a(p)}if(o instanceof e)return o._then(i,a,null,null,null)}i()}var s=0,l=t.length,u=new e(o);return i(),u}function u(t,e,n){this._data=t,this._promise=e,this._context=n}function p(t,e,n){this.constructor$(t,e,n)}function h(t){return u.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function f(t){this.length=t,this.promise=null,this[t-1]=null}var _=t("./util"),d=t("./errors").TypeError,v=t("./util").inherits,y=_.errorObj,m=_.tryCatch,g={};u.prototype.data=function(){return this._data},u.prototype.promise=function(){return this._promise},u.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():g},u.prototype.tryDispose=function(t){var e=this.resource(),n=this._context;void 0!==n&&n._pushContext();var r=e!==g?this.doDispose(e,t):null;return void 0!==n&&n._popContext(),this._promise._unsetDisposable(),this._data=null,r},u.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},v(p,u),p.prototype.doDispose=function(t,e){var n=this.data();return n.call(t,t,e)},f.prototype._resultCancelled=function(){for(var t=this.length,n=0;t>n;++n){var r=this[n];r instanceof e&&r.cancel()}},e.using=function(){var t=arguments.length;if(2>t)return n("you must pass at least 2 arguments to Promise.using");var i=arguments[t-1];if("function"!=typeof i)return n("expecting a function but got "+_.classString(i));var o,a=!0;2===t&&Array.isArray(arguments[0])?(o=arguments[0],t=o.length,a=!1):(o=arguments,t--);for(var c=new f(t),p=0;t>p;++p){var d=o[p];if(u.isDisposer(d)){var v=d;d=d.promise(),d._setDisposable(v)}else{var g=r(d);g instanceof e&&(d=g._then(h,null,null,{resources:c,index:p},void 0))}c[p]=d}for(var b=new Array(c.length),p=0;p0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new p(t,this,i());throw new d}}},{"./errors":12,"./util":36}],36:[function(t,e,n){"use strict";function r(){try{var t=P;return P=null,t.apply(this,arguments)}catch(e){return T.e=e,T}}function i(t){return P=t,r}function o(t){return null==t||t===!0||t===!1||"string"==typeof t||"number"==typeof t}function s(t){return"function"==typeof t||"object"==typeof t&&null!==t}function a(t){return o(t)?new Error(v(t)):t}function c(t,e){var n,r=t.length,i=new Array(r+1);for(n=0;r>n;++n)i[n]=t[n];return i[n]=e,i}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function h(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function f(t){function e(){}e.prototype=t;for(var n=8;n--;)new e;return t}function _(t){return D.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function m(t){try{u(t,"isOperational",!0)}catch(e){}}function g(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function w(t){return{}.toString.call(t)}function C(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),B.isNode&&B.toFastProperties(process);try{throw new Error}catch(U){B.lastLineError=U}e.exports=B},{"./es5":13}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise);
\ No newline at end of file
+!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(s,a){if(!e[s]){if(!t[s]){var c="function"==typeof _dereq_&&_dereq_;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var l=e[s]={exports:{}};t[s][0].call(l.exports,function(e){var n=t[s][1][e];return i(n?n:e)},l,l.exports,r,t,e,n)}return e[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s0;)c(t)}function c(t){var e=t.shift();if("function"!=typeof e)e._settlePromises();else{var n=t.shift(),r=t.shift();e.call(n,r)}}var u;try{throw new Error}catch(l){u=l}var p=t("./schedule"),f=t("./queue");r.prototype.setScheduler=function(t){var e=this._schedule;return this._schedule=t,this._customScheduler=!0,e},r.prototype.hasCustomScheduler=function(){return this._customScheduler},r.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues},r.prototype.fatalError=function(t,e){e?(process.stderr.write("Fatal "+(t instanceof Error?t.stack:t)+"\n"),process.exit(2)):this.throwLater(t)},r.prototype.throwLater=function(t,e){if(1===arguments.length&&(e=t,t=function(){throw e}),"undefined"!=typeof setTimeout)setTimeout(function(){t(e)},0);else try{this._schedule(function(){t(e)})}catch(n){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")}},r.prototype.invokeLater=i,r.prototype.invoke=o,r.prototype.settlePromises=s,r.prototype._drainQueues=function(){a(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,a(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=u},{"./queue":26,"./schedule":29}],3:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var u=n(o),l=new t(e);l._propagateFrom(this,1);var p=this._target();if(l._setBoundTo(u),u instanceof t){var f={promiseRejectionQueued:!1,promise:l,target:p,bindingPromise:u};p._then(e,s,void 0,l,f),u._then(a,c,void 0,l,f),l._setOnCancel(u)}else l._resolveCallback(p);return l},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],4:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":22}],5:[function(t,e,n){"use strict";var r=Object.create;if(r){var i=r(null),o=r(null);i[" size"]=o[" size"]=0}e.exports=function(e){function n(t,n){var r;if(null!=t&&(r=t[n]),"function"!=typeof r){var i="Object "+a.classString(t)+" has no method '"+a.toString(n)+"'";throw new e.TypeError(i)}return r}function r(t){var e=this.pop(),r=n(t,e);return r.apply(t,this)}function i(t){return t[this]}function o(t){var e=+this;return 0>e&&(e=Math.max(0,e+t.length)),t[e]}var s,a=t("./util"),c=a.canEvaluate;a.isIdentifier;e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(r,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e,n="number"==typeof t;if(n)e=o;else if(c){var r=s(t);e=null!==r?r:i}else e=i;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],9:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){function o(t,e){return{promise:e}}function s(){return!1}function a(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+B.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function c(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?B.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function u(){return this._onCancelField}function l(t){this._onCancelField=t}function p(){this._cancellationParent=void 0,this._onCancelField=void 0}function f(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function h(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function _(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function d(){this._trace=new V(this._peekContext())}function v(t,e){if(q(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=F(t);B.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),B.notEnumerableProp(t,"__stackCleaned__",!0)}}}function y(){this._trace=void 0}function g(t,e,n,r,i){if(void 0===t&&null!==e&&Z){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",s="";if(e._trace){for(var a=e._trace.stack.split("\n"),c=k(a),u=c.length-1;u>=0;--u){var l=c[u];if(!Q.test(l)){var p=l.match(G);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var f=c[0],u=0;u0&&(s="\n"+a[u-1]);break}}var h="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+s;r._warn(h,!0,e)}}function m(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),b(n)}function b(t,n,r){if(lt.warnings){var i,o=new U(t);if(n)r._attachExtraTrace(o);else if(lt.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var s=F(o);o.stack=s.message+"\n"+s.stack.join("\n")}ot("warning",o)||x(o,"",!0)}}function w(t,e){for(var n=0;n=0;--a)if(r[a]===o){s=a;break}for(var a=s;a>=0;--a){var c=r[a];if(e[i]!==c)break;e.pop(),i--}e=r}}function k(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function F(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?E(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:k(e)}}function x(t,e,n){if("undefined"!=typeof console){var r;if(B.isObject(t)){var i=t.stack;r=e+X(i,t)}else r=e+String(t);"function"==typeof I?I(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function T(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){N.throwLater(o)}"unhandledRejection"===t?ot(t,n,r)||i||x(n,"Unhandled rejection "):ot(t,r)}function P(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():B.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+R(e)+">, no stack trace)"}function R(t){var e=41;return t.lengths||0>a||!n||!r||n!==r||s>=a||(at=function(t){if($.test(t))return!0;var e=O(t);return e&&e.fileName===n&&s<=e.line&&e.line<=a?!0:!1})}}function V(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);ut(this,V),e>32&&this.uncycle()}var H,D,I,L,N=e._async,U=t("./errors").Warning,B=t("./util"),M=t("./es5"),q=B.canAttachTrace,$=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,Q=/\((?:timers\.js):\d+:\d+\)/,G=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,z=null,X=null,W=!1,K=!(0==B.env("BLUEBIRD_DEBUG")||!B.env("BLUEBIRD_DEBUG")&&"development"!==B.env("NODE_ENV")),J=!(0==B.env("BLUEBIRD_WARNINGS")||!K&&!B.env("BLUEBIRD_WARNINGS")),Y=!(0==B.env("BLUEBIRD_LONG_STACK_TRACES")||!K&&!B.env("BLUEBIRD_LONG_STACK_TRACES")),Z=0!=B.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(J||!!B.env("BLUEBIRD_W_FORGOTTEN_RETURN"));!function(){function t(){for(var t=0;t0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return b(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var n=e._getContext();D=B.contextBind(n,t)},e.onUnhandledRejectionHandled=function(t){var n=e._getContext();H=B.contextBind(n,t)};var tt=function(){};e.longStackTraces=function(){if(N.haveItemsQueued()&&!lt.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!lt.longStackTraces&&S()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace,i=e.prototype._dereferenceTrace;lt.longStackTraces=!0,tt=function(){if(N.haveItemsQueued()&&!lt.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,e.prototype._dereferenceTrace=i,n.deactivateLongStackTraces(),lt.longStackTraces=!1},e.prototype._captureStackTrace=d,e.prototype._attachExtraTrace=v,e.prototype._dereferenceTrace=y,n.activateLongStackTraces()}},e.hasLongStackTraces=function(){return lt.longStackTraces&&S()};var et={unhandledrejection:{before:function(){var t=B.global.onunhandledrejection;return B.global.onunhandledrejection=null,t},after:function(t){B.global.onunhandledrejection=t}},rejectionhandled:{before:function(){var t=B.global.onrejectionhandled;return B.global.onrejectionhandled=null,t},after:function(t){B.global.onrejectionhandled=t}}},nt=function(){var t=function(t,e){if(!t)return!B.global.dispatchEvent(e);var n;try{return n=t.before(),!B.global.dispatchEvent(e)}finally{t.after(n)}};try{if("function"==typeof CustomEvent){var e=new CustomEvent("CustomEvent");return B.global.dispatchEvent(e),function(e,n){e=e.toLowerCase();var r={detail:n,cancelable:!0},i=new CustomEvent(e,r);return M.defineProperty(i,"promise",{value:n.promise}),M.defineProperty(i,"reason",{value:n.reason}),t(et[e],i)}}if("function"==typeof Event){var e=new Event("CustomEvent");return B.global.dispatchEvent(e),function(e,n){e=e.toLowerCase();var r=new Event(e,{cancelable:!0});return r.detail=n,M.defineProperty(r,"promise",{value:n.promise}),M.defineProperty(r,"reason",{value:n.reason}),t(et[e],r)}}var e=document.createEvent("CustomEvent");return e.initCustomEvent("testingtheevent",!1,!0,{}),B.global.dispatchEvent(e),function(e,n){e=e.toLowerCase();var r=document.createEvent("CustomEvent");return r.initCustomEvent(e,!1,!0,n),t(et[e],r)}}catch(n){}return function(){return!1}}(),rt=function(){return B.isNode?function(){return process.emit.apply(process,arguments)}:B.global?function(t){var e="on"+t.toLowerCase(),n=B.global[e];return n?(n.apply(B.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),it={promiseCreated:o,promiseFulfilled:o,promiseRejected:o,promiseResolved:o,promiseCancelled:o,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:o},ot=function(t){var e=!1;try{e=rt.apply(null,arguments)}catch(n){N.throwLater(n),e=!0}var r=!1;try{r=nt(t,it[t].apply(null,arguments))}catch(n){N.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&tt()),"warnings"in t){var n=t.warnings;lt.warnings=!!n,Z=lt.warnings,B.isObject(n)&&"wForgottenReturn"in n&&(Z=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!lt.cancellation){if(N.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=p,e.prototype._propagateFrom=f,e.prototype._onCancel=u,e.prototype._setOnCancel=l,e.prototype._attachCancellationCallback=c,e.prototype._execute=a,st=f,lt.cancellation=!0}if("monitoring"in t&&(t.monitoring&&!lt.monitoring?(lt.monitoring=!0,e.prototype._fireEvent=ot):!t.monitoring&<.monitoring&&(lt.monitoring=!1,e.prototype._fireEvent=s)),"asyncHooks"in t&&B.nodeSupportsAsyncResource){var o=lt.asyncHooks,h=!!t.asyncHooks;o!==h&&(lt.asyncHooks=h,h?r():i())}return e},e.prototype._fireEvent=s,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._dereferenceTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var st=h,at=function(){return!1},ct=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;B.inherits(V,Error),n.CapturedTrace=V,V.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var s=e[r].stack,a=n[s];if(void 0!==a&&a!==r){a>0&&(e[a-1]._parent=void 0,e[a-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>a?(c._parent=e[a+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var u=c._length+1,l=r-2;l>=0;--l)e[l]._length=u,u++;return}}}},V.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=F(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(k(i.stack.split("\n"))),i=i._parent;j(r),C(r),B.notEnumerableProp(t,"stack",w(n,r)),B.notEnumerableProp(t,"__stackCleaned__",!0)}};var ut=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():P(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,z=t,X=e;var n=Error.captureStackTrace;return at=function(t){return $.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return z=/@/,X=e,W=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(X=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?P(e):e.toString()},null):(z=t,X=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(I=function(t){console.warn(t)},B.isNode&&process.stderr.isTTY?I=function(t,e){var n=e?"[33m":"[31m";console.warn(n+t+"[0m\n")}:B.isNode||"string"!=typeof(new Error).stack||(I=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var lt={warnings:J,longStackTraces:!1,cancellation:!1,monitoring:!1,asyncHooks:!1};return Y&&e.longStackTraces(),{asyncHooks:function(){return lt.asyncHooks},longStackTraces:function(){return lt.longStackTraces},warnings:function(){return lt.warnings},cancellation:function(){return lt.cancellation},monitoring:function(){return lt.monitoring},propagateFromFunction:function(){return st},boundValueFunction:function(){return _},checkForgottenReturns:g,setBounds:A,warn:b,deprecated:m,CapturedTrace:V,fireDomEvent:nt,fireGlobalEvent:rt}}},{"./errors":12,"./es5":13,"./util":36}],10:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t,e){function n(){return o(this)}function r(t,n){return i(t,n,e,e)}var i=t.reduce,o=t.all;t.prototype.each=function(t){return i(this,t,e,0)._then(n,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return i(this,t,e,e)},t.each=function(t,r){return i(t,r,e,0)._then(n,void 0,void 0,t,void 0)},t.mapSeries=r}},{}],12:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return l(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,s,a=t("./es5"),c=a.freeze,u=t("./util"),l=u.inherits,p=u.notEnumerableProp,f=r("Warning","warning"),h=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,s=RangeError}catch(v){o=r("TypeError","type error"),s=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),g=0;g1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function a(){return u.call(this,this.promise._target()._settledValue())}function c(t){return s(this,t)?void 0:(f.e=t,f)}function u(t){var i=this.promise,u=this.handler;if(!this.called){this.called=!0;var l=this.isFinallyHandler()?u.call(i._boundValue()):u.call(i._boundValue(),t);if(l===r)return l;if(void 0!==l){i._setReturnedNonUndefined();var h=n(l,i);if(h instanceof e){if(null!=this.cancelPromise){if(h._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),f.e=_,f}h.isPending()&&h._attachCancellationCallback(new o(this))}return h._then(a,c,void 0,this,void 0)}}}return i.isRejected()?(s(this),f.e=t,f):(s(this),t)}var l=t("./util"),p=e.CancellationError,f=l.errorObj,h=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){s(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,u,u)},e.prototype.tap=function(t){return this._passThrough(t,1,u)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,u);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var s=arguments[r];if(!l.isObject(s))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+l.classString(s)));i[o++]=s}i.length=o;var a=arguments[r];return this._passThrough(h(i,a,this),1,void 0,u)},i}},{"./catch_filter":7,"./util":36}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r){for(var o=0;o0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":36}],18:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t),this._promise._captureStackTrace();var s=e._getContext();if(this._callback=u.contextBind(s,n),this._preservedValues=i===o?new Array(this.length()):null,this._limit=r,this._inFlight=0,this._queue=[],f.invoke(this._asyncInit,this,void 0),u.isArray(t))for(var a=0;a=1?s:0,new a(t,n,s,o).promise()}var u=t("./util"),l=u.tryCatch,p=u.errorObj,f=e._async;u.inherits(a,n),a.prototype._asyncInit=function(){this._init$(void 0,-2)},a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,n){var r=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(0>n){if(n=-1*n-1,r[n]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return r[n]=t,this._queue.push(n),!1;null!==a&&(a[n]=t);var u=this._promise,f=this._callback,h=u._boundValue();u._pushContext();var _=l(f).call(h,t,n,o),d=u._popContext();if(s.checkForgottenReturns(_,d,null!==a?"Promise.filter":"Promise.map",u),_===p)return this._reject(_.e),!0;var v=i(_,this._promise);if(v instanceof e){v=v._target();var y=v._bitField;if(0===(50397184&y))return c>=1&&this._inFlight++,r[n]=v,v._proxy(this,-1*(n+1)),!1;if(0===(33554432&y))return 0!==(16777216&y)?(this._reject(v._reason()),!0):(this._cancel(),!0);_=v._value()}r[n]=_}var g=++this._totalResolved;return g>=o?(null!==a?this._filter(r,a):this._resolve(r),!0):!1},a.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,n=this._values;t.length>0&&this._inFlighto;++o)t[o]&&(r[i++]=e[o]);r.length=i,this._resolve(r)},a.prototype.preservedValues=function(){return this._preservedValues},e.prototype.map=function(t,e){return c(this,t,e,null)},e.map=function(t,e,n,r){return c(t,e,n,r)}}},{"./util":36}],19:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var s=t("./util"),a=s.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+s.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=a(t).apply(this,arguments),s=r._popContext();return o.checkForgottenReturns(i,s,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+s.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var u=arguments[1],l=arguments[2];c=s.isArray(u)?a(t).apply(l,u):a(t).call(l,u)}else c=a(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&l.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new u(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=l.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!f.isObject(o))return l("Catch statement predicate: expecting an object but got "+f.classString(o));r[i++]=o}if(r.length=i,t=arguments[n],"function"!=typeof t)throw new E("The last argument to .catch() must be a function, got "+f.toString(t));return this.then(void 0,D(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(V.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?l("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,T,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new S(this).promise()},i.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(x);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=N(t)(I(e,n));return r===L&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new S(t).promise()},i.cast=function(t){var e=R(t);return e instanceof i||(e=new i(x),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(x);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new E("expecting a function but got "+f.classString(t));return j.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var s=void 0!==o,a=s?o:new i(x),c=this._target(),u=c._bitField;s||(a._propagateFrom(this,3),a._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():c===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,a));var l=g();if(0!==(50397184&u)){var p,h,_=c._settlePromiseCtx;0!==(33554432&u)?(h=c._rejectionHandler0,p=t):0!==(16777216&u)?(h=c._fulfillmentHandler0,p=e,c._unsetRejectionIsUnhandled()):(_=c._settlePromiseLateCancellationObserver,h=new F("late cancellation observer"),c._attachExtraTrace(h),p=e),j.invoke(_,c,{handler:f.contextBind(l,p),promise:a,receiver:r,value:h})}else c._addCallbacks(t,e,a,r,l);return a},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){if(!j.hasCustomScheduler()){var t=this._bitField;this._bitField=t|(536870912&t)>>2^134217728}},i.prototype._setNoAsyncGuarantee=function(){this._bitField=-134217729&(536870912|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===p?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=p),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=p),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=f.contextBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=f.contextBind(i,e));else{var s=4*o-4;this[s+2]=n,this[s+3]=r,"function"==typeof t&&(this[s+0]=f.contextBind(i,t)),"function"==typeof e&&(this[s+1]=f.contextBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(c(),!1);var n=R(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(c());var o=r._bitField;if(0===(50397184&o)){var s=this._length();s>0&&r._migrateCallback0(this);for(var a=1;s>a;++a)r._migrateCallbackAt(this,a);this._setFollowing(),this._setLength(0),this._setFollowee(n)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var u=new F("late cancellation observer");r._attachExtraTrace(u),this._reject(u)}}},i.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),i=r===t;if(!i&&!n&&V.warnings()){var o="a promise was rejected with a non-error: "+f.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==x){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===T?n&&"number"==typeof n.length?o=N(t).apply(this._boundValue(),n):(o=L,o.e=new E("cannot .spread() a non-array: "+f.classString(n))):o=N(t).call(e,n);var s=r._popContext();i=r._bitField,0===(65536&i)&&(o===P?r._reject(n):o===L?r._rejectCallback(o.e,!1):(V.checkForgottenReturns(o,s,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var s=t instanceof i,a=this._bitField,c=0!==(134217728&a);0!==(65536&a)?(s&&t._invokeInternalOnCancel(),r instanceof H&&r.isFinallyHandler()?(r.cancelPromise=t,N(e).call(r,o)===L&&t._reject(L.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):s||t instanceof S?t._cancel():r.cancel()):"function"==typeof e?s?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&a)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):s&&(c&&t._setAsyncGuaranteed(),0!==(33554432&a)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=c();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():j.settlePromises(this),this._dereferenceTrace())}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?j.fatalError(t,f.isNode):void((65535&e)>0?j.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},"undefined"!=typeof Symbol&&Symbol.toStringTag&&w.defineProperty(i.prototype,Symbol.toStringTag,{get:function(){return"Object"}}),i.defer=i.pending=function(){V.deprecated("Promise.defer","new Promise");var t=new i(x);return{promise:t,resolve:o,reject:s}},f.notEnumerableProp(i,"_makeSelfResolutionError",c),t("./method")(i,x,R,l,V),t("./bind")(i,x,R,V),t("./cancel")(i,S,l,V),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,S,R,x,j),i.Promise=i,i.version="3.7.2",t("./call_get.js")(i),t("./generators.js")(i,l,x,R,n,V),t("./map.js")(i,S,l,R,x,V),t("./nodeify.js")(i),t("./promisify.js")(i,x),t("./props.js")(i,S,R,l),t("./race.js")(i,x,R,l),t("./reduce.js")(i,S,l,R,x,V),t("./settle.js")(i,S,V),t("./some.js")(i,S,l),t("./timers.js")(i,x,V),t("./using.js")(i,l,R,A,x,V),t("./any.js")(i),t("./each.js")(i,x),t("./filter.js")(i,x),f.toFastProperties(i),f.toFastProperties(i.prototype),a({a:1}),a({b:2}),a({c:3}),a(1),a(function(){}),a(void 0),a(!1),a(new i(x)),V.setBounds(C.firstLineError,f.lastLineError),i}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36,async_hooks:void 0}],23:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function s(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function a(t){var r=this._promise=new e(n);t instanceof e&&(r._propagateFrom(t,3),t.suppressUnhandledRejections()),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function u(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var a=o._bitField;if(this._values=o,0===(50397184&a))return this._promise._setAsyncGuaranteed(),o._then(u,this._reject,void 0,this,n);if(0===(33554432&a))return 0!==(16777216&a)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var l=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(l,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(s(n))):void this._iterate(o)},a.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,s=null,a=0;n>a;++a){var c=r(t[a],i);c instanceof e?(c=c._target(),s=c._bitField):s=null,o?null!==s&&c.suppressUnhandledRejections():null!==s?0===(50397184&s)?(c._proxy(this,a),this._values[a]=c):o=0!==(33554432&s)?this._promiseFulfilled(c._value(),a):0!==(16777216&s)?this._promiseRejected(c._reason(),a):this._promiseCancelled(a):o=this._promiseFulfilled(c,a)}o||i._setAsyncGuaranteed()},a.prototype._isResolved=function(){return null===this._values},a.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},a.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},a.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},a.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;nc;c+=2){var l=s[c],p=s[c+1],_=l+e;if(r===E)t[_]=E(l,f,l,p,e,i);else{var d=r(p,function(){return E(l,f,l,p,e,i)});h.notEnumerableProp(d,"__isPromisified__",!0),t[_]=d}}return h.toFastProperties(t),t}function l(t,e,n){return E(t,e,void 0,t,null,n)}var p,f={},h=t("./util"),_=t("./nodeback"),d=h.withAppended,v=h.maybeWrapAsError,y=h.canEvaluate,g=t("./errors").TypeError,m="Async",b={__isPromisified__:!0},w=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],C=new RegExp("^(?:"+w.join("|")+")$"),j=function(t){return h.isIdentifier(t)&&"_"!==t.charAt(0)&&"constructor"!==t},k=function(t){return t.replace(/([$])/,"\\$")},E=y?p:c;e.promisify=function(t,e){if("function"!=typeof t)throw new g("expecting a function but got "+h.classString(t));if(i(t))return t;e=Object(e);var n=void 0===e.context?f:e.context,o=!!e.multiArgs,s=l(t,n,o);return h.copyDescriptors(t,s,r),s},e.promisifyAll=function(t,e){if("function"!=typeof t&&"object"!=typeof t)throw new g("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n");e=Object(e);var n=!!e.multiArgs,r=e.suffix;"string"!=typeof r&&(r=m);var i=e.filter;"function"!=typeof i&&(i=j);var o=e.promisifier;if("function"!=typeof o&&(o=E),!h.isIdentifier(r))throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n");for(var s=h.inheritedDataKeys(t),a=0;ao;++o){var s=r[o];e[o]=t[s],e[o+i]=s}}this.constructor$(e),this._isMap=n,this._init$(void 0,n?-6:-3)}function s(t){var n,s=r(t);return u(s)?(n=s instanceof e?s._then(e.props,void 0,void 0,void 0,void 0):new o(s).promise(),s instanceof e&&n._propagateFrom(s,2),n):i("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n")}var a,c=t("./util"),u=c.isObject,l=t("./es5");"function"==typeof Map&&(a=Map);var p=function(){function t(t,r){this[e]=t,this[e+n]=r,e++}var e=0,n=0;return function(r){n=r.size,e=0;var i=new Array(2*r.size);return r.forEach(t,i),i}}(),f=function(t){for(var e=new a,n=t.length/2|0,r=0;n>r;++r){var i=t[n+r],o=t[r];e.set(i,o)}return e};c.inherits(o,n),o.prototype._init=function(){},o.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;if(n>=this._length){var r;if(this._isMap)r=f(this._values);else{r={};for(var i=this.length(),o=0,s=this.length();s>o;++o)r[this._values[o+i]]=this._values[o]}return this._resolve(r),!0}return!1},o.prototype.shouldCopyValues=function(){return!1},o.prototype.getActualLength=function(t){return t>>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,n){"use strict";function r(t,e,n,r,i){for(var o=0;i>o;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityf;++f){var _=t[f];(void 0!==_||f in t)&&e.cast(_)._then(l,p,void 0,u,null)}return u}var s=t("./util"),a=function(t){return t.then(function(e){return o(e,t)})};e.race=function(t){return o(t,void 0)},e.prototype.race=function(){return o(this,void 0)}}},{"./util":36}],28:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t);var s=e._getContext();this._fn=f.contextBind(s,n),void 0!==r&&(r=e.resolve(r),r._attachCancellationCallback(this)),this._initialValue=r,this._currentCancellable=null,i===o?this._eachValues=Array(this._length):0===i?this._eachValues=null:this._eachValues=void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}function c(t,e){this.isFulfilled()?e._resolve(t):e._reject(t)}function u(t,e,n,i){if("function"!=typeof e)return r("expecting a function but got "+f.classString(e));var o=new a(t,e,n,i);return o.promise()}function l(t){this.accum=t,this.array._gotAccum(t);var n=i(this.value,this.array._promise);return n instanceof e?(this.array._currentCancellable=n,n._then(p,void 0,void 0,this,void 0)):p.call(this,n)}function p(t){var n=this.array,r=n._promise,i=h(n._fn);r._pushContext();var o;o=void 0!==n._eachValues?i.call(r._boundValue(),t,this.index,this.length):i.call(r._boundValue(),this.accum,t,this.index,this.length),o instanceof e&&(n._currentCancellable=o);var a=r._popContext();return s.checkForgottenReturns(o,a,void 0!==n._eachValues?"Promise.each":"Promise.reduce",r),o}var f=t("./util"),h=f.tryCatch;f.inherits(a,n),a.prototype._gotAccum=function(t){void 0!==this._eachValues&&null!==this._eachValues&&t!==o&&this._eachValues.push(t)},a.prototype._eachComplete=function(t){return null!==this._eachValues&&this._eachValues.push(t),this._eachValues},a.prototype._init=function(){},a.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},a.prototype.shouldCopyValues=function(){return!1},a.prototype._resolve=function(t){this._promise._resolveCallback(t),this._values=null},a.prototype._resultCancelled=function(t){return t===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof e&&this._currentCancellable.cancel(),this._initialValue instanceof e&&this._initialValue.cancel()))},a.prototype._iterate=function(t){this._values=t;var n,r,i=t.length;void 0!==this._initialValue?(n=this._initialValue,r=0):(n=e.resolve(t[0]),r=1),this._currentCancellable=n;for(var o=r;i>o;++o){var s=t[o];s instanceof e&&s.suppressUnhandledRejections()}if(!n.isRejected())for(;i>r;++r){var a={accum:null,value:t[r],index:r,length:i,array:this};n=n._then(l,void 0,void 0,a,void 0),0===(127&r)&&n._setNoAsyncGuarantee()}void 0!==this._eachValues&&(n=n._then(this._eachComplete,void 0,void 0,this,void 0)),n._then(c,c,void 0,n,this)},e.prototype.reduce=function(t,e){return u(this,t,e,null)},e.reduce=function(t,e,n,r){return u(t,e,n,r)}}},{"./util":36}],29:[function(t,e,n){"use strict";var r,i=t("./util"),o=function(){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")},s=i.getNativePromise();if(i.isNode&&"undefined"==typeof MutationObserver){var a=global.setImmediate,c=process.nextTick;r=i.isRecentNode?function(t){a.call(global,t)}:function(t){c.call(process,t)}}else if("function"==typeof s&&"function"==typeof s.resolve){
+var u=s.resolve();r=function(t){u.then(t)}}else r="undefined"!=typeof MutationObserver&&("undefined"==typeof window||!window.navigator||!window.navigator.standalone&&!window.cordova)&&"classList"in document.documentElement?function(){var t=document.createElement("div"),e={attributes:!0},n=!1,r=document.createElement("div"),i=new MutationObserver(function(){t.classList.toggle("foo"),n=!1});i.observe(r,e);var o=function(){n||(n=!0,r.classList.toggle("foo"))};return function(n){var r=new MutationObserver(function(){r.disconnect(),n()});r.observe(t,e),o()}}():"undefined"!=typeof setImmediate?function(t){setImmediate(t)}:"undefined"!=typeof setTimeout?function(t){setTimeout(t,0)}:o;e.exports=r},{"./util":36}],30:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t)}var o=e.PromiseInspection,s=t("./util");s.inherits(i,n),i.prototype._promiseResolved=function(t,e){this._values[t]=e;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},i.prototype._promiseFulfilled=function(t,e){var n=new o;return n._bitField=33554432,n._settledValueField=t,this._promiseResolved(e,n)},i.prototype._promiseRejected=function(t,e){var n=new o;return n._bitField=16777216,n._settledValueField=t,this._promiseResolved(e,n)},e.settle=function(t){return r.deprecated(".settle()",".reflect()"),new i(t).promise()},e.allSettled=function(t){return new i(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t),this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(t,e){if((0|e)!==e||0>e)return r("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var n=new i(t),o=n.promise();return n.setHowMany(e),n.init(),o}var s=t("./util"),a=t("./errors").RangeError,c=t("./errors").AggregateError,u=s.isArray,l={};s.inherits(i,n),i.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var t=u(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(t){this._howMany=t},i.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1},i.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(l),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new c,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(t){this._values.push(t)},i.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new a(e)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return o(t,e)},e.prototype.some=function(t){return o(this,t)},e._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(t,e,n){"use strict";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var n=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},r=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0===(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};e.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},t.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},t.prototype._isCancelled=function(){return this._target().__isCancelled()},t.prototype.isCancelled=function(){return 0!==(8454144&this._target()._bitField)},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return n.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),r.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,r){if(l(t)){if(t instanceof e)return t;var i=o(t);if(i===u){r&&r._pushContext();var c=e.reject(i.e);return r&&r._popContext(),c}if("function"==typeof i){if(s(t)){var c=new e(n);return t._then(c._fulfill,c._reject,void 0,c,null),c}return a(t,i,r)}}return t}function i(t){return t.then}function o(t){try{return i(t)}catch(e){return u.e=e,u}}function s(t){try{return p.call(t,"_promise0")}catch(e){return!1}}function a(t,r,i){function o(t){a&&(a._resolveCallback(t),a=null)}function s(t){a&&(a._rejectCallback(t,p,!0),a=null)}var a=new e(n),l=a;i&&i._pushContext(),a._captureStackTrace(),i&&i._popContext();var p=!0,f=c.tryCatch(r).call(t,o,s);return p=!1,a&&f===u&&(a._rejectCallback(f.e,!0,!0),a=null),l}var c=t("./util"),u=c.errorObj,l=c.isObject,p={}.hasOwnProperty;return r}},{"./util":36}],34:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.handle=t}function o(t){return clearTimeout(this.handle),t}function s(t){throw clearTimeout(this.handle),t}var a=t("./util"),c=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var u=function(t){return l(+this).thenReturn(t)},l=e.delay=function(t,o){var s,a;return void 0!==o?(s=e.resolve(o)._then(u,null,null,t,void 0),r.cancellation()&&o instanceof e&&s._setOnCancel(o)):(s=new e(n),a=setTimeout(function(){s._fulfill()},+t),r.cancellation()&&s._setOnCancel(new i(a)),s._captureStackTrace()),s._setAsyncGuaranteed(),s};e.prototype.delay=function(t){return l(t,this)};var p=function(t,e,n){var r;r="string"!=typeof e?e instanceof Error?e:new c("operation timed out"):new c(e),a.markAsOriginatingFromRejection(r),t._attachExtraTrace(r),t._reject(r),null!=n&&n.cancel()};e.prototype.timeout=function(t,e){t=+t;var n,a,c=new i(setTimeout(function(){n.isPending()&&p(n,e,a)},t));return r.cancellation()?(a=this.then(),n=a._then(o,s,void 0,c,void 0),n._setOnCancel(c)):n=this._then(o,s,void 0,c,void 0),n}}},{"./util":36}],35:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t){setTimeout(function(){throw t},0)}function c(t){var e=r(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}function u(t,n){function i(){if(s>=u)return l._fulfill();var o=c(t[s++]);if(o instanceof e&&o._isDisposable()){try{o=r(o._getDisposer().tryDispose(n),t.promise)}catch(p){return a(p)}if(o instanceof e)return o._then(i,a,null,null,null)}i()}var s=0,u=t.length,l=new e(o);return i(),l}function l(t,e,n){this._data=t,this._promise=e,this._context=n}function p(t,e,n){this.constructor$(t,e,n)}function f(t){return l.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function h(t){this.length=t,this.promise=null,this[t-1]=null}var _=t("./util"),d=t("./errors").TypeError,v=t("./util").inherits,y=_.errorObj,g=_.tryCatch,m={};l.prototype.data=function(){return this._data},l.prototype.promise=function(){return this._promise},l.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():m},l.prototype.tryDispose=function(t){var e=this.resource(),n=this._context;void 0!==n&&n._pushContext();var r=e!==m?this.doDispose(e,t):null;return void 0!==n&&n._popContext(),this._promise._unsetDisposable(),this._data=null,r},l.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},v(p,l),p.prototype.doDispose=function(t,e){var n=this.data();return n.call(t,t,e)},h.prototype._resultCancelled=function(){for(var t=this.length,n=0;t>n;++n){var r=this[n];r instanceof e&&r.cancel()}},e.using=function(){var t=arguments.length;if(2>t)return n("you must pass at least 2 arguments to Promise.using");var i=arguments[t-1];if("function"!=typeof i)return n("expecting a function but got "+_.classString(i));var o,a=!0;2===t&&Array.isArray(arguments[0])?(o=arguments[0],t=o.length,a=!1):(o=arguments,t--);for(var c=new h(t),p=0;t>p;++p){var d=o[p];if(l.isDisposer(d)){var v=d;d=d.promise(),d._setDisposable(v)}else{var m=r(d);m instanceof e&&(d=m._then(f,null,null,{resources:c,index:p},void 0))}c[p]=d}for(var b=new Array(c.length),p=0;p0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new p(t,this,i());throw new d}}},{"./errors":12,"./util":36}],36:[function(t,e,n){"use strict";function r(){try{var t=P;return P=null,t.apply(this,arguments)}catch(e){return T.e=e,T}}function i(t){return P=t,r}function o(t){return null==t||t===!0||t===!1||"string"==typeof t||"number"==typeof t}function s(t){return"function"==typeof t||"object"==typeof t&&null!==t}function a(t){return o(t)?new Error(v(t)):t}function c(t,e){var n,r=t.length,i=new Array(r+1);for(n=0;r>n;++n)i[n]=t[n];return i[n]=e,i}function u(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function l(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function f(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function h(t){function e(){}function n(){return typeof r.foo}e.prototype=t;var r=new e;return n(),n(),t}function _(t){return V.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function g(t){try{l(t,"isOperational",!0)}catch(e){}}function m(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function w(t){return{}.toString.call(t)}function C(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),B.nodeSupportsAsyncResource=B.isNode&&function(){var e=!1;try{var n=t("async_hooks").AsyncResource;e="function"==typeof n.prototype.runInAsyncScope}catch(r){e=!1}return e}(),B.isNode&&B.toFastProperties(process);try{throw new Error}catch(M){B.lastLineError=M}e.exports=B},{"./es5":13,async_hooks:void 0}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise);
\ No newline at end of file
diff --git a/server/node_modules/bluebird/js/release/any.js b/server/node_modules/bluebird/js/release/any.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/assert.js b/server/node_modules/bluebird/js/release/assert.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/async.js b/server/node_modules/bluebird/js/release/async.js
old mode 100755
new mode 100644
index 41f6655..8eab6f8
--- a/server/node_modules/bluebird/js/release/async.js
+++ b/server/node_modules/bluebird/js/release/async.js
@@ -3,7 +3,6 @@ var firstLineError;
try {throw new Error(); } catch (e) {firstLineError = e;}
var schedule = require("./schedule");
var Queue = require("./queue");
-var util = require("./util");
function Async() {
this._customScheduler = false;
@@ -11,7 +10,6 @@ function Async() {
this._lateQueue = new Queue(16);
this._normalQueue = new Queue(16);
this._haveDrainedQueues = false;
- this._trampolineEnabled = true;
var self = this;
this.drainQueues = function () {
self._drainQueues();
@@ -30,16 +28,6 @@ Async.prototype.hasCustomScheduler = function() {
return this._customScheduler;
};
-Async.prototype.enableTrampoline = function() {
- this._trampolineEnabled = true;
-};
-
-Async.prototype.disableTrampolineIfNecessary = function() {
- if (util.hasDevTools) {
- this._trampolineEnabled = false;
- }
-};
-
Async.prototype.haveItemsQueued = function () {
return this._isTickUsed || this._haveDrainedQueues;
};
@@ -88,62 +76,33 @@ function AsyncSettlePromises(promise) {
this._queueTick();
}
-if (!util.hasDevTools) {
- Async.prototype.invokeLater = AsyncInvokeLater;
- Async.prototype.invoke = AsyncInvoke;
- Async.prototype.settlePromises = AsyncSettlePromises;
-} else {
- Async.prototype.invokeLater = function (fn, receiver, arg) {
- if (this._trampolineEnabled) {
- AsyncInvokeLater.call(this, fn, receiver, arg);
- } else {
- this._schedule(function() {
- setTimeout(function() {
- fn.call(receiver, arg);
- }, 100);
- });
- }
- };
+Async.prototype.invokeLater = AsyncInvokeLater;
+Async.prototype.invoke = AsyncInvoke;
+Async.prototype.settlePromises = AsyncSettlePromises;
- Async.prototype.invoke = function (fn, receiver, arg) {
- if (this._trampolineEnabled) {
- AsyncInvoke.call(this, fn, receiver, arg);
- } else {
- this._schedule(function() {
- fn.call(receiver, arg);
- });
- }
- };
- Async.prototype.settlePromises = function(promise) {
- if (this._trampolineEnabled) {
- AsyncSettlePromises.call(this, promise);
- } else {
- this._schedule(function() {
- promise._settlePromises();
- });
- }
- };
+function _drainQueue(queue) {
+ while (queue.length() > 0) {
+ _drainQueueStep(queue);
+ }
}
-Async.prototype._drainQueue = function(queue) {
- while (queue.length() > 0) {
- var fn = queue.shift();
- if (typeof fn !== "function") {
- fn._settlePromises();
- continue;
- }
+function _drainQueueStep(queue) {
+ var fn = queue.shift();
+ if (typeof fn !== "function") {
+ fn._settlePromises();
+ } else {
var receiver = queue.shift();
var arg = queue.shift();
fn.call(receiver, arg);
}
-};
+}
Async.prototype._drainQueues = function () {
- this._drainQueue(this._normalQueue);
+ _drainQueue(this._normalQueue);
this._reset();
this._haveDrainedQueues = true;
- this._drainQueue(this._lateQueue);
+ _drainQueue(this._lateQueue);
};
Async.prototype._queueTick = function () {
diff --git a/server/node_modules/bluebird/js/release/bind.js b/server/node_modules/bluebird/js/release/bind.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/bluebird.js b/server/node_modules/bluebird/js/release/bluebird.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/call_get.js b/server/node_modules/bluebird/js/release/call_get.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/cancel.js b/server/node_modules/bluebird/js/release/cancel.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/catch_filter.js b/server/node_modules/bluebird/js/release/catch_filter.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/context.js b/server/node_modules/bluebird/js/release/context.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/debuggability.js b/server/node_modules/bluebird/js/release/debuggability.js
old mode 100755
new mode 100644
index bf0587c..ce997ee
--- a/server/node_modules/bluebird/js/release/debuggability.js
+++ b/server/node_modules/bluebird/js/release/debuggability.js
@@ -1,9 +1,10 @@
"use strict";
-module.exports = function(Promise, Context) {
-var getDomain = Promise._getDomain;
+module.exports = function(Promise, Context,
+ enableAsyncHooks, disableAsyncHooks) {
var async = Promise._async;
var Warning = require("./errors").Warning;
var util = require("./util");
+var es5 = require("./es5");
var canAttachTrace = util.canAttachTrace;
var unhandledRejectionHandled;
var possiblyUnhandledRejection;
@@ -29,6 +30,34 @@ var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 &&
var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 &&
(warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN"));
+var deferUnhandledRejectionCheck;
+(function() {
+ var promises = [];
+
+ function unhandledRejectionCheck() {
+ for (var i = 0; i < promises.length; ++i) {
+ promises[i]._notifyUnhandledRejection();
+ }
+ unhandledRejectionClear();
+ }
+
+ function unhandledRejectionClear() {
+ promises.length = 0;
+ }
+
+ deferUnhandledRejectionCheck = function(promise) {
+ promises.push(promise);
+ setTimeout(unhandledRejectionCheck, 1);
+ };
+
+ es5.defineProperty(Promise, "_unhandledRejectionCheck", {
+ value: unhandledRejectionCheck
+ });
+ es5.defineProperty(Promise, "_unhandledRejectionClear", {
+ value: unhandledRejectionClear
+ });
+})();
+
Promise.prototype.suppressUnhandledRejections = function() {
var target = this._target();
target._bitField = ((target._bitField & (~1048576)) |
@@ -38,7 +67,7 @@ Promise.prototype.suppressUnhandledRejections = function() {
Promise.prototype._ensurePossibleRejectionHandled = function () {
if ((this._bitField & 524288) !== 0) return;
this._setRejectionIsUnhandled();
- async.invokeLater(this._notifyUnhandledRejection, this, undefined);
+ deferUnhandledRejectionCheck(this);
};
Promise.prototype._notifyUnhandledRejectionIsHandled = function () {
@@ -96,19 +125,13 @@ Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) {
};
Promise.onPossiblyUnhandledRejection = function (fn) {
- var domain = getDomain();
- possiblyUnhandledRejection =
- typeof fn === "function" ? (domain === null ?
- fn : util.domainBind(domain, fn))
- : undefined;
+ var context = Promise._getContext();
+ possiblyUnhandledRejection = util.contextBind(context, fn);
};
Promise.onUnhandledRejectionHandled = function (fn) {
- var domain = getDomain();
- unhandledRejectionHandled =
- typeof fn === "function" ? (domain === null ?
- fn : util.domainBind(domain, fn))
- : undefined;
+ var context = Promise._getContext();
+ unhandledRejectionHandled = util.contextBind(context, fn);
};
var disableLongStackTraces = function() {};
@@ -119,6 +142,7 @@ Promise.longStackTraces = function () {
if (!config.longStackTraces && longStackTracesIsSupported()) {
var Promise_captureStackTrace = Promise.prototype._captureStackTrace;
var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;
+ var Promise_dereferenceTrace = Promise.prototype._dereferenceTrace;
config.longStackTraces = true;
disableLongStackTraces = function() {
if (async.haveItemsQueued() && !config.longStackTraces) {
@@ -126,14 +150,14 @@ Promise.longStackTraces = function () {
}
Promise.prototype._captureStackTrace = Promise_captureStackTrace;
Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;
+ Promise.prototype._dereferenceTrace = Promise_dereferenceTrace;
Context.deactivateLongStackTraces();
- async.enableTrampoline();
config.longStackTraces = false;
};
Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;
Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;
+ Promise.prototype._dereferenceTrace = longStackTracesDereferenceTrace;
Context.activateLongStackTraces();
- async.disableTrampolineIfNecessary();
}
};
@@ -141,37 +165,85 @@ Promise.hasLongStackTraces = function () {
return config.longStackTraces && longStackTracesIsSupported();
};
+
+var legacyHandlers = {
+ unhandledrejection: {
+ before: function() {
+ var ret = util.global.onunhandledrejection;
+ util.global.onunhandledrejection = null;
+ return ret;
+ },
+ after: function(fn) {
+ util.global.onunhandledrejection = fn;
+ }
+ },
+ rejectionhandled: {
+ before: function() {
+ var ret = util.global.onrejectionhandled;
+ util.global.onrejectionhandled = null;
+ return ret;
+ },
+ after: function(fn) {
+ util.global.onrejectionhandled = fn;
+ }
+ }
+};
+
var fireDomEvent = (function() {
+ var dispatch = function(legacy, e) {
+ if (legacy) {
+ var fn;
+ try {
+ fn = legacy.before();
+ return !util.global.dispatchEvent(e);
+ } finally {
+ legacy.after(fn);
+ }
+ } else {
+ return !util.global.dispatchEvent(e);
+ }
+ };
try {
if (typeof CustomEvent === "function") {
var event = new CustomEvent("CustomEvent");
util.global.dispatchEvent(event);
return function(name, event) {
- var domEvent = new CustomEvent(name.toLowerCase(), {
+ name = name.toLowerCase();
+ var eventData = {
detail: event,
cancelable: true
- });
- return !util.global.dispatchEvent(domEvent);
+ };
+ var domEvent = new CustomEvent(name, eventData);
+ es5.defineProperty(
+ domEvent, "promise", {value: event.promise});
+ es5.defineProperty(
+ domEvent, "reason", {value: event.reason});
+
+ return dispatch(legacyHandlers[name], domEvent);
};
} else if (typeof Event === "function") {
var event = new Event("CustomEvent");
util.global.dispatchEvent(event);
return function(name, event) {
- var domEvent = new Event(name.toLowerCase(), {
+ name = name.toLowerCase();
+ var domEvent = new Event(name, {
cancelable: true
});
domEvent.detail = event;
- return !util.global.dispatchEvent(domEvent);
+ es5.defineProperty(domEvent, "promise", {value: event.promise});
+ es5.defineProperty(domEvent, "reason", {value: event.reason});
+ return dispatch(legacyHandlers[name], domEvent);
};
} else {
var event = document.createEvent("CustomEvent");
event.initCustomEvent("testingtheevent", false, true, {});
util.global.dispatchEvent(event);
return function(name, event) {
+ name = name.toLowerCase();
var domEvent = document.createEvent("CustomEvent");
- domEvent.initCustomEvent(name.toLowerCase(), false, true,
+ domEvent.initCustomEvent(name, false, true,
event);
- return !util.global.dispatchEvent(domEvent);
+ return dispatch(legacyHandlers[name], domEvent);
};
}
} catch (e) {}
@@ -289,6 +361,18 @@ Promise.config = function(opts) {
Promise.prototype._fireEvent = defaultFireEvent;
}
}
+ if ("asyncHooks" in opts && util.nodeSupportsAsyncResource) {
+ var prev = config.asyncHooks;
+ var cur = !!opts.asyncHooks;
+ if (prev !== cur) {
+ config.asyncHooks = cur;
+ if (cur) {
+ enableAsyncHooks();
+ } else {
+ disableAsyncHooks();
+ }
+ }
+ }
return Promise;
};
@@ -309,6 +393,7 @@ Promise.prototype._attachCancellationCallback = function(onCancel) {
};
Promise.prototype._captureStackTrace = function () {};
Promise.prototype._attachExtraTrace = function () {};
+Promise.prototype._dereferenceTrace = function () {};
Promise.prototype._clearCancellationData = function() {};
Promise.prototype._propagateFrom = function (parent, flags) {
;
@@ -414,6 +499,10 @@ function longStackTracesAttachExtraTrace(error, ignoreSelf) {
}
}
+function longStackTracesDereferenceTrace() {
+ this._trace = undefined;
+}
+
function checkForgottenReturns(returnValue, promiseCreated, name, promise,
parent) {
if (returnValue === undefined && promiseCreated !== null &&
@@ -671,8 +760,8 @@ function parseLineInfo(line) {
function setBounds(firstLineError, lastLineError) {
if (!longStackTracesIsSupported()) return;
- var firstStackLines = firstLineError.stack.split("\n");
- var lastStackLines = lastLineError.stack.split("\n");
+ var firstStackLines = (firstLineError.stack || "").split("\n");
+ var lastStackLines = (lastLineError.stack || "").split("\n");
var firstIndex = -1;
var lastIndex = -1;
var firstFileName;
@@ -881,12 +970,16 @@ var config = {
warnings: warnings,
longStackTraces: false,
cancellation: false,
- monitoring: false
+ monitoring: false,
+ asyncHooks: false
};
if (longStackTraces) Promise.longStackTraces();
return {
+ asyncHooks: function() {
+ return config.asyncHooks;
+ },
longStackTraces: function() {
return config.longStackTraces;
},
diff --git a/server/node_modules/bluebird/js/release/direct_resolve.js b/server/node_modules/bluebird/js/release/direct_resolve.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/each.js b/server/node_modules/bluebird/js/release/each.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/errors.js b/server/node_modules/bluebird/js/release/errors.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/es5.js b/server/node_modules/bluebird/js/release/es5.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/filter.js b/server/node_modules/bluebird/js/release/filter.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/finally.js b/server/node_modules/bluebird/js/release/finally.js
old mode 100755
new mode 100644
index 3717911..d57444b
--- a/server/node_modules/bluebird/js/release/finally.js
+++ b/server/node_modules/bluebird/js/release/finally.js
@@ -1,8 +1,9 @@
"use strict";
-module.exports = function(Promise, tryConvertToPromise) {
+module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) {
var util = require("./util");
var CancellationError = Promise.CancellationError;
var errorObj = util.errorObj;
+var catchFilter = require("./catch_filter")(NEXT_FILTER);
function PassThroughHandlerContext(promise, type, handler) {
this.promise = promise;
@@ -54,7 +55,9 @@ function finallyHandler(reasonOrValue) {
var ret = this.isFinallyHandler()
? handler.call(promise._boundValue())
: handler.call(promise._boundValue(), reasonOrValue);
- if (ret !== undefined) {
+ if (ret === NEXT_FILTER) {
+ return ret;
+ } else if (ret !== undefined) {
promise._setReturnedNonUndefined();
var maybePromise = tryConvertToPromise(ret, promise);
if (maybePromise instanceof Promise) {
@@ -103,9 +106,41 @@ Promise.prototype["finally"] = function (handler) {
finallyHandler);
};
+
Promise.prototype.tap = function (handler) {
return this._passThrough(handler, 1, finallyHandler);
};
+Promise.prototype.tapCatch = function (handlerOrPredicate) {
+ var len = arguments.length;
+ if(len === 1) {
+ return this._passThrough(handlerOrPredicate,
+ 1,
+ undefined,
+ finallyHandler);
+ } else {
+ var catchInstances = new Array(len - 1),
+ j = 0, i;
+ for (i = 0; i < len - 1; ++i) {
+ var item = arguments[i];
+ if (util.isObject(item)) {
+ catchInstances[j++] = item;
+ } else {
+ return Promise.reject(new TypeError(
+ "tapCatch statement predicate: "
+ + "expecting an object but got " + util.classString(item)
+ ));
+ }
+ }
+ catchInstances.length = j;
+ var handler = arguments[i];
+ return this._passThrough(catchFilter(catchInstances, handler, this),
+ 1,
+ undefined,
+ finallyHandler);
+ }
+
+};
+
return PassThroughHandlerContext;
};
diff --git a/server/node_modules/bluebird/js/release/generators.js b/server/node_modules/bluebird/js/release/generators.js
old mode 100755
new mode 100644
index 40e9b1f..500c280
--- a/server/node_modules/bluebird/js/release/generators.js
+++ b/server/node_modules/bluebird/js/release/generators.js
@@ -157,7 +157,7 @@ PromiseSpawn.prototype._continue = function (result) {
if (maybePromise === null) {
this._promiseRejected(
new TypeError(
- "A value %s was yielded that could not be treated as a promise\u000a\u000a See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", value) +
+ "A value %s was yielded that could not be treated as a promise\u000a\u000a See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", String(value)) +
"From coroutine:\u000a" +
this._stack.split("\n").slice(1, -7).join("\n")
)
diff --git a/server/node_modules/bluebird/js/release/join.js b/server/node_modules/bluebird/js/release/join.js
old mode 100755
new mode 100644
index 4945e3f..e7e19f0
--- a/server/node_modules/bluebird/js/release/join.js
+++ b/server/node_modules/bluebird/js/release/join.js
@@ -1,7 +1,6 @@
"use strict";
module.exports =
-function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async,
- getDomain) {
+function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async) {
var util = require("./util");
var canEvaluate = util.canEvaluate;
var tryCatch = util.tryCatch;
@@ -147,10 +146,8 @@ Promise.join = function () {
if (!ret._isFateSealed()) {
if (holder.asyncNeeded) {
- var domain = getDomain();
- if (domain !== null) {
- holder.fn = util.domainBind(domain, holder.fn);
- }
+ var context = Promise._getContext();
+ holder.fn = util.contextBind(context, holder.fn);
}
ret._setAsyncGuaranteed();
ret._setOnCancel(holder);
@@ -159,7 +156,7 @@ Promise.join = function () {
}
}
}
- var $_len = arguments.length;var args = new Array($_len); for(var $_i = 0; $_i < $_len; ++$_i) {args[$_i] = arguments[$_i];};
+ var $_len = arguments.length;var args = new Array($_len); for(var $_i = 0; $_i < $_len ; ++$_i) {args[$_i] = arguments[$_i ];};
if (fn) args.pop();
var ret = new PromiseArray(args).promise();
return fn !== undefined ? ret.spread(fn) : ret;
diff --git a/server/node_modules/bluebird/js/release/map.js b/server/node_modules/bluebird/js/release/map.js
old mode 100755
new mode 100644
index 976f15e..91d5a82
--- a/server/node_modules/bluebird/js/release/map.js
+++ b/server/node_modules/bluebird/js/release/map.js
@@ -5,7 +5,6 @@ module.exports = function(Promise,
tryConvertToPromise,
INTERNAL,
debug) {
-var getDomain = Promise._getDomain;
var util = require("./util");
var tryCatch = util.tryCatch;
var errorObj = util.errorObj;
@@ -14,8 +13,8 @@ var async = Promise._async;
function MappingPromiseArray(promises, fn, limit, _filter) {
this.constructor$(promises);
this._promise._captureStackTrace();
- var domain = getDomain();
- this._callback = domain === null ? fn : util.domainBind(domain, fn);
+ var context = Promise._getContext();
+ this._callback = util.contextBind(context, fn);
this._preservedValues = _filter === INTERNAL
? new Array(this.length())
: null;
@@ -23,6 +22,14 @@ function MappingPromiseArray(promises, fn, limit, _filter) {
this._inFlight = 0;
this._queue = [];
async.invoke(this._asyncInit, this, undefined);
+ if (util.isArray(promises)) {
+ for (var i = 0; i < promises.length; ++i) {
+ var maybePromise = promises[i];
+ if (maybePromise instanceof Promise) {
+ maybePromise.suppressUnhandledRejections();
+ }
+ }
+ }
}
util.inherits(MappingPromiseArray, PromiseArray);
diff --git a/server/node_modules/bluebird/js/release/method.js b/server/node_modules/bluebird/js/release/method.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/nodeback.js b/server/node_modules/bluebird/js/release/nodeback.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/nodeify.js b/server/node_modules/bluebird/js/release/nodeify.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/promise.js b/server/node_modules/bluebird/js/release/promise.js
old mode 100755
new mode 100644
index f699a53..622a86f
--- a/server/node_modules/bluebird/js/release/promise.js
+++ b/server/node_modules/bluebird/js/release/promise.js
@@ -12,20 +12,42 @@ var apiRejection = function(msg) {
function Proxyable() {}
var UNDEFINED_BINDING = {};
var util = require("./util");
+util.setReflectHandler(reflectHandler);
-var getDomain;
-if (util.isNode) {
- getDomain = function() {
- var ret = process.domain;
- if (ret === undefined) ret = null;
- return ret;
- };
-} else {
- getDomain = function() {
+var getDomain = function() {
+ var domain = process.domain;
+ if (domain === undefined) {
return null;
+ }
+ return domain;
+};
+var getContextDefault = function() {
+ return null;
+};
+var getContextDomain = function() {
+ return {
+ domain: getDomain(),
+ async: null
};
-}
-util.notEnumerableProp(Promise, "_getDomain", getDomain);
+};
+var AsyncResource = util.isNode && util.nodeSupportsAsyncResource ?
+ require("async_hooks").AsyncResource : null;
+var getContextAsyncHooks = function() {
+ return {
+ domain: getDomain(),
+ async: new AsyncResource("Bluebird::Promise")
+ };
+};
+var getContext = util.isNode ? getContextDomain : getContextDefault;
+util.notEnumerableProp(Promise, "_getContext", getContext);
+var enableAsyncHooks = function() {
+ getContext = getContextAsyncHooks;
+ util.notEnumerableProp(Promise, "_getContext", getContextAsyncHooks);
+};
+var disableAsyncHooks = function() {
+ getContext = getContextDomain;
+ util.notEnumerableProp(Promise, "_getContext", getContextDomain);
+};
var es5 = require("./es5");
var Async = require("./async");
@@ -49,33 +71,36 @@ var PromiseArray =
var Context = require("./context")(Promise);
/*jshint unused:false*/
var createContext = Context.create;
-var debug = require("./debuggability")(Promise, Context);
+
+var debug = require("./debuggability")(Promise, Context,
+ enableAsyncHooks, disableAsyncHooks);
var CapturedTrace = debug.CapturedTrace;
var PassThroughHandlerContext =
- require("./finally")(Promise, tryConvertToPromise);
+ require("./finally")(Promise, tryConvertToPromise, NEXT_FILTER);
var catchFilter = require("./catch_filter")(NEXT_FILTER);
var nodebackForPromise = require("./nodeback");
var errorObj = util.errorObj;
var tryCatch = util.tryCatch;
function check(self, executor) {
+ if (self == null || self.constructor !== Promise) {
+ throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a");
+ }
if (typeof executor !== "function") {
throw new TypeError("expecting a function but got " + util.classString(executor));
}
- if (self.constructor !== Promise) {
- throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a");
- }
+
}
function Promise(executor) {
+ if (executor !== INTERNAL) {
+ check(this, executor);
+ }
this._bitField = 0;
this._fulfillmentHandler0 = undefined;
this._rejectionHandler0 = undefined;
this._promise0 = undefined;
this._receiver0 = undefined;
- if (executor !== INTERNAL) {
- check(this, executor);
- this._resolveFromExecutor(executor);
- }
+ this._resolveFromExecutor(executor);
this._promiseCreated();
this._fireEvent("promiseCreated", this);
}
@@ -94,12 +119,17 @@ Promise.prototype.caught = Promise.prototype["catch"] = function (fn) {
if (util.isObject(item)) {
catchInstances[j++] = item;
} else {
- return apiRejection("expecting an object but got " +
- "A catch statement predicate " + util.classString(item));
+ return apiRejection("Catch statement predicate: " +
+ "expecting an object but got " + util.classString(item));
}
}
catchInstances.length = j;
fn = arguments[i];
+
+ if (typeof fn !== "function") {
+ throw new TypeError("The last argument to .catch() " +
+ "must be a function, got " + util.toString(fn));
+ }
return this.then(undefined, catchFilter(catchInstances, fn, this));
}
return this.then(undefined, fn);
@@ -240,7 +270,7 @@ Promise.prototype._then = function (
this._fireEvent("promiseChained", this, promise);
}
- var domain = getDomain();
+ var context = getContext();
if (!((bitField & 50397184) === 0)) {
var handler, value, settler = target._settlePromiseCtx;
if (((bitField & 33554432) !== 0)) {
@@ -258,15 +288,14 @@ Promise.prototype._then = function (
}
async.invoke(settler, target, {
- handler: domain === null ? handler
- : (typeof handler === "function" &&
- util.domainBind(domain, handler)),
+ handler: util.contextBind(context, handler),
promise: promise,
receiver: receiver,
value: value
});
} else {
- target._addCallbacks(didFulfill, didReject, promise, receiver, domain);
+ target._addCallbacks(didFulfill, didReject, promise,
+ receiver, context);
}
return promise;
@@ -327,7 +356,15 @@ Promise.prototype._setWillBeCancelled = function() {
Promise.prototype._setAsyncGuaranteed = function() {
if (async.hasCustomScheduler()) return;
- this._bitField = this._bitField | 134217728;
+ var bitField = this._bitField;
+ this._bitField = bitField |
+ (((bitField & 536870912) >> 2) ^
+ 134217728);
+};
+
+Promise.prototype._setNoAsyncGuarantee = function() {
+ this._bitField = (this._bitField | 536870912) &
+ (~134217728);
};
Promise.prototype._receiverAt = function (index) {
@@ -382,7 +419,7 @@ Promise.prototype._addCallbacks = function (
reject,
promise,
receiver,
- domain
+ context
) {
var index = this._length();
@@ -395,12 +432,10 @@ Promise.prototype._addCallbacks = function (
this._promise0 = promise;
this._receiver0 = receiver;
if (typeof fulfill === "function") {
- this._fulfillmentHandler0 =
- domain === null ? fulfill : util.domainBind(domain, fulfill);
+ this._fulfillmentHandler0 = util.contextBind(context, fulfill);
}
if (typeof reject === "function") {
- this._rejectionHandler0 =
- domain === null ? reject : util.domainBind(domain, reject);
+ this._rejectionHandler0 = util.contextBind(context, reject);
}
} else {
var base = index * 4 - 4;
@@ -408,11 +443,11 @@ Promise.prototype._addCallbacks = function (
this[base + 3] = receiver;
if (typeof fulfill === "function") {
this[base + 0] =
- domain === null ? fulfill : util.domainBind(domain, fulfill);
+ util.contextBind(context, fulfill);
}
if (typeof reject === "function") {
this[base + 1] =
- domain === null ? reject : util.domainBind(domain, reject);
+ util.contextBind(context, reject);
}
}
this._setLength(index + 1);
@@ -432,6 +467,7 @@ Promise.prototype._resolveCallback = function(value, shouldBind) {
if (shouldBind) this._propagateFrom(maybePromise, 2);
+
var promise = maybePromise._target();
if (promise === this) {
@@ -448,7 +484,7 @@ Promise.prototype._resolveCallback = function(value, shouldBind) {
}
this._setFollowing();
this._setLength(0);
- this._setFollowee(promise);
+ this._setFollowee(maybePromise);
} else if (((bitField & 33554432) !== 0)) {
this._fulfill(promise._value());
} else if (((bitField & 16777216) !== 0)) {
@@ -474,6 +510,7 @@ function(reason, synchronous, ignoreNonErrorWarnings) {
};
Promise.prototype._resolveFromExecutor = function (executor) {
+ if (executor === INTERNAL) return;
var promise = this;
this._captureStackTrace();
this._pushContext();
@@ -637,6 +674,7 @@ Promise.prototype._fulfill = function (value) {
} else {
async.settlePromises(this);
}
+ this._dereferenceTrace();
}
};
@@ -705,6 +743,14 @@ Promise.prototype._settledValue = function() {
}
};
+if (typeof Symbol !== "undefined" && Symbol.toStringTag) {
+ es5.defineProperty(Promise.prototype, Symbol.toStringTag, {
+ get: function () {
+ return "Object";
+ }
+ });
+}
+
function deferResolve(v) {this.promise._resolveCallback(v);}
function deferReject(v) {this.promise._rejectCallback(v, false);}
@@ -729,14 +775,12 @@ require("./cancel")(Promise, PromiseArray, apiRejection, debug);
require("./direct_resolve")(Promise);
require("./synchronous_inspection")(Promise);
require("./join")(
- Promise, PromiseArray, tryConvertToPromise, INTERNAL, async, getDomain);
+ Promise, PromiseArray, tryConvertToPromise, INTERNAL, async);
Promise.Promise = Promise;
-Promise.version = "3.4.7";
-require('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);
+Promise.version = "3.7.2";
require('./call_get.js')(Promise);
-require('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug);
-require('./timers.js')(Promise, INTERNAL, debug);
require('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug);
+require('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);
require('./nodeify.js')(Promise);
require('./promisify.js')(Promise, INTERNAL);
require('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection);
@@ -744,9 +788,11 @@ require('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection);
require('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);
require('./settle.js')(Promise, PromiseArray, debug);
require('./some.js')(Promise, PromiseArray, apiRejection);
-require('./filter.js')(Promise, INTERNAL);
-require('./each.js')(Promise, INTERNAL);
+require('./timers.js')(Promise, INTERNAL, debug);
+require('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug);
require('./any.js')(Promise);
+require('./each.js')(Promise, INTERNAL);
+require('./filter.js')(Promise, INTERNAL);
util.toFastProperties(Promise);
util.toFastProperties(Promise.prototype);
diff --git a/server/node_modules/bluebird/js/release/promise_array.js b/server/node_modules/bluebird/js/release/promise_array.js
old mode 100755
new mode 100644
index f874df3..8fc665a
--- a/server/node_modules/bluebird/js/release/promise_array.js
+++ b/server/node_modules/bluebird/js/release/promise_array.js
@@ -8,6 +8,7 @@ function toResolutionValue(val) {
switch(val) {
case -2: return [];
case -3: return {};
+ case -6: return new Map();
}
}
@@ -15,6 +16,7 @@ function PromiseArray(values) {
var promise = this._promise = new Promise(INTERNAL);
if (values instanceof Promise) {
promise._propagateFrom(values, 3);
+ values.suppressUnhandledRejections();
}
promise._setOnCancel(this);
this._values = values;
diff --git a/server/node_modules/bluebird/js/release/promisify.js b/server/node_modules/bluebird/js/release/promisify.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/props.js b/server/node_modules/bluebird/js/release/props.js
old mode 100755
new mode 100644
index fc981ce..6a34aaf
--- a/server/node_modules/bluebird/js/release/props.js
+++ b/server/node_modules/bluebird/js/release/props.js
@@ -55,7 +55,7 @@ function PropertiesPromiseArray(obj) {
}
this.constructor$(entries);
this._isMap = isMap;
- this._init$(undefined, -3);
+ this._init$(undefined, isMap ? -6 : -3);
}
util.inherits(PropertiesPromiseArray, PromiseArray);
diff --git a/server/node_modules/bluebird/js/release/queue.js b/server/node_modules/bluebird/js/release/queue.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/race.js b/server/node_modules/bluebird/js/release/race.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/reduce.js b/server/node_modules/bluebird/js/release/reduce.js
old mode 100755
new mode 100644
index 26e2b1a..101ac22
--- a/server/node_modules/bluebird/js/release/reduce.js
+++ b/server/node_modules/bluebird/js/release/reduce.js
@@ -5,14 +5,13 @@ module.exports = function(Promise,
tryConvertToPromise,
INTERNAL,
debug) {
-var getDomain = Promise._getDomain;
var util = require("./util");
var tryCatch = util.tryCatch;
function ReductionPromiseArray(promises, fn, initialValue, _each) {
this.constructor$(promises);
- var domain = getDomain();
- this._fn = domain === null ? fn : util.domainBind(domain, fn);
+ var context = Promise._getContext();
+ this._fn = util.contextBind(context, fn);
if (initialValue !== undefined) {
initialValue = Promise.resolve(initialValue);
initialValue._attachCancellationCallback(this);
@@ -32,8 +31,8 @@ function ReductionPromiseArray(promises, fn, initialValue, _each) {
util.inherits(ReductionPromiseArray, PromiseArray);
ReductionPromiseArray.prototype._gotAccum = function(accum) {
- if (this._eachValues !== undefined &&
- this._eachValues !== null &&
+ if (this._eachValues !== undefined &&
+ this._eachValues !== null &&
accum !== INTERNAL) {
this._eachValues.push(accum);
}
@@ -89,6 +88,13 @@ ReductionPromiseArray.prototype._iterate = function (values) {
this._currentCancellable = value;
+ for (var j = i; j < length; ++j) {
+ var maybePromise = values[j];
+ if (maybePromise instanceof Promise) {
+ maybePromise.suppressUnhandledRejections();
+ }
+ }
+
if (!value.isRejected()) {
for (; i < length; ++i) {
var ctx = {
@@ -98,7 +104,12 @@ ReductionPromiseArray.prototype._iterate = function (values) {
length: length,
array: this
};
+
value = value._then(gotAccum, undefined, undefined, ctx, undefined);
+
+ if ((i & 127) === 0) {
+ value._setNoAsyncGuarantee();
+ }
}
}
diff --git a/server/node_modules/bluebird/js/release/schedule.js b/server/node_modules/bluebird/js/release/schedule.js
old mode 100755
new mode 100644
index a190728..15197d1
--- a/server/node_modules/bluebird/js/release/schedule.js
+++ b/server/node_modules/bluebird/js/release/schedule.js
@@ -20,7 +20,8 @@ if (util.isNode && typeof MutationObserver === "undefined") {
} else if ((typeof MutationObserver !== "undefined") &&
!(typeof window !== "undefined" &&
window.navigator &&
- (window.navigator.standalone || window.cordova))) {
+ (window.navigator.standalone || window.cordova)) &&
+ ("classList" in document.documentElement)) {
schedule = (function() {
var div = document.createElement("div");
var opts = {attributes: true};
@@ -34,11 +35,11 @@ if (util.isNode && typeof MutationObserver === "undefined") {
var scheduleToggle = function() {
if (toggleScheduled) return;
- toggleScheduled = true;
- div2.classList.toggle("foo");
- };
+ toggleScheduled = true;
+ div2.classList.toggle("foo");
+ };
- return function schedule(fn) {
+ return function schedule(fn) {
var o = new MutationObserver(function() {
o.disconnect();
fn();
diff --git a/server/node_modules/bluebird/js/release/settle.js b/server/node_modules/bluebird/js/release/settle.js
old mode 100755
new mode 100644
index fade3a1..e24b204
--- a/server/node_modules/bluebird/js/release/settle.js
+++ b/server/node_modules/bluebird/js/release/settle.js
@@ -37,6 +37,10 @@ Promise.settle = function (promises) {
return new SettledPromiseArray(promises).promise();
};
+Promise.allSettled = function (promises) {
+ return new SettledPromiseArray(promises).promise();
+};
+
Promise.prototype.settle = function () {
return Promise.settle(this);
};
diff --git a/server/node_modules/bluebird/js/release/some.js b/server/node_modules/bluebird/js/release/some.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/synchronous_inspection.js b/server/node_modules/bluebird/js/release/synchronous_inspection.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/thenables.js b/server/node_modules/bluebird/js/release/thenables.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/timers.js b/server/node_modules/bluebird/js/release/timers.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/using.js b/server/node_modules/bluebird/js/release/using.js
old mode 100755
new mode 100644
diff --git a/server/node_modules/bluebird/js/release/util.js b/server/node_modules/bluebird/js/release/util.js
old mode 100755
new mode 100644
index 84c28ec..8ca4d91
--- a/server/node_modules/bluebird/js/release/util.js
+++ b/server/node_modules/bluebird/js/release/util.js
@@ -195,8 +195,12 @@ function toFastProperties(obj) {
/*jshint -W027,-W055,-W031*/
function FakeConstructor() {}
FakeConstructor.prototype = obj;
- var l = 8;
- while (l--) new FakeConstructor();
+ var receiver = new FakeConstructor();
+ function ic() {
+ return typeof receiver.foo;
+ }
+ ic();
+ ic();
return obj;
eval(obj);
}
@@ -223,10 +227,11 @@ function safeToString(obj) {
}
function isError(obj) {
- return obj !== null &&
+ return obj instanceof Error ||
+ (obj !== null &&
typeof obj === "object" &&
typeof obj.message === "string" &&
- typeof obj.name === "string";
+ typeof obj.name === "string");
}
function markAsOriginatingFromRejection(e) {
@@ -321,18 +326,42 @@ function getNativePromise() {
if (typeof Promise === "function") {
try {
var promise = new Promise(function(){});
- if ({}.toString.call(promise) === "[object Promise]") {
+ if (classString(promise) === "[object Promise]") {
return Promise;
}
} catch (e) {}
}
}
-function domainBind(self, cb) {
- return self.bind(cb);
+var reflectHandler;
+function contextBind(ctx, cb) {
+ if (ctx === null ||
+ typeof cb !== "function" ||
+ cb === reflectHandler) {
+ return cb;
+ }
+
+ if (ctx.domain !== null) {
+ cb = ctx.domain.bind(cb);
+ }
+
+ var async = ctx.async;
+ if (async !== null) {
+ var old = cb;
+ cb = function() {
+ var $_len = arguments.length + 2;var args = new Array($_len); for(var $_i = 2; $_i < $_len ; ++$_i) {args[$_i] = arguments[$_i - 2];};
+ args[0] = old;
+ args[1] = this;
+ return async.runInAsyncScope.apply(async, args);
+ };
+ }
+ return cb;
}
var ret = {
+ setReflectHandler: function(fn) {
+ reflectHandler = fn;
+ },
isClass: isClass,
isIdentifier: isIdentifier,
inheritedDataKeys: inheritedDataKeys,
@@ -359,19 +388,32 @@ var ret = {
markAsOriginatingFromRejection: markAsOriginatingFromRejection,
classString: classString,
copyDescriptors: copyDescriptors,
- hasDevTools: typeof chrome !== "undefined" && chrome &&
- typeof chrome.loadTimes === "function",
isNode: isNode,
hasEnvVariables: hasEnvVariables,
env: env,
global: globalObject,
getNativePromise: getNativePromise,
- domainBind: domainBind
+ contextBind: contextBind
};
ret.isRecentNode = ret.isNode && (function() {
- var version = process.versions.node.split(".").map(Number);
+ var version;
+ if (process.versions && process.versions.node) {
+ version = process.versions.node.split(".").map(Number);
+ } else if (process.version) {
+ version = process.version.split(".").map(Number);
+ }
return (version[0] === 0 && version[1] > 10) || (version[0] > 0);
})();
+ret.nodeSupportsAsyncResource = ret.isNode && (function() {
+ var supportsAsync = false;
+ try {
+ var res = require("async_hooks").AsyncResource;
+ supportsAsync = typeof res.prototype.runInAsyncScope === "function";
+ } catch (e) {
+ supportsAsync = false;
+ }
+ return supportsAsync;
+})();
if (ret.isNode) ret.toFastProperties(process);
diff --git a/server/node_modules/bluebird/package.json b/server/node_modules/bluebird/package.json
old mode 100755
new mode 100644
index 08a824e..ee46bd7
--- a/server/node_modules/bluebird/package.json
+++ b/server/node_modules/bluebird/package.json
@@ -1,27 +1,28 @@
{
- "_from": "bluebird@~3.4.1",
- "_id": "bluebird@3.4.7",
+ "_from": "bluebird",
+ "_id": "bluebird@3.7.2",
"_inBundle": false,
- "_integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=",
+ "_integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
"_location": "/bluebird",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "tag",
"registry": true,
- "raw": "bluebird@~3.4.1",
+ "raw": "bluebird",
"name": "bluebird",
"escapedName": "bluebird",
- "rawSpec": "~3.4.1",
+ "rawSpec": "",
"saveSpec": null,
- "fetchSpec": "~3.4.1"
+ "fetchSpec": "latest"
},
"_requiredBy": [
- "/unzipper"
+ "#USER",
+ "/"
],
- "_resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
- "_shasum": "f72d760be09b7f76d08ed8fae98b289a8d05fab3",
- "_spec": "bluebird@~3.4.1",
- "_where": "/home/sigonasr2/divar/server/node_modules/unzipper",
+ "_resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "_shasum": "9f229c15be272454ffa973ace0dbee79a1b0c36f",
+ "_spec": "bluebird",
+ "_where": "/home/sigonasr2/divar/server",
"author": {
"name": "Petka Antonov",
"email": "petka_antonov@hotmail.com",
@@ -35,7 +36,8 @@
"deprecated": false,
"description": "Full featured Promises/A+ implementation with exceptionally good performance",
"devDependencies": {
- "acorn": "~0.6.0",
+ "acorn": "^6.0.2",
+ "acorn-walk": "^6.1.0",
"baconjs": "^0.7.43",
"bluebird": "^2.9.2",
"body-parser": "^1.10.2",
@@ -94,7 +96,8 @@
"istanbul": "istanbul",
"lint": "node scripts/jshint.js",
"prepublish": "npm run generate-browser-core && npm run generate-browser-full",
- "test": "node tools/test.js"
+ "test": "node --expose-gc tools/test.js"
},
- "version": "3.4.7"
+ "version": "3.7.2",
+ "webpack": "./js/release/bluebird.js"
}
diff --git a/server/node_modules/express-promise-router/.changeset/README.md b/server/node_modules/express-promise-router/.changeset/README.md
new file mode 100644
index 0000000..4f3b76b
--- /dev/null
+++ b/server/node_modules/express-promise-router/.changeset/README.md
@@ -0,0 +1,8 @@
+# Changesets
+
+Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
+with multi-package repos, or single-package repos to help you version and publish your code. You can
+find the full documentation for it [in our repository](https://github.com/changesets/changesets)
+
+We have a quick list of common questions to get you started engaging with this project in
+[our documentation](https://github.com/changesets/changesets/blob/master/docs/common-questions.md)
diff --git a/server/node_modules/express-promise-router/.changeset/config.json b/server/node_modules/express-promise-router/.changeset/config.json
new file mode 100644
index 0000000..0979e56
--- /dev/null
+++ b/server/node_modules/express-promise-router/.changeset/config.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "https://unpkg.com/@changesets/config@1.1.0/schema.json",
+ "changelog": "@changesets/cli/changelog",
+ "commit": false,
+ "linked": [],
+ "access": "restricted",
+ "baseBranch": "trunk",
+ "updateInternalDependencies": "patch"
+}
diff --git a/server/node_modules/express-promise-router/.eslintrc.json b/server/node_modules/express-promise-router/.eslintrc.json
new file mode 100644
index 0000000..b98a546
--- /dev/null
+++ b/server/node_modules/express-promise-router/.eslintrc.json
@@ -0,0 +1,13 @@
+{
+ "env": {
+ "node": true
+ },
+ "extends": ["eslint:recommended", "prettier"],
+ "globals": {
+ "Promise": true
+ },
+ "parserOptions": {
+ "ecmaVersion": 2017,
+ "sourceType": "script"
+ }
+}
diff --git a/server/node_modules/express-promise-router/.github/renovate.json5 b/server/node_modules/express-promise-router/.github/renovate.json5
new file mode 100644
index 0000000..24f7030
--- /dev/null
+++ b/server/node_modules/express-promise-router/.github/renovate.json5
@@ -0,0 +1,14 @@
+{
+ extends: ["config:base"],
+ packageRules: [
+ {
+ updateTypes: ["minor", "patch", "pin", "digest"],
+ automerge: true,
+ },
+ {
+ depTypeList: ["devDependencies"],
+ automerge: true,
+ },
+ ],
+ prHourlyLimit: 10,
+}
diff --git a/server/node_modules/express-promise-router/.github/workflows/test.yml b/server/node_modules/express-promise-router/.github/workflows/test.yml
new file mode 100644
index 0000000..cc98cde
--- /dev/null
+++ b/server/node_modules/express-promise-router/.github/workflows/test.yml
@@ -0,0 +1,24 @@
+name: Test
+
+on:
+ push:
+ branches: [trunk]
+ pull_request:
+ branches: [trunk]
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ node-version: [10.x, 12.x, 14.x]
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Use Node.js ${{ matrix.node-version }}
+ uses: actions/setup-node@v1
+ with:
+ node-version: ${{ matrix.node-version }}
+ - run: yarn --frozen-lockfile
+ - run: yarn test
diff --git a/server/node_modules/express-promise-router/.prettierrc.yaml b/server/node_modules/express-promise-router/.prettierrc.yaml
new file mode 100644
index 0000000..408b6a5
--- /dev/null
+++ b/server/node_modules/express-promise-router/.prettierrc.yaml
@@ -0,0 +1,2 @@
+trailingComma: "all"
+printWidth: 80
diff --git a/server/node_modules/express-promise-router/CHANGELOG.md b/server/node_modules/express-promise-router/CHANGELOG.md
new file mode 100644
index 0000000..d3614f3
--- /dev/null
+++ b/server/node_modules/express-promise-router/CHANGELOG.md
@@ -0,0 +1,76 @@
+# express-promise-router
+
+## 4.1.0
+
+### Minor Changes
+
+- c2f70e2: The handler function now uses the name of the original (wrapped) handler as its name to aid in debugging and tracing.
+
+## 4.0.1
+
+### Patch Changes
+
+- 04a9dc3: Fix TypeScript dependencies for yarn v2 users, by including @types/express as an optional dependency.
+ [#66](https://github.com/express-promise-router/express-promise-router/issues/66)
+ [#96](https://github.com/express-promise-router/express-promise-router/pull/96)
+
+## 4.0.0
+
+### Breaking Changes
+
+- Drop old (v4, v6, v8) node versions
+ [#68](https://github.com/express-promise-router/express-promise-router/pull/68)
+
+### Patch Changes
+
+- 5739c6a: Fix incorrect array access check.
+
+### Internal / Dev / Testing
+
+- ecb1c51: Update deep transitive dependencies of eslint to remove vulnerable package "minimist".
+- 1aff90b: Update dependency to remove transitive dependency on vulnerable package "minimist".
+- b35e29d: Update babel to remove transitive dependency on vulnerable package "minimist".
+
+## v3.0.3
+
+- Improve package dependencies
+ [#57](https://github.com/express-promise-router/express-promise-router/issues/57)
+
+### v3.0.2
+
+- Add `default` property to simulate es6 style default export
+ [#50](https://github.com/express-promise-router/express-promise-router/issues/50)
+ [#51](https://github.com/express-promise-router/express-promise-router/pull/51)
+
+## v3.0.1
+
+- Remove `@types/express` peerDependency
+ [#47](https://github.com/express-promise-router/express-promise-router/pull/47)
+ [#48](https://github.com/express-promise-router/express-promise-router/pull/48)
+
+## v3.0.0
+
+- Update to `chai` 4
+- Update to `mocha` 4
+- Update to `eslint` 4
+- Update to `sinon` 4
+- Reduced lodash usage and footprint [#41](https://github.com/express-promise-router/express-promise-router/issues/41)
+- Added TypeScript definitions [#47](https://github.com/express-promise-router/express-promise-router/pull/47)
+
+## v2.0.0
+
+- Dropped support for old Node versions (<4).
+ - Supported: Node 4 LTS, Node 6 LTS, Node current.
+- Use native promises instead of bluebird. (One less dependency!)
+- Use [`is-promise`](https://github.com/then/is-promise) module instead of our own function.
+
+## v1.1.1
+
+- Update to [`lodash`](https://lodash.com) 4
+- Update to [`bluebird`](http://bluebirdjs.com/) 3
+
+## v1.1.0
+
+- Improvements to error reporting
+- Support for route array
+- Bug fixes
diff --git a/server/node_modules/express-promise-router/LICENSE b/server/node_modules/express-promise-router/LICENSE
new file mode 100644
index 0000000..9aa6e84
--- /dev/null
+++ b/server/node_modules/express-promise-router/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2014 express-promise-router
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/server/node_modules/express-promise-router/README.md b/server/node_modules/express-promise-router/README.md
new file mode 100644
index 0000000..55b4a1f
--- /dev/null
+++ b/server/node_modules/express-promise-router/README.md
@@ -0,0 +1,182 @@
+# express-promise-router
+
+[![npm version](https://badge.fury.io/js/express-promise-router.svg)](https://badge.fury.io/js/express-promise-router)
+
+A simple wrapper for Express 4's Router that allows middleware to return promises.
+This package makes it simpler to write route handlers for Express when dealing
+with promises by reducing duplicate code.
+
+## Getting Started
+
+Install the module with npm
+
+```bash
+npm install express-promise-router --save
+```
+
+or yarn.
+
+```bash
+yarn add express-promise-router
+```
+
+`express-promise-router` is a drop-in replacement for Express 4's `Router`.
+
+## Documentation
+
+Middleware and route handlers can simply return a promise.
+If the promise is rejected, `express-promise-router` will call `next` with the
+reason. This functionality removes the need to explicitly define a rejection
+handler.
+
+```javascript
+// With Express 4's router
+var router = require("express").Router();
+
+router.use("/url", function (req, res, next) {
+ Promise.reject().catch(next);
+});
+
+// With express-promise-router
+var router = require("express-promise-router")();
+
+router.use("/url", function (req, res) {
+ return Promise.reject();
+});
+```
+
+Calling `next()` and `next("route")` is supported by resolving a promise with either `"next"` or `"route"`. No action is taken if the promise is resolved with any other value.
+
+```javascript
+router.use("/url", function (req, res) {
+ // equivalent to calling next()
+ return Promise.resolve("next");
+});
+
+router.use("/url", function (req, res) {
+ // equivalent to calling next('route')
+ return Promise.resolve("route");
+});
+```
+
+This package still allows calling `next` directly.
+
+```javascript
+router = require("express-promise-router")();
+
+// still works as expected
+router.use("/url", function (req, res, next) {
+ next();
+});
+```
+
+### ES6 Imports
+
+`express-promise-router` can be imported via ES6 imports. The `Router`
+constructor is the default export.
+
+```javascript
+import Router from "express-promise-router";
+const router = Router();
+```
+
+### Async / Await
+
+Using `async` / `await` can dramatically improve code readability.
+
+```javascript
+router.get('/url', async (req, res) {
+ const user = await User.fetch(req.user.id);
+
+ if (user.permission !== "ADMIN") {
+ throw new Error("You must be an admin to view this page.");
+ }
+
+ res.send(`Hi ${user.name}!`);
+})
+```
+
+### Error handling
+
+Just like with regular `express.Router` you can define custom error handlers.
+
+```javascript
+router.use((err, req, res, next) => {
+ res.status(403).send(err.message);
+});
+```
+
+### Frequently Asked Questions
+
+#### `Cannot read property '0' of undefined`
+
+This error may indicate that you call a method that needs a path, without one.
+Calling `router.get` (or `post`, `all` or any other verb) without a path is not
+valid. You should always specify a path like this:
+
+```javascript
+// DO:
+router.get("/", function (req, res) {
+ res.send("Test");
+});
+
+// DON'T:
+router.get(function (req, res) {
+ res.send("Test");
+});
+```
+
+For more information take a look at [this comment](https://github.com/express-promise-router/express-promise-router/issues/46#issuecomment-342002277).
+
+#### Can i use this on `app`?
+
+We currently don't support promisifying the `app` object. To use promises with
+the top-level router we recommend mounting a `Router` on the app object, like
+this:
+
+```javascript
+import express from "express";
+import Router from "express-promise-router";
+
+const app = express();
+const router = Router();
+app.use(router);
+
+router.get("/", function (req, res) {
+ res.send("Test");
+});
+```
+
+#### Why aren't promise values sent to the client
+
+We don't send values at the end of the promise chain to the client, because this
+could easily lead to the unintended leak of secrets or internal state. If you
+intend to send the result of your chain as JSON, please add an explicit
+`.then(data => res.send(data))` to the end of your chain or send it in the last
+promise handler.
+
+## Contributing
+
+Add unit tests for any new or changed functionality.
+Lint and test your code using `npm test`.
+
+Unit tests use [mocha](https://mochajs.org) and
+[chai](http://chaijs.com).
+
+We use [eslint](http://eslint.org), but styling is
+controlled mostly by
+[prettier](https://github.com/prettier/prettier/blob/master/README.md)
+which reformats your code before you commit. You can manually trigger a
+reformat using `npm run-script format`.
+
+## Release History
+
+See [CHANGELOG](https://github.com/express-promise-router/express-promise-router/blob/trunk/CHANGELOG.md)
+
+## Attribution
+
+Licensed under the [MIT license](LICENSE).
+
+Initial implementation by [Alex Whitney](https://github.com/alex-whitney) \
+Maintained by [Moritz Mahringer](https://github.com/mormahr) \
+Contributed to by [awesome people](https://github.com/express-promise-router/express-promise-router/graphs/contributors)
diff --git a/server/node_modules/express-promise-router/index.d.ts b/server/node_modules/express-promise-router/index.d.ts
new file mode 100644
index 0000000..fe1acda
--- /dev/null
+++ b/server/node_modules/express-promise-router/index.d.ts
@@ -0,0 +1,7 @@
+declare module "express-promise-router" {
+ import { Router, RouterOptions } from "express";
+
+ function PromiseRouter(options?: RouterOptions): Router;
+
+ export default PromiseRouter;
+}
diff --git a/server/node_modules/express-promise-router/lib/express-promise-router.js b/server/node_modules/express-promise-router/lib/express-promise-router.js
new file mode 100644
index 0000000..4309cd0
--- /dev/null
+++ b/server/node_modules/express-promise-router/lib/express-promise-router.js
@@ -0,0 +1,125 @@
+"use strict";
+var Router = require("express").Router;
+var flattenDeep = require("lodash.flattendeep");
+var isPromise = require("is-promise");
+
+var wrapHandler = function (handler) {
+ if ("function" !== typeof handler) {
+ var type = Object.prototype.toString.call(handler);
+ var msg = "Expected a callback function but got a " + type;
+ throw new Error(msg);
+ }
+
+ var handleReturn = function (args) {
+ // Find the next function from the arguments
+ var next = args.slice(-1)[0];
+
+ // When calling router.param, the last parameter is a string, not next.
+ // If so, the next should be the one before it.
+ if ("string" === typeof next) {
+ next = args.slice(-2)[0];
+ }
+
+ // Call the route
+ var ret = handler.apply(null, args);
+
+ // If it doesn't return a promise, we exit.
+ if (!isPromise(ret)) {
+ return;
+ }
+
+ // Since we got a promise, we handle calling next
+ Promise.resolve(ret).then(
+ function (d) {
+ if (d === "next") {
+ next();
+ } else if (d === "route") {
+ next("route");
+ }
+ },
+ function (err) {
+ if (!err) {
+ err = new Error(
+ "returned promise was rejected but did not have a reason",
+ );
+ }
+ next(err);
+ },
+ );
+ };
+
+ if (handler.length === 4) {
+ // Preserve the original handler function name. See #146.
+ const wrapperObj = {
+ [handler.name]: function (err, req, res, next) {
+ handleReturn([err, req, res, next]);
+ },
+ };
+ return wrapperObj[handler.name];
+ }
+
+ // Preserve the original handler function name. See #146.
+ const wrapperObj = {
+ [handler.name]: function (req, res, next) {
+ handleReturn([req, res, next]);
+ },
+ };
+ return wrapperObj[handler.name];
+};
+
+var wrapMethods = function (instanceToWrap, isRoute) {
+ var toConcat = isRoute ? ["all"] : ["use", "all", "param"];
+
+ var methods = require("methods").concat(toConcat);
+
+ methods.forEach(function (method) {
+ var original = "__" + method;
+ instanceToWrap[original] = instanceToWrap[method];
+ instanceToWrap[method] = function () {
+ // Manipulating arguments directly is discouraged
+ var args = new Array(arguments.length);
+ for (var i = 0; i < arguments.length; ++i) {
+ args[i] = arguments[i];
+ }
+
+ // Grab the first parameter out in case it's a route or array of routes.
+ var first = null;
+ if (
+ "string" === typeof args[0] ||
+ args[0] instanceof RegExp ||
+ (Array.isArray(args[0]) &&
+ ("string" === typeof args[0][0] || args[0][0] instanceof RegExp))
+ ) {
+ first = args[0];
+ args = args.slice(1);
+ }
+
+ args = flattenDeep(args).map(function (arg) {
+ return wrapHandler(arg);
+ });
+
+ // If we have a route path or something, push it in front
+ if (first) {
+ args.unshift(first);
+ }
+
+ return instanceToWrap[original].apply(this, args);
+ };
+ });
+
+ return instanceToWrap;
+};
+
+var PromiseRouter = function (path) {
+ var me = wrapMethods(new Router(path));
+
+ me.__route = me.route;
+ me.route = function (path) {
+ return wrapMethods(me.__route(path), true);
+ };
+
+ return me;
+};
+
+PromiseRouter.default = PromiseRouter;
+module.exports = PromiseRouter;
diff --git a/server/node_modules/express-promise-router/package.json b/server/node_modules/express-promise-router/package.json
new file mode 100644
index 0000000..9afa0bb
--- /dev/null
+++ b/server/node_modules/express-promise-router/package.json
@@ -0,0 +1,114 @@
+{
+ "_from": "express-promise-router",
+ "_id": "express-promise-router@4.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-nvg0X1Rj8oajPPC+fG3t4e740aNmQZRZY6dRLbiiM56Dvd8213RJ4kaxhZVTdQLut+l4DZdfeJkyx2VENPMBdw==",
+ "_location": "/express-promise-router",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "tag",
+ "registry": true,
+ "raw": "express-promise-router",
+ "name": "express-promise-router",
+ "escapedName": "express-promise-router",
+ "rawSpec": "",
+ "saveSpec": null,
+ "fetchSpec": "latest"
+ },
+ "_requiredBy": [
+ "#USER",
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/express-promise-router/-/express-promise-router-4.1.0.tgz",
+ "_shasum": "79160e145c27610ba411bceb0552a36f11dbab4f",
+ "_spec": "express-promise-router",
+ "_where": "/home/sigonasr2/divar/server",
+ "author": {
+ "name": "Moritz Mahringer",
+ "email": "contact@mahringer.dev"
+ },
+ "bugs": {
+ "url": "https://github.com/express-promise-router/express-promise-router/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Alex Whitney",
+ "email": "alex.whitney@gatech.edu"
+ }
+ ],
+ "dependencies": {
+ "is-promise": "^4.0.0",
+ "lodash.flattendeep": "^4.0.0",
+ "methods": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "A lightweight wrapper for Express 4's Router that allows middleware to return promises",
+ "devDependencies": {
+ "@babel/core": "7.13.10",
+ "@babel/plugin-transform-modules-commonjs": "7.13.8",
+ "@changesets/cli": "2.14.1",
+ "@mormahr/typescript-definition-tester": "1.1.0",
+ "@types/express": "4.17.11",
+ "chai": "4.3.4",
+ "eslint": "7.22.0",
+ "eslint-config-prettier": "8.1.0",
+ "express": "4.17.1",
+ "husky": "5.1.3",
+ "lint-staged": "10.5.4",
+ "mocha": "8.3.2",
+ "prettier": "2.2.1",
+ "request": "2.88.2",
+ "request-promise": "4.2.6",
+ "sinon": "9.2.4",
+ "typescript": "4.2.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "homepage": "https://github.com/express-promise-router/express-promise-router",
+ "husky": {
+ "hooks": {
+ "pre-commit": "lint-staged"
+ }
+ },
+ "keywords": [
+ "express",
+ "promise",
+ "router"
+ ],
+ "licenses": [
+ {
+ "type": "MIT"
+ }
+ ],
+ "lint-staged": {
+ "*.js": "eslint --cache --fix",
+ "*.{js,ts,yml,yaml,json,json5,css,md,.eslintrc}": "prettier --write"
+ },
+ "main": "lib/express-promise-router.js",
+ "name": "express-promise-router",
+ "peerDependencies": {
+ "express": "^4.0.0",
+ "@types/express": "^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/express": {
+ "optional": true
+ }
+ },
+ "publishConfig": {
+ "access": "public"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/express-promise-router/express-promise-router.git"
+ },
+ "scripts": {
+ "lint": "eslint {lib,test}/**/*.js",
+ "test": "npm run-script lint && npm run-script unit-tests",
+ "unit-tests": "mocha test/*.test.js"
+ },
+ "types": "index.d.ts",
+ "version": "4.1.0"
+}
diff --git a/server/node_modules/express-promise-router/test/.eslintrc b/server/node_modules/express-promise-router/test/.eslintrc
new file mode 100644
index 0000000..949ccc9
--- /dev/null
+++ b/server/node_modules/express-promise-router/test/.eslintrc
@@ -0,0 +1,8 @@
+{
+ "env": {
+ "mocha": true
+ },
+ "rules": {
+ "no-unused-vars": 0
+ }
+}
diff --git a/server/node_modules/express-promise-router/test/babel.test.js b/server/node_modules/express-promise-router/test/babel.test.js
new file mode 100644
index 0000000..7f7a4c1
--- /dev/null
+++ b/server/node_modules/express-promise-router/test/babel.test.js
@@ -0,0 +1,35 @@
+"use strict";
+
+var resolve = require("path").resolve;
+var assert = require("chai").assert;
+var spawnBabel = require("./util/launch-utils").spawnBabel;
+var GET = require("./util/http-utils").GET;
+
+describe("Babel", function () {
+ it("should run the example and respond", function (done) {
+ this.timeout(5000);
+ var js_file = resolve(__dirname, "./test-resources/babel-base-case.js");
+ var target = spawnBabel(js_file);
+ var called = false;
+
+ target.stdout.on("data", function (data) {
+ if (data.toString().indexOf("START") === -1) {
+ return;
+ }
+
+ GET("/").then(function () {
+ called = true;
+ target.kill("SIGINT");
+ });
+ });
+
+ target.stderr.on("data", function (data) {
+ console.error(data.toString());
+ });
+
+ target.on("close", function () {
+ assert(called);
+ done();
+ });
+ });
+});
diff --git a/server/node_modules/express-promise-router/test/commonjs.test.js b/server/node_modules/express-promise-router/test/commonjs.test.js
new file mode 100644
index 0000000..448649e
--- /dev/null
+++ b/server/node_modules/express-promise-router/test/commonjs.test.js
@@ -0,0 +1,35 @@
+"use strict";
+
+var resolve = require("path").resolve;
+var assert = require("chai").assert;
+var spawnJavaScript = require("./util/launch-utils").spawnJavaScript;
+var GET = require("./util/http-utils").GET;
+
+describe("CommonJs", function () {
+ it("should run the example and respond", function (done) {
+ this.timeout(5000);
+ var js_file = resolve(__dirname, "./test-resources/commonjs-base-case.js");
+ var target = spawnJavaScript(js_file);
+ var called = false;
+
+ target.stdout.on("data", function (data) {
+ if (data.toString().indexOf("START") === -1) {
+ return;
+ }
+
+ GET("/").then(function () {
+ called = true;
+ target.kill("SIGINT");
+ });
+ });
+
+ target.stderr.on("data", function (data) {
+ console.error(data.toString());
+ });
+
+ target.on("close", function () {
+ assert(called);
+ done();
+ });
+ });
+});
diff --git a/server/node_modules/express-promise-router/test/express-promise-router.route.test.js b/server/node_modules/express-promise-router/test/express-promise-router.route.test.js
new file mode 100644
index 0000000..47b87f6
--- /dev/null
+++ b/server/node_modules/express-promise-router/test/express-promise-router.route.test.js
@@ -0,0 +1,353 @@
+"use strict";
+
+var assert = require("chai").assert;
+var sinon = require("sinon");
+var express = require("express");
+var GET = require("./util/http-utils").GET;
+
+var delay = function (method, payload) {
+ setTimeout(function () {
+ method(payload);
+ }, 10);
+};
+
+var PromiseRouter = require("../lib/express-promise-router.js");
+
+describe("new Router().route(...)", function () {
+ var app;
+ var serverListening;
+ var server;
+ var router;
+
+ var bootstrap = function (router) {
+ app = express();
+ app.use("/", router);
+
+ if (serverListening) {
+ throw "already bootstrapped";
+ }
+
+ serverListening = new Promise(function (resolve, reject) {
+ server = app.listen(12345, function (err) {
+ if (err) {
+ reject(err);
+ } else {
+ resolve();
+ }
+ });
+ });
+
+ return serverListening;
+ };
+
+ beforeEach(function () {
+ router = new PromiseRouter();
+ });
+
+ afterEach(function () {
+ if (serverListening) {
+ return serverListening.then(function () {
+ server.close();
+ app = undefined;
+ server = undefined;
+ serverListening = undefined;
+ });
+ }
+ });
+
+ it("should call next with an error when a returned promise is rejected", function () {
+ var callback = sinon.spy();
+
+ router.route("/foo").get(function () {
+ return new Promise(function (resolve, reject) {
+ delay(reject, "some error");
+ });
+ });
+ router.use(function (err, req, res, next) {
+ assert.equal("some error", err);
+ callback();
+ res.send();
+ });
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function () {
+ assert(callback.calledOnce);
+ });
+ });
+
+ it('should call next without an error when a returned promise is resolved with "next"', function () {
+ var errorCallback = sinon.spy();
+ var nextCallback = sinon.spy();
+
+ router
+ .route("/foo")
+ .get(function () {
+ return new Promise(function (resolve) {
+ delay(resolve, "next");
+ });
+ })
+ .all(function (req, res) {
+ nextCallback();
+ res.send();
+ });
+ router.use(function (err, req, res, next) {
+ errorCallback();
+ next();
+ });
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function () {
+ assert(errorCallback.notCalled);
+ assert(nextCallback.calledOnce);
+ });
+ });
+
+ it('should not call next when a returned promise is resolved with anything other than "route" or "next"', function () {
+ var callback = sinon.spy();
+
+ router.route("/foo").get(function (req, res) {
+ return new Promise(function (resolve) {
+ res.send();
+ delay(resolve, "something");
+ });
+ });
+ router.route("/bar").get(function (req, res) {
+ return new Promise(function (resolve) {
+ res.send();
+ delay(resolve, {});
+ });
+ });
+ router.use(function (req, res) {
+ callback();
+ res.send(500);
+ });
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function () {
+ assert(callback.notCalled);
+ return GET("/bar");
+ })
+ .then(function () {
+ assert(callback.notCalled);
+ });
+ });
+
+ it("should move to the next middleware when next is called without an error", function () {
+ var callback = sinon.spy();
+
+ router
+ .route("/foo")
+ .get(function (req, res, next) {
+ next();
+ })
+ .all(function (req, res, next) {
+ callback();
+ res.send();
+ });
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function () {
+ assert(callback.calledOnce);
+ });
+ });
+
+ it("should move to the next error handler when next is called with an error", function () {
+ var callback = sinon.spy();
+ var errorCallback = sinon.spy();
+
+ router
+ .route("/foo")
+ .get(function (req, res, next) {
+ next("an error");
+ })
+ .all(function (req, res, next) {
+ callback();
+ next();
+ });
+ router.use(function (err, req, res, next) {
+ assert.equal("an error", err);
+ errorCallback();
+ res.send();
+ });
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function () {
+ assert(errorCallback.calledOnce);
+ assert(callback.notCalled);
+ });
+ });
+
+ it("should call chained handlers in the correct order", function () {
+ var fn2 = sinon.spy(function (req, res) {
+ res.send();
+ });
+ var fn1 = sinon.spy(function () {
+ assert(fn2.notCalled);
+ return Promise.resolve("next");
+ });
+
+ router.route("/foo").get(fn1, fn2);
+
+ return bootstrap(router).then(function () {
+ return GET("/foo");
+ });
+ });
+
+ it("should correctly call an array of handlers", function () {
+ var fn2 = sinon.spy(function (req, res) {
+ res.send();
+ });
+ var fn1 = sinon.spy(function () {
+ assert(fn2.notCalled);
+ return Promise.resolve("next");
+ });
+
+ router.route("/foo").get([[fn1], [fn2]]);
+
+ return bootstrap(router).then(function () {
+ return GET("/foo");
+ });
+ });
+
+ it('should call next("route") if a returned promise is resolved with "route"', function () {
+ var fn1 = function () {
+ return Promise.resolve("route");
+ };
+ var fn2 = function () {
+ assert.fail();
+ };
+
+ router.route("/foo").get(fn1, fn2);
+
+ router.route("/foo").get(function (req, res) {
+ res.send();
+ });
+
+ return bootstrap(router).then(function () {
+ return GET("/foo");
+ });
+ });
+
+ it("should bind to RegExp routes", function () {
+ var fn1 = function (req, res) {
+ res.send();
+ };
+
+ router.route(/^\/foo/).get(fn1);
+
+ return bootstrap(router).then(function () {
+ return GET("/foo");
+ });
+ });
+
+ it('multiple calls to handlers that have used "next" should not interfere with each other', function () {
+ var fn = sinon.spy(function (req, res, next) {
+ if (fn.calledOnce) {
+ next("error");
+ } else {
+ setTimeout(function () {
+ res.status(200).send("ok");
+ }, 15);
+ }
+ });
+ var errHandler = function (err, req, res, next) {
+ if (err === "error") {
+ res.send("fail");
+ } else {
+ next(err);
+ }
+ };
+
+ router.route("/foo").get(fn, errHandler);
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function (res) {
+ assert.equal(res.body, "fail");
+ return GET("/foo");
+ })
+ .then(function (res) {
+ assert.equal(res.body, "ok");
+ });
+ });
+
+ it("calls next if next is called even if the handler returns a promise", function () {
+ var fn = function (req, res, next) {
+ next();
+ return new Promise(function (resolve, reject) {});
+ };
+ var fn2 = function (req, res) {
+ res.send("ok");
+ };
+ var errHandler = function (err, req, res, next) {
+ res.send("error");
+ };
+
+ router.route("/foo").get(fn, fn2, errHandler);
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function (res) {
+ assert.equal(res.body, "ok");
+ });
+ });
+
+ it("calls next with an error if the returned promise is rejected with no reason", function () {
+ var fn = function () {
+ return new Promise(function (resolve, reject) {
+ delay(reject, null);
+ });
+ };
+ var errHandler = function (err, req, res, next) {
+ res.send("error");
+ };
+
+ router.route("/foo").get(fn, errHandler);
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function (res) {
+ assert.equal(res.body, "error");
+ });
+ });
+
+ it("should handle resolved promises returned in req.param() calls", function () {
+ router.param("id", function () {
+ return new Promise(function (resolve) {
+ delay(resolve, "next");
+ });
+ });
+ router.route("/foo/:id").all(function (req, res) {
+ res.send("done");
+ });
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo/1");
+ })
+ .then(function (res) {
+ assert.equal(res.body, "done");
+ });
+ });
+});
diff --git a/server/node_modules/express-promise-router/test/express-promise-router.test.js b/server/node_modules/express-promise-router/test/express-promise-router.test.js
new file mode 100644
index 0000000..3539e2f
--- /dev/null
+++ b/server/node_modules/express-promise-router/test/express-promise-router.test.js
@@ -0,0 +1,401 @@
+"use strict";
+
+var assert = require("chai").assert;
+var sinon = require("sinon");
+var express = require("express");
+var GET = require("./util/http-utils").GET;
+
+var delay = function (method, payload) {
+ setTimeout(function () {
+ method(payload);
+ }, 10);
+};
+
+var PromiseRouter = require("../lib/express-promise-router.js");
+
+describe("express-promise-router", function () {
+ var app;
+ var serverListening;
+ var server;
+ var router;
+
+ var bootstrap = function (router) {
+ app = express();
+ app.use("/", router);
+
+ if (serverListening) {
+ throw "already bootstrapped";
+ }
+
+ serverListening = new Promise(function (resolve, reject) {
+ server = app.listen(12345, function (err) {
+ if (err) {
+ reject(err);
+ } else {
+ resolve();
+ }
+ });
+ });
+
+ return serverListening;
+ };
+
+ beforeEach(function () {
+ router = new PromiseRouter();
+ });
+
+ afterEach(function () {
+ if (serverListening) {
+ return serverListening.then(function () {
+ server.close();
+ app = undefined;
+ server = undefined;
+ serverListening = undefined;
+ });
+ }
+ });
+
+ it("should call next with an error when a returned promise is rejected", function () {
+ var callback = sinon.spy();
+
+ router.use("/foo", function () {
+ return new Promise(function (resolve, reject) {
+ delay(reject, "some error");
+ });
+ });
+ router.use(function (err, req, res, next) {
+ assert.equal("some error", err);
+ callback();
+ res.send();
+ });
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function () {
+ assert(callback.calledOnce);
+ });
+ });
+
+ it('should call next without an error when a returned promise is resolved with "next"', function () {
+ var errorCallback = sinon.spy();
+ var nextCallback = sinon.spy();
+
+ router.use("/foo", function () {
+ return new Promise(function (resolve) {
+ delay(resolve, "next");
+ });
+ });
+ router.use("/foo", function (req, res) {
+ nextCallback();
+ res.send();
+ });
+ router.use(function (err, req, res, next) {
+ errorCallback();
+ next();
+ });
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function () {
+ assert(errorCallback.notCalled);
+ assert(nextCallback.calledOnce);
+ });
+ });
+
+ it('should not call next when a returned promise is resolved with anything other than "route" or "next"', function () {
+ var callback = sinon.spy();
+
+ router.get("/foo", function (req, res) {
+ return new Promise(function (resolve) {
+ res.send();
+ delay(resolve, "something");
+ });
+ });
+ router.get("/bar", function (req, res) {
+ return new Promise(function (resolve) {
+ res.send();
+ delay(resolve, {});
+ });
+ });
+ router.use(function (req, res) {
+ callback();
+ res.send(500);
+ });
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function () {
+ assert(callback.notCalled);
+ return GET("/bar");
+ })
+ .then(function () {
+ assert(callback.notCalled);
+ });
+ });
+
+ it("should move to the next middleware when next is called without an error", function () {
+ var callback = sinon.spy();
+
+ router.use("/foo", function (req, res, next) {
+ next();
+ });
+ router.use("/foo", function (req, res, next) {
+ callback();
+ res.send();
+ });
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function () {
+ assert(callback.calledOnce);
+ });
+ });
+
+ it("should move to the next error handler when next is called with an error", function () {
+ var callback = sinon.spy();
+ var errorCallback = sinon.spy();
+
+ router.use("/foo", function (req, res, next) {
+ next("an error");
+ });
+ router.use("/foo", function (req, res, next) {
+ callback();
+ next();
+ });
+ router.use(function (err, req, res, next) {
+ assert.equal("an error", err);
+ errorCallback();
+ res.send();
+ });
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function () {
+ assert(errorCallback.calledOnce);
+ assert(callback.notCalled);
+ });
+ });
+
+ it("should call chained handlers in the correct order", function () {
+ var fn2 = sinon.spy(function (req, res) {
+ res.send();
+ });
+ var fn1 = sinon.spy(function () {
+ assert(fn2.notCalled);
+ return Promise.resolve("next");
+ });
+
+ router.get("/foo", fn1, fn2);
+
+ return bootstrap(router).then(function () {
+ return GET("/foo");
+ });
+ });
+
+ it("should correctly call an array of handlers", function () {
+ var fn2 = sinon.spy(function (req, res) {
+ res.send();
+ });
+ var fn1 = sinon.spy(function () {
+ assert(fn2.notCalled);
+ return Promise.resolve("next");
+ });
+
+ router.get("/foo", [[fn1], [fn2]]);
+
+ return bootstrap(router).then(function () {
+ return GET("/foo");
+ });
+ });
+
+ it('should call next("route") if a returned promise is resolved with "route"', function () {
+ var fn1 = function () {
+ return Promise.resolve("route");
+ };
+ var fn2 = function () {
+ assert.fail();
+ };
+
+ router.get("/foo", fn1, fn2);
+ router.get("/foo", function (req, res) {
+ res.send();
+ });
+
+ return bootstrap(router).then(function () {
+ return GET("/foo");
+ });
+ });
+
+ it("should bind to RegExp routes", function () {
+ var fn1 = function (req, res) {
+ res.send();
+ };
+
+ router.get(/^\/foo/, fn1);
+
+ return bootstrap(router).then(function () {
+ return GET("/foo");
+ });
+ });
+
+ it('multiple calls to handlers that have used "next" should not interfere with each other', function () {
+ var fn = sinon.spy(function (req, res, next) {
+ if (fn.calledOnce) {
+ next("error");
+ } else {
+ setTimeout(function () {
+ res.status(200).send("ok");
+ }, 15);
+ }
+ });
+ var errHandler = function (err, req, res, next) {
+ if (err === "error") {
+ res.send("fail");
+ } else {
+ next(err);
+ }
+ };
+
+ router.get("/foo", fn, errHandler);
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function (res) {
+ assert.equal(res.body, "fail");
+ return GET("/foo");
+ })
+ .then(function (res) {
+ assert.equal(res.body, "ok");
+ });
+ });
+
+ it("calls next if next is called even if the handler returns a promise", function () {
+ var fn = function (req, res, next) {
+ next();
+ return new Promise(function (resolve, reject) {});
+ };
+ var fn2 = function (req, res) {
+ res.send("ok");
+ };
+ var errHandler = function (err, req, res, next) {
+ res.send("error");
+ };
+
+ router.get("/foo", fn, fn2, errHandler);
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function (res) {
+ assert.equal(res.body, "ok");
+ });
+ });
+
+ it("calls next with an error if the returned promise is rejected with no reason", function () {
+ var fn = function () {
+ return new Promise(function (resolve, reject) {
+ delay(reject, null);
+ });
+ };
+ var errHandler = function (err, req, res, next) {
+ res.send("error");
+ };
+
+ router.get("/foo", fn, errHandler);
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo");
+ })
+ .then(function (res) {
+ assert.equal(res.body, "error");
+ });
+ });
+
+ it("should handle resolved promises returned in req.param() calls", function () {
+ router.param("id", function () {
+ return new Promise(function (resolve) {
+ delay(resolve, "next");
+ });
+ });
+ router.use("/foo/:id", function (req, res) {
+ res.send("done");
+ });
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo/1");
+ })
+ .then(function (res) {
+ assert.equal(res.body, "done");
+ });
+ });
+
+ it("should call next with unresolved promises returned in req.param() calls", function () {
+ var assertOutput = "error in param";
+
+ router.param("id", function (req, res, next, id) {
+ return new Promise(function (resolve, reject) {
+ delay(reject, assertOutput);
+ });
+ });
+
+ var fn = function (req, res) {
+ res.send("done");
+ };
+
+ var errHandler = function (err, req, res, next) {
+ res.send(err);
+ };
+
+ router.use("/foo/:id", fn);
+
+ router.use(errHandler);
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/foo/1");
+ })
+ .then(function (res) {
+ assert.equal(res.body, assertOutput);
+ });
+ });
+
+ it("support array in routes values", function () {
+ router.use(["/", "/foo/:bar"], function (req, res) {
+ res.send("done");
+ });
+
+ return bootstrap(router)
+ .then(function () {
+ return GET("/");
+ })
+ .then(function (res) {
+ assert.equal(res.body, "done");
+
+ return GET("/foo/1");
+ })
+ .then(function (res) {
+ assert.equal(res.body, "done");
+ });
+ });
+
+ it("should throw sensible errors when handler is not a function", function () {
+ assert.throws(function () {
+ router.use("/foo/:id", null);
+ }, /callback/);
+ });
+});
diff --git a/server/node_modules/express-promise-router/test/test-resources/.eslintrc b/server/node_modules/express-promise-router/test/test-resources/.eslintrc
new file mode 100644
index 0000000..a7ac9f7
--- /dev/null
+++ b/server/node_modules/express-promise-router/test/test-resources/.eslintrc
@@ -0,0 +1,6 @@
+{
+ "parserOptions": {
+ "ecmaVersion": 2015,
+ "sourceType": "module"
+ }
+}
diff --git a/server/node_modules/express-promise-router/test/test-resources/babel-base-case.js b/server/node_modules/express-promise-router/test/test-resources/babel-base-case.js
new file mode 100644
index 0000000..521e39e
--- /dev/null
+++ b/server/node_modules/express-promise-router/test/test-resources/babel-base-case.js
@@ -0,0 +1,12 @@
+import express from "express";
+import Router from "../../lib/express-promise-router.js";
+const router = Router();
+
+router.get("/", function (req, res) {
+ res.send("Hi!");
+});
+
+const app = express();
+app.use(router);
+app.listen(12345);
+console.log("START");
diff --git a/server/node_modules/express-promise-router/test/test-resources/commonjs-base-case.js b/server/node_modules/express-promise-router/test/test-resources/commonjs-base-case.js
new file mode 100644
index 0000000..1470fd8
--- /dev/null
+++ b/server/node_modules/express-promise-router/test/test-resources/commonjs-base-case.js
@@ -0,0 +1,12 @@
+var express = require("express");
+var Router = require("../../lib/express-promise-router.js");
+var router = Router();
+
+router.get("/", function (req, res) {
+ res.send("Hi!");
+});
+
+var app = express();
+app.use(router);
+app.listen(12345);
+console.log("START");
diff --git a/server/node_modules/express-promise-router/test/test-resources/typescript-base-case.ts b/server/node_modules/express-promise-router/test/test-resources/typescript-base-case.ts
new file mode 100644
index 0000000..17fc159
--- /dev/null
+++ b/server/node_modules/express-promise-router/test/test-resources/typescript-base-case.ts
@@ -0,0 +1,13 @@
+///
+import * as express from "express";
+import Router from "../../lib/express-promise-router.js";
+const router = Router();
+
+router.get("/", function (req, res) {
+ res.send("Hi!");
+});
+
+const app = express();
+app.use(router);
+app.listen(12345);
+console.log("START");
diff --git a/server/node_modules/express-promise-router/test/tracing.test.js b/server/node_modules/express-promise-router/test/tracing.test.js
new file mode 100644
index 0000000..d1cab26
--- /dev/null
+++ b/server/node_modules/express-promise-router/test/tracing.test.js
@@ -0,0 +1,36 @@
+const Router = require("../lib/express-promise-router");
+const assert = require("chai").assert;
+
+describe("function name", function () {
+ it("uses the wrapped handler's name in a route handler", function () {
+ const router = Router();
+ router.get("/test-route", function actualHandler() {});
+
+ assert.equal(router.stack[0].route.stack[0].handle.name, "actualHandler");
+ assert.equal(router.stack[0].route.stack[0].name, "actualHandler");
+ });
+
+ it("uses the wrapped handler's name in a middleware handler", function () {
+ const router = Router();
+ router.use(function actualHandler(req, res, next) {});
+
+ assert.equal(router.stack[0].handle.name, "actualHandler");
+ assert.equal(router.stack[0].name, "actualHandler");
+ });
+
+ it("uses the wrapped handler's name in an error middleware", function () {
+ const router = Router();
+ router.use(function actualErrorHandler(err, req, res, next) {});
+
+ assert.equal(router.stack[0].handle.name, "actualErrorHandler");
+ assert.equal(router.stack[0].name, "actualErrorHandler");
+ });
+
+ it("empty name for anonymous middleware handler", function () {
+ const router = Router();
+ router.use((req, res, next) => {});
+
+ assert.equal(router.stack[0].handle.name, "");
+ assert.equal(router.stack[0].name, "");
+ });
+});
diff --git a/server/node_modules/express-promise-router/test/typescript.test.js b/server/node_modules/express-promise-router/test/typescript.test.js
new file mode 100644
index 0000000..df308f0
--- /dev/null
+++ b/server/node_modules/express-promise-router/test/typescript.test.js
@@ -0,0 +1,53 @@
+"use strict";
+
+var tt = require("@mormahr/typescript-definition-tester");
+var path = require("path");
+var resolve = require("path").resolve;
+var assert = require("chai").assert;
+var spawnTypeScript = require("./util/launch-utils").spawnTypeScript;
+var GET = require("./util/http-utils").GET;
+
+describe("TypeScript", function () {
+ it("should compile base-case successfully against index.d.ts", function (done) {
+ this.timeout(20000);
+ tt.compile(
+ [
+ path.resolve(
+ __dirname + "/typescript-resources/typescript-base-case.ts",
+ ),
+ ],
+ {},
+ done.bind(null),
+ );
+ });
+
+ it("should run the example and respond", function (done) {
+ this.timeout(5000);
+ var ts_file = resolve(
+ __dirname,
+ "./test-resources/typescript-base-case.ts",
+ );
+ var target = spawnTypeScript(ts_file);
+ var called = false;
+
+ target.stdout.on("data", function (data) {
+ if (data.toString().indexOf("START") === -1) {
+ return;
+ }
+
+ GET("/").then(function () {
+ called = true;
+ target.kill("SIGINT");
+ });
+ });
+
+ target.stderr.on("data", function (data) {
+ console.error(data.toString());
+ });
+
+ target.on("close", function () {
+ assert(called);
+ done();
+ });
+ });
+});
diff --git a/server/node_modules/express-promise-router/test/util/http-utils.js b/server/node_modules/express-promise-router/test/util/http-utils.js
new file mode 100644
index 0000000..b79d67a
--- /dev/null
+++ b/server/node_modules/express-promise-router/test/util/http-utils.js
@@ -0,0 +1,14 @@
+var request = require("request-promise");
+var assert = require("chai").assert;
+
+exports.GET = function (route) {
+ return request({
+ url: "http://localhost:12345" + route,
+ resolveWithFullResponse: true,
+ }).then(function (res) {
+ // Express sends 500 errors for uncaught exceptions (like failed assertions)
+ // Make sure to still fail the test if an assertion in middleware failed.
+ assert.equal(res.statusCode, 200);
+ return res;
+ });
+};
diff --git a/server/node_modules/express-promise-router/test/util/launch-utils.js b/server/node_modules/express-promise-router/test/util/launch-utils.js
new file mode 100644
index 0000000..287c81a
--- /dev/null
+++ b/server/node_modules/express-promise-router/test/util/launch-utils.js
@@ -0,0 +1,40 @@
+var ts = require("typescript");
+var babel = require("@babel/core");
+var fs = require("fs");
+var spawn = require("child_process").spawn;
+var dirname = require("path").dirname;
+
+function spawnString(source, dir) {
+ return spawn("node", ["-e", source], {
+ cwd: dir,
+ });
+}
+
+// path has to be fully qualified
+exports.spawnTypeScript = function spawnTypeScript(path) {
+ var content = fs.readFileSync(path, "utf-8");
+
+ var compilerOptions = {
+ module: ts.ModuleKind.CommonJS,
+ };
+
+ var transpiled = ts.transpile(content, compilerOptions);
+
+ return spawnString(transpiled, dirname(path));
+};
+
+exports.spawnJavaScript = function spawnJavaScript(path) {
+ var content = fs.readFileSync(path, "utf-8");
+
+ return spawnString(content, dirname(path));
+};
+
+exports.spawnBabel = function spawnBabel(path) {
+ var content = fs.readFileSync(path, "utf-8");
+
+ var result = babel.transform(content, {
+ plugins: ["@babel/plugin-transform-modules-commonjs"],
+ });
+
+ return spawnString(result.code, dirname(path));
+};
diff --git a/server/node_modules/is-promise/LICENSE b/server/node_modules/is-promise/LICENSE
new file mode 100644
index 0000000..27cc9f3
--- /dev/null
+++ b/server/node_modules/is-promise/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2014 Forbes Lindesay
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/server/node_modules/is-promise/index.d.ts b/server/node_modules/is-promise/index.d.ts
new file mode 100644
index 0000000..2107b42
--- /dev/null
+++ b/server/node_modules/is-promise/index.d.ts
@@ -0,0 +1,2 @@
+declare function isPromise(obj: PromiseLike | S): obj is PromiseLike;
+export default isPromise;
diff --git a/server/node_modules/is-promise/index.js b/server/node_modules/is-promise/index.js
new file mode 100644
index 0000000..1bed087
--- /dev/null
+++ b/server/node_modules/is-promise/index.js
@@ -0,0 +1,6 @@
+module.exports = isPromise;
+module.exports.default = isPromise;
+
+function isPromise(obj) {
+ return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
+}
diff --git a/server/node_modules/is-promise/index.mjs b/server/node_modules/is-promise/index.mjs
new file mode 100644
index 0000000..bf9e99b
--- /dev/null
+++ b/server/node_modules/is-promise/index.mjs
@@ -0,0 +1,3 @@
+export default function isPromise(obj) {
+ return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
+}
diff --git a/server/node_modules/is-promise/package.json b/server/node_modules/is-promise/package.json
new file mode 100644
index 0000000..46275fc
--- /dev/null
+++ b/server/node_modules/is-promise/package.json
@@ -0,0 +1,61 @@
+{
+ "_from": "is-promise@^4.0.0",
+ "_id": "is-promise@4.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
+ "_location": "/is-promise",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-promise@^4.0.0",
+ "name": "is-promise",
+ "escapedName": "is-promise",
+ "rawSpec": "^4.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^4.0.0"
+ },
+ "_requiredBy": [
+ "/express-promise-router"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
+ "_shasum": "42ff9f84206c1991d26debf520dd5c01042dd2f3",
+ "_spec": "is-promise@^4.0.0",
+ "_where": "/home/sigonasr2/divar/server/node_modules/express-promise-router",
+ "author": {
+ "name": "ForbesLindesay"
+ },
+ "bugs": {
+ "url": "https://github.com/then/is-promise/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Test whether an object looks like a promises-a+ promise",
+ "exports": {
+ ".": [
+ {
+ "import": "./index.mjs",
+ "require": "./index.js",
+ "default": "./index.js"
+ },
+ "./index.js"
+ ]
+ },
+ "files": [
+ "index.js",
+ "index.mjs",
+ "index.d.ts"
+ ],
+ "homepage": "https://github.com/then/is-promise#readme",
+ "license": "MIT",
+ "main": "./index.js",
+ "name": "is-promise",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/then/is-promise.git"
+ },
+ "scripts": {
+ "test": "node test"
+ },
+ "version": "4.0.0"
+}
diff --git a/server/node_modules/is-promise/readme.md b/server/node_modules/is-promise/readme.md
new file mode 100644
index 0000000..d53d34b
--- /dev/null
+++ b/server/node_modules/is-promise/readme.md
@@ -0,0 +1,33 @@
+
+
+# is-promise
+
+ Test whether an object looks like a promises-a+ promise
+
+ [![Build Status](https://img.shields.io/travis/then/is-promise/master.svg)](https://travis-ci.org/then/is-promise)
+ [![Dependency Status](https://img.shields.io/david/then/is-promise.svg)](https://david-dm.org/then/is-promise)
+ [![NPM version](https://img.shields.io/npm/v/is-promise.svg)](https://www.npmjs.org/package/is-promise)
+
+
+
+## Installation
+
+ $ npm install is-promise
+
+You can also use it client side via npm.
+
+## API
+
+```typescript
+import isPromise from 'is-promise';
+
+isPromise(Promise.resolve());//=>true
+isPromise({then:function () {...}});//=>true
+isPromise(null);//=>false
+isPromise({});//=>false
+isPromise({then: true})//=>false
+```
+
+## License
+
+ MIT
diff --git a/server/node_modules/lodash.flattendeep/LICENSE b/server/node_modules/lodash.flattendeep/LICENSE
new file mode 100644
index 0000000..e0c69d5
--- /dev/null
+++ b/server/node_modules/lodash.flattendeep/LICENSE
@@ -0,0 +1,47 @@
+Copyright jQuery Foundation and other contributors
+
+Based on Underscore.js, copyright Jeremy Ashkenas,
+DocumentCloud and Investigative Reporters & Editors
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+available at https://github.com/lodash/lodash
+
+The following license applies to all parts of this software except as
+documented below:
+
+====
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====
+
+Copyright and related rights for sample code are waived via CC0. Sample
+code is defined as all source code displayed within the prose of the
+documentation.
+
+CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+====
+
+Files located in the node_modules and vendor directories are externally
+maintained libraries used by this software which have their own
+licenses; we recommend you read them, as their terms may differ from the
+terms above.
diff --git a/server/node_modules/lodash.flattendeep/README.md b/server/node_modules/lodash.flattendeep/README.md
new file mode 100644
index 0000000..afcd03c
--- /dev/null
+++ b/server/node_modules/lodash.flattendeep/README.md
@@ -0,0 +1,18 @@
+# lodash.flattendeep v4.4.0
+
+The [lodash](https://lodash.com/) method `_.flattenDeep` exported as a [Node.js](https://nodejs.org/) module.
+
+## Installation
+
+Using npm:
+```bash
+$ {sudo -H} npm i -g npm
+$ npm i --save lodash.flattendeep
+```
+
+In Node.js:
+```js
+var flattenDeep = require('lodash.flattendeep');
+```
+
+See the [documentation](https://lodash.com/docs#flattenDeep) or [package source](https://github.com/lodash/lodash/blob/4.4.0-npm-packages/lodash.flattendeep) for more details.
diff --git a/server/node_modules/lodash.flattendeep/index.js b/server/node_modules/lodash.flattendeep/index.js
new file mode 100644
index 0000000..254b884
--- /dev/null
+++ b/server/node_modules/lodash.flattendeep/index.js
@@ -0,0 +1,350 @@
+/**
+ * lodash (Custom Build)
+ * Build: `lodash modularize exports="npm" -o ./`
+ * Copyright jQuery Foundation and other contributors
+ * Released under MIT license
+ * Based on Underscore.js 1.8.3
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+
+/** Used as references for various `Number` constants. */
+var INFINITY = 1 / 0,
+ MAX_SAFE_INTEGER = 9007199254740991;
+
+/** `Object#toString` result references. */
+var argsTag = '[object Arguments]',
+ funcTag = '[object Function]',
+ genTag = '[object GeneratorFunction]';
+
+/** Detect free variable `global` from Node.js. */
+var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
+
+/** Detect free variable `self`. */
+var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
+
+/** Used as a reference to the global object. */
+var root = freeGlobal || freeSelf || Function('return this')();
+
+/**
+ * Appends the elements of `values` to `array`.
+ *
+ * @private
+ * @param {Array} array The array to modify.
+ * @param {Array} values The values to append.
+ * @returns {Array} Returns `array`.
+ */
+function arrayPush(array, values) {
+ var index = -1,
+ length = values.length,
+ offset = array.length;
+
+ while (++index < length) {
+ array[offset + index] = values[index];
+ }
+ return array;
+}
+
+/** Used for built-in method references. */
+var objectProto = Object.prototype;
+
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
+/**
+ * Used to resolve the
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+var objectToString = objectProto.toString;
+
+/** Built-in value references. */
+var Symbol = root.Symbol,
+ propertyIsEnumerable = objectProto.propertyIsEnumerable,
+ spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;
+
+/**
+ * The base implementation of `_.flatten` with support for restricting flattening.
+ *
+ * @private
+ * @param {Array} array The array to flatten.
+ * @param {number} depth The maximum recursion depth.
+ * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
+ * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
+ * @param {Array} [result=[]] The initial result value.
+ * @returns {Array} Returns the new flattened array.
+ */
+function baseFlatten(array, depth, predicate, isStrict, result) {
+ var index = -1,
+ length = array.length;
+
+ predicate || (predicate = isFlattenable);
+ result || (result = []);
+
+ while (++index < length) {
+ var value = array[index];
+ if (depth > 0 && predicate(value)) {
+ if (depth > 1) {
+ // Recursively flatten arrays (susceptible to call stack limits).
+ baseFlatten(value, depth - 1, predicate, isStrict, result);
+ } else {
+ arrayPush(result, value);
+ }
+ } else if (!isStrict) {
+ result[result.length] = value;
+ }
+ }
+ return result;
+}
+
+/**
+ * Checks if `value` is a flattenable `arguments` object or array.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
+ */
+function isFlattenable(value) {
+ return isArray(value) || isArguments(value) ||
+ !!(spreadableSymbol && value && value[spreadableSymbol]);
+}
+
+/**
+ * Recursively flattens `array`.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Array
+ * @param {Array} array The array to flatten.
+ * @returns {Array} Returns the new flattened array.
+ * @example
+ *
+ * _.flattenDeep([1, [2, [3, [4]], 5]]);
+ * // => [1, 2, 3, 4, 5]
+ */
+function flattenDeep(array) {
+ var length = array ? array.length : 0;
+ return length ? baseFlatten(array, INFINITY) : [];
+}
+
+/**
+ * Checks if `value` is likely an `arguments` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an `arguments` object,
+ * else `false`.
+ * @example
+ *
+ * _.isArguments(function() { return arguments; }());
+ * // => true
+ *
+ * _.isArguments([1, 2, 3]);
+ * // => false
+ */
+function isArguments(value) {
+ // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
+ return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
+ (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
+}
+
+/**
+ * Checks if `value` is classified as an `Array` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array, else `false`.
+ * @example
+ *
+ * _.isArray([1, 2, 3]);
+ * // => true
+ *
+ * _.isArray(document.body.children);
+ * // => false
+ *
+ * _.isArray('abc');
+ * // => false
+ *
+ * _.isArray(_.noop);
+ * // => false
+ */
+var isArray = Array.isArray;
+
+/**
+ * Checks if `value` is array-like. A value is considered array-like if it's
+ * not a function and has a `value.length` that's an integer greater than or
+ * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
+ * @example
+ *
+ * _.isArrayLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isArrayLike(document.body.children);
+ * // => true
+ *
+ * _.isArrayLike('abc');
+ * // => true
+ *
+ * _.isArrayLike(_.noop);
+ * // => false
+ */
+function isArrayLike(value) {
+ return value != null && isLength(value.length) && !isFunction(value);
+}
+
+/**
+ * This method is like `_.isArrayLike` except that it also checks if `value`
+ * is an object.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an array-like object,
+ * else `false`.
+ * @example
+ *
+ * _.isArrayLikeObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isArrayLikeObject(document.body.children);
+ * // => true
+ *
+ * _.isArrayLikeObject('abc');
+ * // => false
+ *
+ * _.isArrayLikeObject(_.noop);
+ * // => false
+ */
+function isArrayLikeObject(value) {
+ return isObjectLike(value) && isArrayLike(value);
+}
+
+/**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a function, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in Safari 8-9 which returns 'object' for typed array and other constructors.
+ var tag = isObject(value) ? objectToString.call(value) : '';
+ return tag == funcTag || tag == genTag;
+}
+
+/**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This method is loosely based on
+ * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ * @example
+ *
+ * _.isLength(3);
+ * // => true
+ *
+ * _.isLength(Number.MIN_VALUE);
+ * // => false
+ *
+ * _.isLength(Infinity);
+ * // => false
+ *
+ * _.isLength('3');
+ * // => false
+ */
+function isLength(value) {
+ return typeof value == 'number' &&
+ value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+}
+
+/**
+ * Checks if `value` is the
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(_.noop);
+ * // => true
+ *
+ * _.isObject(null);
+ * // => false
+ */
+function isObject(value) {
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+}
+
+/**
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
+ * and has a `typeof` result of "object".
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ * @example
+ *
+ * _.isObjectLike({});
+ * // => true
+ *
+ * _.isObjectLike([1, 2, 3]);
+ * // => true
+ *
+ * _.isObjectLike(_.noop);
+ * // => false
+ *
+ * _.isObjectLike(null);
+ * // => false
+ */
+function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+}
+
+module.exports = flattenDeep;
diff --git a/server/node_modules/lodash.flattendeep/package.json b/server/node_modules/lodash.flattendeep/package.json
new file mode 100644
index 0000000..eeea67a
--- /dev/null
+++ b/server/node_modules/lodash.flattendeep/package.json
@@ -0,0 +1,69 @@
+{
+ "_from": "lodash.flattendeep@^4.0.0",
+ "_id": "lodash.flattendeep@4.4.0",
+ "_inBundle": false,
+ "_integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
+ "_location": "/lodash.flattendeep",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "lodash.flattendeep@^4.0.0",
+ "name": "lodash.flattendeep",
+ "escapedName": "lodash.flattendeep",
+ "rawSpec": "^4.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^4.0.0"
+ },
+ "_requiredBy": [
+ "/express-promise-router"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
+ "_shasum": "fb030917f86a3134e5bc9bec0d69e0013ddfedb2",
+ "_spec": "lodash.flattendeep@^4.0.0",
+ "_where": "/home/sigonasr2/divar/server/node_modules/express-promise-router",
+ "author": {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "name": "Blaine Bublitz",
+ "email": "blaine.bublitz@gmail.com",
+ "url": "https://github.com/phated"
+ },
+ {
+ "name": "Mathias Bynens",
+ "email": "mathias@qiwi.be",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "deprecated": false,
+ "description": "The lodash method `_.flattenDeep` exported as a module.",
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "keywords": [
+ "lodash-modularized",
+ "flattendeep"
+ ],
+ "license": "MIT",
+ "name": "lodash.flattendeep",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.4.0"
+}
diff --git a/server/node_modules/pg-minify/README.md b/server/node_modules/pg-minify/README.md
new file mode 100644
index 0000000..c9efa7e
--- /dev/null
+++ b/server/node_modules/pg-minify/README.md
@@ -0,0 +1,101 @@
+pg-minify
+=========
+
+Minifies PostgreSQL scripts, reducing the IO usage.
+
+[![Build Status](https://travis-ci.org/vitaly-t/pg-minify.svg?branch=master)](https://travis-ci.org/vitaly-t/pg-minify)
+[![Coverage Status](https://coveralls.io/repos/vitaly-t/pg-minify/badge.svg?branch=master)](https://coveralls.io/r/vitaly-t/pg-minify?branch=master)
+[![Join the chat at https://gitter.im/vitaly-t/pg-minify](https://badges.gitter.im/vitaly-t/pg-minify.svg)](https://gitter.im/vitaly-t/pg-minify?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+
+**Features:**
+
+* Removes `/*multi-line*/` (including nested) and `--single-line` comments
+* Preserves special/copyright multi-line comments that start with `/*!`
+* Concatenates multi-line strings into a single line with `\n`
+* Fixes multi-line text, prefixing it with `E` where needed
+* Removes redundant line gaps: line breaks, tabs and spaces
+* Provides basic parsing and error detection for invalid SQL
+* Flattens the resulting script into a single line
+* Optionally, compresses SQL for minimum space
+
+## Installing
+
+```
+$ npm install pg-minify
+```
+
+## Usage
+
+```js
+const minify = require('pg-minify');
+
+const sql = 'SELECT 1; -- comments';
+
+minify(sql); //=> SELECT 1;
+```
+
+with compression (removes all unnecessary spaces):
+
+```js
+const sql = 'SELECT * FROM "table" WHERE col = 123; -- comments';
+
+minify(sql, {compress: true});
+//=> SELECT*FROM"table"WHERE col=123;
+```
+
+The library's distribution includes [TypeScript] declarations.
+
+## Error Handling
+
+[SQLParsingError] is thrown on failed SQL parsing:
+
+```js
+try {
+ minify('SELECT \'1');
+} catch (error) {
+ // error is minify.SQLParsingError instance
+ // error.message:
+ // Error parsing SQL at {line:1,col:8}: Unclosed text block.
+}
+```
+
+## API
+
+### minify(sql, [options]) ⇒ String
+
+Minifies SQL into a single line, according to the `options`.
+
+##### options.compress ⇒ Boolean
+
+Compresses / uglifies the SQL to its bare minimum, by removing all unnecessary spaces.
+
+* `false (default)` - keeps minimum spaces, for easier read
+* `true` - removes all unnecessary spaces
+
+See also: [SQL Compression].
+
+##### options.removeAll ⇒ Boolean
+
+Removes everything, i.e. special/copyright multi-line comments that start with `/*!` will be removed as well.
+
+## Testing
+
+First, clone the repository and install DEV dependencies.
+
+```
+$ npm test
+```
+
+Testing with coverage:
+```
+$ npm run coverage
+```
+
+## License
+
+Copyright © 2020 [Vitaly Tomilov](https://github.com/vitaly-t);
+Released under the MIT license.
+
+[SQLParsingError]:https://github.com/vitaly-t/pg-minify/blob/master/lib/error.js#L22
+[TypeScript]:https://github.com/vitaly-t/pg-minify/tree/master/typescript
+[SQL Compression]:https://github.com/vitaly-t/pg-minify/wiki/SQL-Compression
diff --git a/server/node_modules/pg-minify/lib/error.js b/server/node_modules/pg-minify/lib/error.js
new file mode 100644
index 0000000..b784877
--- /dev/null
+++ b/server/node_modules/pg-minify/lib/error.js
@@ -0,0 +1,53 @@
+const {EOL} = require('os');
+const {addInspection, messageGap} = require('./utils');
+
+const parsingErrorCode = {
+ unclosedMLC: 0, // Unclosed multi-line comment.
+ unclosedText: 1, // Unclosed text block.
+ unclosedQI: 2, // Unclosed quoted identifier.
+ multiLineQI: 3 // Multi-line quoted identifiers are not supported.
+};
+
+Object.freeze(parsingErrorCode);
+
+const errorMessages = [
+ {name: 'unclosedMLC', message: 'Unclosed multi-line comment.'},
+ {name: 'unclosedText', message: 'Unclosed text block.'},
+ {name: 'unclosedQI', message: 'Unclosed quoted identifier.'},
+ {name: 'multiLineQI', message: 'Multi-line quoted identifiers are not supported.'}
+];
+
+class SQLParsingError extends Error {
+ constructor(code, position) {
+ const err = errorMessages[code].message;
+ const message = `Error parsing SQL at {line:${position.line},col:${position.column}}: ${err}`;
+ super(message);
+ this.name = this.constructor.name;
+ this.error = err;
+ this.code = code;
+ this.position = position;
+ Error.captureStackTrace(this, this.constructor);
+ }
+}
+
+SQLParsingError.prototype.toString = function (level) {
+ level = level > 0 ? parseInt(level) : 0;
+ const gap = messageGap(level + 1);
+ const lines = [
+ `SQLParsingError {`,
+ `${gap}code: parsingErrorCode.${errorMessages[this.code].name}`,
+ `${gap}error: "${this.error}"`,
+ `${gap}position: {line: ${this.position.line}, col: ${this.position.column}}`,
+ `${messageGap(level)}}`
+ ];
+ return lines.join(EOL);
+};
+
+addInspection(SQLParsingError.prototype, function () {
+ return this.toString();
+});
+
+module.exports = {
+ SQLParsingError,
+ parsingErrorCode
+};
diff --git a/server/node_modules/pg-minify/lib/index.js b/server/node_modules/pg-minify/lib/index.js
new file mode 100644
index 0000000..ae798c7
--- /dev/null
+++ b/server/node_modules/pg-minify/lib/index.js
@@ -0,0 +1,7 @@
+const parser = require('./parser');
+const error = require('./error');
+
+parser.SQLParsingError = error.SQLParsingError;
+parser.parsingErrorCode = error.parsingErrorCode;
+
+module.exports = parser;
diff --git a/server/node_modules/pg-minify/lib/parser.js b/server/node_modules/pg-minify/lib/parser.js
new file mode 100644
index 0000000..11b4431
--- /dev/null
+++ b/server/node_modules/pg-minify/lib/parser.js
@@ -0,0 +1,196 @@
+const {parsingErrorCode, SQLParsingError} = require('./error');
+const {getIndexPos} = require('./utils');
+
+// symbols that need no spaces around them:
+const compressors = '.,;:()[]=<>+-*/|!?@#';
+
+////////////////////////////////////////////
+// Parses and minimizes a PostgreSQL script.
+function minify(sql, options) {
+
+ if (typeof sql !== 'string') {
+ throw new TypeError('Input SQL must be a text string.');
+ }
+
+ if (!sql.length) {
+ return '';
+ }
+
+ sql = sql.replace(/\r\n/g, '\n');
+
+ options = options || {};
+
+ let idx = 0, // current index
+ result = '', // resulting sql
+ space = false; // add a space on the next step
+
+ const len = sql.length;
+
+ do {
+ const s = sql[idx], // current symbol;
+ s1 = sql[idx + 1]; // next symbol;
+
+ if (isGap(s)) {
+ while (++idx < len && isGap(sql[idx])) ;
+ if (idx < len) {
+ space = true;
+ }
+ idx--;
+ continue;
+ }
+
+ if (s === '-' && s1 === '-') {
+ const lb = sql.indexOf('\n', idx + 2);
+ if (lb < 0) {
+ break;
+ }
+ idx = lb - 1;
+ skipGaps();
+ continue;
+ }
+
+ if (s === '/' && s1 === '*') {
+ let c = idx + 1, open = 0, close = 0, lastOpen, lastClose;
+ while (++c < len - 1 && close <= open) {
+ if (sql[c] === '/' && sql[c + 1] === '*') {
+ lastOpen = c;
+ open++;
+ c++;
+ } else {
+ if (sql[c] === '*' && sql[c + 1] === '/') {
+ lastClose = c;
+ close++;
+ c++;
+ }
+ }
+ }
+ if (close <= open) {
+ idx = lastOpen;
+ throwError(parsingErrorCode.unclosedMLC);
+ }
+ if (sql[idx + 2] === '!' && !options.removeAll) {
+ if (options.compress) {
+ space = false;
+ }
+ addSpace();
+ result += sql.substring(idx, lastClose + 2)
+ .replace(/\n/g, '\r\n');
+ }
+ idx = lastClose + 1;
+ skipGaps();
+ continue;
+ }
+
+ let closeIdx, text;
+
+ if (s === '"') {
+ closeIdx = sql.indexOf('"', idx + 1);
+ if (closeIdx < 0) {
+ throwError(parsingErrorCode.unclosedQI);
+ }
+ text = sql.substring(idx, closeIdx + 1);
+ if (text.indexOf('\n') > 0) {
+ throwError(parsingErrorCode.multiLineQI);
+ }
+ if (options.compress) {
+ space = false;
+ }
+ addSpace();
+ result += text;
+ idx = closeIdx;
+ skipGaps();
+ continue;
+ }
+
+ if (s === `'`) {
+ closeIdx = idx;
+ do {
+ closeIdx = sql.indexOf(`'`, closeIdx + 1);
+ if (closeIdx > 0) {
+ let i = closeIdx;
+ while (sql[--i] === '\\') ;
+ if ((closeIdx - i) % 2) {
+ let step = closeIdx;
+ while (++step < len && sql[step] === `'`) ;
+ if ((step - closeIdx) % 2) {
+ closeIdx = step - 1;
+ break;
+ }
+ closeIdx = step === len ? -1 : step;
+ }
+ }
+ } while (closeIdx > 0);
+ if (closeIdx < 0) {
+ throwError(parsingErrorCode.unclosedText);
+ }
+ if (options.compress) {
+ space = false;
+ }
+ addSpace();
+ text = sql.substring(idx, closeIdx + 1);
+ const hasLB = text.indexOf('\n') > 0;
+ if (hasLB) {
+ text = text.split('\n').map(m => {
+ return m.replace(/^\s+|\s+$/g, '');
+ }).join('\\n');
+ }
+ const hasTabs = text.indexOf('\t') > 0;
+ if (hasLB || hasTabs) {
+ const prev = idx ? sql[idx - 1] : '';
+ if (prev !== 'E' && prev !== 'e') {
+ const r = result ? result[result.length - 1] : '';
+ if (r && r !== ' ' && compressors.indexOf(r) < 0) {
+ result += ' ';
+ }
+ result += 'E';
+ }
+ if (hasTabs) {
+ text = text.replace(/\t/g, '\\t');
+ }
+ }
+ result += text;
+ idx = closeIdx;
+ skipGaps();
+ continue;
+ }
+
+ if (options.compress && compressors.indexOf(s) >= 0) {
+ space = false;
+ skipGaps();
+ }
+
+ addSpace();
+ result += s;
+
+ } while (++idx < len);
+
+ return result;
+
+ function skipGaps() {
+ if (options.compress) {
+ while (idx < len - 1 && isGap(sql[idx + 1]) && idx++) ;
+ }
+ }
+
+ function addSpace() {
+ if (space) {
+ if (result.length) {
+ result += ' ';
+ }
+ space = false;
+ }
+ }
+
+ function throwError(code) {
+ const position = getIndexPos(sql, idx);
+ throw new SQLParsingError(code, position);
+ }
+}
+
+////////////////////////////////////
+// Identifies a gap / empty symbol.
+function isGap(s) {
+ return s === ' ' || s === '\t' || s === '\r' || s === '\n';
+}
+
+module.exports = minify;
diff --git a/server/node_modules/pg-minify/lib/utils.js b/server/node_modules/pg-minify/lib/utils.js
new file mode 100644
index 0000000..ae46ee5
--- /dev/null
+++ b/server/node_modules/pg-minify/lib/utils.js
@@ -0,0 +1,38 @@
+const {inspect} = require('util');
+
+/////////////////////////////////////////////////////////////
+// Returns {line, column} of an index within multi-line text.
+function getIndexPos(text, index) {
+ let lineIdx = 0, colIdx = index, pos = 0;
+ do {
+ pos = text.indexOf('\n', pos);
+ if (pos === -1 || index < pos + 1) {
+ break;
+ }
+ lineIdx++;
+ pos++;
+ colIdx = index - pos;
+ } while (pos < index);
+ return {
+ line: lineIdx + 1,
+ column: colIdx + 1
+ };
+}
+
+///////////////////////////////////////////
+// Returns a space gap for console output.
+function messageGap(level) {
+ return ' '.repeat(level * 4);
+}
+
+////////////////////////////////////////////////////
+// Type inspection
+function addInspection(type, cb) {
+ type[inspect.custom] = cb;
+}
+
+module.exports = {
+ getIndexPos,
+ messageGap,
+ addInspection
+};
diff --git a/server/node_modules/pg-minify/package.json b/server/node_modules/pg-minify/package.json
new file mode 100644
index 0000000..3066f71
--- /dev/null
+++ b/server/node_modules/pg-minify/package.json
@@ -0,0 +1,76 @@
+{
+ "_from": "pg-minify@1.6.2",
+ "_id": "pg-minify@1.6.2",
+ "_inBundle": false,
+ "_integrity": "sha512-1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg==",
+ "_location": "/pg-minify",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "pg-minify@1.6.2",
+ "name": "pg-minify",
+ "escapedName": "pg-minify",
+ "rawSpec": "1.6.2",
+ "saveSpec": null,
+ "fetchSpec": "1.6.2"
+ },
+ "_requiredBy": [
+ "/pg-promise"
+ ],
+ "_resolved": "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz",
+ "_shasum": "055acfe862cfca3ca0a529020846b0f308d68e70",
+ "_spec": "pg-minify@1.6.2",
+ "_where": "/home/sigonasr2/divar/server/node_modules/pg-promise",
+ "author": {
+ "name": "Vitaly Tomilov",
+ "email": "vitaly.tomilov@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/vitaly-t/pg-minify/issues",
+ "email": "vitaly.tomilov@gmail.com"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Minifies PostgreSQL scripts.",
+ "devDependencies": {
+ "coveralls": "3.1.0",
+ "eslint": "7.16.0",
+ "istanbul": "0.4.5",
+ "jasmine-node": "3.0.0",
+ "typescript": "4.1.3"
+ },
+ "engines": {
+ "node": ">=8.0"
+ },
+ "files": [
+ "lib",
+ "typescript"
+ ],
+ "homepage": "https://github.com/vitaly-t/pg-minify",
+ "keywords": [
+ "sql",
+ "postgresql",
+ "comments",
+ "minify",
+ "uglify",
+ "compress",
+ "strip",
+ "remove"
+ ],
+ "license": "MIT",
+ "main": "lib/index.js",
+ "name": "pg-minify",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/vitaly-t/pg-minify.git"
+ },
+ "scripts": {
+ "coverage": "istanbul cover ./node_modules/jasmine-node/bin/jasmine-node test",
+ "lint": "eslint ./lib ./test/*.js",
+ "test": "jasmine-node --captureExceptions test",
+ "travis": "npm run lint && istanbul cover ./node_modules/jasmine-node/bin/jasmine-node test --captureExceptions && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"
+ },
+ "typings": "typescript/pg-minify.d.ts",
+ "version": "1.6.2"
+}
diff --git a/server/node_modules/pg-minify/typescript/README.md b/server/node_modules/pg-minify/typescript/README.md
new file mode 100644
index 0000000..86e68ce
--- /dev/null
+++ b/server/node_modules/pg-minify/typescript/README.md
@@ -0,0 +1,26 @@
+## TypeScript for pg-minify
+
+Complete TypeScript 3.x (`strict` mode) declarations for the module.
+
+### Inclusion
+
+Typescript picks up the definitions without any manual configuration.
+
+### Usage
+
+```ts
+import * as minify from 'pg-minify';
+
+const sql = 'SELECT 1; -- comments';
+
+minify(sql); //=> SELECT 1;
+```
+
+And if you are using `"allowSyntheticDefaultImports": true` in your `tsconfig.json`,
+then you can include it like this:
+
+```ts
+import minify from 'pg-minify';
+```
+
+[pg-minify]:https://github.com/vitaly-t/pg-minify
diff --git a/server/node_modules/pg-minify/typescript/pg-minify.d.ts b/server/node_modules/pg-minify/typescript/pg-minify.d.ts
new file mode 100644
index 0000000..0e1f299
--- /dev/null
+++ b/server/node_modules/pg-minify/typescript/pg-minify.d.ts
@@ -0,0 +1,36 @@
+////////////////////////////////////////
+// For pg-minify v1.6.0 or later.
+////////////////////////////////////////
+
+declare namespace pgMinify {
+
+ interface IMinifyOptions {
+ compress?: boolean;
+ removeAll?: boolean;
+ }
+
+ interface IErrorPosition {
+ line: number;
+ column: number;
+ }
+
+ enum parsingErrorCode {
+ unclosedMLC = 0, // Unclosed multi-line comment.
+ unclosedText = 1, // Unclosed text block.
+ unclosedQI = 2, // Unclosed quoted identifier.
+ multiLineQI = 3 // Multi-line quoted identifiers are not supported.
+ }
+
+ class SQLParsingError implements Error {
+ name: string;
+ message: string;
+ stack: string;
+ error: string;
+ code: parsingErrorCode;
+ position: IErrorPosition;
+ }
+}
+
+declare function pgMinify(sql: string, options?: pgMinify.IMinifyOptions): string;
+
+export = pgMinify;
diff --git a/server/node_modules/pg-promise/LICENSE b/server/node_modules/pg-promise/LICENSE
new file mode 100644
index 0000000..e2a556b
--- /dev/null
+++ b/server/node_modules/pg-promise/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015-2018 Vitaly Tomilov
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/server/node_modules/pg-promise/README.md b/server/node_modules/pg-promise/README.md
new file mode 100644
index 0000000..754579f
--- /dev/null
+++ b/server/node_modules/pg-promise/README.md
@@ -0,0 +1,1136 @@
+pg-promise
+==========
+
+PostgreSQL interface for Node.js
+
+---
+
+* [About](#about)
+* [Support & Sponsorship](#support--sponsorship)
+* [Documentation](#documentation)
+* [Contributing](#contributing)
+* [Usage]
+ - [Methods](#methods)
+ - [Query Formatting](#query-formatting)
+ - [Index Variables]
+ - [Named Parameters]
+ - [Nested Named Parameters]
+ - [Formatting Filters](#formatting-filters)
+ - [SQL Names]
+ - [Alias Filter]
+ - [Raw Text]
+ - [Open Values]
+ - [JSON Filter]
+ - [CSV Filter]
+ - [Custom Type Formatting]
+ - [Explicit CTF]
+ - [Symbolic CTF]
+ - [Query Files]
+ - [Tasks]
+ - [Conditional Tasks]
+ - [Transactions]
+ - [Nested Transactions]
+ - [Limitations]
+ - [Configurable Transactions]
+ - [Conditional Transactions]
+ - [Library de-initialization]
+* [History](#history)
+
+---
+
+# About
+
+Built on top of [node-postgres], this library adds the following:
+
+* Automatic connections
+* Automatic transactions
+* Powerful query-formatting engine + query generation
+* Declarative approach to handling query results
+* Global events reporting for central handling
+* Extensive support for external SQL files
+* Support for all promise libraries
+
+At its inception in 2015, this library was only adding promises to the base driver, hence the name `pg-promise`.
+And while the original name was kept, the library's functionality was vastly extended, with promises now being
+only its tiny part.
+
+# Support & Sponsorship
+
+I do free support here and on [StackOverflow](https://stackoverflow.com/questions/tagged/pg-promise).
+
+And if you want to help this project, I can accept Bitcoin: `1yki7MXMkuDw8qqe5icVdh1GJZSQSzKZp`
+
+# Documentation
+
+Chapter [Usage] below explains the basics you need to know, while the [Official Documentation]
+gets you started, and provides links to all other resources.
+
+# Contributing
+
+Please read the [Contribution Notes] before opening any new issue or PR.
+
+# Usage
+
+Once you have created a [Database] object, according to the steps in the [Official Documentation],
+you get access to the methods documented below.
+
+## Methods
+
+All query methods of the library are based off generic method [query].
+
+You should normally use only the derived, result-specific methods for executing queries, all of which are named according
+to how many rows of data the query is expected to return, so for each query you should pick the right method:
+[none], [one], [oneOrNone], [many], [manyOrNone] = [any]. Do not confuse the method name for the number of rows
+to be affected by the query, which is completely irrelevant.
+
+By relying on the result-specific methods you protect your code from an unexpected number of data rows,
+to be automatically rejected (treated as errors).
+
+There are also a few specific methods that you will often need:
+
+* [result], [multi], [multiResult] - for verbose and/or multi-query results;
+* [map], [each] - for simpler/inline result pre-processing/re-mapping;
+* [func], [proc] - to simplify execution of SQL functions/procedures;
+* [stream] - to access rows from a query via a read stream;
+* [connect], [task], [tx] + [txIf] - for shared connections + automatic transactions, each exposing a connected protocol
+ that has additional methods [batch], [page] and [sequence].
+
+The protocol is fully customizable / extendable via event [extend].
+
+**IMPORTANT:**
+
+The most important methods to understand from start are [task] and [tx]/[txIf] (see [Tasks] and [Transactions]).
+As documented for method [query], it acquires and releases the connection, which makes it a poor choice for executing
+multiple queries at once. For this reason, [Chaining Queries] is a must-read, to avoid writing the code that misuses connections.
+
+[Learn by Example] is a beginner's tutorial based on examples.
+
+## Query Formatting
+
+This library comes with embedded query-formatting engine that offers high-performance value escaping,
+flexibility and extensibility. It is used by default with all query methods, unless you opt out of it entirely
+via option `pgFormatting` within [Initialization Options].
+
+All formatting methods used internally are available from the [formatting] namespace, so they can also be used
+directly when needed. The main method there is [format], used by every query method to format the query.
+
+The formatting syntax for variables is decided from the type of `values` passed in:
+
+* [Index Variables] when `values` is an array or a single basic type;
+* [Named Parameters] when `values` is an object (other than `Array` or `null`).
+
+**ATTENTION:** Never use ES6 template strings or manual concatenation to generate queries, as both
+can easily result in broken queries! Only this library's formatting engine knows how to properly escape
+variable values for PostgreSQL.
+
+### Index Variables
+
+The simplest (classic) formatting uses `$1, $2, ...` syntax to inject values into the query string,
+based on their index (from `$1` to `$100000`) from the array of values:
+
+```js
+await db.any('SELECT * FROM product WHERE price BETWEEN $1 AND $2', [1, 10])
+```
+
+The formatting engine also supports single-value parametrization for queries that use only variable `$1`:
+
+```js
+await db.any('SELECT * FROM users WHERE name = $1', 'John')
+```
+
+This however works only for types `number`, `bigint`, `string`, `boolean`, `Date` and `null`, because types like `Array`
+and `Object` change the way parameters are interpreted. That's why passing in index variables within an array
+is advised as safer, to avoid ambiguities.
+
+### Named Parameters
+
+When a query method is parameterized with `values` as an object, the formatting engine expects the query to use
+the Named Parameter syntax `$*propName*`, with `*` being any of the following open-close pairs: `{}`, `()`, `<>`, `[]`, `//`.
+
+```js
+// We can use every supported variable syntax at the same time, if needed:
+await db.none('INSERT INTO users(first_name, last_name, age) VALUES(${name.first}, $, $/age/)', {
+ name: {first: 'John', last: 'Dow'},
+ age: 30
+});
+```
+
+**IMPORTANT:** Never use the reserved `${}` syntax inside ES6 template strings, as those have no knowledge of how to format values
+for PostgreSQL. Inside ES6 template strings you should only use one of the 4 alternatives - `$()`, `$<>`, `$[]` or `$//`.
+In general, you should either use the standard strings for SQL, or place SQL into external files - see [Query Files].
+
+Valid variable names are limited to the syntax of open-name JavaScript variables. And name `this` has special meaning - it refers
+to the formatting object itself (see below).
+
+Keep in mind that while property values `null` and `undefined` are both formatted as `null`, an error is thrown when the
+property does not exist.
+
+**`this` reference**
+
+Property `this` refers to the formatting object itself, to be inserted as a JSON-formatted string.
+
+```js
+await db.none('INSERT INTO documents(id, doc) VALUES(${id}, ${this})', {
+ id: 123,
+ body: 'some text'
+})
+//=> INSERT INTO documents(id, doc) VALUES(123, '{"id":123,"body":"some text"}')
+```
+
+#### Nested Named Parameters
+
+[Named Parameters] support property name nesting of any depth.
+
+
+Example
+
+```js
+const obj = {
+ one: {
+ two: {
+ three: {
+ value1: 123,
+ value2: a => {
+ // a = obj.one.two.three
+ return 'hello';
+ },
+ value3: function(a) {
+ // a = this = obj.one.two.three
+ return 'world';
+ },
+ value4: {
+ toPostgres: a => {
+ // Custom Type Formatting
+ // a = obj.one.two.three.value4
+ return a.text;
+ },
+ text: 'custom'
+ }
+ }
+ }
+ }
+};
+await db.one('SELECT ${one.two.three.value1}', obj); //=> SELECT 123
+await db.one('SELECT ${one.two.three.value2}', obj); //=> SELECT 'hello'
+await db.one('SELECT ${one.two.three.value3}', obj); //=> SELECT 'world'
+await db.one('SELECT ${one.two.three.value4}', obj); //=> SELECT 'custom'
+```
+
+
+
+The last name in the resolution can be anything, including:
+
+* the actual value (basic JavaScript type)
+* a function that returns:
+ - the actual value
+ - another function
+ - a [Custom Type Formatting] object
+* a [Custom Type Formatting] object that returns:
+ - the actual value
+ - another [Custom Type Formatting] object
+ - a function
+
+i.e. the resolution chain is infinitely flexible, and supports recursion without limits.
+
+Please note, however, that nested parameters are not supported within the [helpers] namespace.
+
+## Formatting Filters
+
+By default, all values are formatted according to their JavaScript type. Formatting filters (or modifiers),
+change that, so the value is formatted differently.
+
+Note that formatting filters work only for normal queries, and are not available within [PreparedStatement] or
+[ParameterizedQuery], because those are, by definition, formatted on the server side.
+
+Filters use the same syntax for [Index Variables] and [Named Parameters], following immediately the variable name:
+
+
+With Index Variables
+
+```js
+await db.any('SELECT $1:name FROM $2:name', ['price', 'products'])
+//=> SELECT "price" FROM "products"
+```
+
+
+
+With Named Parameters
+
+```js
+await db.any('SELECT ${column:name} FROM ${table:name}', {
+ column: 'price',
+ table: 'products'
+});
+//=> SELECT "price" FROM "products"
+```
+
+
+
+The following filters are supported:
+
+* `:name` / `~` - [SQL Names]
+ - `:alias` - [Alias Filter]
+* `:raw` / `^` - [Raw Text]
+* `:value` / `#` - [Open Values]
+* `:csv` / `:list` - [CSV Filter]
+* `:json` - [JSON Filter]
+
+### SQL Names
+
+When a variable name ends with `:name`, or shorter syntax `~` (tilde), it represents an SQL name or identifier,
+to be escaped accordingly:
+
+
+Using ~ filter
+
+```js
+await db.query('INSERT INTO $1~($2~) VALUES(...)', ['Table Name', 'Column Name']);
+//=> INSERT INTO "Table Name"("Column Name") VALUES(...)
+```
+
+
+
+Using :name filter
+
+```js
+await db.query('INSERT INTO $1:name($2:name) VALUES(...)', ['Table Name', 'Column Name']);
+//=> INSERT INTO "Table Name"("Column Name") VALUES(...)
+```
+
+
+
+Typically, an SQL name variable is a text string, which must be at least 1 character long.
+However, `pg-promise` supports a variety of ways in which SQL names can be supplied:
+
+* A string that contains only `*` (asterisks) is automatically recognized as _all columns_:
+
+```js
+await db.query('SELECT $1:name FROM $2:name', ['*', 'table']);
+//=> SELECT * FROM "table"
+```
+
+* An array of strings to represent column names:
+
+```js
+await db.query('SELECT ${columns:name} FROM ${table:name}', {
+ columns: ['column1', 'column2'],
+ table: 'table'
+});
+//=> SELECT "column1","column2" FROM "table"
+```
+
+* Any object that's not an array gets its properties enumerated for column names:
+
+```js
+const obj = {
+ one: 1,
+ two: 2
+};
+
+await db.query('SELECT $1:name FROM $2:name', [obj, 'table']);
+//=> SELECT "one","two" FROM "table"
+```
+
+In addition, the syntax supports `this` to enumerate column names from the formatting object:
+
+```js
+const obj = {
+ one: 1,
+ two: 2
+};
+
+await db.query('INSERT INTO table(${this:name}) VALUES(${this:csv})', obj);
+//=> INSERT INTO table("one","two") VALUES(1, 2)
+```
+
+Relying on this type of formatting for sql names and identifiers, along with regular variable formatting
+protects your application from [SQL injection].
+
+Method [as.name] implements the formatting.
+
+#### Alias Filter
+
+An alias is a simpler, less-strict version of `:name` filter, which only supports a text string, i.e.
+it does not support `*`, `this`, array or object as inputs, like `:name` does. However, it supports other
+popular cases that are less strict, but cover at least 99% of all use cases, as shown below.
+
+ - It will skip adding surrounding double quotes when the name is a same-case single word:
+
+```js
+await db.any('SELECT full_name as $1:alias FROM $2:name', ['name', 'table']);
+//=> SELECT full_name as name FROM "table"
+```
+
+ - It will automatically split the name into multiple SQL names when encountering `.`, and then
+ escape each part separately, thus supporting auto-composite SQL names:
+
+```js
+await db.any('SELECT * FROM $1:alias', ['schemaName.table']);
+//=> SELECT * FROM "schemaName".table
+```
+
+For more details see method [as.alias] that implements the formatting.
+
+### Raw Text
+
+When a variable name ends with `:raw`, or shorter syntax `^`, the value is to be injected as raw text, without escaping.
+
+Such variables cannot be `null` or `undefined`, because of the ambiguous meaning in this case, and those values
+will throw error `Values null/undefined cannot be used as raw text.`
+
+```js
+const where = pgp.as.format('WHERE price BETWEEN $1 AND $2', [5, 10]); // pre-format WHERE condition
+await db.any('SELECT * FROM products $1:raw', where);
+//=> SELECT * FROM products WHERE price BETWEEN 5 AND 10
+```
+
+Special syntax `this:raw` / `this^` is supported, to inject the formatting object as raw JSON string.
+
+**WARNING:**
+This filter is unsafe, and should not be used for values that come from the client side, as it may result in [SQL injection].
+
+### Open Values
+
+When a variable name ends with `:value`, or shorter syntax `#`, it is escaped as usual, except when its type is a string,
+the trailing quotes are not added.
+
+Open values are primarily to be able to compose complete `LIKE`/`ILIKE` dynamic statements in external SQL files,
+without having to generate them in the code.
+
+i.e. you can either generate a filter like this in your code:
+
+```js
+const name = 'John';
+const filter = '%' + name + '%';
+```
+
+and then pass it in as a regular string variable, or you can pass in only `name`, and have your query use the
+open-value syntax to add the extra search logic:
+
+```sql
+SELECT * FROM table WHERE name LIKE '%$1:value%')
+```
+
+**WARNING:**
+This filter is unsafe, and should not be used for values that come from the client side, as it may result in [SQL injection].
+
+Method [as.value] implements the formatting.
+
+### JSON Filter
+
+When a variable name ends with `:json`, explicit JSON formatting is applied to the value.
+
+By default, any object that's not `Date`, `Array`, `Buffer`, `null` or Custom-Type (see [Custom Type Formatting]),
+is automatically formatted as JSON.
+
+Method [as.json] implements the formatting.
+
+### CSV Filter
+
+When a variable name ends with `:csv` or `:list`, it is formatted as a list of Comma-Separated Values, with each
+value formatted according to its JavaScript type.
+
+Typically, you would use this for a value that's an array, though it works for single values also. See the examples below.
+
+
+Using :csv filter
+
+```js
+const ids = [1, 2, 3];
+await db.any('SELECT * FROM table WHERE id IN ($1:csv)', [ids])
+//=> SELECT * FROM table WHERE id IN (1,2,3)
+```
+
+
+
+Using :list filter
+
+```js
+const ids = [1, 2, 3];
+await db.any('SELECT * FROM table WHERE id IN ($1:list)', [ids])
+//=> SELECT * FROM table WHERE id IN (1,2,3)
+```
+
+
+
+Using automatic property enumeration:
+
+
+Enumeration with :csv filter
+
+```js
+const obj = {first: 123, second: 'text'};
+
+await db.none('INSERT INTO table($1:name) VALUES($1:csv)', [obj])
+//=> INSERT INTO table("first","second") VALUES(123,'text')
+
+await db.none('INSERT INTO table(${this:name}) VALUES(${this:csv})', obj)
+//=> INSERT INTO table("first","second") VALUES(123,'text')
+```
+
+
+
+Enumeration with :list filter
+
+```js
+const obj = {first: 123, second: 'text'};
+
+await db.none('INSERT INTO table($1:name) VALUES($1:list)', [obj])
+//=> INSERT INTO table("first","second") VALUES(123,'text')
+
+await db.none('INSERT INTO table(${this:name}) VALUES(${this:list})', obj)
+//=> INSERT INTO table("first","second") VALUES(123,'text')
+```
+
+
+
+Method [as.csv] implements the formatting.
+
+## Custom Type Formatting
+
+The library supports dual syntax for _CTF_ (Custom Type Formatting):
+
+* [Explicit CTF] - extending the object/type directly, for ease of use, while changing its signature;
+* [Symbolic CTF] - extending the object/type via [Symbol] properties, without changing its signature.
+
+The library always first checks for the [Symbolic CTF], and if no such syntax is used, only then it checks for the [Explicit CTF].
+
+### Explicit CTF
+
+Any value/object that implements function `toPostgres` is treated as a custom-formatting type. The function is then called to get the actual value,
+passing it the object via `this` context, and plus as a single parameter (in case `toPostgres` is an ES6 arrow function):
+
+```js
+const obj = {
+ toPostgres(self) {
+ // self = this = obj
+
+ // return a value that needs proper escaping
+ }
+}
+```
+
+Function `toPostgres` can return anything, including another object with its own `toPostgres` function, i.e. nested custom types are supported.
+
+The value returned from `toPostgres` is escaped according to its JavaScript type, unless the object also contains property `rawType` set
+to a truthy value, in which case the returned value is considered pre-formatted, and thus injected directly, as [Raw Text]:
+
+```js
+const obj = {
+ toPostgres(self) {
+ // self = this = obj
+
+ // return a pre-formatted value that does not need escaping
+ },
+ rawType: true // use result from toPostgres directly, as Raw Text
+}
+```
+
+Example below implements a class that auto-formats `ST_MakePoint` from coordinates:
+
+```js
+class STPoint {
+ constructor(x, y) {
+ this.x = x;
+ this.y = y;
+ this.rawType = true; // no escaping, because we return pre-formatted SQL
+ }
+
+ toPostgres(self) {
+ return pgp.as.format('ST_MakePoint($1, $2)', [this.x, this.y]);
+ }
+}
+```
+
+And a classic syntax for such a class is even simpler:
+
+```js
+function STPoint(x, y){
+ this.rawType = true; // no escaping, because we return pre-formatted SQL
+ this.toPostgres = () => pgp.as.format('ST_MakePoint($1, $2)', [x, y]);
+}
+```
+
+With this class you can use `new STPoint(12, 34)` as a formatting value that will be injected correctly.
+
+You can also use _CTF_ to override any standard type:
+
+```js
+Date.prototype.toPostgres = a => a.getTime();
+```
+
+### Symbolic CTF
+
+The only difference from [Explicit CTF] is that we set `toPostgres` and `rawType` as ES6 [Symbol] properties,
+defined in the [ctf] namespace:
+
+```js
+const {toPostgres, rawType} = pgp.as.ctf; // Global CTF symbols
+
+const obj = {
+ [toPostgres](self) {
+ // self = this = obj
+
+ // return a pre-formatted value that does not need escaping
+ },
+ [rawType]: true // use result from toPostgres directly, as Raw Text
+};
+```
+
+As CTF symbols are global, you can also configure objects independently of this library:
+
+```js
+const ctf = {
+ toPostgres: Symbol.for('ctf.toPostgres'),
+ rawType: Symbol.for('ctf.rawType')
+};
+```
+
+Other than that, it works exactly as the [Explicit CTF], but without changing the object's signature.
+
+If you do not know what it means, read the ES6 [Symbol] API and its use for unique property names.
+But in short, [Symbol] properties are not enumerated via `for(name in obj)`, i.e. they are not generally
+visible within JavaScript, only through specific API `Object.getOwnPropertySymbols`.
+
+## Query Files
+
+Use of external SQL files (via [QueryFile]) offers many advantages:
+
+* Much cleaner JavaScript code, with all SQL kept in external files;
+* Much easier to write large and well-formatted SQL, with many comments and whole revisions;
+* Changes in external SQL can be automatically re-loaded (option `debug`), without restarting the app;
+* Pre-formatting SQL upon loading (option `params`), automating two-step SQL formatting;
+* Parsing and minifying SQL (options `minify` + `compress`), for early error detection and compact queries.
+
+
+Example
+
+```js
+const {join: joinPath} = require('path');
+
+// Helper for linking to external query files:
+function sql(file) {
+ const fullPath = joinPath(__dirname, file);
+ return new pgp.QueryFile(fullPath, {minify: true});
+}
+
+// Create a QueryFile globally, once per file:
+const sqlFindUser = sql('./sql/findUser.sql');
+
+db.one(sqlFindUser, {id: 123})
+ .then(user => {
+ console.log(user);
+ })
+ .catch(error => {
+ if (error instanceof pgp.errors.QueryFileError) {
+ // => the error is related to our QueryFile
+ }
+ });
+```
+
+File `findUser.sql`:
+
+```sql
+/*
+ multi-line comments are supported
+*/
+SELECT name, dob -- single-line comments are supported
+FROM Users
+WHERE id = ${id}
+```
+
+
+
+Every query method of the library can accept type [QueryFile] as its `query` parameter.
+Type [QueryFile] never throws any error, leaving it for query methods to gracefully reject with [QueryFileError].
+
+Use of [Named Parameters] within external SQL files is recommended over the [Index Variables], because it makes the SQL
+much easier to read and understand, and because it also allows [Nested Named Parameters], so variables in a large
+and complex SQL file can be grouped in namespaces for even easier visual separation.
+
+## Tasks
+
+A [task] represents a shared connection for executing multiple queries:
+
+```js
+db.task(t => {
+ // execute a chain of queries against the task context, and return the result:
+ return t.one('SELECT count(*) FROM events WHERE id = $1', 123, a => +a.count)
+ .then(count => {
+ if(count > 0) {
+ return t.any('SELECT * FROM log WHERE event_id = $1', 123)
+ .then(logs => {
+ return {count, logs};
+ })
+ }
+ return {count};
+ });
+})
+ .then(data => {
+ // success, data = either {count} or {count, logs}
+ })
+ .catch(error => {
+ // failed
+ });
+```
+
+Tasks provide a shared connection context for its callback function, to be released when finished, and
+they must be used whenever executing more than one query at a time. See also [Chaining Queries] to understand
+the importance of using tasks.
+
+You can optionally tag tasks (see [Tags]), and use ES7 async syntax:
+
+
+ With ES7 async
+
+```js
+db.task(async t => {
+ const count = await t.one('SELECT count(*) FROM events WHERE id = $1', 123, a => +a.count);
+ if(count > 0) {
+ const logs = await t.any('SELECT * FROM log WHERE event_id = $1', 123);
+ return {count, logs};
+ }
+ return {count};
+})
+ .then(data => {
+ // success, data = either {count} or {count, logs}
+ })
+ .catch(error => {
+ // failed
+ });
+```
+
+
+
+
+ With ES7 async + tag
+
+```js
+db.task('get-event-logs', async t => {
+ const count = await t.one('SELECT count(*) FROM events WHERE id = $1', 123, a => +a.count);
+ if(count > 0) {
+ const logs = await t.any('SELECT * FROM log WHERE event_id = $1', 123);
+ return {count, logs};
+ }
+ return {count};
+})
+ .then(data => {
+ // success, data = either {count} or {count, logs}
+ })
+ .catch(error => {
+ // failed
+ });
+```
+
+
+
+### Conditional Tasks
+
+Method [taskIf] creates a new task only when required, according to the condition.
+
+The default condition is to start a new task only when necessary, such as on the top level.
+
+
+With default condition
+
+```js
+db.taskIf(t1 => {
+ // new task has started, as the top level doesn't have one
+ return t1.taskIf(t2 => {
+ // Task t1 is being used, according to the default condition
+ // t2 = t1
+ });
+})
+```
+
+
+
+With a custom condition - value
+
+```js
+db.taskIf({cnd: false}, t1 => {
+ // new task is created, i.e. option cnd is ignored here,
+ // because the task is required on the top level
+ return t1.taskIf({cnd: true}, t2 => {
+ // new task created, because we specified that we want one;
+ // t2 != t1
+ });
+})
+```
+
+
+
+With a custom condition - callback
+
+```js
+const cnd = c => {
+ // c.ctx - task/tx context (not available on the top level)
+ // default condition: return !c.ctx;
+ return someValue;
+};
+
+db.taskIf({cnd}, t1 => {
+ // new task is always created, because it is required on the top level
+ return t1.taskIf({cnd}, t2 => {
+ // if someValue is truthy, a new task is created (t2 != t1);
+ // otherwise, we continue with the containing task (t2 = t1).
+ });
+})
+```
+
+
+## Transactions
+
+Transaction method [tx] is like [task], which also executes `BEGIN` + `COMMIT`/`ROLLBACK`:
+
+```js
+db.tx(t => {
+ // creating a sequence of transaction queries:
+ const q1 = t.none('UPDATE users SET active = $1 WHERE id = $2', [true, 123]);
+ const q2 = t.one('INSERT INTO audit(entity, id) VALUES($1, $2) RETURNING id', ['users', 123]);
+
+ // returning a promise that determines a successful transaction:
+ return t.batch([q1, q2]); // all of the queries are to be resolved;
+})
+ .then(data => {
+ // success, COMMIT was executed
+ })
+ .catch(error => {
+ // failure, ROLLBACK was executed
+ });
+```
+
+If the callback function returns a rejected promise or throws an error, the method will automatically execute `ROLLBACK` at the end.
+In all other cases the transaction will be automatically closed by `COMMIT`.
+
+The same as tasks, transactions support [Tags] and ES7 `async`:
+
+
+With ES7 async
+
+```js
+db.tx(async t => {
+ await t.none('UPDATE users SET active = $1 WHERE id = $2', [true, 123]);
+ await t.one('INSERT INTO audit(entity, id) VALUES($1, $2) RETURNING id', ['users', 123]);
+})
+ .then(data => {
+ // success, COMMIT was executed
+ })
+ .catch(error => {
+ // failure, ROLLBACK was executed
+ });
+```
+
+
+
+
+With ES7 async + tag
+
+```js
+db.tx('update-user', async t => {
+ await t.none('UPDATE users SET active = $1 WHERE id = $2', [true, 123]);
+ await t.one('INSERT INTO audit(entity, id) VALUES($1, $2) RETURNING id', ['users', 123]);
+})
+ .then(data => {
+ // success, COMMIT was executed
+ })
+ .catch(error => {
+ // failure, ROLLBACK was executed
+ });
+```
+
+
+
+### Nested Transactions
+
+Nested transactions automatically share the connection between all levels.
+This library sets no limitation as to the depth (nesting levels) of transactions supported.
+
+
+Example
+
+```js
+db.tx(t => {
+ const queries = [
+ t.none('DROP TABLE users;'),
+ t.none('CREATE TABLE users(id SERIAL NOT NULL, name TEXT NOT NULL)')
+ ];
+ for (let i = 1; i <= 100; i++) {
+ queries.push(t.none('INSERT INTO users(name) VALUES($1)', 'name-' + i));
+ }
+ queries.push(
+ t.tx(t1 => {
+ return t1.tx(t2 => {
+ return t2.one('SELECT count(*) FROM users');
+ });
+ }));
+ return t.batch(queries);
+})
+ .then(data => {
+ // success
+ })
+ .catch(error => {
+ // failure
+ });
+```
+
+
+
+If you want to avoid automatic occurrence of nested transactions, see [Conditional Transactions].
+
+#### Limitations
+
+It is important to know that PostgreSQL does not support full/atomic nested transactions, it only
+supports [savepoints](http://www.postgresql.org/docs/9.6/static/sql-savepoint.html) inside top-level
+transactions, to allow *partial rollbacks*.
+
+Postgres uses `BEGIN` with `COMMIT / ROLLBACK` for top-level transactions, and `SAVEPOINT name`
+with `RELEASE / ROLLBACK TO name` for inner save-points.
+
+This library automatically executes all such transaction and savepoint commands, with unique
+savepoint names, based on the transaction level, plus index within the current level, in the
+form of `sp_x_y`.
+
+In the name, `x` is the transaction level, starting with `1` (because `0` is the top-level
+transaction that does not use savepoints). And `y` represents sub-transaction order/index
+within the current level, starting with `1`. So the first savepoint on the top level will
+be named `sp_1_1`.
+
+### Configurable Transactions
+
+[TransactionMode] type can extend your `BEGIN` command with transaction configuration:
+
+```js
+const {TransactionMode, isolationLevel} = pgp.txMode;
+
+// Create a reusable transaction mode (serializable + read-only + deferrable):
+const mode = new TransactionMode({
+ tiLevel: isolationLevel.serializable,
+ readOnly: true,
+ deferrable: true
+});
+
+db.tx({mode}, t => {
+ // do transaction queries here
+})
+ .then(() => {
+ // success;
+ })
+ .catch(error => {
+ // failure
+ });
+```
+
+Instead of the default `BEGIN`, such transaction will open with the following command:
+```
+BEGIN ISOLATION LEVEL SERIALIZABLE READ ONLY DEFERRABLE
+```
+
+_Transaction Mode_ is set via option `mode`, preceding the callback function. See methods [tx] and [txIf].
+
+This is the most efficient and best-performing way of configuring transactions. In combination with
+*Transaction Snapshots* you can make the most out of transactions in terms of performance and concurrency.
+
+### Conditional Transactions
+
+Method [txIf] executes a transaction / [tx] when a specified condition is met, or else it executes a [task].
+
+When no condition is specified, the default is to start a transaction, if currently not in one, or else it starts a task.
+It is useful when you want to avoid [Nested Transactions] - savepoints.
+
+
+With default condition
+
+```js
+db.txIf(t => {
+ // transaction is started, as the top level doesn't have one
+ return t.txIf(t2 => {
+ // a task is started, because there is a parent transaction
+ });
+})
+```
+
+
+
+With a custom condition - value
+
+```js
+db.txIf({cnd: someValue}, t => {
+ // if condition is truthy, a transaction is started
+ return t.txIf(t2 => {
+ // a task is started, if the parent is a transaction
+ // a transaction is started, if the parent is a task
+ });
+})
+```
+
+
+
+With a custom condition - callback
+
+```js
+const cnd = c => {
+ // c.ctx - task/transaction context (not available on the top level)
+ // default condition: return !c.ctx || !c.ctx.inTransaction;
+ return someValue;
+};
+
+db.txIf({cnd}, t => {
+ // if condition is truthy, a transaction is started
+ return t.txIf(t2 => {
+ // a task is started, if the parent is a transaction
+ // a transaction is started, if the parent is a task
+ });
+})
+```
+
+
+## Library de-initialization
+
+This library manages all database connections via the [connection pool], which internally caches them.
+
+Connections in the cache expire due to inactivity after [idleTimeoutMillis] number of milliseconds, which you
+can set only when creating the [Database] object.
+
+While there is a single open connection in the pool, the process cannot terminate by itself, only via `process.exit()`,
+unless `allowExitOnIdle` is used - see update section below.
+If you want the process to finish by itself, without waiting for all connections in the pool to expire, you need
+to force the pool to shut down all the connections it holds:
+
+```js
+db.$pool.end(); // shuts down the connection pool associated with the Database object
+```
+
+For example, if you are using the [Bluebird] library, you can chain the last promise in the process like this:
+
+```js
+.finally(db.$pool.end);
+```
+
+**IMPORTANT:** Note that if your app is an HTTP service, or generally an application that does not feature any exit point,
+then you should not do any de-initialization at all. It is only if your app is a run-through process/utility, then you
+might want to use it, so the process ends without delays.
+
+In applications that either use multiple databases or execute a multi-pool strategy for balanced query loads, you would end up
+with multiple [Database] objects, each with its own connection pool. In this scenario, in order to exit the process normally,
+at a particular point, you can call [pgp.end] to shut down all connection pools at once:
+
+```js
+pgp.end(); // shuts down all connection pools created in the process
+```
+
+or promise-chained to the last query block in the process:
+
+```js
+.finally(pgp.end);
+```
+
+Once you have shut down the pool associated with your [Database] object, you can no longer use the object, and any of its query methods
+will be rejecting with [Error] = `Connection pool of the database object has been destroyed`.
+
+See the relevant API: [pgp.end], [Database.$pool]
+
+### update
+
+Version 10.11.0 added support for connection option `allowExitOnIdle`, to let process exit when pool is idle.
+
+# History
+
+Although this project formally maintains a [CHANGELOG], for a short list of the top-level changes,
+for detailed changes between versions you should see the corresponding release notes.
+
+
+
+[Usage]:#usage
+[Index Variables]:#index-variables
+[Named Parameters]:#named-parameters
+[Nested Named Parameters]:#nested-named-parameters
+[SQL Names]:#sql-names
+[Raw Text]:#raw-text
+[Open Values]:#open-values
+[Alias Filter]:#alias-filter
+[JSON Filter]:#json-filter
+[CSV Filter]:#csv-filter
+[Custom Type Formatting]:#custom-type-formatting
+[Explicit CTF]:#explicit-ctf
+[Symbolic CTF]:#symbolic-ctf
+[Tasks]:#tasks
+[Transactions]:#transactions
+[Nested Transactions]:#nested-transactions
+[Limitations]:#limitations
+[Configurable Transactions]:#configurable-transactions
+[Conditional Tasks]:#conditional-tasks
+[Conditional Transactions]:#conditional-transactions
+[Library de-initialization]:#library-de-initialization
+[Query Files]:#query-files
+
+
+
+[Contribution Notes]:.github/CONTRIBUTING.md
+[CHANGELOG]:.github/CHANGELOG.md
+
+
+
+[query]:http://vitaly-t.github.io/pg-promise/Database.html#query
+[none]:http://vitaly-t.github.io/pg-promise/Database.html#none
+[one]:http://vitaly-t.github.io/pg-promise/Database.html#one
+[oneOrNone]:http://vitaly-t.github.io/pg-promise/Database.html#oneOrNone
+[many]:http://vitaly-t.github.io/pg-promise/Database.html#many
+[manyOrNone]:http://vitaly-t.github.io/pg-promise/Database.html#manyOrNone
+[any]:http://vitaly-t.github.io/pg-promise/Database.html#any
+[result]:http://vitaly-t.github.io/pg-promise/Database.html#result
+[multi]:http://vitaly-t.github.io/pg-promise/Database.html#multi
+[multiResult]:http://vitaly-t.github.io/pg-promise/Database.html#multiResult
+[map]:http://vitaly-t.github.io/pg-promise/Database.html#map
+[each]:http://vitaly-t.github.io/pg-promise/Database.html#each
+[func]:http://vitaly-t.github.io/pg-promise/Database.html#func
+[proc]:http://vitaly-t.github.io/pg-promise/Database.html#proc
+[stream]:http://vitaly-t.github.io/pg-promise/Database.html#stream
+[connect]:http://vitaly-t.github.io/pg-promise/Database.html#connect
+[task]:http://vitaly-t.github.io/pg-promise/Database.html#task
+[taskIf]:http://vitaly-t.github.io/pg-promise/Database.html#taskIf
+[tx]:http://vitaly-t.github.io/pg-promise/Database.html#tx
+[txIf]:http://vitaly-t.github.io/pg-promise/Database.html#txIf
+[batch]:http://vitaly-t.github.io/pg-promise/Task.html#batch
+[sequence]:http://vitaly-t.github.io/pg-promise/Task.html#sequence
+[page]:http://vitaly-t.github.io/pg-promise/Task.html#page
+[extend]:http://vitaly-t.github.io/pg-promise/global.html#event:extend
+
+
+
+[Official Documentation]:http://vitaly-t.github.io/pg-promise/index.html
+[Initialization Options]:http://vitaly-t.github.io/pg-promise/module-pg-promise.html
+[helpers]:http://vitaly-t.github.io/pg-promise/helpers.html
+[QueryFile]:http://vitaly-t.github.io/pg-promise/QueryFile.html
+[QueryFileError]:http://vitaly-t.github.io/pg-promise/errors.QueryFileError.html
+[Database]:http://vitaly-t.github.io/pg-promise/Database.html
+[Database.$pool]:http://vitaly-t.github.io/pg-promise/Database.html#$pool
+[pgp.end]:http://vitaly-t.github.io/pg-promise/module-pg-promise.html#~end
+[formatting]:http://vitaly-t.github.io/pg-promise/formatting.html
+[ctf]:http://vitaly-t.github.io/pg-promise/formatting.ctf.html
+[as.format]:http://vitaly-t.github.io/pg-promise/formatting.html#.format
+[format]:http://vitaly-t.github.io/pg-promise/formatting.html#.format
+[as.value]:http://vitaly-t.github.io/pg-promise/formatting.html#.value
+[as.csv]:http://vitaly-t.github.io/pg-promise/formatting.html#.csv
+[as.json]:http://vitaly-t.github.io/pg-promise/formatting.html#.json
+[as.name]:http://vitaly-t.github.io/pg-promise/formatting.html#.name
+[as.alias]:http://vitaly-t.github.io/pg-promise/formatting.html#.alias
+[TransactionMode]:http://vitaly-t.github.io/pg-promise/txMode.TransactionMode.html
+[PreparedStatement]:https://vitaly-t.github.io/pg-promise/PreparedStatement.html
+[ParameterizedQuery]:https://vitaly-t.github.io/pg-promise/ParameterizedQuery.html
+
+
+
+[Learn by Example]:https://github.com/vitaly-t/pg-promise/wiki/Learn-by-Example
+[Chaining Queries]:https://github.com/vitaly-t/pg-promise/wiki/Chaining-Queries
+[Tags]:https://github.com/vitaly-t/pg-promise/wiki/Tags
+
+
+
+[node-postgres]:https://github.com/brianc/node-postgres
+[Bluebird]:https://github.com/petkaantonov/bluebird
+[SQL injection]:https://en.wikipedia.org/wiki/SQL_injection
+[Symbol]:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol
+[idleTimeoutMillis]:https://github.com/brianc/node-postgres/blob/master/packages/pg/lib/defaults.js#L46
+[connection pool]:https://github.com/brianc/node-pg-pool
+[Error]:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error
diff --git a/server/node_modules/pg-promise/lib/connect.js b/server/node_modules/pg-promise/lib/connect.js
new file mode 100644
index 0000000..b10396b
--- /dev/null
+++ b/server/node_modules/pg-promise/lib/connect.js
@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2015-present, Vitaly Tomilov
+ *
+ * See the LICENSE file at the top-level directory of this distribution
+ * for licensing information.
+ *
+ * Removal or modification of this copyright notice is prohibited.
+ */
+
+const {Events} = require(`./events`);
+const {ColorConsole} = require(`./utils/color`);
+
+const npm = {
+ utils: require(`./utils`),
+ text: require(`./text`),
+ formatting: require(`./formatting`)
+};
+
+function poolConnect(ctx, db, config) {
+ return config.promise((resolve, reject) => {
+ const p = db.$pool;
+ if (p.ending) {
+ db.$destroy();
+ const err = new Error(npm.text.poolDestroyed);
+ Events.error(ctx.options, err, {
+ dc: ctx.dc
+ });
+ reject(err);
+ return;
+ }
+ p.connect((err, client) => {
+ if (err) {
+ Events.error(ctx.options, err, {
+ cn: npm.utils.getSafeConnection(ctx.cn),
+ dc: ctx.dc
+ });
+ reject(err);
+ } else {
+ if (`$useCount` in client) {
+ // Make sure useCount drops to 1, if it ever reaches maximum integer number;
+ // We do not drop it to zero, to avoid rerun of initialization queries that
+ // usually check for useCount === 0;
+ // istanbul ignore if
+ if (client.$useCount >= Number.MAX_SAFE_INTEGER) {
+ client.$useCount = 1; // resetting; cannot auto-test this
+ } else {
+ client.$useCount = ++client.$useCount;
+ }
+ } else {
+ Object.defineProperty(client, `$useCount`, {
+ value: 0,
+ configurable: false,
+ enumerable: false,
+ writable: true
+ });
+ setSchema(client, ctx);
+ }
+ setCtx(client, ctx);
+ const end = lockClientEnd(client);
+ client.on(`error`, onError);
+ resolve({
+ client,
+ useCount: client.$useCount,
+ release(kill) {
+ client.end = end;
+ client.release(kill || client.$connectionError);
+ Events.disconnect(ctx, client);
+ client.removeListener(`error`, onError);
+ }
+ });
+ Events.connect(ctx, client, client.$useCount);
+ }
+ });
+ });
+}
+
+function directConnect(ctx, config) {
+ return config.promise((resolve, reject) => {
+ const client = new config.pgp.pg.Client(ctx.cn);
+ client.connect(err => {
+ if (err) {
+ Events.error(ctx.options, err, {
+ cn: npm.utils.getSafeConnection(ctx.cn),
+ dc: ctx.dc
+ });
+ reject(err);
+ } else {
+ setSchema(client, ctx);
+ setCtx(client, ctx);
+ const end = lockClientEnd(client);
+ client.on(`error`, onError);
+ resolve({
+ client,
+ useCount: 0,
+ release() {
+ client.end = end;
+ const p = config.promise((res, rej) => client.end().then(res).catch(rej));
+ Events.disconnect(ctx, client);
+ client.removeListener(`error`, onError);
+ return p;
+ }
+ });
+ Events.connect(ctx, client, 0);
+ }
+ });
+ });
+}
+
+// this event only happens when the connection is lost physically,
+// which cannot be tested automatically; removing from coverage:
+// istanbul ignore next
+function onError(err) {
+ const ctx = this.$ctx;
+ const cn = npm.utils.getSafeConnection(ctx.cn);
+ Events.error(ctx.options, err, {cn, dc: ctx.dc});
+ if (ctx.cnOptions && typeof ctx.cnOptions.onLost === `function` && !ctx.notified) {
+ try {
+ ctx.cnOptions.onLost.call(this, err, {
+ cn,
+ dc: ctx.dc,
+ start: ctx.start,
+ client: this
+ });
+ } catch (e) {
+ ColorConsole.error(e && e.stack || e);
+ }
+ ctx.notified = true;
+ }
+}
+
+function lockClientEnd(client) {
+ const end = client.end;
+ client.end = doNotCall => {
+ // This call can happen only in the following two cases:
+ // 1. the client made the call directly, against the library's documentation (invalid code)
+ // 2. connection with the server broke, and the pool is terminating all clients forcefully.
+ ColorConsole.error(`${npm.text.clientEnd}\n${npm.utils.getLocalStack(1, 3)}\n`);
+ if (!doNotCall) {
+ end.call(client);
+ }
+ };
+ return end;
+}
+
+function setCtx(client, ctx) {
+ Object.defineProperty(client, `$ctx`, {
+ value: ctx,
+ writable: true
+ });
+}
+
+function setSchema(client, ctx) {
+ let s = ctx.options.schema;
+ if (!s) {
+ return;
+ }
+ if (typeof s === `function`) {
+ s = s.call(ctx.dc, ctx.dc);
+ }
+ if (Array.isArray(s)) {
+ s = s.filter(a => a && typeof a === `string`);
+ }
+ if (typeof s === `string` || (Array.isArray(s) && s.length)) {
+ client.query(npm.formatting.as.format(`SET search_path TO $1:name`, [s]), err => {
+ // istanbul ignore if;
+ if (err) {
+ // This is unlikely to ever happen, unless the connection is created faulty,
+ // and fails on the very first query, which is impossible to test automatically.
+ throw err;
+ }
+ });
+ }
+}
+
+module.exports = config => ({
+ pool: (ctx, db) => poolConnect(ctx, db, config),
+ direct: ctx => directConnect(ctx, config)
+});
diff --git a/server/node_modules/pg-promise/lib/context.js b/server/node_modules/pg-promise/lib/context.js
new file mode 100644
index 0000000..6ec4ef3
--- /dev/null
+++ b/server/node_modules/pg-promise/lib/context.js
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2015-present, Vitaly Tomilov
+ *
+ * See the LICENSE file at the top-level directory of this distribution
+ * for licensing information.
+ *
+ * Removal or modification of this copyright notice is prohibited.
+ */
+
+/**
+ * @class ConnectionContext
+ * @private
+ * @summary Internal connection context.
+ *
+ * @param {object} cc
+ * Connection Context.
+ *
+ * @param {object} cc.cn
+ * Connection details
+ *
+ * @param {*} cc.dc
+ * Database Context
+ *
+ * @param {object} cc.options
+ * Library's Initialization Options
+ *
+ * @param {object} cc.db
+ * Database Session we're attached to, if any.
+ *
+ * @param {number} cc.level
+ * Task Level
+ *
+ * @param {number} cc.txLevel
+ * Transaction Level
+ *
+ * @param {object} cc.parentCtx
+ * Connection Context of the parent operation, if any.
+ *
+ */
+class ConnectionContext {
+
+ constructor(cc) {
+ this.cn = cc.cn; // connection details;
+ this.dc = cc.dc; // database context;
+ this.options = cc.options; // library options;
+ this.db = cc.db; // database session;
+ this.level = cc.level; // task level;
+ this.txLevel = cc.txLevel; // transaction level;
+ this.parentCtx = null; // parent context
+ this.taskCtx = null; // task context
+ this.start = null; // Date/Time when connected
+ this.txCount = 0;
+ }
+
+ connect(db) {
+ this.db = db;
+ this.start = new Date();
+ }
+
+ disconnect(kill) {
+ if (this.db) {
+ const p = this.db.release(kill);
+ this.db = null;
+ return p;
+ }
+ }
+
+ clone() {
+ const obj = new ConnectionContext(this);
+ obj.parent = this;
+ obj.parentCtx = this.taskCtx;
+ return obj;
+ }
+
+ get nextTxCount() {
+ let txCurrent = this, txTop = this;
+ while (txCurrent.parent) {
+ txCurrent = txCurrent.parent;
+ if (txCurrent.taskCtx && txCurrent.taskCtx.isTX) {
+ txTop = txCurrent;
+ }
+ }
+ return txTop.txCount++;
+ }
+}
+
+/**
+ * Connection Context
+ * @module context
+ * @author Vitaly Tomilov
+ * @private
+ */
+module.exports = {ConnectionContext};
diff --git a/server/node_modules/pg-promise/lib/database-pool.js b/server/node_modules/pg-promise/lib/database-pool.js
new file mode 100644
index 0000000..098ae7d
--- /dev/null
+++ b/server/node_modules/pg-promise/lib/database-pool.js
@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2015-present, Vitaly Tomilov
+ *
+ * See the LICENSE file at the top-level directory of this distribution
+ * for licensing information.
+ *
+ * Removal or modification of this copyright notice is prohibited.
+ */
+
+const {ColorConsole} = require(`./utils/color`);
+
+const npm = {
+ utils: require(`./utils`)
+};
+
+/**
+ * @class DatabasePool
+ * @static
+ * @private
+ */
+class DatabasePool {
+
+ /**
+ * Global instance of the database pool repository.
+ *
+ * @returns {{dbMap: {}, dbs: Array}}
+ */
+ static get instance() {
+ const s = Symbol.for(`pgPromiseDatabasePool`);
+ let scope = global[s];
+ if (!scope) {
+ scope = {
+ dbMap: {}, // map of used database context keys (connection + dc)
+ dbs: [] // all database objects
+ };
+ global[s] = scope;
+ }
+ return scope;
+ }
+
+ /**
+ * @method DatabasePool.register
+ * @static
+ * @description
+ * - Registers each database object, to make sure no duplicates connections are used,
+ * and if they are, produce a warning;
+ * - Registers each Pool object, to be able to release them all when requested.
+ *
+ * @param {Database} db - The new Database object being registered.
+ */
+ static register(db) {
+ const cnKey = DatabasePool.createContextKey(db);
+ npm.utils.addReadProp(db, `$cnKey`, cnKey, true);
+ const {dbMap, dbs} = DatabasePool.instance;
+ if (cnKey in dbMap) {
+ dbMap[cnKey]++;
+ /* istanbul ignore if */
+ if (!db.$config.options.noWarnings) {
+ ColorConsole.warn(`WARNING: Creating a duplicate database object for the same connection.\n${npm.utils.getLocalStack(4, 3)}\n`);
+ }
+ } else {
+ dbMap[cnKey] = 1;
+ }
+ dbs.push(db);
+ }
+
+ /**
+ * @method DatabasePool.unregister
+ * @static
+ * @param db
+ */
+ static unregister(db) {
+ const cnKey = db.$cnKey;
+ const {dbMap} = DatabasePool.instance;
+ if (!--dbMap[cnKey]) {
+ delete dbMap[cnKey];
+ }
+ }
+
+ /**
+ * @method DatabasePool.shutDown
+ * @static
+ */
+ static shutDown() {
+ const {instance} = DatabasePool;
+ instance.dbs.forEach(db => {
+ db.$destroy();
+ });
+ instance.dbs.length = 0;
+ instance.dbMap = {};
+ }
+
+ /**
+ * @method DatabasePool.createContextKey
+ * @static
+ * @description
+ * For connections that are objects it reorders the keys alphabetically,
+ * and then serializes the result into a JSON string.
+ *
+ * @param {Database} db - Database instance.
+ */
+ static createContextKey(db) {
+ let cn = db.$cn;
+ if (typeof cn === `object`) {
+ const obj = {}, keys = Object.keys(cn).sort();
+ keys.forEach(name => {
+ obj[name] = cn[name];
+ });
+ cn = obj;
+ }
+ return npm.utils.toJson(npm.utils.getSafeConnection(cn)) + npm.utils.toJson(db.$dc);
+ }
+}
+
+module.exports = {DatabasePool};
diff --git a/server/node_modules/pg-promise/lib/database.js b/server/node_modules/pg-promise/lib/database.js
new file mode 100644
index 0000000..714296f
--- /dev/null
+++ b/server/node_modules/pg-promise/lib/database.js
@@ -0,0 +1,1691 @@
+/*
+ * Copyright (c) 2015-present, Vitaly Tomilov
+ *
+ * See the LICENSE file at the top-level directory of this distribution
+ * for licensing information.
+ *
+ * Removal or modification of this copyright notice is prohibited.
+ */
+
+const {Events} = require(`./events`);
+const {assertOptions} = require(`assert-options`);
+const {resultQuery, multiResultQuery, streamQuery} = require(`./special-query`);
+const {ConnectionContext} = require(`./context`);
+const {DatabasePool} = require(`./database-pool`);
+const {queryResult} = require(`./query-result`);
+
+const npm = {
+ utils: require(`./utils`),
+ pubUtils: require(`./utils/public`),
+ connect: require(`./connect`),
+ query: require(`./query`),
+ task: require(`./task`),
+ text: require(`./text`)
+};
+
+/**
+ * @class Database
+ * @description
+ *
+ * Represents the database protocol, extensible via event {@link event:extend extend}.
+ * This type is not available directly, it can only be created via the library's base call.
+ *
+ * **IMPORTANT:**
+ *
+ * For any given connection, you should only create a single {@link Database} object in a separate module,
+ * to be shared in your application (see the code example below). If instead you keep creating the {@link Database}
+ * object dynamically, your application will suffer from loss in performance, and will be getting a warning in a
+ * development environment (when `NODE_ENV` = `development`):
+ *
+ * `WARNING: Creating a duplicate database object for the same connection.`
+ *
+ * If you ever see this warning, rectify your {@link Database} object initialization, so there is only one object
+ * per connection details. See the example provided below.
+ *
+ * See also: property `noWarnings` in {@link module:pg-promise Initialization Options}.
+ *
+ * Note however, that in special cases you may need to re-create the database object, if its connection pool has been
+ * shut-down externally. And in this case the library won't be showing any warning.
+ *
+ * @param {string|object} cn
+ * Database connection details, which can be:
+ *
+ * - a configuration object
+ * - a connection string
+ *
+ * For details see {@link https://github.com/vitaly-t/pg-promise/wiki/Connection-Syntax Connection Syntax}.
+ *
+ * The value can be accessed from the database object via property {@link Database.$cn $cn}.
+ *
+ * @param {*} [dc]
+ * Database Context.
+ *
+ * Any object or value to be propagated through the protocol, to allow implementations and event handling
+ * that depend on the database context.
+ *
+ * This is mainly to facilitate the use of multiple databases which may need separate protocol extensions,
+ * or different implementations within a single task / transaction callback, depending on the database context.
+ *
+ * This parameter also adds uniqueness to the connection context that's used in combination with the connection
+ * parameters, i.e. use of unique database context will prevent getting the warning about creating a duplicate
+ * Database object.
+ *
+ * The value can be accessed from the database object via property {@link Database#$dc $dc}.
+ *
+ * @returns {Database}
+ *
+ * @see
+ *
+ * {@link Database#query query},
+ * {@link Database#none none},
+ * {@link Database#one one},
+ * {@link Database#oneOrNone oneOrNone},
+ * {@link Database#many many},
+ * {@link Database#manyOrNone manyOrNone},
+ * {@link Database#any any},
+ * {@link Database#func func},
+ * {@link Database#proc proc},
+ * {@link Database#result result},
+ * {@link Database#multiResult multiResult},
+ * {@link Database#multi multi},
+ * {@link Database#map map},
+ * {@link Database#each each},
+ * {@link Database#stream stream},
+ * {@link Database#task task},
+ * {@link Database#taskIf taskIf},
+ * {@link Database#tx tx},
+ * {@link Database#txIf txIf},
+ * {@link Database#connect connect},
+ * {@link Database#$config $config},
+ * {@link Database#$cn $cn},
+ * {@link Database#$dc $dc},
+ * {@link Database#$pool $pool},
+ * {@link event:extend extend}
+ *
+ * @example
+ * // Proper way to initialize and share the Database object
+ *
+ * // Loading and initializing the library:
+ * const pgp = require('pg-promise')({
+ * // Initialization Options
+ * });
+ *
+ * // Preparing the connection details:
+ * const cn = 'postgres://username:password@host:port/database';
+ *
+ * // Creating a new database instance from the connection details:
+ * const db = pgp(cn);
+ *
+ * // Exporting the database object for shared use:
+ * module.exports = db;
+ */
+function Database(cn, dc, config) {
+
+ const dbThis = this,
+ $p = config.promise,
+ poolConnection = typeof cn === `string` ? {connectionString: cn} : cn,
+ pool = new config.pgp.pg.Pool(poolConnection),
+ endMethod = pool.end;
+
+ let destroyed;
+
+ pool.end = cb => {
+ const res = endMethod.call(pool, cb);
+ dbThis.$destroy();
+ return res;
+ };
+
+ pool.on(`error`, onError);
+
+ /**
+ * @method Database#connect
+ *
+ * @description
+ * Acquires a new or existing connection, depending on the current state of the connection pool, and parameter `direct`.
+ *
+ * This method creates a shared connection for executing a chain of queries against it. The connection must be released
+ * in the end of the chain by calling `done()` on the connection object.
+ *
+ * Method `done` takes one optional parameter - boolean `kill` flag, to signal the connection pool that you want it to kill
+ * the physical connection. This flag is ignored for direct connections, as they always close when released.
+ *
+ * It should not be used just for chaining queries on the same connection, methods {@link Database#task task} and
+ * {@link Database#tx tx} (for transactions) are to be used for that. This method is primarily for special cases, like
+ * `LISTEN` notifications.
+ *
+ * **NOTE:** Even though this method exposes a {@link external:Client Client} object via property `client`,
+ * you cannot call `client.end()` directly, or it will print an error into the console:
+ * `Abnormal client.end() call, due to invalid code or failed server connection.`
+ * You should only call method `done()` to release the connection.
+ *
+ * @param {object} [options]
+ * Connection Options.
+ *
+ * @param {boolean} [options.direct=false]
+ * Creates a new connection directly, as a stand-alone {@link external:Client Client} object, bypassing the connection pool.
+ *
+ * By default, all connections are acquired from the connection pool. But if you set this option, the library will instead
+ * create a new {@link external:Client Client} object directly (separately from the pool), and then call its `connect` method.
+ *
+ * Note that specifically for direct connections, method `done` returns a {@link external:Promise Promise}, because those connections
+ * are closed physically, which may take time.
+ *
+ * **WARNING:**
+ *
+ * Do not use this option for regular query execution, because it exclusively occupies one physical channel, and it cannot scale.
+ * This option is only suitable for global connection usage, such as event listeners.
+ *
+ * @param {function} [options.onLost]
+ * Notification callback of the lost/broken connection, called with the following parameters:
+ * - `err` - the original connectivity error
+ * - `e` - error context object, which contains:
+ * - `cn` - safe connection string/config (with the password hashed);
+ * - `dc` - Database Context, as was used during {@link Database} construction;
+ * - `start` - Date/Time (`Date` type) when the connection was established;
+ * - `client` - {@link external:Client Client} object that has lost the connection.
+ *
+ * The notification is mostly valuable with `direct: true`, to be able to re-connect direct/permanent connections by calling
+ * method {@link Database#connect connect} again.
+ *
+ * You do not need to call `done` on lost connections, as it happens automatically. However, if you had event listeners
+ * set up on the connection's `client` object, you should remove them to avoid leaks:
+ *
+ * ```js
+ * function onLostConnection(err, e) {
+ * e.client.removeListener('my-event', myHandler);
+ * }
+ * ```
+ *
+ * For a complete example see $[Robust Listeners].
+ *
+ * @returns {external:Promise}
+ * A promise object that represents the connection result:
+ * - resolves with the complete {@link Database} protocol, extended with:
+ * - property `client` of type {@link external:Client Client} that represents the open connection
+ * - method `done` that must be called in the end, in order to release the connection (returns a {@link external:Promise Promise}
+ * in case of direct connections)
+ * - methods `batch`, `page` and `sequence`, same as inside a {@link Task}
+ * - rejects with a connection-related error when it fails to connect.
+ *
+ * @see
+ * {@link Database#task Database.task},
+ * {@link Database#taskIf Database.taskIf},
+ * {@link Database#tx Database.tx},
+ * {@link Database#txIf Database.txIf}
+ *
+ * @example
+ *
+ * let sco; // shared connection object;
+ *
+ * db.connect()
+ * .then(obj => {
+ * // obj.client = new connected Client object;
+ *
+ * sco = obj; // save the connection object;
+ *
+ * // execute all the queries you need:
+ * return sco.any('SELECT * FROM Users');
+ * })
+ * .then(data => {
+ * // success
+ * })
+ * .catch(error => {
+ * // error
+ * })
+ * .finally(() => {
+ * // release the connection, if it was successful:
+ * if (sco) {
+ * // if you pass `true` into method done, i.e. done(true),
+ * // it will make the pool kill the physical connection.
+ * sco.done();
+ * }
+ * });
+ *
+ */
+ this.connect = function (options) {
+ options = options || {};
+ const ctx = createContext();
+ ctx.cnOptions = options;
+ const self = {
+ query(query, values, qrm) {
+ if (!ctx.db) {
+ return $p.reject(new Error(npm.text.queryDisconnected));
+ }
+ return config.$npm.query.call(this, ctx, query, values, qrm);
+ },
+ done(kill) {
+ if (!ctx.db) {
+ throw new Error(npm.text.looseQuery);
+ }
+ return ctx.disconnect(kill);
+ },
+ batch(values, opt) {
+ return config.$npm.spex.batch.call(this, values, opt);
+ },
+ page(source, opt) {
+ return config.$npm.spex.page.call(this, source, opt);
+ },
+ sequence(source, opt) {
+ return config.$npm.spex.sequence.call(this, source, opt);
+ }
+ };
+ const connection = options.direct ? config.$npm.connect.direct(ctx) : config.$npm.connect.pool(ctx, dbThis);
+ return connection
+ .then(db => {
+ ctx.connect(db);
+ self.client = db.client;
+ extend(ctx, self);
+ return self;
+ });
+ };
+
+ /**
+ * @method Database#query
+ *
+ * @description
+ * Base query method that executes a generic query, expecting the return data according to parameter `qrm`.
+ *
+ * It performs the following steps:
+ *
+ * 1. Validates and formats the query via {@link formatting.format as.format}, according to the `query` and `values` passed in;
+ * 2. For a root-level query (against the {@link Database} object), it requests a new connection from the pool;
+ * 3. Executes the query;
+ * 4. For a root-level query (against the {@link Database} object), it releases the connection back to the pool;
+ * 5. Resolves/rejects, according to the data returned from the query and the value of `qrm`.
+ *
+ * Direct use of this method is not suitable for chaining queries, for performance reasons. It should be done
+ * through either task or transaction context, see $[Chaining Queries].
+ *
+ * When receiving a multi-query result, only the last result is processed, ignoring the rest.
+ *
+ * @param {string|function|object} query
+ * Query to be executed, which can be any of the following types:
+ * - A non-empty query string
+ * - A function that returns a query string or another function, i.e. recursive resolution
+ * is supported, passing in `values` as `this`, and as the first parameter.
+ * - Prepared Statement `{name, text, values, ...}` or {@link PreparedStatement} object
+ * - Parameterized Query `{text, values, ...}` or {@link ParameterizedQuery} object
+ * - {@link QueryFile} object
+ *
+ * @param {array|value|function} [values]
+ * Query formatting parameter(s), or a function that returns it.
+ *
+ * When `query` is of type `string` or a {@link QueryFile} object, the `values` can be:
+ * - a single value - to replace all `$1` occurrences
+ * - an array of values - to replace all `$1`, `$2`, ... variables
+ * - an object - to apply $[Named Parameters] formatting
+ *
+ * When `query` is a Prepared Statement or a Parameterized Query (or their class types),
+ * and `values` is not `null` or `undefined`, it is automatically set within such object,
+ * as an override for its internal `values`.
+ *
+ * @param {queryResult} [qrm=queryResult.any]
+ * {@link queryResult Query Result Mask}
+ *
+ * @returns {external:Promise}
+ * A promise object that represents the query result according to `qrm`.
+ */
+ this.query = function (query, values, qrm) {
+ const self = this, ctx = createContext();
+ return config.$npm.connect.pool(ctx, dbThis)
+ .then(db => {
+ ctx.connect(db);
+ return config.$npm.query.call(self, ctx, query, values, qrm);
+ })
+ .then(data => {
+ ctx.disconnect();
+ return data;
+ })
+ .catch(error => {
+ ctx.disconnect();
+ return $p.reject(error);
+ });
+ };
+
+ /**
+ * @member {object} Database#$config
+ * @readonly
+ * @description
+ * This is a hidden property, to help integrating type {@link Database} directly with third-party libraries.
+ *
+ * Properties available in the object:
+ * - `pgp` - instance of the entire library after initialization
+ * - `options` - the library's {@link module:pg-promise Initialization Options} object
+ * - `promiseLib` - instance of the promise library that's used
+ * - `promise` - generic promise interface that uses `promiseLib` via 4 basic methods:
+ * - `promise((resolve, reject) => {})` - to create a new promise
+ * - `promise.resolve(value)` - to resolve with a value
+ * - `promise.reject(reason)` - to reject with a reason
+ * - `promise.all(iterable)` - to resolve an iterable list of promises
+ * - `version` - this library's version
+ * - `$npm` _(hidden property)_ - internal module cache
+ *
+ * @example
+ *
+ * // Using the promise protocol as configured by pg-promise:
+ *
+ * const $p = db.$config.promise;
+ *
+ * const resolvedPromise = $p.resolve('some data');
+ * const rejectedPromise = $p.reject('some reason');
+ *
+ * const newPromise = $p((resolve, reject) => {
+ * // call either resolve(data) or reject(reason) here
+ * });
+ */
+ npm.utils.addReadProp(this, `$config`, config, true);
+
+ /**
+ * @member {string|object} Database#$cn
+ * @readonly
+ * @description
+ * Database connection, as was passed in during the object's construction.
+ *
+ * This is a hidden property, to help integrating type {@link Database} directly with third-party libraries.
+ *
+ * @see Database
+ */
+ npm.utils.addReadProp(this, `$cn`, cn, true);
+
+ /**
+ * @member {*} Database#$dc
+ * @readonly
+ * @description
+ * Database Context, as was passed in during the object's construction.
+ *
+ * This is a hidden property, to help integrating type {@link Database} directly with third-party libraries.
+ *
+ * @see Database
+ */
+ npm.utils.addReadProp(this, `$dc`, dc, true);
+
+ /**
+ * @member {external:pg-pool} Database#$pool
+ * @readonly
+ * @description
+ * A $[pg-pool] object associated with the database object, as each {@link Database} creates its own $[pg-pool] instance.
+ *
+ * This is a hidden property, primarily for integrating type {@link Database} with third-party libraries that support
+ * $[pg-pool] directly. Note however, that if you pass the pool object into a library that calls `pool.end()`, you will no longer be able
+ * to use this {@link Database} object, and each query method will be rejecting with {@link external:Error Error} =
+ * `Connection pool of the database object has been destroyed.`
+ *
+ * You can also use this object to shut down the pool, by calling `$pool.end()`.
+ *
+ * For more details see $[Library de-initialization].
+ *
+ * @see
+ * {@link Database}
+ * {@link module:pg-promise~end pgp.end}
+ *
+ * @example
+ *
+ * // Shutting down the connection pool of this database object,
+ * // after all queries have finished in a run-though process:
+ *
+ * .then(() => {}) // processing the data
+ * .catch() => {}) // handling the error
+ * .finally(db.$pool.end); // shutting down the pool
+ *
+ */
+ npm.utils.addReadProp(this, `$pool`, pool, true);
+
+ /**
+ * @member {function} Database.$destroy
+ * @readonly
+ * @private
+ * @description
+ * Permanently shuts down the database object.
+ */
+ npm.utils.addReadProp(this, `$destroy`, () => {
+ if (!destroyed) {
+ if (!pool.ending) {
+ endMethod.call(pool);
+ }
+ DatabasePool.unregister(dbThis);
+ pool.removeListener(`error`, onError);
+ destroyed = true;
+ }
+ }, true);
+
+ DatabasePool.register(this);
+
+ extend(createContext(), this); // extending root protocol;
+
+ function createContext() {
+ return new ConnectionContext({cn, dc, options: config.options});
+ }
+
+ // Optional value-transformation helper:
+ function transform(value, cb, thisArg) {
+ return typeof cb === `function` ? value.then(data => cb.call(thisArg, data)) : value;
+ }
+
+ ////////////////////////////////////////////////////
+ // Injects additional methods into an access object,
+ // extending the protocol's base method 'query'.
+ function extend(ctx, obj) {
+
+ /**
+ * @method Database#none
+ * @description
+ * Executes a query that expects no data to be returned. If the query returns any data,
+ * the method rejects.
+ *
+ * When receiving a multi-query result, only the last result is processed, ignoring the rest.
+ *
+ * @param {string|function|object} query
+ * Query to be executed, which can be any of the following types:
+ * - A non-empty query string
+ * - A function that returns a query string or another function, i.e. recursive resolution
+ * is supported, passing in `values` as `this`, and as the first parameter.
+ * - Prepared Statement `{name, text, values, ...}` or {@link PreparedStatement} object
+ * - Parameterized Query `{text, values, ...}` or {@link ParameterizedQuery} object
+ * - {@link QueryFile} object
+ *
+ * @param {array|value|function} [values]
+ * Query formatting parameter(s), or a function that returns it.
+ *
+ * When `query` is of type `string` or a {@link QueryFile} object, the `values` can be:
+ * - a single value - to replace all `$1` occurrences
+ * - an array of values - to replace all `$1`, `$2`, ... variables
+ * - an object - to apply $[Named Parameters] formatting
+ *
+ * When `query` is a Prepared Statement or a Parameterized Query (or their class types),
+ * and `values` is not `null` or `undefined`, it is automatically set within such object,
+ * as an override for its internal `values`.
+ *
+ * @returns {external:Promise}
+ * A promise object that represents the query result:
+ * - When no records are returned, it resolves with `null`.
+ * - When any data is returned, it rejects with {@link errors.QueryResultError QueryResultError}:
+ * - `.message` = `No return data was expected.`
+ * - `.code` = {@link errors.queryResultErrorCode.notEmpty queryResultErrorCode.notEmpty}
+ */
+ obj.none = function (query, values) {
+ return obj.query.call(this, query, values, queryResult.none);
+ };
+
+ /**
+ * @method Database#one
+ * @description
+ * Executes a query that expects exactly 1 row to be returned. When 0 or more than 1 rows are returned,
+ * the method rejects.
+ *
+ * When receiving a multi-query result, only the last result is processed, ignoring the rest.
+ *
+ * @param {string|function|object} query
+ * Query to be executed, which can be any of the following types:
+ * - A non-empty query string
+ * - A function that returns a query string or another function, i.e. recursive resolution
+ * is supported, passing in `values` as `this`, and as the first parameter.
+ * - Prepared Statement `{name, text, values, ...}` or {@link PreparedStatement} object
+ * - Parameterized Query `{text, values, ...}` or {@link ParameterizedQuery} object
+ * - {@link QueryFile} object
+ *
+ * @param {array|value|function} [values]
+ * Query formatting parameter(s), or a function that returns it.
+ *
+ * When `query` is of type `string` or a {@link QueryFile} object, the `values` can be:
+ * - a single value - to replace all `$1` occurrences
+ * - an array of values - to replace all `$1`, `$2`, ... variables
+ * - an object - to apply $[Named Parameters] formatting
+ *
+ * When `query` is a Prepared Statement or a Parameterized Query (or their class types),
+ * and `values` is not `null` or `undefined`, it is automatically set within such object,
+ * as an override for its internal `values`.
+ *
+ * @param {function} [cb]
+ * Value-transformation callback, to allow in-line value change.
+ * When specified, the returned value replaces the original one.
+ *
+ * The function takes only one parameter - value resolved from the query.
+ *
+ * @param {*} [thisArg]
+ * Value to use as `this` when executing the transformation callback.
+ *
+ * @returns {external:Promise}
+ * A promise object that represents the query result:
+ * - When 1 row is returned, it resolves with that row as a single object.
+ * - When no rows are returned, it rejects with {@link errors.QueryResultError QueryResultError}:
+ * - `.message` = `No data returned from the query.`
+ * - `.code` = {@link errors.queryResultErrorCode.noData queryResultErrorCode.noData}
+ * - When multiple rows are returned, it rejects with {@link errors.QueryResultError QueryResultError}:
+ * - `.message` = `Multiple rows were not expected.`
+ * - `.code` = {@link errors.queryResultErrorCode.multiple queryResultErrorCode.multiple}
+ * - Resolves with the new value, if transformation callback `cb` was specified.
+ *
+ * @see
+ * {@link Database#oneOrNone oneOrNone}
+ *
+ * @example
+ *
+ * // a query with in-line value transformation:
+ * db.one('INSERT INTO Events VALUES($1) RETURNING id', [123], event => event.id)
+ * .then(data => {
+ * // data = a new event id, rather than an object with it
+ * });
+ *
+ * @example
+ *
+ * // a query with in-line value transformation + conversion:
+ * db.one('SELECT count(*) FROM Users', [], c => +c.count)
+ * .then(count => {
+ * // count = a proper integer value, rather than an object with a string
+ * });
+ *
+ */
+ obj.one = function (query, values, cb, thisArg) {
+ const v = obj.query.call(this, query, values, queryResult.one);
+ return transform(v, cb, thisArg);
+ };
+
+ /**
+ * @method Database#many
+ * @description
+ * Executes a query that expects one or more rows to be returned. When the query returns no rows, the method rejects.
+ *
+ * When receiving a multi-query result, only the last result is processed, ignoring the rest.
+ *
+ * @param {string|function|object} query
+ * Query to be executed, which can be any of the following types:
+ * - A non-empty query string
+ * - A function that returns a query string or another function, i.e. recursive resolution
+ * is supported, passing in `values` as `this`, and as the first parameter.
+ * - Prepared Statement `{name, text, values, ...}` or {@link PreparedStatement} object
+ * - Parameterized Query `{text, values, ...}` or {@link ParameterizedQuery} object
+ * - {@link QueryFile} object
+ *
+ * @param {array|value|function} [values]
+ * Query formatting parameter(s), or a function that returns it.
+ *
+ * When `query` is of type `string` or a {@link QueryFile} object, the `values` can be:
+ * - a single value - to replace all `$1` occurrences
+ * - an array of values - to replace all `$1`, `$2`, ... variables
+ * - an object - to apply $[Named Parameters] formatting
+ *
+ * When `query` is a Prepared Statement or a Parameterized Query (or their class types),
+ * and `values` is not `null` or `undefined`, it is automatically set within such object,
+ * as an override for its internal `values`.
+ *
+ * @returns {external:Promise}
+ * A promise object that represents the query result:
+ * - When 1 or more rows are returned, it resolves with the array of rows.
+ * - When no rows are returned, it rejects with {@link errors.QueryResultError QueryResultError}:
+ * - `.message` = `No data returned from the query.`
+ * - `.code` = {@link errors.queryResultErrorCode.noData queryResultErrorCode.noData}
+ */
+ obj.many = function (query, values) {
+ return obj.query.call(this, query, values, queryResult.many);
+ };
+
+ /**
+ * @method Database#oneOrNone
+ * @description
+ * Executes a query that expects 0 or 1 rows to be returned. It resolves with the row-object when 1 row is returned,
+ * or with `null` when nothing is returned. When the query returns more than 1 row, the method rejects.
+ *
+ * When receiving a multi-query result, only the last result is processed, ignoring the rest.
+ *
+ * @param {string|function|object} query
+ * Query to be executed, which can be any of the following types:
+ * - A non-empty query string
+ * - A function that returns a query string or another function, i.e. recursive resolution
+ * is supported, passing in `values` as `this`, and as the first parameter.
+ * - Prepared Statement `{name, text, values, ...}` or {@link PreparedStatement} object
+ * - Parameterized Query `{text, values, ...}` or {@link ParameterizedQuery} object
+ * - {@link QueryFile} object
+ *
+ * @param {array|value|function} [values]
+ * Query formatting parameter(s), or a function that returns it.
+ *
+ * When `query` is of type `string` or a {@link QueryFile} object, the `values` can be:
+ * - a single value - to replace all `$1` occurrences
+ * - an array of values - to replace all `$1`, `$2`, ... variables
+ * - an object - to apply $[Named Parameters] formatting
+ *
+ * When `query` is a Prepared Statement or a Parameterized Query (or their class types),
+ * and `values` is not `null` or `undefined`, it is automatically set within such object,
+ * as an override for its internal `values`.
+ *
+ * @param {function} [cb]
+ * Value-transformation callback, to allow in-line value change.
+ * When specified, the returned value replaces the original one.
+ *
+ * The function takes only one parameter - value resolved from the query.
+ *
+ * @param {*} [thisArg]
+ * Value to use as `this` when executing the transformation callback.
+ *
+ * @returns {external:Promise}
+ * A promise object that represents the query result:
+ * - When no rows are returned, it resolves with `null`.
+ * - When 1 row is returned, it resolves with that row as a single object.
+ * - When multiple rows are returned, it rejects with {@link errors.QueryResultError QueryResultError}:
+ * - `.message` = `Multiple rows were not expected.`
+ * - `.code` = {@link errors.queryResultErrorCode.multiple queryResultErrorCode.multiple}
+ * - Resolves with the new value, if transformation callback `cb` was specified.
+ *
+ * @see
+ * {@link Database#one one},
+ * {@link Database#none none},
+ * {@link Database#manyOrNone manyOrNone}
+ *
+ * @example
+ *
+ * // a query with in-line value transformation:
+ * db.oneOrNone('SELECT id FROM Events WHERE type = $1', ['entry'], e => e && e.id)
+ * .then(data => {
+ * // data = the event id or null (rather than object or null)
+ * });
+ *
+ */
+ obj.oneOrNone = function (query, values, cb, thisArg) {
+ const v = obj.query.call(this, query, values, queryResult.one | queryResult.none);
+ return transform(v, cb, thisArg);
+ };
+
+ /**
+ * @method Database#manyOrNone
+ * @description
+ * Executes a query that can return any number of rows.
+ *
+ * When receiving a multi-query result, only the last result is processed, ignoring the rest.
+ *
+ * @param {string|function|object} query
+ * Query to be executed, which can be any of the following types:
+ * - A non-empty query string
+ * - A function that returns a query string or another function, i.e. recursive resolution
+ * is supported, passing in `values` as `this`, and as the first parameter.
+ * - Prepared Statement `{name, text, values, ...}` or {@link PreparedStatement} object
+ * - Parameterized Query `{text, values, ...}` or {@link ParameterizedQuery} object
+ * - {@link QueryFile} object
+ *
+ * @param {array|value|function} [values]
+ * Query formatting parameter(s), or a function that returns it.
+ *
+ * When `query` is of type `string` or a {@link QueryFile} object, the `values` can be:
+ * - a single value - to replace all `$1` occurrences
+ * - an array of values - to replace all `$1`, `$2`, ... variables
+ * - an object - to apply $[Named Parameters] formatting
+ *
+ * When `query` is a Prepared Statement or a Parameterized Query (or their class types),
+ * and `values` is not `null` or `undefined`, it is automatically set within such object,
+ * as an override for its internal `values`.
+ *
+ * @returns {external:Promise}
+ * A promise object that represents the query result:
+ * - When no rows are returned, it resolves with an empty array.
+ * - When 1 or more rows are returned, it resolves with the array of rows.
+ *
+ * @see
+ * {@link Database#any any},
+ * {@link Database#many many},
+ * {@link Database#none none}
+ *
+ */
+ obj.manyOrNone = function (query, values) {
+ return obj.query.call(this, query, values, queryResult.many | queryResult.none);
+ };
+
+ /**
+ * @method Database#any
+ * @description
+ * Executes a query that can return any number of rows.
+ * This is simply a shorter alias for method {@link Database#manyOrNone manyOrNone}.
+ *
+ * When receiving a multi-query result, only the last result is processed, ignoring the rest.
+ *
+ * @param {string|function|object} query
+ * Query to be executed, which can be any of the following types:
+ * - A non-empty query string
+ * - A function that returns a query string or another function, i.e. recursive resolution
+ * is supported, passing in `values` as `this`, and as the first parameter.
+ * - Prepared Statement `{name, text, values, ...}` or {@link PreparedStatement} object
+ * - Parameterized Query `{text, values, ...}` or {@link ParameterizedQuery} object
+ * - {@link QueryFile} object
+ *
+ * @param {array|value|function} [values]
+ * Query formatting parameter(s), or a function that returns it.
+ *
+ * When `query` is of type `string` or a {@link QueryFile} object, the `values` can be:
+ * - a single value - to replace all `$1` occurrences
+ * - an array of values - to replace all `$1`, `$2`, ... variables
+ * - an object - to apply $[Named Parameters] formatting
+ *
+ * When `query` is a Prepared Statement or a Parameterized Query (or their class types),
+ * and `values` is not `null` or `undefined`, it is automatically set within such object,
+ * as an override for its internal `values`.
+ *
+ * @returns {external:Promise}
+ * A promise object that represents the query result:
+ * - When no rows are returned, it resolves with an empty array.
+ * - When 1 or more rows are returned, it resolves with the array of rows.
+ *
+ * @see
+ * {@link Database#manyOrNone manyOrNone},
+ * {@link Database#map map},
+ * {@link Database#each each}
+ *
+ */
+ obj.any = function (query, values) {
+ return obj.query.call(this, query, values, queryResult.any);
+ };
+
+ /**
+ * @method Database#result
+ * @description
+ * Executes a query without any expectation for the return data, and resolves with the
+ * original $[Result] object when successful.
+ *
+ * When receiving a multi-query result, only the last result is processed, ignoring the rest.
+ *
+ * @param {string|function|object} query
+ * Query to be executed, which can be any of the following types:
+ * - A non-empty query string
+ * - A function that returns a query string or another function, i.e. recursive resolution
+ * is supported, passing in `values` as `this`, and as the first parameter.
+ * - Prepared Statement `{name, text, values, ...}` or {@link PreparedStatement} object
+ * - Parameterized Query `{text, values, ...}` or {@link ParameterizedQuery} object
+ * - {@link QueryFile} object
+ *
+ * @param {array|value|function} [values]
+ * Query formatting parameter(s), or a function that returns it.
+ *
+ * When `query` is of type `string` or a {@link QueryFile} object, the `values` can be:
+ * - a single value - to replace all `$1` occurrences
+ * - an array of values - to replace all `$1`, `$2`, ... variables
+ * - an object - to apply $[Named Parameters] formatting
+ *
+ * When `query` is a Prepared Statement or a Parameterized Query (or their class types),
+ * and `values` is not `null` or `undefined`, it is automatically set within such object,
+ * as an override for its internal `values`.
+ *
+ * @param {function} [cb]
+ * Value-transformation callback, to allow in-line value change.
+ * When specified, the returned value replaces the original one.
+ *
+ * The function takes only one parameter - value resolved from the query.
+ *
+ * @param {*} [thisArg]
+ * Value to use as `this` when executing the transformation callback.
+ *
+ * @returns {external:Promise}
+ * A promise object that represents the query result:
+ * - resolves with the original $[Result] object (by default);
+ * - resolves with the new value, if transformation callback `cb` was specified.
+ *
+ * @example
+ *
+ * // use of value transformation:
+ * // deleting rows and returning the number of rows deleted
+ * db.result('DELETE FROM Events WHERE id = $1', [123], r => r.rowCount)
+ * .then(data => {
+ * // data = number of rows that were deleted
+ * });
+ *
+ * @example
+ *
+ * // use of value transformation:
+ * // getting only column details from a table
+ * db.result('SELECT * FROM Users LIMIT 0', null, r => r.fields)
+ * .then(data => {
+ * // data = array of column descriptors
+ * });
+ *
+ */
+ obj.result = function (query, values, cb, thisArg) {
+ const v = obj.query.call(this, query, values, resultQuery);
+ return transform(v, cb, thisArg);
+ };
+
+ /**
+ * @method Database#multiResult
+ * @description
+ * Executes a multi-query string, without any expectation for the return data, and resolves with an array
+ * of the original $[Result] objects when successful.
+ *
+ * The operation is atomic, i.e. all queries are executed in a single transaction, unless there are explicit
+ * `BEGIN/COMMIT` commands included in the query string to divide it into multiple transactions.
+ *
+ * @param {string|function|object} query
+ * Multi-query string to be executed, which can be any of the following types:
+ * - A non-empty string that can contain any number of queries
+ * - A function that returns a query string or another function, i.e. recursive resolution
+ * is supported, passing in `values` as `this`, and as the first parameter.
+ * - Prepared Statement `{name, text, values, ...}` or {@link PreparedStatement} object
+ * - Parameterized Query `{text, values, ...}` or {@link ParameterizedQuery} object
+ * - {@link QueryFile} object
+ *
+ * @param {array|value|function} [values]
+ * Query formatting parameter(s), or a function that returns it.
+ *
+ * When `query` is of type `string` or a {@link QueryFile} object, the `values` can be:
+ * - a single value - to replace all `$1` occurrences
+ * - an array of values - to replace all `$1`, `$2`, ... variables
+ * - an object - to apply $[Named Parameters] formatting
+ *
+ * When `query` is a Prepared Statement or a Parameterized Query (or their class types),
+ * and `values` is not `null` or `undefined`, it is automatically set within such object,
+ * as an override for its internal `values`.
+ *
+ * @returns {external:Promise}
+ *
+ * @see {@link Database#multi multi}
+ *
+ */
+ obj.multiResult = function (query, values) {
+ return obj.query.call(this, query, values, multiResultQuery);
+ };
+
+ /**
+ * @method Database#multi
+ * @description
+ * Executes a multi-query string, without any expectation for the return data, and resolves with an array
+ * of arrays of rows when successful.
+ *
+ * The operation is atomic, i.e. all queries are executed in a single transaction, unless there are explicit
+ * `BEGIN/COMMIT` commands included in the query string to divide it into multiple transactions.
+ *
+ * @param {string|function|object} query
+ * Multi-query string to be executed, which can be any of the following types:
+ * - A non-empty string that can contain any number of queries
+ * - A function that returns a query string or another function, i.e. recursive resolution
+ * is supported, passing in `values` as `this`, and as the first parameter.
+ * - Prepared Statement `{name, text, values, ...}` or {@link PreparedStatement} object
+ * - Parameterized Query `{text, values, ...}` or {@link ParameterizedQuery} object
+ * - {@link QueryFile} object
+ *
+ * @param {array|value|function} [values]
+ * Query formatting parameter(s), or a function that returns it.
+ *
+ * When `query` is of type `string` or a {@link QueryFile} object, the `values` can be:
+ * - a single value - to replace all `$1` occurrences
+ * - an array of values - to replace all `$1`, `$2`, ... variables
+ * - an object - to apply $[Named Parameters] formatting
+ *
+ * When `query` is a Prepared Statement or a Parameterized Query (or their class types),
+ * and `values` is not `null` or `undefined`, it is automatically set within such object,
+ * as an override for its internal `values`.
+ *
+ * @returns {external:Promise>}
+ *
+ * @see {@link Database#multiResult multiResult}
+ *
+ * @example
+ *
+ * // Get data from 2 tables in a single request:
+ * const [users, products] = await db.multi('SELECT * FROM users;SELECT * FROM products');
+ *
+ */
+ obj.multi = function (query, values) {
+ return obj.query.call(this, query, values, multiResultQuery)
+ .then(data => data.map(a => a.rows));
+ };
+
+ /**
+ * @method Database#stream
+ * @description
+ * Custom data streaming, with the help of $[pg-query-stream].
+ *
+ * This method doesn't work with the $[Native Bindings], and if option `pgNative`
+ * is set, it will reject with `Streaming doesn't work with Native Bindings.`
+ *
+ * @param {QueryStream} qs
+ * Stream object of type $[QueryStream].
+ *
+ * @param {Database.streamInitCB} initCB
+ * Stream initialization callback.
+ *
+ * It is invoked with the same `this` context as the calling method.
+ *
+ * @returns {external:Promise}
+ * Result of the streaming operation.
+ *
+ * Once the streaming has finished successfully, the method resolves with
+ * `{processed, duration}`:
+ * - `processed` - total number of rows processed;
+ * - `duration` - streaming duration, in milliseconds.
+ *
+ * Possible rejections messages:
+ * - `Invalid or missing stream object.`
+ * - `Invalid stream state.`
+ * - `Invalid or missing stream initialization callback.`
+ */
+ obj.stream = function (qs, init) {
+ return obj.query.call(this, qs, init, streamQuery);
+ };
+
+ /**
+ * @method Database#func
+ * @description
+ * Executes a database function that returns a table, abbreviating the full syntax
+ * of `query('SELECT * FROM $1:alias($2:csv)', [funcName, values], qrm)`.
+ *
+ * @param {string} funcName
+ * Name of the function to be executed.
+ * When it is not same-case, or contains extended symbols, it is double-quoted, as per the `:alias` filter,
+ * which also supports `.`, to auto-split into a composite name.
+ *
+ * @param {array|value|function} [values]
+ * Parameters for the function - one value | array of values | function returning value(s).
+ *
+ * @param {queryResult} [qrm=queryResult.any] - {@link queryResult Query Result Mask}.
+ *
+ * @returns {external:Promise}
+ *
+ * A promise object as returned from method {@link Database#query query}, according to parameter `qrm`.
+ *
+ * @see
+ * {@link Database#query query},
+ * {@link Database#proc proc}
+ */
+ obj.func = function (funcName, values, qrm) {
+ return obj.query.call(this, {entity: funcName, type: `func`}, values, qrm);
+ };
+
+ /**
+ * @method Database#proc
+ * @description
+ * Executes a stored procedure by name, abbreviating the full syntax of
+ * `oneOrNone('CALL $1:alias($2:csv)', [procName, values], cb, thisArg)`.
+ *
+ * **NOTE:** This method uses the new `CALL` syntax that requires PostgreSQL v11 or later.
+ *
+ * @param {string} procName
+ * Name of the stored procedure to be executed.
+ * When it is not same-case, or contains extended symbols, it is double-quoted, as per the `:alias` filter,
+ * which also supports `.`, to auto-split into a composite SQL name.
+ *
+ * @param {array|value|function} [values]
+ * Parameters for the procedure - one value | array of values | function returning value(s).
+ *
+ * @param {function} [cb]
+ * Value-transformation callback, to allow in-line value change.
+ * When specified, the returned value replaces the original one.
+ *
+ * The function takes only one parameter - value resolved from the query.
+ *
+ * @param {*} [thisArg]
+ * Value to use as `this` when executing the transformation callback.
+ *
+ * @returns {external:Promise}
+ * When the procedure takes output parameters, a single object is returned, with
+ * properties for the output values. Otherwise, the method resolves with `null`.
+ * And if the value-transformation callback is provided, it overrides the result.
+ *
+ * @see
+ * {@link Database#func func}
+ */
+ obj.proc = function (procName, values, cb, thisArg) {
+ const v = obj.query.call(this, {
+ entity: procName,
+ type: `proc`
+ }, values, queryResult.one | queryResult.none);
+ return transform(v, cb, thisArg);
+ };
+
+ /**
+ * @method Database#map
+ * @description
+ * Creates a new array with the results of calling a provided function on every element in the array of rows
+ * resolved by method {@link Database#any any}.
+ *
+ * It is a convenience method, to reduce the following code:
+ *
+ * ```js
+ * db.any(query, values)
+ * .then(data => {
+ * return data.map((row, index, data) => {
+ * // return a new element
+ * });
+ * });
+ * ```
+ *
+ * When receiving a multi-query result, only the last result is processed, ignoring the rest.
+ *
+ * @param {string|function|object} query
+ * Query to be executed, which can be any of the following types:
+ * - A non-empty query string
+ * - A function that returns a query string or another function, i.e. recursive resolution
+ * is supported, passing in `values` as `this`, and as the first parameter.
+ * - Prepared Statement `{name, text, values, ...}` or {@link PreparedStatement} object
+ * - Parameterized Query `{text, values, ...}` or {@link ParameterizedQuery} object
+ * - {@link QueryFile} object
+ *
+ * @param {array|value|function} values
+ * Query formatting parameter(s), or a function that returns it.
+ *
+ * When `query` is of type `string` or a {@link QueryFile} object, the `values` can be:
+ * - a single value - to replace all `$1` occurrences
+ * - an array of values - to replace all `$1`, `$2`, ... variables
+ * - an object - to apply $[Named Parameters] formatting
+ *
+ * When `query` is a Prepared Statement or a Parameterized Query (or their class types),
+ * and `values` is not `null` or `undefined`, it is automatically set within such object,
+ * as an override for its internal `values`.
+ *
+ * @param {function} cb
+ * Function that produces an element of the new array, taking three arguments:
+ * - `row` - the current row object being processed in the array
+ * - `index` - the index of the current row being processed in the array
+ * - `data` - the original array of rows resolved by method {@link Database#any any}
+ *
+ * @param {*} [thisArg]
+ * Value to use as `this` when executing the callback.
+ *
+ * @returns {external:Promise}
+ * Resolves with the new array of values returned from the callback.
+ *
+ * @see
+ * {@link Database#any any},
+ * {@link Database#each each},
+ * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map Array.map}
+ *
+ * @example
+ *
+ * db.map('SELECT id FROM Users WHERE status = $1', ['active'], row => row.id)
+ * .then(data => {
+ * // data = array of active user id-s
+ * })
+ * .catch(error => {
+ * // error
+ * });
+ *
+ * @example
+ *
+ * db.tx(t => {
+ * return t.map('SELECT id FROM Users WHERE status = $1', ['active'], row => {
+ * return t.none('UPDATE Events SET checked = $1 WHERE userId = $2', [true, row.id]);
+ * }).then(t.batch);
+ * })
+ * .then(data => {
+ * // success
+ * })
+ * .catch(error => {
+ * // error
+ * });
+ *
+ * @example
+ *
+ * // Build a list of active users, each with the list of user events:
+ * db.task(t => {
+ * return t.map('SELECT id FROM Users WHERE status = $1', ['active'], user => {
+ * return t.any('SELECT * FROM Events WHERE userId = $1', user.id)
+ * .then(events=> {
+ * user.events = events;
+ * return user;
+ * });
+ * }).then(t.batch);
+ * })
+ * .then(data => {
+ * // success
+ * })
+ * .catch(error => {
+ * // error
+ * });
+ *
+ */
+ obj.map = function (query, values, cb, thisArg) {
+ return obj.any.call(this, query, values)
+ .then(data => data.map(cb, thisArg));
+ };
+
+ /**
+ * @method Database#each
+ * @description
+ * Executes a provided function once per array element, for an array of rows resolved by method {@link Database#any any}.
+ *
+ * It is a convenience method to reduce the following code:
+ *
+ * ```js
+ * db.any(query, values)
+ * .then(data => {
+ * data.forEach((row, index, data) => {
+ * // process the row
+ * });
+ * return data;
+ * });
+ * ```
+ *
+ * When receiving a multi-query result, only the last result is processed, ignoring the rest.
+ *
+ * @param {string|function|object} query
+ * Query to be executed, which can be any of the following types:
+ * - A non-empty query string
+ * - A function that returns a query string or another function, i.e. recursive resolution
+ * is supported, passing in `values` as `this`, and as the first parameter.
+ * - Prepared Statement `{name, text, values, ...}` or {@link PreparedStatement} object
+ * - Parameterized Query `{text, values, ...}` or {@link ParameterizedQuery} object
+ * - {@link QueryFile} object
+ *
+ * @param {array|value|function} [values]
+ * Query formatting parameter(s), or a function that returns it.
+ *
+ * When `query` is of type `string` or a {@link QueryFile} object, the `values` can be:
+ * - a single value - to replace all `$1` occurrences
+ * - an array of values - to replace all `$1`, `$2`, ... variables
+ * - an object - to apply $[Named Parameters] formatting
+ *
+ * When `query` is a Prepared Statement or a Parameterized Query (or their class types),
+ * and `values` is not `null` or `undefined`, it is automatically set within such object,
+ * as an override for its internal `values`.
+ *
+ * @param {function} cb
+ * Function to execute for each row, taking three arguments:
+ * - `row` - the current row object being processed in the array
+ * - `index` - the index of the current row being processed in the array
+ * - `data` - the array of rows resolved by method {@link Database#any any}
+ *
+ * @param {*} [thisArg]
+ * Value to use as `this` when executing the callback.
+ *
+ * @returns {external:Promise>}
+ * Resolves with the original array of rows.
+ *
+ * @see
+ * {@link Database#any any},
+ * {@link Database#map map},
+ * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach Array.forEach}
+ *
+ * @example
+ *
+ * db.each('SELECT id, code, name FROM Events', [], row => {
+ * row.code = parseInt(row.code);
+ * })
+ * .then(data => {
+ * // data = array of events, with 'code' converted into integer
+ * })
+ * .catch(error => {
+ * // error
+ * });
+ *
+ */
+ obj.each = function (query, values, cb, thisArg) {
+ return obj.any.call(this, query, values)
+ .then(data => {
+ data.forEach(cb, thisArg);
+ return data;
+ });
+ };
+
+ /**
+ * @method Database#task
+ * @description
+ * Executes a callback function with automatically managed connection.
+ *
+ * When invoked on the root {@link Database} object, the method allocates the connection from the pool,
+ * executes the callback, and once finished - releases the connection back to the pool.
+ * However, when invoked inside another task or transaction, the method reuses the parent connection.
+ *
+ * This method should be used whenever executing more than one query at once, so the allocated connection
+ * is reused between all queries, and released only after the task has finished (see $[Chaining Queries]).
+ *
+ * The callback function is called with one parameter - database protocol (same as `this`), extended with methods
+ * {@link Task#batch batch}, {@link Task#page page}, {@link Task#sequence sequence}, plus property {@link Task#ctx ctx} -
+ * the task context object. See class {@link Task} for more details.
+ *
+ * @param {string|number|Object} [options]
+ * This parameter is optional, and presumed skipped when the first parameter is a function (`cb` parameter).
+ *
+ * When it is of type `string` or `number`, it is assumed to be option `tag` passed in directly. Otherwise,
+ * it is expected to be an object with options as listed below.
+ *
+ * @param {} [options.tag]
+ * Traceable context for the task (see $[tags]).
+ *
+ * @param {function} cb
+ * Task callback function, to return the result that will determine either success or failure for the operation.
+ *
+ * The function can be either the first of the second parameter passed into the method.
+ *
+ * It also can be an ES7 `async` function.
+ *
+ * @returns {external:Promise}
+ * A promise object with the result from the callback function.
+ *
+ * @see
+ * {@link Task},
+ * {@link Database#taskIf taskIf},
+ * {@link Database#tx tx},
+ * $[tags],
+ * $[Chaining Queries]
+ *
+ * @example
+ *
+ * db.task('my-task', t => {
+ * // t.ctx = task context object
+ *
+ * return t.one('SELECT id FROM Users WHERE name = $1', 'John')
+ * .then(user => {
+ * return t.any('SELECT * FROM Events WHERE userId = $1', user.id);
+ * });
+ * })
+ * .then(data => {
+ * // success
+ * // data = as returned from the task's callback
+ * })
+ * .catch(error => {
+ * // error
+ * });
+ *
+ * @example
+ *
+ * // using an ES7 syntax for the callback:
+ * db.task('my-task', async t {
+ * // t.ctx = task context object
+ *
+ * const user = await t.one('SELECT id FROM Users WHERE name = $1', 'John');
+ * return t.any('SELECT * FROM Events WHERE userId = $1', user.id);
+ * })
+ * .then(data => {
+ * // success
+ * // data = as returned from the task's callback
+ * })
+ * .catch(error => {
+ * // error
+ * });
+ *
+ */
+ obj.task = function () {
+ const args = npm.pubUtils.taskArgs(arguments);
+ assertOptions(args.options, [`tag`]);
+ return taskProcessor.call(this, args, false);
+ };
+
+ /**
+ * @method Database#taskIf
+ * @description
+ * Executes a conditional task that results in an actual new {@link Database#task task}, if either condition is met or
+ * when it is necessary (on the top level), or else it reuses the current connection context.
+ *
+ * The default condition is `not in task or transaction`, to start a task only if currently not inside another task or transaction,
+ * which is the same as calling the following:
+ *
+ * ```js
+ * db.taskIf({cnd: t => !t.ctx}, cb => {})
+ * ```
+ *
+ * It can be useful, if you want to simplify/reduce the task + log events footprint, by creating new tasks only when necessary.
+ *
+ * @param {string|number|Object} [options]
+ * This parameter is optional, and presumed skipped when the first parameter is a function (`cb` parameter).
+ *
+ * When it is of type `string` or `number`, it is assumed to be option `tag` passed in directly. Otherwise,
+ * it is expected to be an object with options as listed below.
+ *
+ * @param {} [options.tag]
+ * Traceable context for the task/transaction (see $[tags]).
+ *
+ * @param {boolean|function} [options.cnd]
+ * Condition for creating a ({@link Database#task task}), if it is met.
+ * It can be either a simple boolean, or a callback function that takes the task context as `this` and as the first parameter.
+ *
+ * Default condition (when it is not specified):
+ *
+ * ```js
+ * {cnd: t => !t.ctx}
+ * ```
+ *
+ * @param {function} cb
+ * Task callback function, to return the result that will determine either success or failure for the operation.
+ *
+ * The function can be either the first or the second parameter passed into the method.
+ *
+ * It also can be an ES7 `async` function.
+ *
+ * @returns {external:Promise}
+ * A promise object with the result from the callback function.
+ *
+ * @see
+ * {@link Task},
+ * {@link Database#task Database.task},
+ * {@link Database#tx Database.tx},
+ * {@link Database#txIf Database.txIf},
+ * {@link TaskContext}
+ *
+ */
+ obj.taskIf = function () {
+ const args = npm.pubUtils.taskArgs(arguments);
+ assertOptions(args.options, [`tag`, `cnd`]);
+ try {
+ let cnd = args.options.cnd;
+ if (`cnd` in args.options) {
+ cnd = typeof cnd === `function` ? cnd.call(obj, obj) : !!cnd;
+ } else {
+ cnd = !obj.ctx; // create task, if it is the top level
+ }
+ // reusable only if condition fails, and not top-level:
+ args.options.reusable = !cnd && !!obj.ctx;
+ } catch (e) {
+ return $p.reject(e);
+ }
+ return taskProcessor.call(this, args, false);
+ };
+
+ /**
+ * @method Database#tx
+ * @description
+ * Executes a callback function as a transaction, with automatically managed connection.
+ *
+ * When invoked on the root {@link Database} object, the method allocates the connection from the pool,
+ * executes the callback, and once finished - releases the connection back to the pool.
+ * However, when invoked inside another task or transaction, the method reuses the parent connection.
+ *
+ * A transaction wraps a regular {@link Database#task task} into additional queries:
+ * - it executes `BEGIN` just before invoking the callback function
+ * - it executes `COMMIT`, if the callback didn't throw any error or return a rejected promise
+ * - it executes `ROLLBACK`, if the callback did throw an error or return a rejected promise
+ * - it executes corresponding `SAVEPOINT` commands when the method is called recursively.
+ *
+ * The callback function is called with one parameter - database protocol (same as `this`), extended with methods
+ * {@link Task#batch batch}, {@link Task#page page}, {@link Task#sequence sequence}, plus property {@link Task#ctx ctx} -
+ * the transaction context object. See class {@link Task} for more details.
+ *
+ * Note that transactions should be chosen over tasks only where necessary, because unlike regular tasks,
+ * transactions are blocking operations.
+ *
+ * @param {string|number|Object} [options]
+ * This parameter is optional, and presumed skipped when the first parameter is a function (`cb` parameter).
+ *
+ * When it is of type `string` or `number`, it is assumed to be option `tag` passed in directly. Otherwise,
+ * it is expected to be an object with options as listed below.
+ *
+ * @param {} [options.tag]
+ * Traceable context for the transaction (see $[tags]).
+ *
+ * @param {txMode.TransactionMode} [options.mode]
+ * Transaction Configuration Mode - extends the transaction-opening command with additional configuration.
+ *
+ * @param {function} cb
+ * Transaction callback function, to return the result that will determine either success or failure for the operation.
+ *
+ * The function can be either the first of the second parameter passed into the method.
+ *
+ * It also can be an ES7 `async` function.
+ *
+ * @returns {external:Promise}
+ * A promise object with the result from the callback function.
+ *
+ * @see
+ * {@link Task},
+ * {@link Database#task Database.task},
+ * {@link Database#taskIf Database.taskIf},
+ * {@link TaskContext},
+ * $[tags],
+ * $[Chaining Queries]
+ *
+ * @example
+ *
+ * db.tx('my-transaction', t => {
+ * // t.ctx = transaction context object
+ *
+ * return t.one('INSERT INTO Users(name, age) VALUES($1, $2) RETURNING id', ['Mike', 25])
+ * .then(user => {
+ * return t.batch([
+ * t.none('INSERT INTO Events(userId, name) VALUES($1, $2)', [user.id, 'created']),
+ * t.none('INSERT INTO Events(userId, name) VALUES($1, $2)', [user.id, 'login'])
+ * ]);
+ * });
+ * })
+ * .then(data => {
+ * // success
+ * // data = as returned from the transaction's callback
+ * })
+ * .catch(error => {
+ * // error
+ * });
+ *
+ * @example
+ *
+ * // using an ES7 syntax for the callback:
+ * db.tx('my-transaction', async t {
+ * // t.ctx = transaction context object
+ *
+ * const user = await t.one('INSERT INTO Users(name, age) VALUES($1, $2) RETURNING id', ['Mike', 25]);
+ * return t.none('INSERT INTO Events(userId, name) VALUES($1, $2)', [user.id, 'created']);
+ * })
+ * .then(data => {
+ * // success
+ * // data = as returned from the transaction's callback
+ * })
+ * .catch(error => {
+ * // error
+ * });
+ *
+ */
+ obj.tx = function () {
+ const args = npm.pubUtils.taskArgs(arguments);
+ assertOptions(args.options, [`tag`, `mode`]);
+ return taskProcessor.call(this, args, true);
+ };
+
+ /**
+ * @method Database#txIf
+ * @description
+ * Executes a conditional transaction that results in an actual transaction ({@link Database#tx tx}), if the condition is met,
+ * or else it executes a regular {@link Database#task task}.
+ *
+ * The default condition is `not in transaction`, to start a transaction only if currently not in transaction,
+ * or else start a task, which is the same as calling the following:
+ *
+ * ```js
+ * db.txIf({cnd: t => !t.ctx || !t.ctx.inTransaction}, cb => {})
+ * ```
+ *
+ * It is useful when you want to avoid $[Nested Transactions] - savepoints.
+ *
+ * @param {string|number|Object} [options]
+ * This parameter is optional, and presumed skipped when the first parameter is a function (`cb` parameter).
+ *
+ * When it is of type `string` or `number`, it is assumed to be option `tag` passed in directly. Otherwise,
+ * it is expected to be an object with options as listed below.
+ *
+ * @param {} [options.tag]
+ * Traceable context for the task/transaction (see $[tags]).
+ *
+ * @param {txMode.TransactionMode} [options.mode]
+ * Transaction Configuration Mode - extends the transaction-opening command with additional configuration.
+ *
+ * @param {boolean|function} [options.cnd]
+ * Condition for opening a transaction ({@link Database#tx tx}), if it is met, or a {@link Database#task task} when the condition is not met.
+ * It can be either a simple boolean, or a callback function that takes the task/tx context as `this` and as the first parameter.
+ *
+ * Default condition (when it is not specified):
+ *
+ * ```js
+ * {cnd: t => !t.ctx || !t.ctx.inTransaction}
+ * ```
+ *
+ * @param {boolean|function} [options.reusable=false]
+ * When `cnd` is/returns false, reuse context of the current task/transaction, if one exists.
+ * It can be either a simple boolean, or a callback function that takes the task/tx context as `this`
+ * and as the first parameter.
+ *
+ * By default, when `cnd` is/returns false, the method creates a new task. This option tells
+ * the method to reuse the current task/transaction context, and not create a new task.
+ *
+ * This option is ignored when executing against the top level of the protocol, because on
+ * that level, if no transaction is suddenly needed, a new task becomes necessary.
+ *
+ * @param {function} cb
+ * Transaction/task callback function, to return the result that will determine either
+ * success or failure for the operation.
+ *
+ * The function can be either the first or the second parameter passed into the method.
+ *
+ * It also can be an ES7 `async` function.
+ *
+ * @returns {external:Promise}
+ * A promise object with the result from the callback function.
+ *
+ * @see
+ * {@link Task},
+ * {@link Database#task Database.task},
+ * {@link Database#taskIf Database.taskIf},
+ * {@link Database#tx Database.tx},
+ * {@link TaskContext}
+ *
+ */
+ obj.txIf = function () {
+ const args = npm.pubUtils.taskArgs(arguments);
+ assertOptions(args.options, [`tag`, `mode`, `cnd`, `reusable`]);
+ try {
+ let cnd;
+ if (`cnd` in args.options) {
+ cnd = args.options.cnd;
+ cnd = typeof cnd === `function` ? cnd.call(obj, obj) : !!cnd;
+ } else {
+ cnd = !obj.ctx || !obj.ctx.inTransaction;
+ }
+ args.options.cnd = cnd;
+ const reusable = args.options.reusable;
+ args.options.reusable = !cnd && obj.ctx && typeof reusable === `function` ? reusable.call(obj, obj) : !!reusable;
+ } catch (e) {
+ return $p.reject(e);
+ }
+ return taskProcessor.call(this, args, args.options.cnd);
+ };
+
+ // Task method;
+ // Resolves with result from the callback function;
+ function taskProcessor(params, isTX) {
+
+ if (typeof params.cb !== `function`) {
+ return $p.reject(new TypeError(`Callback function is required.`));
+ }
+
+ if (params.options.reusable) {
+ return config.$npm.task.callback(obj.ctx, obj, params.cb, config);
+ }
+
+ const taskCtx = ctx.clone(); // task context object;
+ if (isTX) {
+ taskCtx.txLevel = taskCtx.txLevel >= 0 ? (taskCtx.txLevel + 1) : 0;
+ }
+ taskCtx.inTransaction = taskCtx.txLevel >= 0;
+ taskCtx.level = taskCtx.level >= 0 ? (taskCtx.level + 1) : 0;
+ taskCtx.cb = params.cb; // callback function;
+ taskCtx.mode = params.options.mode; // transaction mode;
+ if (this !== obj) {
+ taskCtx.context = this; // calling context object;
+ }
+
+ const tsk = new config.$npm.task.Task(taskCtx, params.options.tag, isTX, config);
+ taskCtx.taskCtx = tsk.ctx;
+ extend(taskCtx, tsk);
+
+ if (taskCtx.db) {
+ // reuse existing connection;
+ npm.utils.addReadProp(tsk.ctx, `useCount`, taskCtx.db.useCount);
+ addServerVersion(tsk.ctx, taskCtx.db.client);
+ return config.$npm.task.execute(taskCtx, tsk, isTX, config);
+ }
+
+ // connection required;
+ return config.$npm.connect.pool(taskCtx, dbThis)
+ .then(db => {
+ taskCtx.connect(db);
+ npm.utils.addReadProp(tsk.ctx, `useCount`, db.useCount);
+ addServerVersion(tsk.ctx, db.client);
+ return config.$npm.task.execute(taskCtx, tsk, isTX, config);
+ })
+ .then(data => {
+ taskCtx.disconnect();
+ return data;
+ })
+ .catch(error => {
+ taskCtx.disconnect();
+ return $p.reject(error);
+ });
+ }
+
+ function addServerVersion(target, client) {
+ // Exclude else-case from coverage, because it can only occur with Native Bindings.
+ // istanbul ignore else
+ if (client.serverVersion) {
+ npm.utils.addReadProp(target, `serverVersion`, client.serverVersion);
+ }
+ }
+
+ // lock all default properties to read-only,
+ // to prevent override by the client.
+ npm.utils.lock(obj, false, ctx.options);
+
+ // extend the protocol;
+ Events.extend(ctx.options, obj, ctx.dc);
+
+ // freeze the protocol permanently;
+ npm.utils.lock(obj, true, ctx.options);
+ }
+
+}
+
+// this event only happens when the connection is lost physically,
+// which cannot be tested automatically; removing from coverage:
+// istanbul ignore next
+function onError(err) {
+ // this client was never seen by pg-promise, which
+ // can happen if it failed to initialize
+ if (!err.client.$ctx) {
+ return;
+ }
+ const ctx = err.client.$ctx;
+ Events.error(ctx.options, err, {
+ cn: npm.utils.getSafeConnection(ctx.cn),
+ dc: ctx.dc
+ });
+}
+
+module.exports = config => {
+ const npmLocal = config.$npm;
+ npmLocal.connect = npmLocal.connect || npm.connect(config);
+ npmLocal.query = npmLocal.query || npm.query(config);
+ npmLocal.task = npmLocal.task || npm.task(config);
+ return Database;
+};
+
+/**
+ * @callback Database.streamInitCB
+ * @description
+ * Stream initialization callback, used by {@link Database#stream Database.stream}.
+ *
+ * @param {external:Stream} stream
+ * Stream object to initialize streaming.
+ *
+ * @example
+ * const QueryStream = require('pg-query-stream');
+ * const JSONStream = require('JSONStream');
+ *
+ * // you can also use pgp.as.format(query, values, options)
+ * // to format queries properly, via pg-promise;
+ * const qs = new QueryStream('SELECT * FROM users');
+ *
+ * db.stream(qs, stream => {
+ * // initiate streaming into the console:
+ * stream.pipe(JSONStream.stringify()).pipe(process.stdout);
+ * })
+ * .then(data => {
+ * console.log('Total rows processed:', data.processed,
+ * 'Duration in milliseconds:', data.duration);
+ * })
+ * .catch(error => {
+ * // error;
+ * });
+ */
+
+/**
+ * @external Stream
+ * @see https://nodejs.org/api/stream.html
+ */
+
+/**
+ * @external pg-pool
+ * @alias pg-pool
+ * @see https://github.com/brianc/node-pg-pool
+ */
+
+/**
+ * @external Result
+ * @see https://node-postgres.com/api/result
+ */
diff --git a/server/node_modules/pg-promise/lib/errors/README.md b/server/node_modules/pg-promise/lib/errors/README.md
new file mode 100644
index 0000000..5c761a3
--- /dev/null
+++ b/server/node_modules/pg-promise/lib/errors/README.md
@@ -0,0 +1,13 @@
+### `errors` namespace
+
+This folder contains everything that's available via the [errors] namespace, before and after initialization:
+
+```js
+const pgpLib = require('pg-promise');
+const pgp = pgpLib(/*initialization options*/);
+
+pgpLib.errors; // `errors` namespace
+pgp.errors; // `errors` namespace
+```
+
+[errors]:http://vitaly-t.github.io/pg-promise/errors.html
diff --git a/server/node_modules/pg-promise/lib/errors/index.js b/server/node_modules/pg-promise/lib/errors/index.js
new file mode 100644
index 0000000..b3878d2
--- /dev/null
+++ b/server/node_modules/pg-promise/lib/errors/index.js
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2015-present, Vitaly Tomilov
+ *
+ * See the LICENSE file at the top-level directory of this distribution
+ * for licensing information.
+ *
+ * Removal or modification of this copyright notice is prohibited.
+ */
+
+const {QueryResultError, queryResultErrorCode} = require(`./query-result-error`);
+const {PreparedStatementError} = require(`./prepared-statement-error`);
+const {ParameterizedQueryError} = require(`./parameterized-query-error`);
+const {QueryFileError} = require(`./query-file-error`);
+
+/**
+ * @namespace errors
+ * @description
+ * Error types namespace, available as `pgp.errors`, before and after initializing the library.
+ *
+ * @property {function} PreparedStatementError
+ * {@link errors.PreparedStatementError PreparedStatementError} class constructor.
+ *
+ * Represents all errors that can be reported by class {@link PreparedStatement}.
+ *
+ * @property {function} ParameterizedQueryError
+ * {@link errors.ParameterizedQueryError ParameterizedQueryError} class constructor.
+ *
+ * Represents all errors that can be reported by class {@link ParameterizedQuery}.
+ *
+ * @property {function} QueryFileError
+ * {@link errors.QueryFileError QueryFileError} class constructor.
+ *
+ * Represents all errors that can be reported by class {@link QueryFile}.
+ *
+ * @property {function} QueryResultError
+ * {@link errors.QueryResultError QueryResultError} class constructor.
+ *
+ * Represents all result-specific errors from query methods.
+ *
+ * @property {errors.queryResultErrorCode} queryResultErrorCode
+ * Error codes `enum` used by class {@link errors.QueryResultError QueryResultError}.
+ *
+ */
+
+module.exports = {
+ QueryResultError,
+ queryResultErrorCode,
+ PreparedStatementError,
+ ParameterizedQueryError,
+ QueryFileError
+};
diff --git a/server/node_modules/pg-promise/lib/errors/parameterized-query-error.js b/server/node_modules/pg-promise/lib/errors/parameterized-query-error.js
new file mode 100644
index 0000000..90aef9f
--- /dev/null
+++ b/server/node_modules/pg-promise/lib/errors/parameterized-query-error.js
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2015-present, Vitaly Tomilov
+ *
+ * See the LICENSE file at the top-level directory of this distribution
+ * for licensing information.
+ *
+ * Removal or modification of this copyright notice is prohibited.
+ */
+
+const {QueryFileError} = require(`./query-file-error`);
+
+const npm = {
+ os: require(`os`),
+ utils: require(`../utils`)
+};
+
+/**
+ * @class errors.ParameterizedQueryError
+ * @augments external:Error
+ * @description
+ * {@link errors.ParameterizedQueryError ParameterizedQueryError} class, available from the {@link errors} namespace.
+ *
+ * This type represents all errors that can be reported by class {@link ParameterizedQuery}, whether it is used
+ * explicitly or implicitly (via a simple `{text, values}` object).
+ *
+ * @property {string} name
+ * Standard {@link external:Error Error} property - error type name = `ParameterizedQueryError`.
+ *
+ * @property {string} message
+ * Standard {@link external:Error Error} property - the error message.
+ *
+ * @property {string} stack
+ * Standard {@link external:Error Error} property - the stack trace.
+ *
+ * @property {errors.QueryFileError} error
+ * Internal {@link errors.QueryFileError} object.
+ *
+ * It is set only when the source {@link ParameterizedQuery} used a {@link QueryFile} which threw the error.
+ *
+ * @property {object} result
+ * Resulting Parameterized Query object.
+ *
+ * @see ParameterizedQuery
+ */
+class ParameterizedQueryError extends Error {
+ constructor(error, pq) {
+ const isQueryFileError = error instanceof QueryFileError;
+ const message = isQueryFileError ? `Failed to initialize 'text' from a QueryFile.` : error;
+ super(message);
+ this.name = this.constructor.name;
+ if (isQueryFileError) {
+ this.error = error;
+ }
+ this.result = pq;
+ Error.captureStackTrace(this, this.constructor);
+ }
+}
+
+/**
+ * @method errors.ParameterizedQueryError#toString
+ * @description
+ * Creates a well-formatted multi-line string that represents the error.
+ *
+ * It is called automatically when writing the object into the console.
+ *
+ * @param {number} [level=0]
+ * Nested output level, to provide visual offset.
+ *
+ * @returns {string}
+ */
+ParameterizedQueryError.prototype.toString = function (level) {
+ level = level > 0 ? parseInt(level) : 0;
+ const gap0 = npm.utils.messageGap(level),
+ gap1 = npm.utils.messageGap(level + 1),
+ gap2 = npm.utils.messageGap(level + 2),
+ lines = [
+ `ParameterizedQueryError {`,
+ gap1 + `message: "` + this.message + `"`,
+ gap1 + `result: {`,
+ gap2 + `text: ` + npm.utils.toJson(this.result.text),
+ gap2 + `values: ` + npm.utils.toJson(this.result.values),
+ gap1 + `}`
+ ];
+ if (this.error) {
+ lines.push(gap1 + `error: ` + this.error.toString(level + 1));
+ }
+ lines.push(gap0 + `}`);
+ return lines.join(npm.os.EOL);
+};
+
+npm.utils.addInspection(ParameterizedQueryError, function () {
+ return this.toString();
+});
+
+module.exports = {ParameterizedQueryError};
diff --git a/server/node_modules/pg-promise/lib/errors/prepared-statement-error.js b/server/node_modules/pg-promise/lib/errors/prepared-statement-error.js
new file mode 100644
index 0000000..6bc435c
--- /dev/null
+++ b/server/node_modules/pg-promise/lib/errors/prepared-statement-error.js
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2015-present, Vitaly Tomilov
+ *
+ * See the LICENSE file at the top-level directory of this distribution
+ * for licensing information.
+ *
+ * Removal or modification of this copyright notice is prohibited.
+ */
+
+const {QueryFileError} = require(`./query-file-error`);
+
+const npm = {
+ os: require(`os`),
+ utils: require(`../utils`)
+};
+
+/**
+ * @class errors.PreparedStatementError
+ * @augments external:Error
+ * @description
+ * {@link errors.PreparedStatementError PreparedStatementError} class, available from the {@link errors} namespace.
+ *
+ * This type represents all errors that can be reported by class {@link PreparedStatement}, whether it is used
+ * explicitly or implicitly (via a simple `{name, text, values}` object).
+ *
+ * @property {string} name
+ * Standard {@link external:Error Error} property - error type name = `PreparedStatementError`.
+ *
+ * @property {string} message
+ * Standard {@link external:Error Error} property - the error message.
+ *
+ * @property {string} stack
+ * Standard {@link external:Error Error} property - the stack trace.
+ *
+ * @property {errors.QueryFileError} error
+ * Internal {@link errors.QueryFileError} object.
+ *
+ * It is set only when the source {@link PreparedStatement} used a {@link QueryFile} which threw the error.
+ *
+ * @property {object} result
+ * Resulting Prepared Statement object.
+ *
+ * @see PreparedStatement
+ */
+class PreparedStatementError extends Error {
+ constructor(error, ps) {
+ const isQueryFileError = error instanceof QueryFileError;
+ const message = isQueryFileError ? `Failed to initialize 'text' from a QueryFile.` : error;
+ super(message);
+ this.name = this.constructor.name;
+ if (isQueryFileError) {
+ this.error = error;
+ }
+ this.result = ps;
+ Error.captureStackTrace(this, this.constructor);
+ }
+}
+
+/**
+ * @method errors.PreparedStatementError#toString
+ * @description
+ * Creates a well-formatted multi-line string that represents the error.
+ *
+ * It is called automatically when writing the object into the console.
+ *
+ * @param {number} [level=0]
+ * Nested output level, to provide visual offset.
+ *
+ * @returns {string}
+ */
+PreparedStatementError.prototype.toString = function (level) {
+ level = level > 0 ? parseInt(level) : 0;
+ const gap0 = npm.utils.messageGap(level),
+ gap1 = npm.utils.messageGap(level + 1),
+ gap2 = npm.utils.messageGap(level + 2),
+ lines = [
+ `PreparedStatementError {`,
+ gap1 + `message: "` + this.message + `"`,
+ gap1 + `result: {`,
+ gap2 + `name: ` + npm.utils.toJson(this.result.name),
+ gap2 + `text: ` + npm.utils.toJson(this.result.text),
+ gap2 + `values: ` + npm.utils.toJson(this.result.values),
+ gap1 + `}`
+ ];
+ if (this.error) {
+ lines.push(gap1 + `error: ` + this.error.toString(level + 1));
+ }
+ lines.push(gap0 + `}`);
+ return lines.join(npm.os.EOL);
+};
+
+npm.utils.addInspection(PreparedStatementError, function () {
+ return this.toString();
+});
+
+module.exports = {PreparedStatementError};
diff --git a/server/node_modules/pg-promise/lib/errors/query-file-error.js b/server/node_modules/pg-promise/lib/errors/query-file-error.js
new file mode 100644
index 0000000..4f77961
--- /dev/null
+++ b/server/node_modules/pg-promise/lib/errors/query-file-error.js
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2015-present, Vitaly Tomilov
+ *
+ * See the LICENSE file at the top-level directory of this distribution
+ * for licensing information.
+ *
+ * Removal or modification of this copyright notice is prohibited.
+ */
+
+const npm = {
+ os: require(`os`),
+ utils: require(`../utils`),
+ minify: require(`pg-minify`)
+};
+
+/**
+ * @class errors.QueryFileError
+ * @augments external:Error
+ * @description
+ * {@link errors.QueryFileError QueryFileError} class, available from the {@link errors} namespace.
+ *
+ * This type represents all errors related to {@link QueryFile}.
+ *
+ * @property {string} name
+ * Standard {@link external:Error Error} property - error type name = `QueryFileError`.
+ *
+ * @property {string} message
+ * Standard {@link external:Error Error} property - the error message.
+ *
+ * @property {string} stack
+ * Standard {@link external:Error Error} property - the stack trace.
+ *
+ * @property {string} file
+ * File path/name that was passed into the {@link QueryFile} constructor.
+ *
+ * @property {object} options
+ * Set of options that was used by the {@link QueryFile} object.
+ *
+ * @property {SQLParsingError} error
+ * Internal $[SQLParsingError] object.
+ *
+ * It is set only when the error was thrown by $[pg-minify] while parsing the SQL file.
+ *
+ * @see QueryFile
+ *
+ */
+class QueryFileError extends Error {
+ constructor(error, qf) {
+ const isSqlError = error instanceof npm.minify.SQLParsingError;
+ const message = isSqlError ? `Failed to parse the SQL.` : error.message;
+ super(message);
+ this.name = this.constructor.name;
+ if (isSqlError) {
+ this.error = error;
+ }
+ this.file = qf.file;
+ this.options = qf.options;
+ Error.captureStackTrace(this, this.constructor);
+ }
+}
+
+/**
+ * @method errors.QueryFileError#toString
+ * @description
+ * Creates a well-formatted multi-line string that represents the error.
+ *
+ * It is called automatically when writing the object into the console.
+ *
+ * @param {number} [level=0]
+ * Nested output level, to provide visual offset.
+ *
+ * @returns {string}
+ */
+QueryFileError.prototype.toString = function (level) {
+ level = level > 0 ? parseInt(level) : 0;
+ const gap0 = npm.utils.messageGap(level),
+ gap1 = npm.utils.messageGap(level + 1),
+ lines = [
+ `QueryFileError {`,
+ gap1 + `message: "` + this.message + `"`,
+ gap1 + `options: ` + npm.utils.toJson(this.options),
+ gap1 + `file: "` + this.file + `"`
+ ];
+ if (this.error) {
+ lines.push(gap1 + `error: ` + this.error.toString(level + 1));
+ }
+ lines.push(gap0 + `}`);
+ return lines.join(npm.os.EOL);
+};
+
+npm.utils.addInspection(QueryFileError, function () {
+ return this.toString();
+});
+
+module.exports = {QueryFileError};
diff --git a/server/node_modules/pg-promise/lib/errors/query-result-error.js b/server/node_modules/pg-promise/lib/errors/query-result-error.js
new file mode 100644
index 0000000..9baccd5
--- /dev/null
+++ b/server/node_modules/pg-promise/lib/errors/query-result-error.js
@@ -0,0 +1,177 @@
+/*
+ * Copyright (c) 2015-present, Vitaly Tomilov
+ *
+ * See the LICENSE file at the top-level directory of this distribution
+ * for licensing information.
+ *
+ * Removal or modification of this copyright notice is prohibited.
+ */
+
+const npm = {
+ os: require(`os`),
+ utils: require(`../utils`),
+ text: require(`../text`)
+};
+
+/**
+ * @enum {number}
+ * @alias errors.queryResultErrorCode
+ * @readonly
+ * @description
+ * `queryResultErrorCode` enumerator, available from the {@link errors} namespace.
+ *
+ * Represents an integer code for each type of error supported by type {@link errors.QueryResultError}.
+ *
+ * @see {@link errors.QueryResultError}
+ */
+const queryResultErrorCode = {
+ /** No data returned from the query. */
+ noData: 0,
+
+ /** No return data was expected. */
+ notEmpty: 1,
+
+ /** Multiple rows were not expected. */
+ multiple: 2
+};
+
+const errorMessages = [
+ {name: `noData`, message: npm.text.noData},
+ {name: `notEmpty`, message: npm.text.notEmpty},
+ {name: `multiple`, message: npm.text.multiple}
+];
+
+/**
+ * @class errors.QueryResultError
+ * @augments external:Error
+ * @description
+ *
+ * This error is specified as the rejection reason for all result-specific methods when the result doesn't match
+ * the expectation, i.e. when a query result doesn't match its Query Result Mask - the value of {@link queryResult}.
+ *
+ * The error applies to the result from the following methods: {@link Database#none none},
+ * {@link Database#one one}, {@link Database#oneOrNone oneOrNone} and {@link Database#many many}.
+ *
+ * Supported errors:
+ *
+ * - `No return data was expected.`, method {@link Database#none none}
+ * - `No data returned from the query.`, methods {@link Database#one one} and {@link Database#many many}
+ * - `Multiple rows were not expected.`, methods {@link Database#one one} and {@link Database#oneOrNone oneOrNone}
+ *
+ * Like any other error, this one is notified with through the global event {@link event:error error}.
+ *
+ * The type is available from the {@link errors} namespace.
+ *
+ * @property {string} name
+ * Standard {@link external:Error Error} property - error type name = `QueryResultError`.
+ *
+ * @property {string} message
+ * Standard {@link external:Error Error} property - the error message.
+ *
+ * @property {string} stack
+ * Standard {@link external:Error Error} property - the stack trace.
+ *
+ * @property {object} result
+ * The original $[Result] object that was received.
+ *
+ * @property {number} received
+ * Total number of rows received. It is simply the value of `result.rows.length`.
+ *
+ * @property {number} code
+ * Error code - {@link errors.queryResultErrorCode queryResultErrorCode} value.
+ *
+ * @property {string} query
+ * Query that was executed.
+ *
+ * Normally, it is the query already formatted with values, if there were any.
+ * But if you are using initialization option `pgFormatting`, then the query string is before formatting.
+ *
+ * @property {*} values
+ * Values passed in as query parameters. Available only when initialization option `pgFormatting` is used.
+ * Otherwise, the values are within the pre-formatted `query` string.
+ *
+ * @example
+ *
+ * const QueryResultError = pgp.errors.QueryResultError;
+ * const qrec = pgp.errors.queryResultErrorCode;
+ *
+ * const initOptions = {
+ *
+ * // pg-promise initialization options...
+ *
+ * error: (err, e) => {
+ * if (err instanceof QueryResultError) {
+ * // A query returned unexpected number of records, and thus rejected;
+ *
+ * // we can check the error code, if we want specifics:
+ * if(err.code === qrec.noData) {
+ * // expected some data, but received none;
+ * }
+ *
+ * // If you write QueryResultError into the console,
+ * // you will get a nicely formatted output.
+ *
+ * console.log(err);
+ *
+ * // See also: err, e.query, e.params, etc.
+ * }
+ * }
+ * };
+ *
+ * @see
+ * {@link queryResult}, {@link Database#none none}, {@link Database#one one},
+ * {@link Database#oneOrNone oneOrNone}, {@link Database#many many}
+ *
+ */
+class QueryResultError extends Error {
+ constructor(code, result, query, values) {
+ const message = errorMessages[code].message;
+ super(message);
+ this.name = this.constructor.name;
+ this.code = code;
+ this.result = result;
+ this.query = query;
+ this.values = values;
+ this.received = result.rows.length;
+ Error.captureStackTrace(this, this.constructor);
+ }
+}
+
+/**
+ * @method errors.QueryResultError#toString
+ * @description
+ * Creates a well-formatted multi-line string that represents the error.
+ *
+ * It is called automatically when writing the object into the console.
+ *
+ * @param {number} [level=0]
+ * Nested output level, to provide visual offset.
+ *
+ * @returns {string}
+ */
+QueryResultError.prototype.toString = function (level) {
+ level = level > 0 ? parseInt(level) : 0;
+ const gap0 = npm.utils.messageGap(level),
+ gap1 = npm.utils.messageGap(level + 1),
+ lines = [
+ `QueryResultError {`,
+ gap1 + `code: queryResultErrorCode.` + errorMessages[this.code].name,
+ gap1 + `message: "` + this.message + `"`,
+ gap1 + `received: ` + this.received,
+ gap1 + `query: ` + (typeof this.query === `string` ? `"` + this.query + `"` : npm.utils.toJson(this.query))
+ ];
+ if (this.values !== undefined) {
+ lines.push(gap1 + `values: ` + npm.utils.toJson(this.values));
+ }
+ lines.push(gap0 + `}`);
+ return lines.join(npm.os.EOL);
+};
+
+npm.utils.addInspection(QueryResultError, function () {
+ return this.toString();
+});
+
+module.exports = {
+ QueryResultError,
+ queryResultErrorCode
+};
diff --git a/server/node_modules/pg-promise/lib/events.js b/server/node_modules/pg-promise/lib/events.js
new file mode 100644
index 0000000..16e9ea0
--- /dev/null
+++ b/server/node_modules/pg-promise/lib/events.js
@@ -0,0 +1,531 @@
+/*
+ * Copyright (c) 2015-present, Vitaly Tomilov
+ *
+ * See the LICENSE file at the top-level directory of this distribution
+ * for licensing information.
+ *
+ * Removal or modification of this copyright notice is prohibited.
+ */
+
+const {ColorConsole} = require(`./utils/color`);
+
+const npm = {
+ main: require(`./`),
+ utils: require(`./utils`)
+};
+
+/////////////////////////////////
+// Client notification helpers;
+class Events {
+
+ /**
+ * @event connect
+ * @description
+ * Global notification of acquiring a new database connection from the connection pool, i.e. a virtual connection.
+ *
+ * However, for direct calls to method {@link Database#connect Database.connect} with parameter `{direct: true}`,
+ * this event represents a physical connection.
+ *
+ * The library will suppress any error thrown by the handler and write it into the console.
+ *
+ * @param {external:Client} client
+ * $[pg.Client] object that represents the connection.
+ *
+ * @param {*} dc
+ * Database Context that was used when creating the database object (see {@link Database}).
+ *
+ * @param {number} useCount
+ * Number of times the connection has been previously used, starting with 0 for a freshly
+ * allocated physical connection.
+ *
+ * This parameter is always 0 for direct connections (created by calling {@link Database#connect Database.connect}
+ * with parameter `{direct: true}`).
+ *
+ * @example
+ *
+ * const initOptions = {
+ *
+ * // pg-promise initialization options...
+ *
+ * connect(client, dc, useCount) {
+ * const cp = client.connectionParameters;
+ * console.log('Connected to database:', cp.database);
+ * }
+ *
+ * };
+ */
+ static connect(ctx, client, useCount) {
+ if (typeof ctx.options.connect === `function`) {
+ try {
+ ctx.options.connect(client, ctx.dc, useCount);
+ } catch (e) {
+ // have to silence errors here;
+ // cannot allow unhandled errors while connecting to the database,
+ // as it will break the connection logic;
+ Events.unexpected(`connect`, e);
+ }
+ }
+ }
+
+ /**
+ * @event disconnect
+ * @description
+ * Global notification of releasing a database connection back to the connection pool, i.e. releasing the virtual connection.
+ *
+ * However, when releasing a direct connection (created by calling {@link Database#connect Database.connect} with parameter
+ * `{direct: true}`), this event represents a physical disconnection.
+ *
+ * The library will suppress any error thrown by the handler and write it into the console.
+ *
+ * @param {external:Client} client - $[pg.Client] object that represents connection with the database.
+ *
+ * @param {*} dc - Database Context that was used when creating the database object (see {@link Database}).
+ *
+ * @example
+ *
+ * const initOptions = {
+ *
+ * // pg-promise initialization options...
+ *
+ * disconnect(client, dc) {
+ * const cp = client.connectionParameters;
+ * console.log('Disconnecting from database:', cp.database);
+ * }
+ *
+ * };
+ */
+ static disconnect(ctx, client) {
+ if (typeof ctx.options.disconnect === `function`) {
+ try {
+ ctx.options.disconnect(client, ctx.dc);
+ } catch (e) {
+ // have to silence errors here;
+ // cannot allow unhandled errors while disconnecting from the database,
+ // as it will break the disconnection logic;
+ Events.unexpected(`disconnect`, e);
+ }
+ }
+ }
+
+ /**
+ * @event query
+ * @description
+ *
+ * Global notification of a query that's about to execute.
+ *
+ * Notification happens just before the query execution. And if the handler throws an error, the query execution
+ * will be rejected with that error.
+ *
+ * @param {EventContext} e
+ * Event Context Object.
+ *
+ * @example
+ *
+ * const initOptions = {
+ *
+ * // pg-promise initialization options...
+ *
+ * query(e) {
+ * console.log('QUERY:', e.query);
+ * }
+ * };
+ */
+ static query(options, context) {
+ if (typeof options.query === `function`) {
+ try {
+ options.query(context);
+ } catch (e) {
+ // throwing an error during event 'query'
+ // will result in a reject for the request.
+ return e instanceof Error ? e : new npm.utils.InternalError(e);
+ }
+ }
+ }
+
+ /**
+ * @event receive
+ * @description
+ * Global notification of any data received from the database, coming from a regular query or from a stream.
+ *
+ * The event is fired before the data reaches the client, and it serves two purposes:
+ * - Providing selective data logging for debugging;
+ * - Pre-processing data before it reaches the client.
+ *
+ * **NOTES:**
+ * - If you alter the size of `data` directly or through the `result` object, it may affect `QueryResultMask`
+ * validation for regular queries, which is executed right after.
+ * - Any data pre-processing needs to be fast here, to avoid performance penalties.
+ * - If the event handler throws an error, the original request will be rejected with that error.
+ *
+ * For methods {@link Database#multi Database.multi} and {@link Database#multiResult Database.multiResult},
+ * this event is called for every result that's returned. And for method {@link Database#stream Database.stream},
+ * the event occurs for every record.
+ *
+ * @param {Array