{"version":3,"sources":["jsdelivr-header.js","/npm/mockjs2@1.0.8/dist/mock.js"],"names":[],"mappings":"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ACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,SACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,UACV,OAAU,aACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,SACV,OAAU,QACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,OACV,OAAU,QACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,SACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,YACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,SACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,QACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,UACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,QACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,QACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,QACV,OAAU,OACV,OAAU,QACV,OAAU,MACV,OAAU,cACV,OAAU,SACV,OAAU,UACV,OAAU,QACV,OAAU,SACV,OAAU,SACV,OAAU,OACV,OAAU,OACV,OAAU,OACV,OAAU,QACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,QACV,OAAU,QACV,OAAU,OACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,UACV,OAAU,UACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,OACV,OAAU,UACV,OAAU,UACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,QACV,OAAU,QACV,OAAU,OACV,OAAU,QACV,OAAU,QACV,OAAU,SACV,OAAU,SACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,QACV,OAAU,QACV,OAAU,OACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,WACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,cACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,WACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,cACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,WACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,QACV,OAAU,OACV,OAAU,WACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,aACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,MAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,SACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,KAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,WACV,OAAU,WACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,aACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,UACV,OAAU,UACV,OAAU,YACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,aACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,YACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,WACV,OAAU,WACV,OAAU,UACV,OAAU,UACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,cACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,UACV,OAAU,UACV,OAAU,UACV,OAAU,YACV,OAAU,YACV,OAAU,MACV,IAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,WACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,UACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,YACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,aACV,OAAU,aACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,aACV,OAAU,MACV,OAAU,WACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,cACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,cACV,OAAU,MACV,OAAU,MACV,OAAU,aACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,aACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,YACV,OAAU,YACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,YACV,OAAU,eACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,WACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,aACV,OAAU,WACV,OAAU,UACV,OAAU,YACV,OAAU,gBACV,OAAU,aACV,OAAU,eACV,OAAU,WACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,kBACV,OAAU,YACV,OAAU,UACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,aACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,cACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,YACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,YACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,YACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,aACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,WACV,OAAU,MACV,OAAU,MACV,OAAU,aACV,OAAU,aACV,OAAU,MACV,OAAU,UACV,OAAU,QACV,OAAU,MACV,OAAU,WACV,OAAU,MACV,KAAU,QACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,QACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,WACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,WACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,WACV,OAAU,aACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,KACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,SACV,OAAU,kBACV,OAAU,MACV,MAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,YACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,YACV,OAAU,MACV,OAAU,UACV,OAAU,UACV,OAAU,WACV,OAAU,MACV,OAAU,UACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,WACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,aACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,KAAU,WACV,OAAU,QACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,QACV,OAAU,OACV,OAAU,QACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,QACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,YACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,QACV,OAAU,WACV,OAAU,MACV,OAAU,YACV,OAAU,MACV,OAAU,QACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,YACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,UACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,QACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,MAAU,cACV,OAAU,OACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,cACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,MAAU,WACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,YACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,aACV,OAAU,MACV,OAAU,QACV,OAAU,OACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,OACV,OAAU,OACV,OAAU,QACV,OAAU,OACV,KAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,KACV,OAAU,KACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,OACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAAU,MACV,OAA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","file":"/npm/mockjs2@1.0.8/dist/mock.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/mockjs2@1.0.8/dist/mock.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(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[\"Mock\"] = factory();\n\telse\n\t\troot[\"Mock\"] = factory();\n})(typeof self !== 'undefined' ? self : 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/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\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.l = 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// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 9);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n/*\n    ## Utilities\n*/\nvar Util = {}\n\nUtil.extend = function extend() {\n    var target = arguments[0] || {},\n        i = 1,\n        length = arguments.length,\n        options, name, src, copy, clone\n\n    if (length === 1) {\n        target = this\n        i = 0\n    }\n\n    for (; i < length; i++) {\n        options = arguments[i]\n        if (!options) continue\n\n        for (name in options) {\n            src = target[name]\n            copy = options[name]\n\n            if (target === copy) continue\n            if (copy === undefined) continue\n\n            if (Util.isArray(copy) || Util.isObject(copy)) {\n                if (Util.isArray(copy)) clone = src && Util.isArray(src) ? src : []\n                if (Util.isObject(copy)) clone = src && Util.isObject(src) ? src : {}\n\n                target[name] = Util.extend(clone, copy)\n            } else {\n                target[name] = copy\n            }\n        }\n    }\n\n    return target\n}\n\nUtil.each = function each(obj, iterator, context) {\n    var i, key\n    if (this.type(obj) === 'number') {\n        for (i = 0; i < obj; i++) {\n            iterator(i, i)\n        }\n    } else if (obj.length === +obj.length) {\n        for (i = 0; i < obj.length; i++) {\n            if (iterator.call(context, obj[i], i, obj) === false) break\n        }\n    } else {\n        for (key in obj) {\n            if (iterator.call(context, obj[key], key, obj) === false) break\n        }\n    }\n}\n\nUtil.type = function type(obj) {\n    return (obj === null || obj === undefined) ? String(obj) : Object.prototype.toString.call(obj).match(/\\[object (\\w+)\\]/)[1].toLowerCase()\n}\n\nUtil.each('String Object Array RegExp Function'.split(' '), function(value) {\n    Util['is' + value] = function(obj) {\n        return Util.type(obj) === value.toLowerCase()\n    }\n})\n\nUtil.isObjectOrArray = function(value) {\n    return Util.isObject(value) || Util.isArray(value)\n}\n\nUtil.isNumeric = function(value) {\n    return !isNaN(parseFloat(value)) && isFinite(value)\n}\n\nUtil.keys = function(obj) {\n    var keys = [];\n    for (var key in obj) {\n        if (obj.hasOwnProperty(key)) keys.push(key)\n    }\n    return keys;\n}\nUtil.values = function(obj) {\n    var values = [];\n    for (var key in obj) {\n        if (obj.hasOwnProperty(key)) values.push(obj[key])\n    }\n    return values;\n}\n\n/*\n    ### Mock.heredoc(fn)\n\n    * Mock.heredoc(fn)\n\n    以直观、安全的方式书写（多行）HTML 模板。\n\n    **使用示例**如下所示：\n\n        var tpl = Mock.heredoc(function() {\n            /*!\n        {{email}}{{age}}\n        <!-- Mock { \n            email: '@EMAIL',\n            age: '@INT(1,100)'\n        } -->\n            *\\/\n        })\n    \n    **相关阅读**\n    * [Creating multiline strings in JavaScript](http://stackoverflow.com/questions/805107/creating-multiline-strings-in-javascript)、\n*/\nUtil.heredoc = function heredoc(fn) {\n    // 1. 移除起始的 function(){ /*!\n    // 2. 移除末尾的 */ }\n    // 3. 移除起始和末尾的空格\n    return fn.toString()\n        .replace(/^[^\\/]+\\/\\*!?/, '')\n        .replace(/\\*\\/[^\\/]+$/, '')\n        .replace(/^[\\s\\xA0]+/, '').replace(/[\\s\\xA0]+$/, '') // .trim()\n}\n\nUtil.noop = function() {}\n\nmodule.exports = Util\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n/*\n    ## Constant\n\n    常量集合。\n */\n/*\n    RE_KEY\n        'name|min-max': value\n        'name|count': value\n        'name|min-max.dmin-dmax': value\n        'name|min-max.dcount': value\n        'name|count.dmin-dmax': value\n        'name|count.dcount': value\n        'name|+step': value\n\n        1 name, 2 step, 3 range [ min, max ], 4 drange [ dmin, dmax ]\n\n    RE_PLACEHOLDER\n        placeholder(*)\n\n    [正则查看工具](http://www.regexper.com/)\n\n    #26 生成规则 支持 负数，例如 number|-100-100\n*/\nmodule.exports = {\n    GUID: 1,\n    RE_KEY: /(.+)\\|(?:\\+(\\d+)|([\\+\\-]?\\d+-?[\\+\\-]?\\d*)?(?:\\.(\\d+-?\\d*))?)/,\n    RE_RANGE: /([\\+\\-]?\\d+)-?([\\+\\-]?\\d+)?/,\n    RE_PLACEHOLDER: /\\\\*@([^@#%&()\\?\\s]+)(?:\\((.*?)\\))?/g\n    // /\\\\*@([^@#%&()\\?\\s\\/\\.]+)(?:\\((.*?)\\))?/g\n    // RE_INDEX: /^index$/,\n    // RE_KEY: /^key$/\n}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n    ## Mock.Random\n    \n    工具类，用于生成各种随机数据。\n*/\n\nvar Util = __webpack_require__(0)\n\nvar Random = {\n    extend: Util.extend\n}\n\nRandom.extend(__webpack_require__(4))\nRandom.extend(__webpack_require__(11))\nRandom.extend(__webpack_require__(12))\nRandom.extend(__webpack_require__(14))\nRandom.extend(__webpack_require__(17))\nRandom.extend(__webpack_require__(18))\nRandom.extend(__webpack_require__(19))\nRandom.extend(__webpack_require__(20))\nRandom.extend(__webpack_require__(5))\nRandom.extend(__webpack_require__(21))\n\nmodule.exports = Random\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n\t## Parser\n\n\t解析数据模板（属性名部分）。\n\n\t* Parser.parse( name )\n\t\t\n\t\t```json\n\t\t{\n\t\t\tparameters: [ name, inc, range, decimal ],\n\t\t\trnage: [ min , max ],\n\n\t\t\tmin: min,\n\t\t\tmax: max,\n\t\t\tcount : count,\n\n\t\t\tdecimal: decimal,\n\t\t\tdmin: dmin,\n\t\t\tdmax: dmax,\n\t\t\tdcount: dcount\n\t\t}\n\t\t```\n */\n\nvar Constant = __webpack_require__(1)\nvar Random = __webpack_require__(2)\n\n/* jshint -W041 */\nmodule.exports = {\n\tparse: function(name) {\n\t\tname = name == undefined ? '' : (name + '')\n\n\t\tvar parameters = (name || '').match(Constant.RE_KEY)\n\n\t\tvar range = parameters && parameters[3] && parameters[3].match(Constant.RE_RANGE)\n\t\tvar min = range && range[1] && parseInt(range[1], 10) // || 1\n\t\tvar max = range && range[2] && parseInt(range[2], 10) // || 1\n\t\t\t// repeat || min-max || 1\n\t\t\t// var count = range ? !range[2] && parseInt(range[1], 10) || Random.integer(min, max) : 1\n\t\tvar count = range ? !range[2] ? parseInt(range[1], 10) : Random.integer(min, max) : undefined\n\n\t\tvar decimal = parameters && parameters[4] && parameters[4].match(Constant.RE_RANGE)\n\t\tvar dmin = decimal && decimal[1] && parseInt(decimal[1], 10) // || 0,\n\t\tvar dmax = decimal && decimal[2] && parseInt(decimal[2], 10) // || 0,\n\t\t\t// int || dmin-dmax || 0\n\t\tvar dcount = decimal ? !decimal[2] && parseInt(decimal[1], 10) || Random.integer(dmin, dmax) : undefined\n\n\t\tvar result = {\n\t\t\t// 1 name, 2 inc, 3 range, 4 decimal\n\t\t\tparameters: parameters,\n\t\t\t// 1 min, 2 max\n\t\t\trange: range,\n\t\t\tmin: min,\n\t\t\tmax: max,\n\t\t\t// min-max\n\t\t\tcount: count,\n\t\t\t// 是否有 decimal\n\t\t\tdecimal: decimal,\n\t\t\tdmin: dmin,\n\t\t\tdmax: dmax,\n\t\t\t// dmin-dimax\n\t\t\tdcount: dcount\n\t\t}\n\n\t\tfor (var r in result) {\n\t\t\tif (result[r] != undefined) return result\n\t\t}\n\n\t\treturn {}\n\t}\n}\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n/*\n    ## Basics\n*/\nmodule.exports = {\n    // 返回一个随机的布尔值。\n    boolean: function(min, max, cur) {\n        if (cur !== undefined) {\n            min = typeof min !== 'undefined' && !isNaN(min) ? parseInt(min, 10) : 1\n            max = typeof max !== 'undefined' && !isNaN(max) ? parseInt(max, 10) : 1\n            return Math.random() > 1.0 / (min + max) * min ? !cur : cur\n        }\n\n        return Math.random() >= 0.5\n    },\n    bool: function(min, max, cur) {\n        return this.boolean(min, max, cur)\n    },\n    // 返回一个随机的自然数（大于等于 0 的整数）。\n    natural: function(min, max) {\n        min = typeof min !== 'undefined' ? parseInt(min, 10) : 0\n        max = typeof max !== 'undefined' ? parseInt(max, 10) : 9007199254740992 // 2^53\n        return Math.round(Math.random() * (max - min)) + min\n    },\n    // 返回一个随机的整数。\n    integer: function(min, max) {\n        min = typeof min !== 'undefined' ? parseInt(min, 10) : -9007199254740992\n        max = typeof max !== 'undefined' ? parseInt(max, 10) : 9007199254740992 // 2^53\n        return Math.round(Math.random() * (max - min)) + min\n    },\n    int: function(min, max) {\n        return this.integer(min, max)\n    },\n    // 返回一个随机的浮点数。\n    float: function(min, max, dmin, dmax) {\n        dmin = dmin === undefined ? 0 : dmin\n        dmin = Math.max(Math.min(dmin, 17), 0)\n        dmax = dmax === undefined ? 17 : dmax\n        dmax = Math.max(Math.min(dmax, 17), 0)\n        var ret = this.integer(min, max) + '.';\n        for (var i = 0, dcount = this.natural(dmin, dmax); i < dcount; i++) {\n            ret += (\n                // 最后一位不能为 0：如果最后一位为 0，会被 JS 引擎忽略掉。\n                (i < dcount - 1) ? this.character('number') : this.character('123456789')\n            )\n        }\n        return parseFloat(ret, 10)\n    },\n    // 返回一个随机字符。\n    character: function(pool) {\n        var pools = {\n            lower: 'abcdefghijklmnopqrstuvwxyz',\n            upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',\n            number: '0123456789',\n            symbol: '!@#$%^&*()[]'\n        }\n        pools.alpha = pools.lower + pools.upper\n        pools['undefined'] = pools.lower + pools.upper + pools.number + pools.symbol\n\n        pool = pools[('' + pool).toLowerCase()] || pool\n        return pool.charAt(this.natural(0, pool.length - 1))\n    },\n    char: function(pool) {\n        return this.character(pool)\n    },\n    // 返回一个随机字符串。\n    string: function(pool, min, max) {\n        var len\n        switch (arguments.length) {\n            case 0: // ()\n                len = this.natural(3, 7)\n                break\n            case 1: // ( length )\n                len = pool\n                pool = undefined\n                break\n            case 2:\n                // ( pool, length )\n                if (typeof arguments[0] === 'string') {\n                    len = min\n                } else {\n                    // ( min, max )\n                    len = this.natural(pool, min)\n                    pool = undefined\n                }\n                break\n            case 3:\n                len = this.natural(min, max)\n                break\n        }\n\n        var text = ''\n        for (var i = 0; i < len; i++) {\n            text += this.character(pool)\n        }\n\n        return text\n    },\n    str: function( /*pool, min, max*/ ) {\n        return this.string.apply(this, arguments)\n    },\n    // 返回一个整型数组。\n    range: function(start, stop, step) {\n        // range( stop )\n        if (arguments.length <= 1) {\n            stop = start || 0;\n            start = 0;\n        }\n        // range( start, stop )\n        step = arguments[2] || 1;\n\n        start = +start\n        stop = +stop\n        step = +step\n\n        var len = Math.max(Math.ceil((stop - start) / step), 0);\n        var idx = 0;\n        var range = new Array(len);\n\n        while (idx < len) {\n            range[idx++] = start;\n            start += step;\n        }\n\n        return range;\n    }\n}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n    ## Helpers\n*/\n\nvar Util = __webpack_require__(0)\n\nmodule.exports = {\n\t// 把字符串的第一个字母转换为大写。\n\tcapitalize: function(word) {\n\t\treturn (word + '').charAt(0).toUpperCase() + (word + '').substr(1)\n\t},\n\t// 把字符串转换为大写。\n\tupper: function(str) {\n\t\treturn (str + '').toUpperCase()\n\t},\n\t// 把字符串转换为小写。\n\tlower: function(str) {\n\t\treturn (str + '').toLowerCase()\n\t},\n\t// 从数组中随机选取一个元素，并返回。\n\tpick: function pick(arr, min, max) {\n\t\t// pick( item1, item2 ... )\n\t\tif (!Util.isArray(arr)) {\n\t\t\tarr = [].slice.call(arguments)\n\t\t\tmin = 1\n\t\t\tmax = 1\n\t\t} else {\n\t\t\t// pick( [ item1, item2 ... ] )\n\t\t\tif (min === undefined) min = 1\n\n\t\t\t// pick( [ item1, item2 ... ], count )\n\t\t\tif (max === undefined) max = min\n\t\t}\n\n\t\tif (min === 1 && max === 1) return arr[this.natural(0, arr.length - 1)]\n\n\t\t// pick( [ item1, item2 ... ], min, max )\n\t\treturn this.shuffle(arr, min, max)\n\n\t\t// 通过参数个数判断方法签名，扩展性太差！#90\n\t\t// switch (arguments.length) {\n\t\t// \tcase 1:\n\t\t// \t\t// pick( [ item1, item2 ... ] )\n\t\t// \t\treturn arr[this.natural(0, arr.length - 1)]\n\t\t// \tcase 2:\n\t\t// \t\t// pick( [ item1, item2 ... ], count )\n\t\t// \t\tmax = min\n\t\t// \t\t\t/* falls through */\n\t\t// \tcase 3:\n\t\t// \t\t// pick( [ item1, item2 ... ], min, max )\n\t\t// \t\treturn this.shuffle(arr, min, max)\n\t\t// }\n\t},\n\t/*\n\t    打乱数组中元素的顺序，并返回。\n\t    Given an array, scramble the order and return it.\n\n\t    其他的实现思路：\n\t        // https://code.google.com/p/jslibs/wiki/JavascriptTips\n\t        result = result.sort(function() {\n\t            return Math.random() - 0.5\n\t        })\n\t*/\n\tshuffle: function shuffle(arr, min, max) {\n\t\tarr = arr || []\n\t\tvar old = arr.slice(0),\n\t\t\tresult = [],\n\t\t\tindex = 0,\n\t\t\tlength = old.length;\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tindex = this.natural(0, old.length - 1)\n\t\t\tresult.push(old[index])\n\t\t\told.splice(index, 1)\n\t\t}\n\t\tswitch (arguments.length) {\n\t\t\tcase 0:\n\t\t\tcase 1:\n\t\t\t\treturn result\n\t\t\tcase 2:\n\t\t\t\tmax = min\n\t\t\t\t\t/* falls through */\n\t\t\tcase 3:\n\t\t\t\tmin = parseInt(min, 10)\n\t\t\t\tmax = parseInt(max, 10)\n\t\t\t\treturn result.slice(0, this.natural(min, max))\n\t\t}\n\t},\n\t/*\n\t    * Random.order(item, item)\n\t    * Random.order([item, item ...])\n\n\t    顺序获取数组中的元素\n\n\t    [JSON导入数组支持数组数据录入](https://github.com/thx/RAP/issues/22)\n\n\t    不支持单独调用！\n\t*/\n\torder: function order(array) {\n\t\torder.cache = order.cache || {}\n\n\t\tif (arguments.length > 1) array = [].slice.call(arguments, 0)\n\n\t\t// options.context.path/templatePath\n\t\tvar options = order.options\n\t\tvar templatePath = options.context.templatePath.join('.')\n\n\t\tvar cache = (\n\t\t\torder.cache[templatePath] = order.cache[templatePath] || {\n\t\t\t\tindex: 0,\n\t\t\t\tarray: array\n\t\t\t}\n\t\t)\n\n\t\treturn cache.array[cache.index++ % cache.array.length]\n\t}\n}\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n/*\n    ## Address 字典数据\n\n    字典数据来源 http://www.atatech.org/articles/30028?rnd=254259856\n\n    国标 省（市）级行政区划码表\n\n    华北   北京市 天津市 河北省 山西省 内蒙古自治区\n    东北   辽宁省 吉林省 黑龙江省\n    华东   上海市 江苏省 浙江省 安徽省 福建省 江西省 山东省\n    华南   广东省 广西壮族自治区 海南省\n    华中   河南省 湖北省 湖南省\n    西南   重庆市 四川省 贵州省 云南省 西藏自治区\n    西北   陕西省 甘肃省 青海省 宁夏回族自治区 新疆维吾尔自治区\n    港澳台 香港特别行政区 澳门特别行政区 台湾省\n    \n    **排序**\n    \n    ```js\n    var map = {}\n    _.each(_.keys(REGIONS),function(id){\n      map[id] = REGIONS[ID]\n    })\n    JSON.stringify(map)\n    ```\n*/\nvar DICT = {\n    \"110000\": \"北京\",\n    \"110100\": \"北京市\",\n    \"110101\": \"东城区\",\n    \"110102\": \"西城区\",\n    \"110105\": \"朝阳区\",\n    \"110106\": \"丰台区\",\n    \"110107\": \"石景山区\",\n    \"110108\": \"海淀区\",\n    \"110109\": \"门头沟区\",\n    \"110111\": \"房山区\",\n    \"110112\": \"通州区\",\n    \"110113\": \"顺义区\",\n    \"110114\": \"昌平区\",\n    \"110115\": \"大兴区\",\n    \"110116\": \"怀柔区\",\n    \"110117\": \"平谷区\",\n    \"110228\": \"密云县\",\n    \"110229\": \"延庆县\",\n    \"110230\": \"其它区\",\n    \"120000\": \"天津\",\n    \"120100\": \"天津市\",\n    \"120101\": \"和平区\",\n    \"120102\": \"河东区\",\n    \"120103\": \"河西区\",\n    \"120104\": \"南开区\",\n    \"120105\": \"河北区\",\n    \"120106\": \"红桥区\",\n    \"120110\": \"东丽区\",\n    \"120111\": \"西青区\",\n    \"120112\": \"津南区\",\n    \"120113\": \"北辰区\",\n    \"120114\": \"武清区\",\n    \"120115\": \"宝坻区\",\n    \"120116\": \"滨海新区\",\n    \"120221\": \"宁河县\",\n    \"120223\": \"静海县\",\n    \"120225\": \"蓟县\",\n    \"120226\": \"其它区\",\n    \"130000\": \"河北省\",\n    \"130100\": \"石家庄市\",\n    \"130102\": \"长安区\",\n    \"130103\": \"桥东区\",\n    \"130104\": \"桥西区\",\n    \"130105\": \"新华区\",\n    \"130107\": \"井陉矿区\",\n    \"130108\": \"裕华区\",\n    \"130121\": \"井陉县\",\n    \"130123\": \"正定县\",\n    \"130124\": \"栾城县\",\n    \"130125\": \"行唐县\",\n    \"130126\": \"灵寿县\",\n    \"130127\": \"高邑县\",\n    \"130128\": \"深泽县\",\n    \"130129\": \"赞皇县\",\n    \"130130\": \"无极县\",\n    \"130131\": \"平山县\",\n    \"130132\": \"元氏县\",\n    \"130133\": \"赵县\",\n    \"130181\": \"辛集市\",\n    \"130182\": \"藁城市\",\n    \"130183\": \"晋州市\",\n    \"130184\": \"新乐市\",\n    \"130185\": \"鹿泉市\",\n    \"130186\": \"其它区\",\n    \"130200\": \"唐山市\",\n    \"130202\": \"路南区\",\n    \"130203\": \"路北区\",\n    \"130204\": \"古冶区\",\n    \"130205\": \"开平区\",\n    \"130207\": \"丰南区\",\n    \"130208\": \"丰润区\",\n    \"130223\": \"滦县\",\n    \"130224\": \"滦南县\",\n    \"130225\": \"乐亭县\",\n    \"130227\": \"迁西县\",\n    \"130229\": \"玉田县\",\n    \"130230\": \"曹妃甸区\",\n    \"130281\": \"遵化市\",\n    \"130283\": \"迁安市\",\n    \"130284\": \"其它区\",\n    \"130300\": \"秦皇岛市\",\n    \"130302\": \"海港区\",\n    \"130303\": \"山海关区\",\n    \"130304\": \"北戴河区\",\n    \"130321\": \"青龙满族自治县\",\n    \"130322\": \"昌黎县\",\n    \"130323\": \"抚宁县\",\n    \"130324\": \"卢龙县\",\n    \"130398\": \"其它区\",\n    \"130400\": \"邯郸市\",\n    \"130402\": \"邯山区\",\n    \"130403\": \"丛台区\",\n    \"130404\": \"复兴区\",\n    \"130406\": \"峰峰矿区\",\n    \"130421\": \"邯郸县\",\n    \"130423\": \"临漳县\",\n    \"130424\": \"成安县\",\n    \"130425\": \"大名县\",\n    \"130426\": \"涉县\",\n    \"130427\": \"磁县\",\n    \"130428\": \"肥乡县\",\n    \"130429\": \"永年县\",\n    \"130430\": \"邱县\",\n    \"130431\": \"鸡泽县\",\n    \"130432\": \"广平县\",\n    \"130433\": \"馆陶县\",\n    \"130434\": \"魏县\",\n    \"130435\": \"曲周县\",\n    \"130481\": \"武安市\",\n    \"130482\": \"其它区\",\n    \"130500\": \"邢台市\",\n    \"130502\": \"桥东区\",\n    \"130503\": \"桥西区\",\n    \"130521\": \"邢台县\",\n    \"130522\": \"临城县\",\n    \"130523\": \"内丘县\",\n    \"130524\": \"柏乡县\",\n    \"130525\": \"隆尧县\",\n    \"130526\": \"任县\",\n    \"130527\": \"南和县\",\n    \"130528\": \"宁晋县\",\n    \"130529\": \"巨鹿县\",\n    \"130530\": \"新河县\",\n    \"130531\": \"广宗县\",\n    \"130532\": \"平乡县\",\n    \"130533\": \"威县\",\n    \"130534\": \"清河县\",\n    \"130535\": \"临西县\",\n    \"130581\": \"南宫市\",\n    \"130582\": \"沙河市\",\n    \"130583\": \"其它区\",\n    \"130600\": \"保定市\",\n    \"130602\": \"新市区\",\n    \"130603\": \"北市区\",\n    \"130604\": \"南市区\",\n    \"130621\": \"满城县\",\n    \"130622\": \"清苑县\",\n    \"130623\": \"涞水县\",\n    \"130624\": \"阜平县\",\n    \"130625\": \"徐水县\",\n    \"130626\": \"定兴县\",\n    \"130627\": \"唐县\",\n    \"130628\": \"高阳县\",\n    \"130629\": \"容城县\",\n    \"130630\": \"涞源县\",\n    \"130631\": \"望都县\",\n    \"130632\": \"安新县\",\n    \"130633\": \"易县\",\n    \"130634\": \"曲阳县\",\n    \"130635\": \"蠡县\",\n    \"130636\": \"顺平县\",\n    \"130637\": \"博野县\",\n    \"130638\": \"雄县\",\n    \"130681\": \"涿州市\",\n    \"130682\": \"定州市\",\n    \"130683\": \"安国市\",\n    \"130684\": \"高碑店市\",\n    \"130699\": \"其它区\",\n    \"130700\": \"张家口市\",\n    \"130702\": \"桥东区\",\n    \"130703\": \"桥西区\",\n    \"130705\": \"宣化区\",\n    \"130706\": \"下花园区\",\n    \"130721\": \"宣化县\",\n    \"130722\": \"张北县\",\n    \"130723\": \"康保县\",\n    \"130724\": \"沽源县\",\n    \"130725\": \"尚义县\",\n    \"130726\": \"蔚县\",\n    \"130727\": \"阳原县\",\n    \"130728\": \"怀安县\",\n    \"130729\": \"万全县\",\n    \"130730\": \"怀来县\",\n    \"130731\": \"涿鹿县\",\n    \"130732\": \"赤城县\",\n    \"130733\": \"崇礼县\",\n    \"130734\": \"其它区\",\n    \"130800\": \"承德市\",\n    \"130802\": \"双桥区\",\n    \"130803\": \"双滦区\",\n    \"130804\": \"鹰手营子矿区\",\n    \"130821\": \"承德县\",\n    \"130822\": \"兴隆县\",\n    \"130823\": \"平泉县\",\n    \"130824\": \"滦平县\",\n    \"130825\": \"隆化县\",\n    \"130826\": \"丰宁满族自治县\",\n    \"130827\": \"宽城满族自治县\",\n    \"130828\": \"围场满族蒙古族自治县\",\n    \"130829\": \"其它区\",\n    \"130900\": \"沧州市\",\n    \"130902\": \"新华区\",\n    \"130903\": \"运河区\",\n    \"130921\": \"沧县\",\n    \"130922\": \"青县\",\n    \"130923\": \"东光县\",\n    \"130924\": \"海兴县\",\n    \"130925\": \"盐山县\",\n    \"130926\": \"肃宁县\",\n    \"130927\": \"南皮县\",\n    \"130928\": \"吴桥县\",\n    \"130929\": \"献县\",\n    \"130930\": \"孟村回族自治县\",\n    \"130981\": \"泊头市\",\n    \"130982\": \"任丘市\",\n    \"130983\": \"黄骅市\",\n    \"130984\": \"河间市\",\n    \"130985\": \"其它区\",\n    \"131000\": \"廊坊市\",\n    \"131002\": \"安次区\",\n    \"131003\": \"广阳区\",\n    \"131022\": \"固安县\",\n    \"131023\": \"永清县\",\n    \"131024\": \"香河县\",\n    \"131025\": \"大城县\",\n    \"131026\": \"文安县\",\n    \"131028\": \"大厂回族自治县\",\n    \"131081\": \"霸州市\",\n    \"131082\": \"三河市\",\n    \"131083\": \"其它区\",\n    \"131100\": \"衡水市\",\n    \"131102\": \"桃城区\",\n    \"131121\": \"枣强县\",\n    \"131122\": \"武邑县\",\n    \"131123\": \"武强县\",\n    \"131124\": \"饶阳县\",\n    \"131125\": \"安平县\",\n    \"131126\": \"故城县\",\n    \"131127\": \"景县\",\n    \"131128\": \"阜城县\",\n    \"131181\": \"冀州市\",\n    \"131182\": \"深州市\",\n    \"131183\": \"其它区\",\n    \"140000\": \"山西省\",\n    \"140100\": \"太原市\",\n    \"140105\": \"小店区\",\n    \"140106\": \"迎泽区\",\n    \"140107\": \"杏花岭区\",\n    \"140108\": \"尖草坪区\",\n    \"140109\": \"万柏林区\",\n    \"140110\": \"晋源区\",\n    \"140121\": \"清徐县\",\n    \"140122\": \"阳曲县\",\n    \"140123\": \"娄烦县\",\n    \"140181\": \"古交市\",\n    \"140182\": \"其它区\",\n    \"140200\": \"大同市\",\n    \"140202\": \"城区\",\n    \"140203\": \"矿区\",\n    \"140211\": \"南郊区\",\n    \"140212\": \"新荣区\",\n    \"140221\": \"阳高县\",\n    \"140222\": \"天镇县\",\n    \"140223\": \"广灵县\",\n    \"140224\": \"灵丘县\",\n    \"140225\": \"浑源县\",\n    \"140226\": \"左云县\",\n    \"140227\": \"大同县\",\n    \"140228\": \"其它区\",\n    \"140300\": \"阳泉市\",\n    \"140302\": \"城区\",\n    \"140303\": \"矿区\",\n    \"140311\": \"郊区\",\n    \"140321\": \"平定县\",\n    \"140322\": \"盂县\",\n    \"140323\": \"其它区\",\n    \"140400\": \"长治市\",\n    \"140421\": \"长治县\",\n    \"140423\": \"襄垣县\",\n    \"140424\": \"屯留县\",\n    \"140425\": \"平顺县\",\n    \"140426\": \"黎城县\",\n    \"140427\": \"壶关县\",\n    \"140428\": \"长子县\",\n    \"140429\": \"武乡县\",\n    \"140430\": \"沁县\",\n    \"140431\": \"沁源县\",\n    \"140481\": \"潞城市\",\n    \"140482\": \"城区\",\n    \"140483\": \"郊区\",\n    \"140485\": \"其它区\",\n    \"140500\": \"晋城市\",\n    \"140502\": \"城区\",\n    \"140521\": \"沁水县\",\n    \"140522\": \"阳城县\",\n    \"140524\": \"陵川县\",\n    \"140525\": \"泽州县\",\n    \"140581\": \"高平市\",\n    \"140582\": \"其它区\",\n    \"140600\": \"朔州市\",\n    \"140602\": \"朔城区\",\n    \"140603\": \"平鲁区\",\n    \"140621\": \"山阴县\",\n    \"140622\": \"应县\",\n    \"140623\": \"右玉县\",\n    \"140624\": \"怀仁县\",\n    \"140625\": \"其它区\",\n    \"140700\": \"晋中市\",\n    \"140702\": \"榆次区\",\n    \"140721\": \"榆社县\",\n    \"140722\": \"左权县\",\n    \"140723\": \"和顺县\",\n    \"140724\": \"昔阳县\",\n    \"140725\": \"寿阳县\",\n    \"140726\": \"太谷县\",\n    \"140727\": \"祁县\",\n    \"140728\": \"平遥县\",\n    \"140729\": \"灵石县\",\n    \"140781\": \"介休市\",\n    \"140782\": \"其它区\",\n    \"140800\": \"运城市\",\n    \"140802\": \"盐湖区\",\n    \"140821\": \"临猗县\",\n    \"140822\": \"万荣县\",\n    \"140823\": \"闻喜县\",\n    \"140824\": \"稷山县\",\n    \"140825\": \"新绛县\",\n    \"140826\": \"绛县\",\n    \"140827\": \"垣曲县\",\n    \"140828\": \"夏县\",\n    \"140829\": \"平陆县\",\n    \"140830\": \"芮城县\",\n    \"140881\": \"永济市\",\n    \"140882\": \"河津市\",\n    \"140883\": \"其它区\",\n    \"140900\": \"忻州市\",\n    \"140902\": \"忻府区\",\n    \"140921\": \"定襄县\",\n    \"140922\": \"五台县\",\n    \"140923\": \"代县\",\n    \"140924\": \"繁峙县\",\n    \"140925\": \"宁武县\",\n    \"140926\": \"静乐县\",\n    \"140927\": \"神池县\",\n    \"140928\": \"五寨县\",\n    \"140929\": \"岢岚县\",\n    \"140930\": \"河曲县\",\n    \"140931\": \"保德县\",\n    \"140932\": \"偏关县\",\n    \"140981\": \"原平市\",\n    \"140982\": \"其它区\",\n    \"141000\": \"临汾市\",\n    \"141002\": \"尧都区\",\n    \"141021\": \"曲沃县\",\n    \"141022\": \"翼城县\",\n    \"141023\": \"襄汾县\",\n    \"141024\": \"洪洞县\",\n    \"141025\": \"古县\",\n    \"141026\": \"安泽县\",\n    \"141027\": \"浮山县\",\n    \"141028\": \"吉县\",\n    \"141029\": \"乡宁县\",\n    \"141030\": \"大宁县\",\n    \"141031\": \"隰县\",\n    \"141032\": \"永和县\",\n    \"141033\": \"蒲县\",\n    \"141034\": \"汾西县\",\n    \"141081\": \"侯马市\",\n    \"141082\": \"霍州市\",\n    \"141083\": \"其它区\",\n    \"141100\": \"吕梁市\",\n    \"141102\": \"离石区\",\n    \"141121\": \"文水县\",\n    \"141122\": \"交城县\",\n    \"141123\": \"兴县\",\n    \"141124\": \"临县\",\n    \"141125\": \"柳林县\",\n    \"141126\": \"石楼县\",\n    \"141127\": \"岚县\",\n    \"141128\": \"方山县\",\n    \"141129\": \"中阳县\",\n    \"141130\": \"交口县\",\n    \"141181\": \"孝义市\",\n    \"141182\": \"汾阳市\",\n    \"141183\": \"其它区\",\n    \"150000\": \"内蒙古自治区\",\n    \"150100\": \"呼和浩特市\",\n    \"150102\": \"新城区\",\n    \"150103\": \"回民区\",\n    \"150104\": \"玉泉区\",\n    \"150105\": \"赛罕区\",\n    \"150121\": \"土默特左旗\",\n    \"150122\": \"托克托县\",\n    \"150123\": \"和林格尔县\",\n    \"150124\": \"清水河县\",\n    \"150125\": \"武川县\",\n    \"150126\": \"其它区\",\n    \"150200\": \"包头市\",\n    \"150202\": \"东河区\",\n    \"150203\": \"昆都仑区\",\n    \"150204\": \"青山区\",\n    \"150205\": \"石拐区\",\n    \"150206\": \"白云鄂博矿区\",\n    \"150207\": \"九原区\",\n    \"150221\": \"土默特右旗\",\n    \"150222\": \"固阳县\",\n    \"150223\": \"达尔罕茂明安联合旗\",\n    \"150224\": \"其它区\",\n    \"150300\": \"乌海市\",\n    \"150302\": \"海勃湾区\",\n    \"150303\": \"海南区\",\n    \"150304\": \"乌达区\",\n    \"150305\": \"其它区\",\n    \"150400\": \"赤峰市\",\n    \"150402\": \"红山区\",\n    \"150403\": \"元宝山区\",\n    \"150404\": \"松山区\",\n    \"150421\": \"阿鲁科尔沁旗\",\n    \"150422\": \"巴林左旗\",\n    \"150423\": \"巴林右旗\",\n    \"150424\": \"林西县\",\n    \"150425\": \"克什克腾旗\",\n    \"150426\": \"翁牛特旗\",\n    \"150428\": \"喀喇沁旗\",\n    \"150429\": \"宁城县\",\n    \"150430\": \"敖汉旗\",\n    \"150431\": \"其它区\",\n    \"150500\": \"通辽市\",\n    \"150502\": \"科尔沁区\",\n    \"150521\": \"科尔沁左翼中旗\",\n    \"150522\": \"科尔沁左翼后旗\",\n    \"150523\": \"开鲁县\",\n    \"150524\": \"库伦旗\",\n    \"150525\": \"奈曼旗\",\n    \"150526\": \"扎鲁特旗\",\n    \"150581\": \"霍林郭勒市\",\n    \"150582\": \"其它区\",\n    \"150600\": \"鄂尔多斯市\",\n    \"150602\": \"东胜区\",\n    \"150621\": \"达拉特旗\",\n    \"150622\": \"准格尔旗\",\n    \"150623\": \"鄂托克前旗\",\n    \"150624\": \"鄂托克旗\",\n    \"150625\": \"杭锦旗\",\n    \"150626\": \"乌审旗\",\n    \"150627\": \"伊金霍洛旗\",\n    \"150628\": \"其它区\",\n    \"150700\": \"呼伦贝尔市\",\n    \"150702\": \"海拉尔区\",\n    \"150703\": \"扎赉诺尔区\",\n    \"150721\": \"阿荣旗\",\n    \"150722\": \"莫力达瓦达斡尔族自治旗\",\n    \"150723\": \"鄂伦春自治旗\",\n    \"150724\": \"鄂温克族自治旗\",\n    \"150725\": \"陈巴尔虎旗\",\n    \"150726\": \"新巴尔虎左旗\",\n    \"150727\": \"新巴尔虎右旗\",\n    \"150781\": \"满洲里市\",\n    \"150782\": \"牙克石市\",\n    \"150783\": \"扎兰屯市\",\n    \"150784\": \"额尔古纳市\",\n    \"150785\": \"根河市\",\n    \"150786\": \"其它区\",\n    \"150800\": \"巴彦淖尔市\",\n    \"150802\": \"临河区\",\n    \"150821\": \"五原县\",\n    \"150822\": \"磴口县\",\n    \"150823\": \"乌拉特前旗\",\n    \"150824\": \"乌拉特中旗\",\n    \"150825\": \"乌拉特后旗\",\n    \"150826\": \"杭锦后旗\",\n    \"150827\": \"其它区\",\n    \"150900\": \"乌兰察布市\",\n    \"150902\": \"集宁区\",\n    \"150921\": \"卓资县\",\n    \"150922\": \"化德县\",\n    \"150923\": \"商都县\",\n    \"150924\": \"兴和县\",\n    \"150925\": \"凉城县\",\n    \"150926\": \"察哈尔右翼前旗\",\n    \"150927\": \"察哈尔右翼中旗\",\n    \"150928\": \"察哈尔右翼后旗\",\n    \"150929\": \"四子王旗\",\n    \"150981\": \"丰镇市\",\n    \"150982\": \"其它区\",\n    \"152200\": \"兴安盟\",\n    \"152201\": \"乌兰浩特市\",\n    \"152202\": \"阿尔山市\",\n    \"152221\": \"科尔沁右翼前旗\",\n    \"152222\": \"科尔沁右翼中旗\",\n    \"152223\": \"扎赉特旗\",\n    \"152224\": \"突泉县\",\n    \"152225\": \"其它区\",\n    \"152500\": \"锡林郭勒盟\",\n    \"152501\": \"二连浩特市\",\n    \"152502\": \"锡林浩特市\",\n    \"152522\": \"阿巴嘎旗\",\n    \"152523\": \"苏尼特左旗\",\n    \"152524\": \"苏尼特右旗\",\n    \"152525\": \"东乌珠穆沁旗\",\n    \"152526\": \"西乌珠穆沁旗\",\n    \"152527\": \"太仆寺旗\",\n    \"152528\": \"镶黄旗\",\n    \"152529\": \"正镶白旗\",\n    \"152530\": \"正蓝旗\",\n    \"152531\": \"多伦县\",\n    \"152532\": \"其它区\",\n    \"152900\": \"阿拉善盟\",\n    \"152921\": \"阿拉善左旗\",\n    \"152922\": \"阿拉善右旗\",\n    \"152923\": \"额济纳旗\",\n    \"152924\": \"其它区\",\n    \"210000\": \"辽宁省\",\n    \"210100\": \"沈阳市\",\n    \"210102\": \"和平区\",\n    \"210103\": \"沈河区\",\n    \"210104\": \"大东区\",\n    \"210105\": \"皇姑区\",\n    \"210106\": \"铁西区\",\n    \"210111\": \"苏家屯区\",\n    \"210112\": \"东陵区\",\n    \"210113\": \"新城子区\",\n    \"210114\": \"于洪区\",\n    \"210122\": \"辽中县\",\n    \"210123\": \"康平县\",\n    \"210124\": \"法库县\",\n    \"210181\": \"新民市\",\n    \"210184\": \"沈北新区\",\n    \"210185\": \"其它区\",\n    \"210200\": \"大连市\",\n    \"210202\": \"中山区\",\n    \"210203\": \"西岗区\",\n    \"210204\": \"沙河口区\",\n    \"210211\": \"甘井子区\",\n    \"210212\": \"旅顺口区\",\n    \"210213\": \"金州区\",\n    \"210224\": \"长海县\",\n    \"210281\": \"瓦房店市\",\n    \"210282\": \"普兰店市\",\n    \"210283\": \"庄河市\",\n    \"210298\": \"其它区\",\n    \"210300\": \"鞍山市\",\n    \"210302\": \"铁东区\",\n    \"210303\": \"铁西区\",\n    \"210304\": \"立山区\",\n    \"210311\": \"千山区\",\n    \"210321\": \"台安县\",\n    \"210323\": \"岫岩满族自治县\",\n    \"210381\": \"海城市\",\n    \"210382\": \"其它区\",\n    \"210400\": \"抚顺市\",\n    \"210402\": \"新抚区\",\n    \"210403\": \"东洲区\",\n    \"210404\": \"望花区\",\n    \"210411\": \"顺城区\",\n    \"210421\": \"抚顺县\",\n    \"210422\": \"新宾满族自治县\",\n    \"210423\": \"清原满族自治县\",\n    \"210424\": \"其它区\",\n    \"210500\": \"本溪市\",\n    \"210502\": \"平山区\",\n    \"210503\": \"溪湖区\",\n    \"210504\": \"明山区\",\n    \"210505\": \"南芬区\",\n    \"210521\": \"本溪满族自治县\",\n    \"210522\": \"桓仁满族自治县\",\n    \"210523\": \"其它区\",\n    \"210600\": \"丹东市\",\n    \"210602\": \"元宝区\",\n    \"210603\": \"振兴区\",\n    \"210604\": \"振安区\",\n    \"210624\": \"宽甸满族自治县\",\n    \"210681\": \"东港市\",\n    \"210682\": \"凤城市\",\n    \"210683\": \"其它区\",\n    \"210700\": \"锦州市\",\n    \"210702\": \"古塔区\",\n    \"210703\": \"凌河区\",\n    \"210711\": \"太和区\",\n    \"210726\": \"黑山县\",\n    \"210727\": \"义县\",\n    \"210781\": \"凌海市\",\n    \"210782\": \"北镇市\",\n    \"210783\": \"其它区\",\n    \"210800\": \"营口市\",\n    \"210802\": \"站前区\",\n    \"210803\": \"西市区\",\n    \"210804\": \"鲅鱼圈区\",\n    \"210811\": \"老边区\",\n    \"210881\": \"盖州市\",\n    \"210882\": \"大石桥市\",\n    \"210883\": \"其它区\",\n    \"210900\": \"阜新市\",\n    \"210902\": \"海州区\",\n    \"210903\": \"新邱区\",\n    \"210904\": \"太平区\",\n    \"210905\": \"清河门区\",\n    \"210911\": \"细河区\",\n    \"210921\": \"阜新蒙古族自治县\",\n    \"210922\": \"彰武县\",\n    \"210923\": \"其它区\",\n    \"211000\": \"辽阳市\",\n    \"211002\": \"白塔区\",\n    \"211003\": \"文圣区\",\n    \"211004\": \"宏伟区\",\n    \"211005\": \"弓长岭区\",\n    \"211011\": \"太子河区\",\n    \"211021\": \"辽阳县\",\n    \"211081\": \"灯塔市\",\n    \"211082\": \"其它区\",\n    \"211100\": \"盘锦市\",\n    \"211102\": \"双台子区\",\n    \"211103\": \"兴隆台区\",\n    \"211121\": \"大洼县\",\n    \"211122\": \"盘山县\",\n    \"211123\": \"其它区\",\n    \"211200\": \"铁岭市\",\n    \"211202\": \"银州区\",\n    \"211204\": \"清河区\",\n    \"211221\": \"铁岭县\",\n    \"211223\": \"西丰县\",\n    \"211224\": \"昌图县\",\n    \"211281\": \"调兵山市\",\n    \"211282\": \"开原市\",\n    \"211283\": \"其它区\",\n    \"211300\": \"朝阳市\",\n    \"211302\": \"双塔区\",\n    \"211303\": \"龙城区\",\n    \"211321\": \"朝阳县\",\n    \"211322\": \"建平县\",\n    \"211324\": \"喀喇沁左翼蒙古族自治县\",\n    \"211381\": \"北票市\",\n    \"211382\": \"凌源市\",\n    \"211383\": \"其它区\",\n    \"211400\": \"葫芦岛市\",\n    \"211402\": \"连山区\",\n    \"211403\": \"龙港区\",\n    \"211404\": \"南票区\",\n    \"211421\": \"绥中县\",\n    \"211422\": \"建昌县\",\n    \"211481\": \"兴城市\",\n    \"211482\": \"其它区\",\n    \"220000\": \"吉林省\",\n    \"220100\": \"长春市\",\n    \"220102\": \"南关区\",\n    \"220103\": \"宽城区\",\n    \"220104\": \"朝阳区\",\n    \"220105\": \"二道区\",\n    \"220106\": \"绿园区\",\n    \"220112\": \"双阳区\",\n    \"220122\": \"农安县\",\n    \"220181\": \"九台市\",\n    \"220182\": \"榆树市\",\n    \"220183\": \"德惠市\",\n    \"220188\": \"其它区\",\n    \"220200\": \"吉林市\",\n    \"220202\": \"昌邑区\",\n    \"220203\": \"龙潭区\",\n    \"220204\": \"船营区\",\n    \"220211\": \"丰满区\",\n    \"220221\": \"永吉县\",\n    \"220281\": \"蛟河市\",\n    \"220282\": \"桦甸市\",\n    \"220283\": \"舒兰市\",\n    \"220284\": \"磐石市\",\n    \"220285\": \"其它区\",\n    \"220300\": \"四平市\",\n    \"220302\": \"铁西区\",\n    \"220303\": \"铁东区\",\n    \"220322\": \"梨树县\",\n    \"220323\": \"伊通满族自治县\",\n    \"220381\": \"公主岭市\",\n    \"220382\": \"双辽市\",\n    \"220383\": \"其它区\",\n    \"220400\": \"辽源市\",\n    \"220402\": \"龙山区\",\n    \"220403\": \"西安区\",\n    \"220421\": \"东丰县\",\n    \"220422\": \"东辽县\",\n    \"220423\": \"其它区\",\n    \"220500\": \"通化市\",\n    \"220502\": \"东昌区\",\n    \"220503\": \"二道江区\",\n    \"220521\": \"通化县\",\n    \"220523\": \"辉南县\",\n    \"220524\": \"柳河县\",\n    \"220581\": \"梅河口市\",\n    \"220582\": \"集安市\",\n    \"220583\": \"其它区\",\n    \"220600\": \"白山市\",\n    \"220602\": \"浑江区\",\n    \"220621\": \"抚松县\",\n    \"220622\": \"靖宇县\",\n    \"220623\": \"长白朝鲜族自治县\",\n    \"220625\": \"江源区\",\n    \"220681\": \"临江市\",\n    \"220682\": \"其它区\",\n    \"220700\": \"松原市\",\n    \"220702\": \"宁江区\",\n    \"220721\": \"前郭尔罗斯蒙古族自治县\",\n    \"220722\": \"长岭县\",\n    \"220723\": \"乾安县\",\n    \"220724\": \"扶余市\",\n    \"220725\": \"其它区\",\n    \"220800\": \"白城市\",\n    \"220802\": \"洮北区\",\n    \"220821\": \"镇赉县\",\n    \"220822\": \"通榆县\",\n    \"220881\": \"洮南市\",\n    \"220882\": \"大安市\",\n    \"220883\": \"其它区\",\n    \"222400\": \"延边朝鲜族自治州\",\n    \"222401\": \"延吉市\",\n    \"222402\": \"图们市\",\n    \"222403\": \"敦化市\",\n    \"222404\": \"珲春市\",\n    \"222405\": \"龙井市\",\n    \"222406\": \"和龙市\",\n    \"222424\": \"汪清县\",\n    \"222426\": \"安图县\",\n    \"222427\": \"其它区\",\n    \"230000\": \"黑龙江省\",\n    \"230100\": \"哈尔滨市\",\n    \"230102\": \"道里区\",\n    \"230103\": \"南岗区\",\n    \"230104\": \"道外区\",\n    \"230106\": \"香坊区\",\n    \"230108\": \"平房区\",\n    \"230109\": \"松北区\",\n    \"230111\": \"呼兰区\",\n    \"230123\": \"依兰县\",\n    \"230124\": \"方正县\",\n    \"230125\": \"宾县\",\n    \"230126\": \"巴彦县\",\n    \"230127\": \"木兰县\",\n    \"230128\": \"通河县\",\n    \"230129\": \"延寿县\",\n    \"230181\": \"阿城区\",\n    \"230182\": \"双城市\",\n    \"230183\": \"尚志市\",\n    \"230184\": \"五常市\",\n    \"230186\": \"其它区\",\n    \"230200\": \"齐齐哈尔市\",\n    \"230202\": \"龙沙区\",\n    \"230203\": \"建华区\",\n    \"230204\": \"铁锋区\",\n    \"230205\": \"昂昂溪区\",\n    \"230206\": \"富拉尔基区\",\n    \"230207\": \"碾子山区\",\n    \"230208\": \"梅里斯达斡尔族区\",\n    \"230221\": \"龙江县\",\n    \"230223\": \"依安县\",\n    \"230224\": \"泰来县\",\n    \"230225\": \"甘南县\",\n    \"230227\": \"富裕县\",\n    \"230229\": \"克山县\",\n    \"230230\": \"克东县\",\n    \"230231\": \"拜泉县\",\n    \"230281\": \"讷河市\",\n    \"230282\": \"其它区\",\n    \"230300\": \"鸡西市\",\n    \"230302\": \"鸡冠区\",\n    \"230303\": \"恒山区\",\n    \"230304\": \"滴道区\",\n    \"230305\": \"梨树区\",\n    \"230306\": \"城子河区\",\n    \"230307\": \"麻山区\",\n    \"230321\": \"鸡东县\",\n    \"230381\": \"虎林市\",\n    \"230382\": \"密山市\",\n    \"230383\": \"其它区\",\n    \"230400\": \"鹤岗市\",\n    \"230402\": \"向阳区\",\n    \"230403\": \"工农区\",\n    \"230404\": \"南山区\",\n    \"230405\": \"兴安区\",\n    \"230406\": \"东山区\",\n    \"230407\": \"兴山区\",\n    \"230421\": \"萝北县\",\n    \"230422\": \"绥滨县\",\n    \"230423\": \"其它区\",\n    \"230500\": \"双鸭山市\",\n    \"230502\": \"尖山区\",\n    \"230503\": \"岭东区\",\n    \"230505\": \"四方台区\",\n    \"230506\": \"宝山区\",\n    \"230521\": \"集贤县\",\n    \"230522\": \"友谊县\",\n    \"230523\": \"宝清县\",\n    \"230524\": \"饶河县\",\n    \"230525\": \"其它区\",\n    \"230600\": \"大庆市\",\n    \"230602\": \"萨尔图区\",\n    \"230603\": \"龙凤区\",\n    \"230604\": \"让胡路区\",\n    \"230605\": \"红岗区\",\n    \"230606\": \"大同区\",\n    \"230621\": \"肇州县\",\n    \"230622\": \"肇源县\",\n    \"230623\": \"林甸县\",\n    \"230624\": \"杜尔伯特蒙古族自治县\",\n    \"230625\": \"其它区\",\n    \"230700\": \"伊春市\",\n    \"230702\": \"伊春区\",\n    \"230703\": \"南岔区\",\n    \"230704\": \"友好区\",\n    \"230705\": \"西林区\",\n    \"230706\": \"翠峦区\",\n    \"230707\": \"新青区\",\n    \"230708\": \"美溪区\",\n    \"230709\": \"金山屯区\",\n    \"230710\": \"五营区\",\n    \"230711\": \"乌马河区\",\n    \"230712\": \"汤旺河区\",\n    \"230713\": \"带岭区\",\n    \"230714\": \"乌伊岭区\",\n    \"230715\": \"红星区\",\n    \"230716\": \"上甘岭区\",\n    \"230722\": \"嘉荫县\",\n    \"230781\": \"铁力市\",\n    \"230782\": \"其它区\",\n    \"230800\": \"佳木斯市\",\n    \"230803\": \"向阳区\",\n    \"230804\": \"前进区\",\n    \"230805\": \"东风区\",\n    \"230811\": \"郊区\",\n    \"230822\": \"桦南县\",\n    \"230826\": \"桦川县\",\n    \"230828\": \"汤原县\",\n    \"230833\": \"抚远县\",\n    \"230881\": \"同江市\",\n    \"230882\": \"富锦市\",\n    \"230883\": \"其它区\",\n    \"230900\": \"七台河市\",\n    \"230902\": \"新兴区\",\n    \"230903\": \"桃山区\",\n    \"230904\": \"茄子河区\",\n    \"230921\": \"勃利县\",\n    \"230922\": \"其它区\",\n    \"231000\": \"牡丹江市\",\n    \"231002\": \"东安区\",\n    \"231003\": \"阳明区\",\n    \"231004\": \"爱民区\",\n    \"231005\": \"西安区\",\n    \"231024\": \"东宁县\",\n    \"231025\": \"林口县\",\n    \"231081\": \"绥芬河市\",\n    \"231083\": \"海林市\",\n    \"231084\": \"宁安市\",\n    \"231085\": \"穆棱市\",\n    \"231086\": \"其它区\",\n    \"231100\": \"黑河市\",\n    \"231102\": \"爱辉区\",\n    \"231121\": \"嫩江县\",\n    \"231123\": \"逊克县\",\n    \"231124\": \"孙吴县\",\n    \"231181\": \"北安市\",\n    \"231182\": \"五大连池市\",\n    \"231183\": \"其它区\",\n    \"231200\": \"绥化市\",\n    \"231202\": \"北林区\",\n    \"231221\": \"望奎县\",\n    \"231222\": \"兰西县\",\n    \"231223\": \"青冈县\",\n    \"231224\": \"庆安县\",\n    \"231225\": \"明水县\",\n    \"231226\": \"绥棱县\",\n    \"231281\": \"安达市\",\n    \"231282\": \"肇东市\",\n    \"231283\": \"海伦市\",\n    \"231284\": \"其它区\",\n    \"232700\": \"大兴安岭地区\",\n    \"232702\": \"松岭区\",\n    \"232703\": \"新林区\",\n    \"232704\": \"呼中区\",\n    \"232721\": \"呼玛县\",\n    \"232722\": \"塔河县\",\n    \"232723\": \"漠河县\",\n    \"232724\": \"加格达奇区\",\n    \"232725\": \"其它区\",\n    \"310000\": \"上海\",\n    \"310100\": \"上海市\",\n    \"310101\": \"黄浦区\",\n    \"310104\": \"徐汇区\",\n    \"310105\": \"长宁区\",\n    \"310106\": \"静安区\",\n    \"310107\": \"普陀区\",\n    \"310108\": \"闸北区\",\n    \"310109\": \"虹口区\",\n    \"310110\": \"杨浦区\",\n    \"310112\": \"闵行区\",\n    \"310113\": \"宝山区\",\n    \"310114\": \"嘉定区\",\n    \"310115\": \"浦东新区\",\n    \"310116\": \"金山区\",\n    \"310117\": \"松江区\",\n    \"310118\": \"青浦区\",\n    \"310120\": \"奉贤区\",\n    \"310230\": \"崇明县\",\n    \"310231\": \"其它区\",\n    \"320000\": \"江苏省\",\n    \"320100\": \"南京市\",\n    \"320102\": \"玄武区\",\n    \"320104\": \"秦淮区\",\n    \"320105\": \"建邺区\",\n    \"320106\": \"鼓楼区\",\n    \"320111\": \"浦口区\",\n    \"320113\": \"栖霞区\",\n    \"320114\": \"雨花台区\",\n    \"320115\": \"江宁区\",\n    \"320116\": \"六合区\",\n    \"320124\": \"溧水区\",\n    \"320125\": \"高淳区\",\n    \"320126\": \"其它区\",\n    \"320200\": \"无锡市\",\n    \"320202\": \"崇安区\",\n    \"320203\": \"南长区\",\n    \"320204\": \"北塘区\",\n    \"320205\": \"锡山区\",\n    \"320206\": \"惠山区\",\n    \"320211\": \"滨湖区\",\n    \"320281\": \"江阴市\",\n    \"320282\": \"宜兴市\",\n    \"320297\": \"其它区\",\n    \"320300\": \"徐州市\",\n    \"320302\": \"鼓楼区\",\n    \"320303\": \"云龙区\",\n    \"320305\": \"贾汪区\",\n    \"320311\": \"泉山区\",\n    \"320321\": \"丰县\",\n    \"320322\": \"沛县\",\n    \"320323\": \"铜山区\",\n    \"320324\": \"睢宁县\",\n    \"320381\": \"新沂市\",\n    \"320382\": \"邳州市\",\n    \"320383\": \"其它区\",\n    \"320400\": \"常州市\",\n    \"320402\": \"天宁区\",\n    \"320404\": \"钟楼区\",\n    \"320405\": \"戚墅堰区\",\n    \"320411\": \"新北区\",\n    \"320412\": \"武进区\",\n    \"320481\": \"溧阳市\",\n    \"320482\": \"金坛市\",\n    \"320483\": \"其它区\",\n    \"320500\": \"苏州市\",\n    \"320505\": \"虎丘区\",\n    \"320506\": \"吴中区\",\n    \"320507\": \"相城区\",\n    \"320508\": \"姑苏区\",\n    \"320581\": \"常熟市\",\n    \"320582\": \"张家港市\",\n    \"320583\": \"昆山市\",\n    \"320584\": \"吴江区\",\n    \"320585\": \"太仓市\",\n    \"320596\": \"其它区\",\n    \"320600\": \"南通市\",\n    \"320602\": \"崇川区\",\n    \"320611\": \"港闸区\",\n    \"320612\": \"通州区\",\n    \"320621\": \"海安县\",\n    \"320623\": \"如东县\",\n    \"320681\": \"启东市\",\n    \"320682\": \"如皋市\",\n    \"320684\": \"海门市\",\n    \"320694\": \"其它区\",\n    \"320700\": \"连云港市\",\n    \"320703\": \"连云区\",\n    \"320705\": \"新浦区\",\n    \"320706\": \"海州区\",\n    \"320721\": \"赣榆县\",\n    \"320722\": \"东海县\",\n    \"320723\": \"灌云县\",\n    \"320724\": \"灌南县\",\n    \"320725\": \"其它区\",\n    \"320800\": \"淮安市\",\n    \"320802\": \"清河区\",\n    \"320803\": \"淮安区\",\n    \"320804\": \"淮阴区\",\n    \"320811\": \"清浦区\",\n    \"320826\": \"涟水县\",\n    \"320829\": \"洪泽县\",\n    \"320830\": \"盱眙县\",\n    \"320831\": \"金湖县\",\n    \"320832\": \"其它区\",\n    \"320900\": \"盐城市\",\n    \"320902\": \"亭湖区\",\n    \"320903\": \"盐都区\",\n    \"320921\": \"响水县\",\n    \"320922\": \"滨海县\",\n    \"320923\": \"阜宁县\",\n    \"320924\": \"射阳县\",\n    \"320925\": \"建湖县\",\n    \"320981\": \"东台市\",\n    \"320982\": \"大丰市\",\n    \"320983\": \"其它区\",\n    \"321000\": \"扬州市\",\n    \"321002\": \"广陵区\",\n    \"321003\": \"邗江区\",\n    \"321023\": \"宝应县\",\n    \"321081\": \"仪征市\",\n    \"321084\": \"高邮市\",\n    \"321088\": \"江都区\",\n    \"321093\": \"其它区\",\n    \"321100\": \"镇江市\",\n    \"321102\": \"京口区\",\n    \"321111\": \"润州区\",\n    \"321112\": \"丹徒区\",\n    \"321181\": \"丹阳市\",\n    \"321182\": \"扬中市\",\n    \"321183\": \"句容市\",\n    \"321184\": \"其它区\",\n    \"321200\": \"泰州市\",\n    \"321202\": \"海陵区\",\n    \"321203\": \"高港区\",\n    \"321281\": \"兴化市\",\n    \"321282\": \"靖江市\",\n    \"321283\": \"泰兴市\",\n    \"321284\": \"姜堰区\",\n    \"321285\": \"其它区\",\n    \"321300\": \"宿迁市\",\n    \"321302\": \"宿城区\",\n    \"321311\": \"宿豫区\",\n    \"321322\": \"沭阳县\",\n    \"321323\": \"泗阳县\",\n    \"321324\": \"泗洪县\",\n    \"321325\": \"其它区\",\n    \"330000\": \"浙江省\",\n    \"330100\": \"杭州市\",\n    \"330102\": \"上城区\",\n    \"330103\": \"下城区\",\n    \"330104\": \"江干区\",\n    \"330105\": \"拱墅区\",\n    \"330106\": \"西湖区\",\n    \"330108\": \"滨江区\",\n    \"330109\": \"萧山区\",\n    \"330110\": \"余杭区\",\n    \"330122\": \"桐庐县\",\n    \"330127\": \"淳安县\",\n    \"330182\": \"建德市\",\n    \"330183\": \"富阳市\",\n    \"330185\": \"临安市\",\n    \"330186\": \"其它区\",\n    \"330200\": \"宁波市\",\n    \"330203\": \"海曙区\",\n    \"330204\": \"江东区\",\n    \"330205\": \"江北区\",\n    \"330206\": \"北仑区\",\n    \"330211\": \"镇海区\",\n    \"330212\": \"鄞州区\",\n    \"330225\": \"象山县\",\n    \"330226\": \"宁海县\",\n    \"330281\": \"余姚市\",\n    \"330282\": \"慈溪市\",\n    \"330283\": \"奉化市\",\n    \"330284\": \"其它区\",\n    \"330300\": \"温州市\",\n    \"330302\": \"鹿城区\",\n    \"330303\": \"龙湾区\",\n    \"330304\": \"瓯海区\",\n    \"330322\": \"洞头县\",\n    \"330324\": \"永嘉县\",\n    \"330326\": \"平阳县\",\n    \"330327\": \"苍南县\",\n    \"330328\": \"文成县\",\n    \"330329\": \"泰顺县\",\n    \"330381\": \"瑞安市\",\n    \"330382\": \"乐清市\",\n    \"330383\": \"其它区\",\n    \"330400\": \"嘉兴市\",\n    \"330402\": \"南湖区\",\n    \"330411\": \"秀洲区\",\n    \"330421\": \"嘉善县\",\n    \"330424\": \"海盐县\",\n    \"330481\": \"海宁市\",\n    \"330482\": \"平湖市\",\n    \"330483\": \"桐乡市\",\n    \"330484\": \"其它区\",\n    \"330500\": \"湖州市\",\n    \"330502\": \"吴兴区\",\n    \"330503\": \"南浔区\",\n    \"330521\": \"德清县\",\n    \"330522\": \"长兴县\",\n    \"330523\": \"安吉县\",\n    \"330524\": \"其它区\",\n    \"330600\": \"绍兴市\",\n    \"330602\": \"越城区\",\n    \"330621\": \"绍兴县\",\n    \"330624\": \"新昌县\",\n    \"330681\": \"诸暨市\",\n    \"330682\": \"上虞市\",\n    \"330683\": \"嵊州市\",\n    \"330684\": \"其它区\",\n    \"330700\": \"金华市\",\n    \"330702\": \"婺城区\",\n    \"330703\": \"金东区\",\n    \"330723\": \"武义县\",\n    \"330726\": \"浦江县\",\n    \"330727\": \"磐安县\",\n    \"330781\": \"兰溪市\",\n    \"330782\": \"义乌市\",\n    \"330783\": \"东阳市\",\n    \"330784\": \"永康市\",\n    \"330785\": \"其它区\",\n    \"330800\": \"衢州市\",\n    \"330802\": \"柯城区\",\n    \"330803\": \"衢江区\",\n    \"330822\": \"常山县\",\n    \"330824\": \"开化县\",\n    \"330825\": \"龙游县\",\n    \"330881\": \"江山市\",\n    \"330882\": \"其它区\",\n    \"330900\": \"舟山市\",\n    \"330902\": \"定海区\",\n    \"330903\": \"普陀区\",\n    \"330921\": \"岱山县\",\n    \"330922\": \"嵊泗县\",\n    \"330923\": \"其它区\",\n    \"331000\": \"台州市\",\n    \"331002\": \"椒江区\",\n    \"331003\": \"黄岩区\",\n    \"331004\": \"路桥区\",\n    \"331021\": \"玉环县\",\n    \"331022\": \"三门县\",\n    \"331023\": \"天台县\",\n    \"331024\": \"仙居县\",\n    \"331081\": \"温岭市\",\n    \"331082\": \"临海市\",\n    \"331083\": \"其它区\",\n    \"331100\": \"丽水市\",\n    \"331102\": \"莲都区\",\n    \"331121\": \"青田县\",\n    \"331122\": \"缙云县\",\n    \"331123\": \"遂昌县\",\n    \"331124\": \"松阳县\",\n    \"331125\": \"云和县\",\n    \"331126\": \"庆元县\",\n    \"331127\": \"景宁畲族自治县\",\n    \"331181\": \"龙泉市\",\n    \"331182\": \"其它区\",\n    \"340000\": \"安徽省\",\n    \"340100\": \"合肥市\",\n    \"340102\": \"瑶海区\",\n    \"340103\": \"庐阳区\",\n    \"340104\": \"蜀山区\",\n    \"340111\": \"包河区\",\n    \"340121\": \"长丰县\",\n    \"340122\": \"肥东县\",\n    \"340123\": \"肥西县\",\n    \"340192\": \"其它区\",\n    \"340200\": \"芜湖市\",\n    \"340202\": \"镜湖区\",\n    \"340203\": \"弋江区\",\n    \"340207\": \"鸠江区\",\n    \"340208\": \"三山区\",\n    \"340221\": \"芜湖县\",\n    \"340222\": \"繁昌县\",\n    \"340223\": \"南陵县\",\n    \"340224\": \"其它区\",\n    \"340300\": \"蚌埠市\",\n    \"340302\": \"龙子湖区\",\n    \"340303\": \"蚌山区\",\n    \"340304\": \"禹会区\",\n    \"340311\": \"淮上区\",\n    \"340321\": \"怀远县\",\n    \"340322\": \"五河县\",\n    \"340323\": \"固镇县\",\n    \"340324\": \"其它区\",\n    \"340400\": \"淮南市\",\n    \"340402\": \"大通区\",\n    \"340403\": \"田家庵区\",\n    \"340404\": \"谢家集区\",\n    \"340405\": \"八公山区\",\n    \"340406\": \"潘集区\",\n    \"340421\": \"凤台县\",\n    \"340422\": \"其它区\",\n    \"340500\": \"马鞍山市\",\n    \"340503\": \"花山区\",\n    \"340504\": \"雨山区\",\n    \"340506\": \"博望区\",\n    \"340521\": \"当涂县\",\n    \"340522\": \"其它区\",\n    \"340600\": \"淮北市\",\n    \"340602\": \"杜集区\",\n    \"340603\": \"相山区\",\n    \"340604\": \"烈山区\",\n    \"340621\": \"濉溪县\",\n    \"340622\": \"其它区\",\n    \"340700\": \"铜陵市\",\n    \"340702\": \"铜官山区\",\n    \"340703\": \"狮子山区\",\n    \"340711\": \"郊区\",\n    \"340721\": \"铜陵县\",\n    \"340722\": \"其它区\",\n    \"340800\": \"安庆市\",\n    \"340802\": \"迎江区\",\n    \"340803\": \"大观区\",\n    \"340811\": \"宜秀区\",\n    \"340822\": \"怀宁县\",\n    \"340823\": \"枞阳县\",\n    \"340824\": \"潜山县\",\n    \"340825\": \"太湖县\",\n    \"340826\": \"宿松县\",\n    \"340827\": \"望江县\",\n    \"340828\": \"岳西县\",\n    \"340881\": \"桐城市\",\n    \"340882\": \"其它区\",\n    \"341000\": \"黄山市\",\n    \"341002\": \"屯溪区\",\n    \"341003\": \"黄山区\",\n    \"341004\": \"徽州区\",\n    \"341021\": \"歙县\",\n    \"341022\": \"休宁县\",\n    \"341023\": \"黟县\",\n    \"341024\": \"祁门县\",\n    \"341025\": \"其它区\",\n    \"341100\": \"滁州市\",\n    \"341102\": \"琅琊区\",\n    \"341103\": \"南谯区\",\n    \"341122\": \"来安县\",\n    \"341124\": \"全椒县\",\n    \"341125\": \"定远县\",\n    \"341126\": \"凤阳县\",\n    \"341181\": \"天长市\",\n    \"341182\": \"明光市\",\n    \"341183\": \"其它区\",\n    \"341200\": \"阜阳市\",\n    \"341202\": \"颍州区\",\n    \"341203\": \"颍东区\",\n    \"341204\": \"颍泉区\",\n    \"341221\": \"临泉县\",\n    \"341222\": \"太和县\",\n    \"341225\": \"阜南县\",\n    \"341226\": \"颍上县\",\n    \"341282\": \"界首市\",\n    \"341283\": \"其它区\",\n    \"341300\": \"宿州市\",\n    \"341302\": \"埇桥区\",\n    \"341321\": \"砀山县\",\n    \"341322\": \"萧县\",\n    \"341323\": \"灵璧县\",\n    \"341324\": \"泗县\",\n    \"341325\": \"其它区\",\n    \"341400\": \"巢湖市\",\n    \"341421\": \"庐江县\",\n    \"341422\": \"无为县\",\n    \"341423\": \"含山县\",\n    \"341424\": \"和县\",\n    \"341500\": \"六安市\",\n    \"341502\": \"金安区\",\n    \"341503\": \"裕安区\",\n    \"341521\": \"寿县\",\n    \"341522\": \"霍邱县\",\n    \"341523\": \"舒城县\",\n    \"341524\": \"金寨县\",\n    \"341525\": \"霍山县\",\n    \"341526\": \"其它区\",\n    \"341600\": \"亳州市\",\n    \"341602\": \"谯城区\",\n    \"341621\": \"涡阳县\",\n    \"341622\": \"蒙城县\",\n    \"341623\": \"利辛县\",\n    \"341624\": \"其它区\",\n    \"341700\": \"池州市\",\n    \"341702\": \"贵池区\",\n    \"341721\": \"东至县\",\n    \"341722\": \"石台县\",\n    \"341723\": \"青阳县\",\n    \"341724\": \"其它区\",\n    \"341800\": \"宣城市\",\n    \"341802\": \"宣州区\",\n    \"341821\": \"郎溪县\",\n    \"341822\": \"广德县\",\n    \"341823\": \"泾县\",\n    \"341824\": \"绩溪县\",\n    \"341825\": \"旌德县\",\n    \"341881\": \"宁国市\",\n    \"341882\": \"其它区\",\n    \"350000\": \"福建省\",\n    \"350100\": \"福州市\",\n    \"350102\": \"鼓楼区\",\n    \"350103\": \"台江区\",\n    \"350104\": \"仓山区\",\n    \"350105\": \"马尾区\",\n    \"350111\": \"晋安区\",\n    \"350121\": \"闽侯县\",\n    \"350122\": \"连江县\",\n    \"350123\": \"罗源县\",\n    \"350124\": \"闽清县\",\n    \"350125\": \"永泰县\",\n    \"350128\": \"平潭县\",\n    \"350181\": \"福清市\",\n    \"350182\": \"长乐市\",\n    \"350183\": \"其它区\",\n    \"350200\": \"厦门市\",\n    \"350203\": \"思明区\",\n    \"350205\": \"海沧区\",\n    \"350206\": \"湖里区\",\n    \"350211\": \"集美区\",\n    \"350212\": \"同安区\",\n    \"350213\": \"翔安区\",\n    \"350214\": \"其它区\",\n    \"350300\": \"莆田市\",\n    \"350302\": \"城厢区\",\n    \"350303\": \"涵江区\",\n    \"350304\": \"荔城区\",\n    \"350305\": \"秀屿区\",\n    \"350322\": \"仙游县\",\n    \"350323\": \"其它区\",\n    \"350400\": \"三明市\",\n    \"350402\": \"梅列区\",\n    \"350403\": \"三元区\",\n    \"350421\": \"明溪县\",\n    \"350423\": \"清流县\",\n    \"350424\": \"宁化县\",\n    \"350425\": \"大田县\",\n    \"350426\": \"尤溪县\",\n    \"350427\": \"沙县\",\n    \"350428\": \"将乐县\",\n    \"350429\": \"泰宁县\",\n    \"350430\": \"建宁县\",\n    \"350481\": \"永安市\",\n    \"350482\": \"其它区\",\n    \"350500\": \"泉州市\",\n    \"350502\": \"鲤城区\",\n    \"350503\": \"丰泽区\",\n    \"350504\": \"洛江区\",\n    \"350505\": \"泉港区\",\n    \"350521\": \"惠安县\",\n    \"350524\": \"安溪县\",\n    \"350525\": \"永春县\",\n    \"350526\": \"德化县\",\n    \"350527\": \"金门县\",\n    \"350581\": \"石狮市\",\n    \"350582\": \"晋江市\",\n    \"350583\": \"南安市\",\n    \"350584\": \"其它区\",\n    \"350600\": \"漳州市\",\n    \"350602\": \"芗城区\",\n    \"350603\": \"龙文区\",\n    \"350622\": \"云霄县\",\n    \"350623\": \"漳浦县\",\n    \"350624\": \"诏安县\",\n    \"350625\": \"长泰县\",\n    \"350626\": \"东山县\",\n    \"350627\": \"南靖县\",\n    \"350628\": \"平和县\",\n    \"350629\": \"华安县\",\n    \"350681\": \"龙海市\",\n    \"350682\": \"其它区\",\n    \"350700\": \"南平市\",\n    \"350702\": \"延平区\",\n    \"350721\": \"顺昌县\",\n    \"350722\": \"浦城县\",\n    \"350723\": \"光泽县\",\n    \"350724\": \"松溪县\",\n    \"350725\": \"政和县\",\n    \"350781\": \"邵武市\",\n    \"350782\": \"武夷山市\",\n    \"350783\": \"建瓯市\",\n    \"350784\": \"建阳市\",\n    \"350785\": \"其它区\",\n    \"350800\": \"龙岩市\",\n    \"350802\": \"新罗区\",\n    \"350821\": \"长汀县\",\n    \"350822\": \"永定县\",\n    \"350823\": \"上杭县\",\n    \"350824\": \"武平县\",\n    \"350825\": \"连城县\",\n    \"350881\": \"漳平市\",\n    \"350882\": \"其它区\",\n    \"350900\": \"宁德市\",\n    \"350902\": \"蕉城区\",\n    \"350921\": \"霞浦县\",\n    \"350922\": \"古田县\",\n    \"350923\": \"屏南县\",\n    \"350924\": \"寿宁县\",\n    \"350925\": \"周宁县\",\n    \"350926\": \"柘荣县\",\n    \"350981\": \"福安市\",\n    \"350982\": \"福鼎市\",\n    \"350983\": \"其它区\",\n    \"360000\": \"江西省\",\n    \"360100\": \"南昌市\",\n    \"360102\": \"东湖区\",\n    \"360103\": \"西湖区\",\n    \"360104\": \"青云谱区\",\n    \"360105\": \"湾里区\",\n    \"360111\": \"青山湖区\",\n    \"360121\": \"南昌县\",\n    \"360122\": \"新建县\",\n    \"360123\": \"安义县\",\n    \"360124\": \"进贤县\",\n    \"360128\": \"其它区\",\n    \"360200\": \"景德镇市\",\n    \"360202\": \"昌江区\",\n    \"360203\": \"珠山区\",\n    \"360222\": \"浮梁县\",\n    \"360281\": \"乐平市\",\n    \"360282\": \"其它区\",\n    \"360300\": \"萍乡市\",\n    \"360302\": \"安源区\",\n    \"360313\": \"湘东区\",\n    \"360321\": \"莲花县\",\n    \"360322\": \"上栗县\",\n    \"360323\": \"芦溪县\",\n    \"360324\": \"其它区\",\n    \"360400\": \"九江市\",\n    \"360402\": \"庐山区\",\n    \"360403\": \"浔阳区\",\n    \"360421\": \"九江县\",\n    \"360423\": \"武宁县\",\n    \"360424\": \"修水县\",\n    \"360425\": \"永修县\",\n    \"360426\": \"德安县\",\n    \"360427\": \"星子县\",\n    \"360428\": \"都昌县\",\n    \"360429\": \"湖口县\",\n    \"360430\": \"彭泽县\",\n    \"360481\": \"瑞昌市\",\n    \"360482\": \"其它区\",\n    \"360483\": \"共青城市\",\n    \"360500\": \"新余市\",\n    \"360502\": \"渝水区\",\n    \"360521\": \"分宜县\",\n    \"360522\": \"其它区\",\n    \"360600\": \"鹰潭市\",\n    \"360602\": \"月湖区\",\n    \"360622\": \"余江县\",\n    \"360681\": \"贵溪市\",\n    \"360682\": \"其它区\",\n    \"360700\": \"赣州市\",\n    \"360702\": \"章贡区\",\n    \"360721\": \"赣县\",\n    \"360722\": \"信丰县\",\n    \"360723\": \"大余县\",\n    \"360724\": \"上犹县\",\n    \"360725\": \"崇义县\",\n    \"360726\": \"安远县\",\n    \"360727\": \"龙南县\",\n    \"360728\": \"定南县\",\n    \"360729\": \"全南县\",\n    \"360730\": \"宁都县\",\n    \"360731\": \"于都县\",\n    \"360732\": \"兴国县\",\n    \"360733\": \"会昌县\",\n    \"360734\": \"寻乌县\",\n    \"360735\": \"石城县\",\n    \"360781\": \"瑞金市\",\n    \"360782\": \"南康市\",\n    \"360783\": \"其它区\",\n    \"360800\": \"吉安市\",\n    \"360802\": \"吉州区\",\n    \"360803\": \"青原区\",\n    \"360821\": \"吉安县\",\n    \"360822\": \"吉水县\",\n    \"360823\": \"峡江县\",\n    \"360824\": \"新干县\",\n    \"360825\": \"永丰县\",\n    \"360826\": \"泰和县\",\n    \"360827\": \"遂川县\",\n    \"360828\": \"万安县\",\n    \"360829\": \"安福县\",\n    \"360830\": \"永新县\",\n    \"360881\": \"井冈山市\",\n    \"360882\": \"其它区\",\n    \"360900\": \"宜春市\",\n    \"360902\": \"袁州区\",\n    \"360921\": \"奉新县\",\n    \"360922\": \"万载县\",\n    \"360923\": \"上高县\",\n    \"360924\": \"宜丰县\",\n    \"360925\": \"靖安县\",\n    \"360926\": \"铜鼓县\",\n    \"360981\": \"丰城市\",\n    \"360982\": \"樟树市\",\n    \"360983\": \"高安市\",\n    \"360984\": \"其它区\",\n    \"361000\": \"抚州市\",\n    \"361002\": \"临川区\",\n    \"361021\": \"南城县\",\n    \"361022\": \"黎川县\",\n    \"361023\": \"南丰县\",\n    \"361024\": \"崇仁县\",\n    \"361025\": \"乐安县\",\n    \"361026\": \"宜黄县\",\n    \"361027\": \"金溪县\",\n    \"361028\": \"资溪县\",\n    \"361029\": \"东乡县\",\n    \"361030\": \"广昌县\",\n    \"361031\": \"其它区\",\n    \"361100\": \"上饶市\",\n    \"361102\": \"信州区\",\n    \"361121\": \"上饶县\",\n    \"361122\": \"广丰县\",\n    \"361123\": \"玉山县\",\n    \"361124\": \"铅山县\",\n    \"361125\": \"横峰县\",\n    \"361126\": \"弋阳县\",\n    \"361127\": \"余干县\",\n    \"361128\": \"鄱阳县\",\n    \"361129\": \"万年县\",\n    \"361130\": \"婺源县\",\n    \"361181\": \"德兴市\",\n    \"361182\": \"其它区\",\n    \"370000\": \"山东省\",\n    \"370100\": \"济南市\",\n    \"370102\": \"历下区\",\n    \"370103\": \"市中区\",\n    \"370104\": \"槐荫区\",\n    \"370105\": \"天桥区\",\n    \"370112\": \"历城区\",\n    \"370113\": \"长清区\",\n    \"370124\": \"平阴县\",\n    \"370125\": \"济阳县\",\n    \"370126\": \"商河县\",\n    \"370181\": \"章丘市\",\n    \"370182\": \"其它区\",\n    \"370200\": \"青岛市\",\n    \"370202\": \"市南区\",\n    \"370203\": \"市北区\",\n    \"370211\": \"黄岛区\",\n    \"370212\": \"崂山区\",\n    \"370213\": \"李沧区\",\n    \"370214\": \"城阳区\",\n    \"370281\": \"胶州市\",\n    \"370282\": \"即墨市\",\n    \"370283\": \"平度市\",\n    \"370285\": \"莱西市\",\n    \"370286\": \"其它区\",\n    \"370300\": \"淄博市\",\n    \"370302\": \"淄川区\",\n    \"370303\": \"张店区\",\n    \"370304\": \"博山区\",\n    \"370305\": \"临淄区\",\n    \"370306\": \"周村区\",\n    \"370321\": \"桓台县\",\n    \"370322\": \"高青县\",\n    \"370323\": \"沂源县\",\n    \"370324\": \"其它区\",\n    \"370400\": \"枣庄市\",\n    \"370402\": \"市中区\",\n    \"370403\": \"薛城区\",\n    \"370404\": \"峄城区\",\n    \"370405\": \"台儿庄区\",\n    \"370406\": \"山亭区\",\n    \"370481\": \"滕州市\",\n    \"370482\": \"其它区\",\n    \"370500\": \"东营市\",\n    \"370502\": \"东营区\",\n    \"370503\": \"河口区\",\n    \"370521\": \"垦利县\",\n    \"370522\": \"利津县\",\n    \"370523\": \"广饶县\",\n    \"370591\": \"其它区\",\n    \"370600\": \"烟台市\",\n    \"370602\": \"芝罘区\",\n    \"370611\": \"福山区\",\n    \"370612\": \"牟平区\",\n    \"370613\": \"莱山区\",\n    \"370634\": \"长岛县\",\n    \"370681\": \"龙口市\",\n    \"370682\": \"莱阳市\",\n    \"370683\": \"莱州市\",\n    \"370684\": \"蓬莱市\",\n    \"370685\": \"招远市\",\n    \"370686\": \"栖霞市\",\n    \"370687\": \"海阳市\",\n    \"370688\": \"其它区\",\n    \"370700\": \"潍坊市\",\n    \"370702\": \"潍城区\",\n    \"370703\": \"寒亭区\",\n    \"370704\": \"坊子区\",\n    \"370705\": \"奎文区\",\n    \"370724\": \"临朐县\",\n    \"370725\": \"昌乐县\",\n    \"370781\": \"青州市\",\n    \"370782\": \"诸城市\",\n    \"370783\": \"寿光市\",\n    \"370784\": \"安丘市\",\n    \"370785\": \"高密市\",\n    \"370786\": \"昌邑市\",\n    \"370787\": \"其它区\",\n    \"370800\": \"济宁市\",\n    \"370802\": \"市中区\",\n    \"370811\": \"任城区\",\n    \"370826\": \"微山县\",\n    \"370827\": \"鱼台县\",\n    \"370828\": \"金乡县\",\n    \"370829\": \"嘉祥县\",\n    \"370830\": \"汶上县\",\n    \"370831\": \"泗水县\",\n    \"370832\": \"梁山县\",\n    \"370881\": \"曲阜市\",\n    \"370882\": \"兖州市\",\n    \"370883\": \"邹城市\",\n    \"370884\": \"其它区\",\n    \"370900\": \"泰安市\",\n    \"370902\": \"泰山区\",\n    \"370903\": \"岱岳区\",\n    \"370921\": \"宁阳县\",\n    \"370923\": \"东平县\",\n    \"370982\": \"新泰市\",\n    \"370983\": \"肥城市\",\n    \"370984\": \"其它区\",\n    \"371000\": \"威海市\",\n    \"371002\": \"环翠区\",\n    \"371081\": \"文登市\",\n    \"371082\": \"荣成市\",\n    \"371083\": \"乳山市\",\n    \"371084\": \"其它区\",\n    \"371100\": \"日照市\",\n    \"371102\": \"东港区\",\n    \"371103\": \"岚山区\",\n    \"371121\": \"五莲县\",\n    \"371122\": \"莒县\",\n    \"371123\": \"其它区\",\n    \"371200\": \"莱芜市\",\n    \"371202\": \"莱城区\",\n    \"371203\": \"钢城区\",\n    \"371204\": \"其它区\",\n    \"371300\": \"临沂市\",\n    \"371302\": \"兰山区\",\n    \"371311\": \"罗庄区\",\n    \"371312\": \"河东区\",\n    \"371321\": \"沂南县\",\n    \"371322\": \"郯城县\",\n    \"371323\": \"沂水县\",\n    \"371324\": \"苍山县\",\n    \"371325\": \"费县\",\n    \"371326\": \"平邑县\",\n    \"371327\": \"莒南县\",\n    \"371328\": \"蒙阴县\",\n    \"371329\": \"临沭县\",\n    \"371330\": \"其它区\",\n    \"371400\": \"德州市\",\n    \"371402\": \"德城区\",\n    \"371421\": \"陵县\",\n    \"371422\": \"宁津县\",\n    \"371423\": \"庆云县\",\n    \"371424\": \"临邑县\",\n    \"371425\": \"齐河县\",\n    \"371426\": \"平原县\",\n    \"371427\": \"夏津县\",\n    \"371428\": \"武城县\",\n    \"371481\": \"乐陵市\",\n    \"371482\": \"禹城市\",\n    \"371483\": \"其它区\",\n    \"371500\": \"聊城市\",\n    \"371502\": \"东昌府区\",\n    \"371521\": \"阳谷县\",\n    \"371522\": \"莘县\",\n    \"371523\": \"茌平县\",\n    \"371524\": \"东阿县\",\n    \"371525\": \"冠县\",\n    \"371526\": \"高唐县\",\n    \"371581\": \"临清市\",\n    \"371582\": \"其它区\",\n    \"371600\": \"滨州市\",\n    \"371602\": \"滨城区\",\n    \"371621\": \"惠民县\",\n    \"371622\": \"阳信县\",\n    \"371623\": \"无棣县\",\n    \"371624\": \"沾化县\",\n    \"371625\": \"博兴县\",\n    \"371626\": \"邹平县\",\n    \"371627\": \"其它区\",\n    \"371700\": \"菏泽市\",\n    \"371702\": \"牡丹区\",\n    \"371721\": \"曹县\",\n    \"371722\": \"单县\",\n    \"371723\": \"成武县\",\n    \"371724\": \"巨野县\",\n    \"371725\": \"郓城县\",\n    \"371726\": \"鄄城县\",\n    \"371727\": \"定陶县\",\n    \"371728\": \"东明县\",\n    \"371729\": \"其它区\",\n    \"410000\": \"河南省\",\n    \"410100\": \"郑州市\",\n    \"410102\": \"中原区\",\n    \"410103\": \"二七区\",\n    \"410104\": \"管城回族区\",\n    \"410105\": \"金水区\",\n    \"410106\": \"上街区\",\n    \"410108\": \"惠济区\",\n    \"410122\": \"中牟县\",\n    \"410181\": \"巩义市\",\n    \"410182\": \"荥阳市\",\n    \"410183\": \"新密市\",\n    \"410184\": \"新郑市\",\n    \"410185\": \"登封市\",\n    \"410188\": \"其它区\",\n    \"410200\": \"开封市\",\n    \"410202\": \"龙亭区\",\n    \"410203\": \"顺河回族区\",\n    \"410204\": \"鼓楼区\",\n    \"410205\": \"禹王台区\",\n    \"410211\": \"金明区\",\n    \"410221\": \"杞县\",\n    \"410222\": \"通许县\",\n    \"410223\": \"尉氏县\",\n    \"410224\": \"开封县\",\n    \"410225\": \"兰考县\",\n    \"410226\": \"其它区\",\n    \"410300\": \"洛阳市\",\n    \"410302\": \"老城区\",\n    \"410303\": \"西工区\",\n    \"410304\": \"瀍河回族区\",\n    \"410305\": \"涧西区\",\n    \"410306\": \"吉利区\",\n    \"410307\": \"洛龙区\",\n    \"410322\": \"孟津县\",\n    \"410323\": \"新安县\",\n    \"410324\": \"栾川县\",\n    \"410325\": \"嵩县\",\n    \"410326\": \"汝阳县\",\n    \"410327\": \"宜阳县\",\n    \"410328\": \"洛宁县\",\n    \"410329\": \"伊川县\",\n    \"410381\": \"偃师市\",\n    \"410400\": \"平顶山市\",\n    \"410402\": \"新华区\",\n    \"410403\": \"卫东区\",\n    \"410404\": \"石龙区\",\n    \"410411\": \"湛河区\",\n    \"410421\": \"宝丰县\",\n    \"410422\": \"叶县\",\n    \"410423\": \"鲁山县\",\n    \"410425\": \"郏县\",\n    \"410481\": \"舞钢市\",\n    \"410482\": \"汝州市\",\n    \"410483\": \"其它区\",\n    \"410500\": \"安阳市\",\n    \"410502\": \"文峰区\",\n    \"410503\": \"北关区\",\n    \"410505\": \"殷都区\",\n    \"410506\": \"龙安区\",\n    \"410522\": \"安阳县\",\n    \"410523\": \"汤阴县\",\n    \"410526\": \"滑县\",\n    \"410527\": \"内黄县\",\n    \"410581\": \"林州市\",\n    \"410582\": \"其它区\",\n    \"410600\": \"鹤壁市\",\n    \"410602\": \"鹤山区\",\n    \"410603\": \"山城区\",\n    \"410611\": \"淇滨区\",\n    \"410621\": \"浚县\",\n    \"410622\": \"淇县\",\n    \"410623\": \"其它区\",\n    \"410700\": \"新乡市\",\n    \"410702\": \"红旗区\",\n    \"410703\": \"卫滨区\",\n    \"410704\": \"凤泉区\",\n    \"410711\": \"牧野区\",\n    \"410721\": \"新乡县\",\n    \"410724\": \"获嘉县\",\n    \"410725\": \"原阳县\",\n    \"410726\": \"延津县\",\n    \"410727\": \"封丘县\",\n    \"410728\": \"长垣县\",\n    \"410781\": \"卫辉市\",\n    \"410782\": \"辉县市\",\n    \"410783\": \"其它区\",\n    \"410800\": \"焦作市\",\n    \"410802\": \"解放区\",\n    \"410803\": \"中站区\",\n    \"410804\": \"马村区\",\n    \"410811\": \"山阳区\",\n    \"410821\": \"修武县\",\n    \"410822\": \"博爱县\",\n    \"410823\": \"武陟县\",\n    \"410825\": \"温县\",\n    \"410881\": \"济源市\",\n    \"410882\": \"沁阳市\",\n    \"410883\": \"孟州市\",\n    \"410884\": \"其它区\",\n    \"410900\": \"濮阳市\",\n    \"410902\": \"华龙区\",\n    \"410922\": \"清丰县\",\n    \"410923\": \"南乐县\",\n    \"410926\": \"范县\",\n    \"410927\": \"台前县\",\n    \"410928\": \"濮阳县\",\n    \"410929\": \"其它区\",\n    \"411000\": \"许昌市\",\n    \"411002\": \"魏都区\",\n    \"411023\": \"许昌县\",\n    \"411024\": \"鄢陵县\",\n    \"411025\": \"襄城县\",\n    \"411081\": \"禹州市\",\n    \"411082\": \"长葛市\",\n    \"411083\": \"其它区\",\n    \"411100\": \"漯河市\",\n    \"411102\": \"源汇区\",\n    \"411103\": \"郾城区\",\n    \"411104\": \"召陵区\",\n    \"411121\": \"舞阳县\",\n    \"411122\": \"临颍县\",\n    \"411123\": \"其它区\",\n    \"411200\": \"三门峡市\",\n    \"411202\": \"湖滨区\",\n    \"411221\": \"渑池县\",\n    \"411222\": \"陕县\",\n    \"411224\": \"卢氏县\",\n    \"411281\": \"义马市\",\n    \"411282\": \"灵宝市\",\n    \"411283\": \"其它区\",\n    \"411300\": \"南阳市\",\n    \"411302\": \"宛城区\",\n    \"411303\": \"卧龙区\",\n    \"411321\": \"南召县\",\n    \"411322\": \"方城县\",\n    \"411323\": \"西峡县\",\n    \"411324\": \"镇平县\",\n    \"411325\": \"内乡县\",\n    \"411326\": \"淅川县\",\n    \"411327\": \"社旗县\",\n    \"411328\": \"唐河县\",\n    \"411329\": \"新野县\",\n    \"411330\": \"桐柏县\",\n    \"411381\": \"邓州市\",\n    \"411382\": \"其它区\",\n    \"411400\": \"商丘市\",\n    \"411402\": \"梁园区\",\n    \"411403\": \"睢阳区\",\n    \"411421\": \"民权县\",\n    \"411422\": \"睢县\",\n    \"411423\": \"宁陵县\",\n    \"411424\": \"柘城县\",\n    \"411425\": \"虞城县\",\n    \"411426\": \"夏邑县\",\n    \"411481\": \"永城市\",\n    \"411482\": \"其它区\",\n    \"411500\": \"信阳市\",\n    \"411502\": \"浉河区\",\n    \"411503\": \"平桥区\",\n    \"411521\": \"罗山县\",\n    \"411522\": \"光山县\",\n    \"411523\": \"新县\",\n    \"411524\": \"商城县\",\n    \"411525\": \"固始县\",\n    \"411526\": \"潢川县\",\n    \"411527\": \"淮滨县\",\n    \"411528\": \"息县\",\n    \"411529\": \"其它区\",\n    \"411600\": \"周口市\",\n    \"411602\": \"川汇区\",\n    \"411621\": \"扶沟县\",\n    \"411622\": \"西华县\",\n    \"411623\": \"商水县\",\n    \"411624\": \"沈丘县\",\n    \"411625\": \"郸城县\",\n    \"411626\": \"淮阳县\",\n    \"411627\": \"太康县\",\n    \"411628\": \"鹿邑县\",\n    \"411681\": \"项城市\",\n    \"411682\": \"其它区\",\n    \"411700\": \"驻马店市\",\n    \"411702\": \"驿城区\",\n    \"411721\": \"西平县\",\n    \"411722\": \"上蔡县\",\n    \"411723\": \"平舆县\",\n    \"411724\": \"正阳县\",\n    \"411725\": \"确山县\",\n    \"411726\": \"泌阳县\",\n    \"411727\": \"汝南县\",\n    \"411728\": \"遂平县\",\n    \"411729\": \"新蔡县\",\n    \"411730\": \"其它区\",\n    \"420000\": \"湖北省\",\n    \"420100\": \"武汉市\",\n    \"420102\": \"江岸区\",\n    \"420103\": \"江汉区\",\n    \"420104\": \"硚口区\",\n    \"420105\": \"汉阳区\",\n    \"420106\": \"武昌区\",\n    \"420107\": \"青山区\",\n    \"420111\": \"洪山区\",\n    \"420112\": \"东西湖区\",\n    \"420113\": \"汉南区\",\n    \"420114\": \"蔡甸区\",\n    \"420115\": \"江夏区\",\n    \"420116\": \"黄陂区\",\n    \"420117\": \"新洲区\",\n    \"420118\": \"其它区\",\n    \"420200\": \"黄石市\",\n    \"420202\": \"黄石港区\",\n    \"420203\": \"西塞山区\",\n    \"420204\": \"下陆区\",\n    \"420205\": \"铁山区\",\n    \"420222\": \"阳新县\",\n    \"420281\": \"大冶市\",\n    \"420282\": \"其它区\",\n    \"420300\": \"十堰市\",\n    \"420302\": \"茅箭区\",\n    \"420303\": \"张湾区\",\n    \"420321\": \"郧县\",\n    \"420322\": \"郧西县\",\n    \"420323\": \"竹山县\",\n    \"420324\": \"竹溪县\",\n    \"420325\": \"房县\",\n    \"420381\": \"丹江口市\",\n    \"420383\": \"其它区\",\n    \"420500\": \"宜昌市\",\n    \"420502\": \"西陵区\",\n    \"420503\": \"伍家岗区\",\n    \"420504\": \"点军区\",\n    \"420505\": \"猇亭区\",\n    \"420506\": \"夷陵区\",\n    \"420525\": \"远安县\",\n    \"420526\": \"兴山县\",\n    \"420527\": \"秭归县\",\n    \"420528\": \"长阳土家族自治县\",\n    \"420529\": \"五峰土家族自治县\",\n    \"420581\": \"宜都市\",\n    \"420582\": \"当阳市\",\n    \"420583\": \"枝江市\",\n    \"420584\": \"其它区\",\n    \"420600\": \"襄阳市\",\n    \"420602\": \"襄城区\",\n    \"420606\": \"樊城区\",\n    \"420607\": \"襄州区\",\n    \"420624\": \"南漳县\",\n    \"420625\": \"谷城县\",\n    \"420626\": \"保康县\",\n    \"420682\": \"老河口市\",\n    \"420683\": \"枣阳市\",\n    \"420684\": \"宜城市\",\n    \"420685\": \"其它区\",\n    \"420700\": \"鄂州市\",\n    \"420702\": \"梁子湖区\",\n    \"420703\": \"华容区\",\n    \"420704\": \"鄂城区\",\n    \"420705\": \"其它区\",\n    \"420800\": \"荆门市\",\n    \"420802\": \"东宝区\",\n    \"420804\": \"掇刀区\",\n    \"420821\": \"京山县\",\n    \"420822\": \"沙洋县\",\n    \"420881\": \"钟祥市\",\n    \"420882\": \"其它区\",\n    \"420900\": \"孝感市\",\n    \"420902\": \"孝南区\",\n    \"420921\": \"孝昌县\",\n    \"420922\": \"大悟县\",\n    \"420923\": \"云梦县\",\n    \"420981\": \"应城市\",\n    \"420982\": \"安陆市\",\n    \"420984\": \"汉川市\",\n    \"420985\": \"其它区\",\n    \"421000\": \"荆州市\",\n    \"421002\": \"沙市区\",\n    \"421003\": \"荆州区\",\n    \"421022\": \"公安县\",\n    \"421023\": \"监利县\",\n    \"421024\": \"江陵县\",\n    \"421081\": \"石首市\",\n    \"421083\": \"洪湖市\",\n    \"421087\": \"松滋市\",\n    \"421088\": \"其它区\",\n    \"421100\": \"黄冈市\",\n    \"421102\": \"黄州区\",\n    \"421121\": \"团风县\",\n    \"421122\": \"红安县\",\n    \"421123\": \"罗田县\",\n    \"421124\": \"英山县\",\n    \"421125\": \"浠水县\",\n    \"421126\": \"蕲春县\",\n    \"421127\": \"黄梅县\",\n    \"421181\": \"麻城市\",\n    \"421182\": \"武穴市\",\n    \"421183\": \"其它区\",\n    \"421200\": \"咸宁市\",\n    \"421202\": \"咸安区\",\n    \"421221\": \"嘉鱼县\",\n    \"421222\": \"通城县\",\n    \"421223\": \"崇阳县\",\n    \"421224\": \"通山县\",\n    \"421281\": \"赤壁市\",\n    \"421283\": \"其它区\",\n    \"421300\": \"随州市\",\n    \"421302\": \"曾都区\",\n    \"421321\": \"随县\",\n    \"421381\": \"广水市\",\n    \"421382\": \"其它区\",\n    \"422800\": \"恩施土家族苗族自治州\",\n    \"422801\": \"恩施市\",\n    \"422802\": \"利川市\",\n    \"422822\": \"建始县\",\n    \"422823\": \"巴东县\",\n    \"422825\": \"宣恩县\",\n    \"422826\": \"咸丰县\",\n    \"422827\": \"来凤县\",\n    \"422828\": \"鹤峰县\",\n    \"422829\": \"其它区\",\n    \"429004\": \"仙桃市\",\n    \"429005\": \"潜江市\",\n    \"429006\": \"天门市\",\n    \"429021\": \"神农架林区\",\n    \"430000\": \"湖南省\",\n    \"430100\": \"长沙市\",\n    \"430102\": \"芙蓉区\",\n    \"430103\": \"天心区\",\n    \"430104\": \"岳麓区\",\n    \"430105\": \"开福区\",\n    \"430111\": \"雨花区\",\n    \"430121\": \"长沙县\",\n    \"430122\": \"望城区\",\n    \"430124\": \"宁乡县\",\n    \"430181\": \"浏阳市\",\n    \"430182\": \"其它区\",\n    \"430200\": \"株洲市\",\n    \"430202\": \"荷塘区\",\n    \"430203\": \"芦淞区\",\n    \"430204\": \"石峰区\",\n    \"430211\": \"天元区\",\n    \"430221\": \"株洲县\",\n    \"430223\": \"攸县\",\n    \"430224\": \"茶陵县\",\n    \"430225\": \"炎陵县\",\n    \"430281\": \"醴陵市\",\n    \"430282\": \"其它区\",\n    \"430300\": \"湘潭市\",\n    \"430302\": \"雨湖区\",\n    \"430304\": \"岳塘区\",\n    \"430321\": \"湘潭县\",\n    \"430381\": \"湘乡市\",\n    \"430382\": \"韶山市\",\n    \"430383\": \"其它区\",\n    \"430400\": \"衡阳市\",\n    \"430405\": \"珠晖区\",\n    \"430406\": \"雁峰区\",\n    \"430407\": \"石鼓区\",\n    \"430408\": \"蒸湘区\",\n    \"430412\": \"南岳区\",\n    \"430421\": \"衡阳县\",\n    \"430422\": \"衡南县\",\n    \"430423\": \"衡山县\",\n    \"430424\": \"衡东县\",\n    \"430426\": \"祁东县\",\n    \"430481\": \"耒阳市\",\n    \"430482\": \"常宁市\",\n    \"430483\": \"其它区\",\n    \"430500\": \"邵阳市\",\n    \"430502\": \"双清区\",\n    \"430503\": \"大祥区\",\n    \"430511\": \"北塔区\",\n    \"430521\": \"邵东县\",\n    \"430522\": \"新邵县\",\n    \"430523\": \"邵阳县\",\n    \"430524\": \"隆回县\",\n    \"430525\": \"洞口县\",\n    \"430527\": \"绥宁县\",\n    \"430528\": \"新宁县\",\n    \"430529\": \"城步苗族自治县\",\n    \"430581\": \"武冈市\",\n    \"430582\": \"其它区\",\n    \"430600\": \"岳阳市\",\n    \"430602\": \"岳阳楼区\",\n    \"430603\": \"云溪区\",\n    \"430611\": \"君山区\",\n    \"430621\": \"岳阳县\",\n    \"430623\": \"华容县\",\n    \"430624\": \"湘阴县\",\n    \"430626\": \"平江县\",\n    \"430681\": \"汨罗市\",\n    \"430682\": \"临湘市\",\n    \"430683\": \"其它区\",\n    \"430700\": \"常德市\",\n    \"430702\": \"武陵区\",\n    \"430703\": \"鼎城区\",\n    \"430721\": \"安乡县\",\n    \"430722\": \"汉寿县\",\n    \"430723\": \"澧县\",\n    \"430724\": \"临澧县\",\n    \"430725\": \"桃源县\",\n    \"430726\": \"石门县\",\n    \"430781\": \"津市市\",\n    \"430782\": \"其它区\",\n    \"430800\": \"张家界市\",\n    \"430802\": \"永定区\",\n    \"430811\": \"武陵源区\",\n    \"430821\": \"慈利县\",\n    \"430822\": \"桑植县\",\n    \"430823\": \"其它区\",\n    \"430900\": \"益阳市\",\n    \"430902\": \"资阳区\",\n    \"430903\": \"赫山区\",\n    \"430921\": \"南县\",\n    \"430922\": \"桃江县\",\n    \"430923\": \"安化县\",\n    \"430981\": \"沅江市\",\n    \"430982\": \"其它区\",\n    \"431000\": \"郴州市\",\n    \"431002\": \"北湖区\",\n    \"431003\": \"苏仙区\",\n    \"431021\": \"桂阳县\",\n    \"431022\": \"宜章县\",\n    \"431023\": \"永兴县\",\n    \"431024\": \"嘉禾县\",\n    \"431025\": \"临武县\",\n    \"431026\": \"汝城县\",\n    \"431027\": \"桂东县\",\n    \"431028\": \"安仁县\",\n    \"431081\": \"资兴市\",\n    \"431082\": \"其它区\",\n    \"431100\": \"永州市\",\n    \"431102\": \"零陵区\",\n    \"431103\": \"冷水滩区\",\n    \"431121\": \"祁阳县\",\n    \"431122\": \"东安县\",\n    \"431123\": \"双牌县\",\n    \"431124\": \"道县\",\n    \"431125\": \"江永县\",\n    \"431126\": \"宁远县\",\n    \"431127\": \"蓝山县\",\n    \"431128\": \"新田县\",\n    \"431129\": \"江华瑶族自治县\",\n    \"431130\": \"其它区\",\n    \"431200\": \"怀化市\",\n    \"431202\": \"鹤城区\",\n    \"431221\": \"中方县\",\n    \"431222\": \"沅陵县\",\n    \"431223\": \"辰溪县\",\n    \"431224\": \"溆浦县\",\n    \"431225\": \"会同县\",\n    \"431226\": \"麻阳苗族自治县\",\n    \"431227\": \"新晃侗族自治县\",\n    \"431228\": \"芷江侗族自治县\",\n    \"431229\": \"靖州苗族侗族自治县\",\n    \"431230\": \"通道侗族自治县\",\n    \"431281\": \"洪江市\",\n    \"431282\": \"其它区\",\n    \"431300\": \"娄底市\",\n    \"431302\": \"娄星区\",\n    \"431321\": \"双峰县\",\n    \"431322\": \"新化县\",\n    \"431381\": \"冷水江市\",\n    \"431382\": \"涟源市\",\n    \"431383\": \"其它区\",\n    \"433100\": \"湘西土家族苗族自治州\",\n    \"433101\": \"吉首市\",\n    \"433122\": \"泸溪县\",\n    \"433123\": \"凤凰县\",\n    \"433124\": \"花垣县\",\n    \"433125\": \"保靖县\",\n    \"433126\": \"古丈县\",\n    \"433127\": \"永顺县\",\n    \"433130\": \"龙山县\",\n    \"433131\": \"其它区\",\n    \"440000\": \"广东省\",\n    \"440100\": \"广州市\",\n    \"440103\": \"荔湾区\",\n    \"440104\": \"越秀区\",\n    \"440105\": \"海珠区\",\n    \"440106\": \"天河区\",\n    \"440111\": \"白云区\",\n    \"440112\": \"黄埔区\",\n    \"440113\": \"番禺区\",\n    \"440114\": \"花都区\",\n    \"440115\": \"南沙区\",\n    \"440116\": \"萝岗区\",\n    \"440183\": \"增城市\",\n    \"440184\": \"从化市\",\n    \"440189\": \"其它区\",\n    \"440200\": \"韶关市\",\n    \"440203\": \"武江区\",\n    \"440204\": \"浈江区\",\n    \"440205\": \"曲江区\",\n    \"440222\": \"始兴县\",\n    \"440224\": \"仁化县\",\n    \"440229\": \"翁源县\",\n    \"440232\": \"乳源瑶族自治县\",\n    \"440233\": \"新丰县\",\n    \"440281\": \"乐昌市\",\n    \"440282\": \"南雄市\",\n    \"440283\": \"其它区\",\n    \"440300\": \"深圳市\",\n    \"440303\": \"罗湖区\",\n    \"440304\": \"福田区\",\n    \"440305\": \"南山区\",\n    \"440306\": \"宝安区\",\n    \"440307\": \"龙岗区\",\n    \"440308\": \"盐田区\",\n    \"440309\": \"其它区\",\n    \"440320\": \"光明新区\",\n    \"440321\": \"坪山新区\",\n    \"440322\": \"大鹏新区\",\n    \"440323\": \"龙华新区\",\n    \"440400\": \"珠海市\",\n    \"440402\": \"香洲区\",\n    \"440403\": \"斗门区\",\n    \"440404\": \"金湾区\",\n    \"440488\": \"其它区\",\n    \"440500\": \"汕头市\",\n    \"440507\": \"龙湖区\",\n    \"440511\": \"金平区\",\n    \"440512\": \"濠江区\",\n    \"440513\": \"潮阳区\",\n    \"440514\": \"潮南区\",\n    \"440515\": \"澄海区\",\n    \"440523\": \"南澳县\",\n    \"440524\": \"其它区\",\n    \"440600\": \"佛山市\",\n    \"440604\": \"禅城区\",\n    \"440605\": \"南海区\",\n    \"440606\": \"顺德区\",\n    \"440607\": \"三水区\",\n    \"440608\": \"高明区\",\n    \"440609\": \"其它区\",\n    \"440700\": \"江门市\",\n    \"440703\": \"蓬江区\",\n    \"440704\": \"江海区\",\n    \"440705\": \"新会区\",\n    \"440781\": \"台山市\",\n    \"440783\": \"开平市\",\n    \"440784\": \"鹤山市\",\n    \"440785\": \"恩平市\",\n    \"440786\": \"其它区\",\n    \"440800\": \"湛江市\",\n    \"440802\": \"赤坎区\",\n    \"440803\": \"霞山区\",\n    \"440804\": \"坡头区\",\n    \"440811\": \"麻章区\",\n    \"440823\": \"遂溪县\",\n    \"440825\": \"徐闻县\",\n    \"440881\": \"廉江市\",\n    \"440882\": \"雷州市\",\n    \"440883\": \"吴川市\",\n    \"440884\": \"其它区\",\n    \"440900\": \"茂名市\",\n    \"440902\": \"茂南区\",\n    \"440903\": \"茂港区\",\n    \"440923\": \"电白县\",\n    \"440981\": \"高州市\",\n    \"440982\": \"化州市\",\n    \"440983\": \"信宜市\",\n    \"440984\": \"其它区\",\n    \"441200\": \"肇庆市\",\n    \"441202\": \"端州区\",\n    \"441203\": \"鼎湖区\",\n    \"441223\": \"广宁县\",\n    \"441224\": \"怀集县\",\n    \"441225\": \"封开县\",\n    \"441226\": \"德庆县\",\n    \"441283\": \"高要市\",\n    \"441284\": \"四会市\",\n    \"441285\": \"其它区\",\n    \"441300\": \"惠州市\",\n    \"441302\": \"惠城区\",\n    \"441303\": \"惠阳区\",\n    \"441322\": \"博罗县\",\n    \"441323\": \"惠东县\",\n    \"441324\": \"龙门县\",\n    \"441325\": \"其它区\",\n    \"441400\": \"梅州市\",\n    \"441402\": \"梅江区\",\n    \"441421\": \"梅县\",\n    \"441422\": \"大埔县\",\n    \"441423\": \"丰顺县\",\n    \"441424\": \"五华县\",\n    \"441426\": \"平远县\",\n    \"441427\": \"蕉岭县\",\n    \"441481\": \"兴宁市\",\n    \"441482\": \"其它区\",\n    \"441500\": \"汕尾市\",\n    \"441502\": \"城区\",\n    \"441521\": \"海丰县\",\n    \"441523\": \"陆河县\",\n    \"441581\": \"陆丰市\",\n    \"441582\": \"其它区\",\n    \"441600\": \"河源市\",\n    \"441602\": \"源城区\",\n    \"441621\": \"紫金县\",\n    \"441622\": \"龙川县\",\n    \"441623\": \"连平县\",\n    \"441624\": \"和平县\",\n    \"441625\": \"东源县\",\n    \"441626\": \"其它区\",\n    \"441700\": \"阳江市\",\n    \"441702\": \"江城区\",\n    \"441721\": \"阳西县\",\n    \"441723\": \"阳东县\",\n    \"441781\": \"阳春市\",\n    \"441782\": \"其它区\",\n    \"441800\": \"清远市\",\n    \"441802\": \"清城区\",\n    \"441821\": \"佛冈县\",\n    \"441823\": \"阳山县\",\n    \"441825\": \"连山壮族瑶族自治县\",\n    \"441826\": \"连南瑶族自治县\",\n    \"441827\": \"清新区\",\n    \"441881\": \"英德市\",\n    \"441882\": \"连州市\",\n    \"441883\": \"其它区\",\n    \"441900\": \"东莞市\",\n    \"442000\": \"中山市\",\n    \"442101\": \"东沙群岛\",\n    \"445100\": \"潮州市\",\n    \"445102\": \"湘桥区\",\n    \"445121\": \"潮安区\",\n    \"445122\": \"饶平县\",\n    \"445186\": \"其它区\",\n    \"445200\": \"揭阳市\",\n    \"445202\": \"榕城区\",\n    \"445221\": \"揭东区\",\n    \"445222\": \"揭西县\",\n    \"445224\": \"惠来县\",\n    \"445281\": \"普宁市\",\n    \"445285\": \"其它区\",\n    \"445300\": \"云浮市\",\n    \"445302\": \"云城区\",\n    \"445321\": \"新兴县\",\n    \"445322\": \"郁南县\",\n    \"445323\": \"云安县\",\n    \"445381\": \"罗定市\",\n    \"445382\": \"其它区\",\n    \"450000\": \"广西壮族自治区\",\n    \"450100\": \"南宁市\",\n    \"450102\": \"兴宁区\",\n    \"450103\": \"青秀区\",\n    \"450105\": \"江南区\",\n    \"450107\": \"西乡塘区\",\n    \"450108\": \"良庆区\",\n    \"450109\": \"邕宁区\",\n    \"450122\": \"武鸣县\",\n    \"450123\": \"隆安县\",\n    \"450124\": \"马山县\",\n    \"450125\": \"上林县\",\n    \"450126\": \"宾阳县\",\n    \"450127\": \"横县\",\n    \"450128\": \"其它区\",\n    \"450200\": \"柳州市\",\n    \"450202\": \"城中区\",\n    \"450203\": \"鱼峰区\",\n    \"450204\": \"柳南区\",\n    \"450205\": \"柳北区\",\n    \"450221\": \"柳江县\",\n    \"450222\": \"柳城县\",\n    \"450223\": \"鹿寨县\",\n    \"450224\": \"融安县\",\n    \"450225\": \"融水苗族自治县\",\n    \"450226\": \"三江侗族自治县\",\n    \"450227\": \"其它区\",\n    \"450300\": \"桂林市\",\n    \"450302\": \"秀峰区\",\n    \"450303\": \"叠彩区\",\n    \"450304\": \"象山区\",\n    \"450305\": \"七星区\",\n    \"450311\": \"雁山区\",\n    \"450321\": \"阳朔县\",\n    \"450322\": \"临桂区\",\n    \"450323\": \"灵川县\",\n    \"450324\": \"全州县\",\n    \"450325\": \"兴安县\",\n    \"450326\": \"永福县\",\n    \"450327\": \"灌阳县\",\n    \"450328\": \"龙胜各族自治县\",\n    \"450329\": \"资源县\",\n    \"450330\": \"平乐县\",\n    \"450331\": \"荔浦县\",\n    \"450332\": \"恭城瑶族自治县\",\n    \"450333\": \"其它区\",\n    \"450400\": \"梧州市\",\n    \"450403\": \"万秀区\",\n    \"450405\": \"长洲区\",\n    \"450406\": \"龙圩区\",\n    \"450421\": \"苍梧县\",\n    \"450422\": \"藤县\",\n    \"450423\": \"蒙山县\",\n    \"450481\": \"岑溪市\",\n    \"450482\": \"其它区\",\n    \"450500\": \"北海市\",\n    \"450502\": \"海城区\",\n    \"450503\": \"银海区\",\n    \"450512\": \"铁山港区\",\n    \"450521\": \"合浦县\",\n    \"450522\": \"其它区\",\n    \"450600\": \"防城港市\",\n    \"450602\": \"港口区\",\n    \"450603\": \"防城区\",\n    \"450621\": \"上思县\",\n    \"450681\": \"东兴市\",\n    \"450682\": \"其它区\",\n    \"450700\": \"钦州市\",\n    \"450702\": \"钦南区\",\n    \"450703\": \"钦北区\",\n    \"450721\": \"灵山县\",\n    \"450722\": \"浦北县\",\n    \"450723\": \"其它区\",\n    \"450800\": \"贵港市\",\n    \"450802\": \"港北区\",\n    \"450803\": \"港南区\",\n    \"450804\": \"覃塘区\",\n    \"450821\": \"平南县\",\n    \"450881\": \"桂平市\",\n    \"450882\": \"其它区\",\n    \"450900\": \"玉林市\",\n    \"450902\": \"玉州区\",\n    \"450903\": \"福绵区\",\n    \"450921\": \"容县\",\n    \"450922\": \"陆川县\",\n    \"450923\": \"博白县\",\n    \"450924\": \"兴业县\",\n    \"450981\": \"北流市\",\n    \"450982\": \"其它区\",\n    \"451000\": \"百色市\",\n    \"451002\": \"右江区\",\n    \"451021\": \"田阳县\",\n    \"451022\": \"田东县\",\n    \"451023\": \"平果县\",\n    \"451024\": \"德保县\",\n    \"451025\": \"靖西县\",\n    \"451026\": \"那坡县\",\n    \"451027\": \"凌云县\",\n    \"451028\": \"乐业县\",\n    \"451029\": \"田林县\",\n    \"451030\": \"西林县\",\n    \"451031\": \"隆林各族自治县\",\n    \"451032\": \"其它区\",\n    \"451100\": \"贺州市\",\n    \"451102\": \"八步区\",\n    \"451119\": \"平桂管理区\",\n    \"451121\": \"昭平县\",\n    \"451122\": \"钟山县\",\n    \"451123\": \"富川瑶族自治县\",\n    \"451124\": \"其它区\",\n    \"451200\": \"河池市\",\n    \"451202\": \"金城江区\",\n    \"451221\": \"南丹县\",\n    \"451222\": \"天峨县\",\n    \"451223\": \"凤山县\",\n    \"451224\": \"东兰县\",\n    \"451225\": \"罗城仫佬族自治县\",\n    \"451226\": \"环江毛南族自治县\",\n    \"451227\": \"巴马瑶族自治县\",\n    \"451228\": \"都安瑶族自治县\",\n    \"451229\": \"大化瑶族自治县\",\n    \"451281\": \"宜州市\",\n    \"451282\": \"其它区\",\n    \"451300\": \"来宾市\",\n    \"451302\": \"兴宾区\",\n    \"451321\": \"忻城县\",\n    \"451322\": \"象州县\",\n    \"451323\": \"武宣县\",\n    \"451324\": \"金秀瑶族自治县\",\n    \"451381\": \"合山市\",\n    \"451382\": \"其它区\",\n    \"451400\": \"崇左市\",\n    \"451402\": \"江州区\",\n    \"451421\": \"扶绥县\",\n    \"451422\": \"宁明县\",\n    \"451423\": \"龙州县\",\n    \"451424\": \"大新县\",\n    \"451425\": \"天等县\",\n    \"451481\": \"凭祥市\",\n    \"451482\": \"其它区\",\n    \"460000\": \"海南省\",\n    \"460100\": \"海口市\",\n    \"460105\": \"秀英区\",\n    \"460106\": \"龙华区\",\n    \"460107\": \"琼山区\",\n    \"460108\": \"美兰区\",\n    \"460109\": \"其它区\",\n    \"460200\": \"三亚市\",\n    \"460300\": \"三沙市\",\n    \"460321\": \"西沙群岛\",\n    \"460322\": \"南沙群岛\",\n    \"460323\": \"中沙群岛的岛礁及其海域\",\n    \"469001\": \"五指山市\",\n    \"469002\": \"琼海市\",\n    \"469003\": \"儋州市\",\n    \"469005\": \"文昌市\",\n    \"469006\": \"万宁市\",\n    \"469007\": \"东方市\",\n    \"469025\": \"定安县\",\n    \"469026\": \"屯昌县\",\n    \"469027\": \"澄迈县\",\n    \"469028\": \"临高县\",\n    \"469030\": \"白沙黎族自治县\",\n    \"469031\": \"昌江黎族自治县\",\n    \"469033\": \"乐东黎族自治县\",\n    \"469034\": \"陵水黎族自治县\",\n    \"469035\": \"保亭黎族苗族自治县\",\n    \"469036\": \"琼中黎族苗族自治县\",\n    \"471005\": \"其它区\",\n    \"500000\": \"重庆\",\n    \"500100\": \"重庆市\",\n    \"500101\": \"万州区\",\n    \"500102\": \"涪陵区\",\n    \"500103\": \"渝中区\",\n    \"500104\": \"大渡口区\",\n    \"500105\": \"江北区\",\n    \"500106\": \"沙坪坝区\",\n    \"500107\": \"九龙坡区\",\n    \"500108\": \"南岸区\",\n    \"500109\": \"北碚区\",\n    \"500110\": \"万盛区\",\n    \"500111\": \"双桥区\",\n    \"500112\": \"渝北区\",\n    \"500113\": \"巴南区\",\n    \"500114\": \"黔江区\",\n    \"500115\": \"长寿区\",\n    \"500222\": \"綦江区\",\n    \"500223\": \"潼南县\",\n    \"500224\": \"铜梁县\",\n    \"500225\": \"大足区\",\n    \"500226\": \"荣昌县\",\n    \"500227\": \"璧山县\",\n    \"500228\": \"梁平县\",\n    \"500229\": \"城口县\",\n    \"500230\": \"丰都县\",\n    \"500231\": \"垫江县\",\n    \"500232\": \"武隆县\",\n    \"500233\": \"忠县\",\n    \"500234\": \"开县\",\n    \"500235\": \"云阳县\",\n    \"500236\": \"奉节县\",\n    \"500237\": \"巫山县\",\n    \"500238\": \"巫溪县\",\n    \"500240\": \"石柱土家族自治县\",\n    \"500241\": \"秀山土家族苗族自治县\",\n    \"500242\": \"酉阳土家族苗族自治县\",\n    \"500243\": \"彭水苗族土家族自治县\",\n    \"500381\": \"江津区\",\n    \"500382\": \"合川区\",\n    \"500383\": \"永川区\",\n    \"500384\": \"南川区\",\n    \"500385\": \"其它区\",\n    \"510000\": \"四川省\",\n    \"510100\": \"成都市\",\n    \"510104\": \"锦江区\",\n    \"510105\": \"青羊区\",\n    \"510106\": \"金牛区\",\n    \"510107\": \"武侯区\",\n    \"510108\": \"成华区\",\n    \"510112\": \"龙泉驿区\",\n    \"510113\": \"青白江区\",\n    \"510114\": \"新都区\",\n    \"510115\": \"温江区\",\n    \"510121\": \"金堂县\",\n    \"510122\": \"双流县\",\n    \"510124\": \"郫县\",\n    \"510129\": \"大邑县\",\n    \"510131\": \"蒲江县\",\n    \"510132\": \"新津县\",\n    \"510181\": \"都江堰市\",\n    \"510182\": \"彭州市\",\n    \"510183\": \"邛崃市\",\n    \"510184\": \"崇州市\",\n    \"510185\": \"其它区\",\n    \"510300\": \"自贡市\",\n    \"510302\": \"自流井区\",\n    \"510303\": \"贡井区\",\n    \"510304\": \"大安区\",\n    \"510311\": \"沿滩区\",\n    \"510321\": \"荣县\",\n    \"510322\": \"富顺县\",\n    \"510323\": \"其它区\",\n    \"510400\": \"攀枝花市\",\n    \"510402\": \"东区\",\n    \"510403\": \"西区\",\n    \"510411\": \"仁和区\",\n    \"510421\": \"米易县\",\n    \"510422\": \"盐边县\",\n    \"510423\": \"其它区\",\n    \"510500\": \"泸州市\",\n    \"510502\": \"江阳区\",\n    \"510503\": \"纳溪区\",\n    \"510504\": \"龙马潭区\",\n    \"510521\": \"泸县\",\n    \"510522\": \"合江县\",\n    \"510524\": \"叙永县\",\n    \"510525\": \"古蔺县\",\n    \"510526\": \"其它区\",\n    \"510600\": \"德阳市\",\n    \"510603\": \"旌阳区\",\n    \"510623\": \"中江县\",\n    \"510626\": \"罗江县\",\n    \"510681\": \"广汉市\",\n    \"510682\": \"什邡市\",\n    \"510683\": \"绵竹市\",\n    \"510684\": \"其它区\",\n    \"510700\": \"绵阳市\",\n    \"510703\": \"涪城区\",\n    \"510704\": \"游仙区\",\n    \"510722\": \"三台县\",\n    \"510723\": \"盐亭县\",\n    \"510724\": \"安县\",\n    \"510725\": \"梓潼县\",\n    \"510726\": \"北川羌族自治县\",\n    \"510727\": \"平武县\",\n    \"510781\": \"江油市\",\n    \"510782\": \"其它区\",\n    \"510800\": \"广元市\",\n    \"510802\": \"利州区\",\n    \"510811\": \"昭化区\",\n    \"510812\": \"朝天区\",\n    \"510821\": \"旺苍县\",\n    \"510822\": \"青川县\",\n    \"510823\": \"剑阁县\",\n    \"510824\": \"苍溪县\",\n    \"510825\": \"其它区\",\n    \"510900\": \"遂宁市\",\n    \"510903\": \"船山区\",\n    \"510904\": \"安居区\",\n    \"510921\": \"蓬溪县\",\n    \"510922\": \"射洪县\",\n    \"510923\": \"大英县\",\n    \"510924\": \"其它区\",\n    \"511000\": \"内江市\",\n    \"511002\": \"市中区\",\n    \"511011\": \"东兴区\",\n    \"511024\": \"威远县\",\n    \"511025\": \"资中县\",\n    \"511028\": \"隆昌县\",\n    \"511029\": \"其它区\",\n    \"511100\": \"乐山市\",\n    \"511102\": \"市中区\",\n    \"511111\": \"沙湾区\",\n    \"511112\": \"五通桥区\",\n    \"511113\": \"金口河区\",\n    \"511123\": \"犍为县\",\n    \"511124\": \"井研县\",\n    \"511126\": \"夹江县\",\n    \"511129\": \"沐川县\",\n    \"511132\": \"峨边彝族自治县\",\n    \"511133\": \"马边彝族自治县\",\n    \"511181\": \"峨眉山市\",\n    \"511182\": \"其它区\",\n    \"511300\": \"南充市\",\n    \"511302\": \"顺庆区\",\n    \"511303\": \"高坪区\",\n    \"511304\": \"嘉陵区\",\n    \"511321\": \"南部县\",\n    \"511322\": \"营山县\",\n    \"511323\": \"蓬安县\",\n    \"511324\": \"仪陇县\",\n    \"511325\": \"西充县\",\n    \"511381\": \"阆中市\",\n    \"511382\": \"其它区\",\n    \"511400\": \"眉山市\",\n    \"511402\": \"东坡区\",\n    \"511421\": \"仁寿县\",\n    \"511422\": \"彭山县\",\n    \"511423\": \"洪雅县\",\n    \"511424\": \"丹棱县\",\n    \"511425\": \"青神县\",\n    \"511426\": \"其它区\",\n    \"511500\": \"宜宾市\",\n    \"511502\": \"翠屏区\",\n    \"511521\": \"宜宾县\",\n    \"511522\": \"南溪区\",\n    \"511523\": \"江安县\",\n    \"511524\": \"长宁县\",\n    \"511525\": \"高县\",\n    \"511526\": \"珙县\",\n    \"511527\": \"筠连县\",\n    \"511528\": \"兴文县\",\n    \"511529\": \"屏山县\",\n    \"511530\": \"其它区\",\n    \"511600\": \"广安市\",\n    \"511602\": \"广安区\",\n    \"511603\": \"前锋区\",\n    \"511621\": \"岳池县\",\n    \"511622\": \"武胜县\",\n    \"511623\": \"邻水县\",\n    \"511681\": \"华蓥市\",\n    \"511683\": \"其它区\",\n    \"511700\": \"达州市\",\n    \"511702\": \"通川区\",\n    \"511721\": \"达川区\",\n    \"511722\": \"宣汉县\",\n    \"511723\": \"开江县\",\n    \"511724\": \"大竹县\",\n    \"511725\": \"渠县\",\n    \"511781\": \"万源市\",\n    \"511782\": \"其它区\",\n    \"511800\": \"雅安市\",\n    \"511802\": \"雨城区\",\n    \"511821\": \"名山区\",\n    \"511822\": \"荥经县\",\n    \"511823\": \"汉源县\",\n    \"511824\": \"石棉县\",\n    \"511825\": \"天全县\",\n    \"511826\": \"芦山县\",\n    \"511827\": \"宝兴县\",\n    \"511828\": \"其它区\",\n    \"511900\": \"巴中市\",\n    \"511902\": \"巴州区\",\n    \"511903\": \"恩阳区\",\n    \"511921\": \"通江县\",\n    \"511922\": \"南江县\",\n    \"511923\": \"平昌县\",\n    \"511924\": \"其它区\",\n    \"512000\": \"资阳市\",\n    \"512002\": \"雁江区\",\n    \"512021\": \"安岳县\",\n    \"512022\": \"乐至县\",\n    \"512081\": \"简阳市\",\n    \"512082\": \"其它区\",\n    \"513200\": \"阿坝藏族羌族自治州\",\n    \"513221\": \"汶川县\",\n    \"513222\": \"理县\",\n    \"513223\": \"茂县\",\n    \"513224\": \"松潘县\",\n    \"513225\": \"九寨沟县\",\n    \"513226\": \"金川县\",\n    \"513227\": \"小金县\",\n    \"513228\": \"黑水县\",\n    \"513229\": \"马尔康县\",\n    \"513230\": \"壤塘县\",\n    \"513231\": \"阿坝县\",\n    \"513232\": \"若尔盖县\",\n    \"513233\": \"红原县\",\n    \"513234\": \"其它区\",\n    \"513300\": \"甘孜藏族自治州\",\n    \"513321\": \"康定县\",\n    \"513322\": \"泸定县\",\n    \"513323\": \"丹巴县\",\n    \"513324\": \"九龙县\",\n    \"513325\": \"雅江县\",\n    \"513326\": \"道孚县\",\n    \"513327\": \"炉霍县\",\n    \"513328\": \"甘孜县\",\n    \"513329\": \"新龙县\",\n    \"513330\": \"德格县\",\n    \"513331\": \"白玉县\",\n    \"513332\": \"石渠县\",\n    \"513333\": \"色达县\",\n    \"513334\": \"理塘县\",\n    \"513335\": \"巴塘县\",\n    \"513336\": \"乡城县\",\n    \"513337\": \"稻城县\",\n    \"513338\": \"得荣县\",\n    \"513339\": \"其它区\",\n    \"513400\": \"凉山彝族自治州\",\n    \"513401\": \"西昌市\",\n    \"513422\": \"木里藏族自治县\",\n    \"513423\": \"盐源县\",\n    \"513424\": \"德昌县\",\n    \"513425\": \"会理县\",\n    \"513426\": \"会东县\",\n    \"513427\": \"宁南县\",\n    \"513428\": \"普格县\",\n    \"513429\": \"布拖县\",\n    \"513430\": \"金阳县\",\n    \"513431\": \"昭觉县\",\n    \"513432\": \"喜德县\",\n    \"513433\": \"冕宁县\",\n    \"513434\": \"越西县\",\n    \"513435\": \"甘洛县\",\n    \"513436\": \"美姑县\",\n    \"513437\": \"雷波县\",\n    \"513438\": \"其它区\",\n    \"520000\": \"贵州省\",\n    \"520100\": \"贵阳市\",\n    \"520102\": \"南明区\",\n    \"520103\": \"云岩区\",\n    \"520111\": \"花溪区\",\n    \"520112\": \"乌当区\",\n    \"520113\": \"白云区\",\n    \"520121\": \"开阳县\",\n    \"520122\": \"息烽县\",\n    \"520123\": \"修文县\",\n    \"520151\": \"观山湖区\",\n    \"520181\": \"清镇市\",\n    \"520182\": \"其它区\",\n    \"520200\": \"六盘水市\",\n    \"520201\": \"钟山区\",\n    \"520203\": \"六枝特区\",\n    \"520221\": \"水城县\",\n    \"520222\": \"盘县\",\n    \"520223\": \"其它区\",\n    \"520300\": \"遵义市\",\n    \"520302\": \"红花岗区\",\n    \"520303\": \"汇川区\",\n    \"520321\": \"遵义县\",\n    \"520322\": \"桐梓县\",\n    \"520323\": \"绥阳县\",\n    \"520324\": \"正安县\",\n    \"520325\": \"道真仡佬族苗族自治县\",\n    \"520326\": \"务川仡佬族苗族自治县\",\n    \"520327\": \"凤冈县\",\n    \"520328\": \"湄潭县\",\n    \"520329\": \"余庆县\",\n    \"520330\": \"习水县\",\n    \"520381\": \"赤水市\",\n    \"520382\": \"仁怀市\",\n    \"520383\": \"其它区\",\n    \"520400\": \"安顺市\",\n    \"520402\": \"西秀区\",\n    \"520421\": \"平坝县\",\n    \"520422\": \"普定县\",\n    \"520423\": \"镇宁布依族苗族自治县\",\n    \"520424\": \"关岭布依族苗族自治县\",\n    \"520425\": \"紫云苗族布依族自治县\",\n    \"520426\": \"其它区\",\n    \"522200\": \"铜仁市\",\n    \"522201\": \"碧江区\",\n    \"522222\": \"江口县\",\n    \"522223\": \"玉屏侗族自治县\",\n    \"522224\": \"石阡县\",\n    \"522225\": \"思南县\",\n    \"522226\": \"印江土家族苗族自治县\",\n    \"522227\": \"德江县\",\n    \"522228\": \"沿河土家族自治县\",\n    \"522229\": \"松桃苗族自治县\",\n    \"522230\": \"万山区\",\n    \"522231\": \"其它区\",\n    \"522300\": \"黔西南布依族苗族自治州\",\n    \"522301\": \"兴义市\",\n    \"522322\": \"兴仁县\",\n    \"522323\": \"普安县\",\n    \"522324\": \"晴隆县\",\n    \"522325\": \"贞丰县\",\n    \"522326\": \"望谟县\",\n    \"522327\": \"册亨县\",\n    \"522328\": \"安龙县\",\n    \"522329\": \"其它区\",\n    \"522400\": \"毕节市\",\n    \"522401\": \"七星关区\",\n    \"522422\": \"大方县\",\n    \"522423\": \"黔西县\",\n    \"522424\": \"金沙县\",\n    \"522425\": \"织金县\",\n    \"522426\": \"纳雍县\",\n    \"522427\": \"威宁彝族回族苗族自治县\",\n    \"522428\": \"赫章县\",\n    \"522429\": \"其它区\",\n    \"522600\": \"黔东南苗族侗族自治州\",\n    \"522601\": \"凯里市\",\n    \"522622\": \"黄平县\",\n    \"522623\": \"施秉县\",\n    \"522624\": \"三穗县\",\n    \"522625\": \"镇远县\",\n    \"522626\": \"岑巩县\",\n    \"522627\": \"天柱县\",\n    \"522628\": \"锦屏县\",\n    \"522629\": \"剑河县\",\n    \"522630\": \"台江县\",\n    \"522631\": \"黎平县\",\n    \"522632\": \"榕江县\",\n    \"522633\": \"从江县\",\n    \"522634\": \"雷山县\",\n    \"522635\": \"麻江县\",\n    \"522636\": \"丹寨县\",\n    \"522637\": \"其它区\",\n    \"522700\": \"黔南布依族苗族自治州\",\n    \"522701\": \"都匀市\",\n    \"522702\": \"福泉市\",\n    \"522722\": \"荔波县\",\n    \"522723\": \"贵定县\",\n    \"522725\": \"瓮安县\",\n    \"522726\": \"独山县\",\n    \"522727\": \"平塘县\",\n    \"522728\": \"罗甸县\",\n    \"522729\": \"长顺县\",\n    \"522730\": \"龙里县\",\n    \"522731\": \"惠水县\",\n    \"522732\": \"三都水族自治县\",\n    \"522733\": \"其它区\",\n    \"530000\": \"云南省\",\n    \"530100\": \"昆明市\",\n    \"530102\": \"五华区\",\n    \"530103\": \"盘龙区\",\n    \"530111\": \"官渡区\",\n    \"530112\": \"西山区\",\n    \"530113\": \"东川区\",\n    \"530121\": \"呈贡区\",\n    \"530122\": \"晋宁县\",\n    \"530124\": \"富民县\",\n    \"530125\": \"宜良县\",\n    \"530126\": \"石林彝族自治县\",\n    \"530127\": \"嵩明县\",\n    \"530128\": \"禄劝彝族苗族自治县\",\n    \"530129\": \"寻甸回族彝族自治县\",\n    \"530181\": \"安宁市\",\n    \"530182\": \"其它区\",\n    \"530300\": \"曲靖市\",\n    \"530302\": \"麒麟区\",\n    \"530321\": \"马龙县\",\n    \"530322\": \"陆良县\",\n    \"530323\": \"师宗县\",\n    \"530324\": \"罗平县\",\n    \"530325\": \"富源县\",\n    \"530326\": \"会泽县\",\n    \"530328\": \"沾益县\",\n    \"530381\": \"宣威市\",\n    \"530382\": \"其它区\",\n    \"530400\": \"玉溪市\",\n    \"530402\": \"红塔区\",\n    \"530421\": \"江川县\",\n    \"530422\": \"澄江县\",\n    \"530423\": \"通海县\",\n    \"530424\": \"华宁县\",\n    \"530425\": \"易门县\",\n    \"530426\": \"峨山彝族自治县\",\n    \"530427\": \"新平彝族傣族自治县\",\n    \"530428\": \"元江哈尼族彝族傣族自治县\",\n    \"530429\": \"其它区\",\n    \"530500\": \"保山市\",\n    \"530502\": \"隆阳区\",\n    \"530521\": \"施甸县\",\n    \"530522\": \"腾冲县\",\n    \"530523\": \"龙陵县\",\n    \"530524\": \"昌宁县\",\n    \"530525\": \"其它区\",\n    \"530600\": \"昭通市\",\n    \"530602\": \"昭阳区\",\n    \"530621\": \"鲁甸县\",\n    \"530622\": \"巧家县\",\n    \"530623\": \"盐津县\",\n    \"530624\": \"大关县\",\n    \"530625\": \"永善县\",\n    \"530626\": \"绥江县\",\n    \"530627\": \"镇雄县\",\n    \"530628\": \"彝良县\",\n    \"530629\": \"威信县\",\n    \"530630\": \"水富县\",\n    \"530631\": \"其它区\",\n    \"530700\": \"丽江市\",\n    \"530702\": \"古城区\",\n    \"530721\": \"玉龙纳西族自治县\",\n    \"530722\": \"永胜县\",\n    \"530723\": \"华坪县\",\n    \"530724\": \"宁蒗彝族自治县\",\n    \"530725\": \"其它区\",\n    \"530800\": \"普洱市\",\n    \"530802\": \"思茅区\",\n    \"530821\": \"宁洱哈尼族彝族自治县\",\n    \"530822\": \"墨江哈尼族自治县\",\n    \"530823\": \"景东彝族自治县\",\n    \"530824\": \"景谷傣族彝族自治县\",\n    \"530825\": \"镇沅彝族哈尼族拉祜族自治县\",\n    \"530826\": \"江城哈尼族彝族自治县\",\n    \"530827\": \"孟连傣族拉祜族佤族自治县\",\n    \"530828\": \"澜沧拉祜族自治县\",\n    \"530829\": \"西盟佤族自治县\",\n    \"530830\": \"其它区\",\n    \"530900\": \"临沧市\",\n    \"530902\": \"临翔区\",\n    \"530921\": \"凤庆县\",\n    \"530922\": \"云县\",\n    \"530923\": \"永德县\",\n    \"530924\": \"镇康县\",\n    \"530925\": \"双江拉祜族佤族布朗族傣族自治县\",\n    \"530926\": \"耿马傣族佤族自治县\",\n    \"530927\": \"沧源佤族自治县\",\n    \"530928\": \"其它区\",\n    \"532300\": \"楚雄彝族自治州\",\n    \"532301\": \"楚雄市\",\n    \"532322\": \"双柏县\",\n    \"532323\": \"牟定县\",\n    \"532324\": \"南华县\",\n    \"532325\": \"姚安县\",\n    \"532326\": \"大姚县\",\n    \"532327\": \"永仁县\",\n    \"532328\": \"元谋县\",\n    \"532329\": \"武定县\",\n    \"532331\": \"禄丰县\",\n    \"532332\": \"其它区\",\n    \"532500\": \"红河哈尼族彝族自治州\",\n    \"532501\": \"个旧市\",\n    \"532502\": \"开远市\",\n    \"532522\": \"蒙自市\",\n    \"532523\": \"屏边苗族自治县\",\n    \"532524\": \"建水县\",\n    \"532525\": \"石屏县\",\n    \"532526\": \"弥勒市\",\n    \"532527\": \"泸西县\",\n    \"532528\": \"元阳县\",\n    \"532529\": \"红河县\",\n    \"532530\": \"金平苗族瑶族傣族自治县\",\n    \"532531\": \"绿春县\",\n    \"532532\": \"河口瑶族自治县\",\n    \"532533\": \"其它区\",\n    \"532600\": \"文山壮族苗族自治州\",\n    \"532621\": \"文山市\",\n    \"532622\": \"砚山县\",\n    \"532623\": \"西畴县\",\n    \"532624\": \"麻栗坡县\",\n    \"532625\": \"马关县\",\n    \"532626\": \"丘北县\",\n    \"532627\": \"广南县\",\n    \"532628\": \"富宁县\",\n    \"532629\": \"其它区\",\n    \"532800\": \"西双版纳傣族自治州\",\n    \"532801\": \"景洪市\",\n    \"532822\": \"勐海县\",\n    \"532823\": \"勐腊县\",\n    \"532824\": \"其它区\",\n    \"532900\": \"大理白族自治州\",\n    \"532901\": \"大理市\",\n    \"532922\": \"漾濞彝族自治县\",\n    \"532923\": \"祥云县\",\n    \"532924\": \"宾川县\",\n    \"532925\": \"弥渡县\",\n    \"532926\": \"南涧彝族自治县\",\n    \"532927\": \"巍山彝族回族自治县\",\n    \"532928\": \"永平县\",\n    \"532929\": \"云龙县\",\n    \"532930\": \"洱源县\",\n    \"532931\": \"剑川县\",\n    \"532932\": \"鹤庆县\",\n    \"532933\": \"其它区\",\n    \"533100\": \"德宏傣族景颇族自治州\",\n    \"533102\": \"瑞丽市\",\n    \"533103\": \"芒市\",\n    \"533122\": \"梁河县\",\n    \"533123\": \"盈江县\",\n    \"533124\": \"陇川县\",\n    \"533125\": \"其它区\",\n    \"533300\": \"怒江傈僳族自治州\",\n    \"533321\": \"泸水县\",\n    \"533323\": \"福贡县\",\n    \"533324\": \"贡山独龙族怒族自治县\",\n    \"533325\": \"兰坪白族普米族自治县\",\n    \"533326\": \"其它区\",\n    \"533400\": \"迪庆藏族自治州\",\n    \"533421\": \"香格里拉县\",\n    \"533422\": \"德钦县\",\n    \"533423\": \"维西傈僳族自治县\",\n    \"533424\": \"其它区\",\n    \"540000\": \"西藏自治区\",\n    \"540100\": \"拉萨市\",\n    \"540102\": \"城关区\",\n    \"540121\": \"林周县\",\n    \"540122\": \"当雄县\",\n    \"540123\": \"尼木县\",\n    \"540124\": \"曲水县\",\n    \"540125\": \"堆龙德庆县\",\n    \"540126\": \"达孜县\",\n    \"540127\": \"墨竹工卡县\",\n    \"540128\": \"其它区\",\n    \"542100\": \"昌都地区\",\n    \"542121\": \"昌都县\",\n    \"542122\": \"江达县\",\n    \"542123\": \"贡觉县\",\n    \"542124\": \"类乌齐县\",\n    \"542125\": \"丁青县\",\n    \"542126\": \"察雅县\",\n    \"542127\": \"八宿县\",\n    \"542128\": \"左贡县\",\n    \"542129\": \"芒康县\",\n    \"542132\": \"洛隆县\",\n    \"542133\": \"边坝县\",\n    \"542134\": \"其它区\",\n    \"542200\": \"山南地区\",\n    \"542221\": \"乃东县\",\n    \"542222\": \"扎囊县\",\n    \"542223\": \"贡嘎县\",\n    \"542224\": \"桑日县\",\n    \"542225\": \"琼结县\",\n    \"542226\": \"曲松县\",\n    \"542227\": \"措美县\",\n    \"542228\": \"洛扎县\",\n    \"542229\": \"加查县\",\n    \"542231\": \"隆子县\",\n    \"542232\": \"错那县\",\n    \"542233\": \"浪卡子县\",\n    \"542234\": \"其它区\",\n    \"542300\": \"日喀则地区\",\n    \"542301\": \"日喀则市\",\n    \"542322\": \"南木林县\",\n    \"542323\": \"江孜县\",\n    \"542324\": \"定日县\",\n    \"542325\": \"萨迦县\",\n    \"542326\": \"拉孜县\",\n    \"542327\": \"昂仁县\",\n    \"542328\": \"谢通门县\",\n    \"542329\": \"白朗县\",\n    \"542330\": \"仁布县\",\n    \"542331\": \"康马县\",\n    \"542332\": \"定结县\",\n    \"542333\": \"仲巴县\",\n    \"542334\": \"亚东县\",\n    \"542335\": \"吉隆县\",\n    \"542336\": \"聂拉木县\",\n    \"542337\": \"萨嘎县\",\n    \"542338\": \"岗巴县\",\n    \"542339\": \"其它区\",\n    \"542400\": \"那曲地区\",\n    \"542421\": \"那曲县\",\n    \"542422\": \"嘉黎县\",\n    \"542423\": \"比如县\",\n    \"542424\": \"聂荣县\",\n    \"542425\": \"安多县\",\n    \"542426\": \"申扎县\",\n    \"542427\": \"索县\",\n    \"542428\": \"班戈县\",\n    \"542429\": \"巴青县\",\n    \"542430\": \"尼玛县\",\n    \"542431\": \"其它区\",\n    \"542432\": \"双湖县\",\n    \"542500\": \"阿里地区\",\n    \"542521\": \"普兰县\",\n    \"542522\": \"札达县\",\n    \"542523\": \"噶尔县\",\n    \"542524\": \"日土县\",\n    \"542525\": \"革吉县\",\n    \"542526\": \"改则县\",\n    \"542527\": \"措勤县\",\n    \"542528\": \"其它区\",\n    \"542600\": \"林芝地区\",\n    \"542621\": \"林芝县\",\n    \"542622\": \"工布江达县\",\n    \"542623\": \"米林县\",\n    \"542624\": \"墨脱县\",\n    \"542625\": \"波密县\",\n    \"542626\": \"察隅县\",\n    \"542627\": \"朗县\",\n    \"542628\": \"其它区\",\n    \"610000\": \"陕西省\",\n    \"610100\": \"西安市\",\n    \"610102\": \"新城区\",\n    \"610103\": \"碑林区\",\n    \"610104\": \"莲湖区\",\n    \"610111\": \"灞桥区\",\n    \"610112\": \"未央区\",\n    \"610113\": \"雁塔区\",\n    \"610114\": \"阎良区\",\n    \"610115\": \"临潼区\",\n    \"610116\": \"长安区\",\n    \"610122\": \"蓝田县\",\n    \"610124\": \"周至县\",\n    \"610125\": \"户县\",\n    \"610126\": \"高陵县\",\n    \"610127\": \"其它区\",\n    \"610200\": \"铜川市\",\n    \"610202\": \"王益区\",\n    \"610203\": \"印台区\",\n    \"610204\": \"耀州区\",\n    \"610222\": \"宜君县\",\n    \"610223\": \"其它区\",\n    \"610300\": \"宝鸡市\",\n    \"610302\": \"渭滨区\",\n    \"610303\": \"金台区\",\n    \"610304\": \"陈仓区\",\n    \"610322\": \"凤翔县\",\n    \"610323\": \"岐山县\",\n    \"610324\": \"扶风县\",\n    \"610326\": \"眉县\",\n    \"610327\": \"陇县\",\n    \"610328\": \"千阳县\",\n    \"610329\": \"麟游县\",\n    \"610330\": \"凤县\",\n    \"610331\": \"太白县\",\n    \"610332\": \"其它区\",\n    \"610400\": \"咸阳市\",\n    \"610402\": \"秦都区\",\n    \"610403\": \"杨陵区\",\n    \"610404\": \"渭城区\",\n    \"610422\": \"三原县\",\n    \"610423\": \"泾阳县\",\n    \"610424\": \"乾县\",\n    \"610425\": \"礼泉县\",\n    \"610426\": \"永寿县\",\n    \"610427\": \"彬县\",\n    \"610428\": \"长武县\",\n    \"610429\": \"旬邑县\",\n    \"610430\": \"淳化县\",\n    \"610431\": \"武功县\",\n    \"610481\": \"兴平市\",\n    \"610482\": \"其它区\",\n    \"610500\": \"渭南市\",\n    \"610502\": \"临渭区\",\n    \"610521\": \"华县\",\n    \"610522\": \"潼关县\",\n    \"610523\": \"大荔县\",\n    \"610524\": \"合阳县\",\n    \"610525\": \"澄城县\",\n    \"610526\": \"蒲城县\",\n    \"610527\": \"白水县\",\n    \"610528\": \"富平县\",\n    \"610581\": \"韩城市\",\n    \"610582\": \"华阴市\",\n    \"610583\": \"其它区\",\n    \"610600\": \"延安市\",\n    \"610602\": \"宝塔区\",\n    \"610621\": \"延长县\",\n    \"610622\": \"延川县\",\n    \"610623\": \"子长县\",\n    \"610624\": \"安塞县\",\n    \"610625\": \"志丹县\",\n    \"610626\": \"吴起县\",\n    \"610627\": \"甘泉县\",\n    \"610628\": \"富县\",\n    \"610629\": \"洛川县\",\n    \"610630\": \"宜川县\",\n    \"610631\": \"黄龙县\",\n    \"610632\": \"黄陵县\",\n    \"610633\": \"其它区\",\n    \"610700\": \"汉中市\",\n    \"610702\": \"汉台区\",\n    \"610721\": \"南郑县\",\n    \"610722\": \"城固县\",\n    \"610723\": \"洋县\",\n    \"610724\": \"西乡县\",\n    \"610725\": \"勉县\",\n    \"610726\": \"宁强县\",\n    \"610727\": \"略阳县\",\n    \"610728\": \"镇巴县\",\n    \"610729\": \"留坝县\",\n    \"610730\": \"佛坪县\",\n    \"610731\": \"其它区\",\n    \"610800\": \"榆林市\",\n    \"610802\": \"榆阳区\",\n    \"610821\": \"神木县\",\n    \"610822\": \"府谷县\",\n    \"610823\": \"横山县\",\n    \"610824\": \"靖边县\",\n    \"610825\": \"定边县\",\n    \"610826\": \"绥德县\",\n    \"610827\": \"米脂县\",\n    \"610828\": \"佳县\",\n    \"610829\": \"吴堡县\",\n    \"610830\": \"清涧县\",\n    \"610831\": \"子洲县\",\n    \"610832\": \"其它区\",\n    \"610900\": \"安康市\",\n    \"610902\": \"汉滨区\",\n    \"610921\": \"汉阴县\",\n    \"610922\": \"石泉县\",\n    \"610923\": \"宁陕县\",\n    \"610924\": \"紫阳县\",\n    \"610925\": \"岚皋县\",\n    \"610926\": \"平利县\",\n    \"610927\": \"镇坪县\",\n    \"610928\": \"旬阳县\",\n    \"610929\": \"白河县\",\n    \"610930\": \"其它区\",\n    \"611000\": \"商洛市\",\n    \"611002\": \"商州区\",\n    \"611021\": \"洛南县\",\n    \"611022\": \"丹凤县\",\n    \"611023\": \"商南县\",\n    \"611024\": \"山阳县\",\n    \"611025\": \"镇安县\",\n    \"611026\": \"柞水县\",\n    \"611027\": \"其它区\",\n    \"620000\": \"甘肃省\",\n    \"620100\": \"兰州市\",\n    \"620102\": \"城关区\",\n    \"620103\": \"七里河区\",\n    \"620104\": \"西固区\",\n    \"620105\": \"安宁区\",\n    \"620111\": \"红古区\",\n    \"620121\": \"永登县\",\n    \"620122\": \"皋兰县\",\n    \"620123\": \"榆中县\",\n    \"620124\": \"其它区\",\n    \"620200\": \"嘉峪关市\",\n    \"620300\": \"金昌市\",\n    \"620302\": \"金川区\",\n    \"620321\": \"永昌县\",\n    \"620322\": \"其它区\",\n    \"620400\": \"白银市\",\n    \"620402\": \"白银区\",\n    \"620403\": \"平川区\",\n    \"620421\": \"靖远县\",\n    \"620422\": \"会宁县\",\n    \"620423\": \"景泰县\",\n    \"620424\": \"其它区\",\n    \"620500\": \"天水市\",\n    \"620502\": \"秦州区\",\n    \"620503\": \"麦积区\",\n    \"620521\": \"清水县\",\n    \"620522\": \"秦安县\",\n    \"620523\": \"甘谷县\",\n    \"620524\": \"武山县\",\n    \"620525\": \"张家川回族自治县\",\n    \"620526\": \"其它区\",\n    \"620600\": \"武威市\",\n    \"620602\": \"凉州区\",\n    \"620621\": \"民勤县\",\n    \"620622\": \"古浪县\",\n    \"620623\": \"天祝藏族自治县\",\n    \"620624\": \"其它区\",\n    \"620700\": \"张掖市\",\n    \"620702\": \"甘州区\",\n    \"620721\": \"肃南裕固族自治县\",\n    \"620722\": \"民乐县\",\n    \"620723\": \"临泽县\",\n    \"620724\": \"高台县\",\n    \"620725\": \"山丹县\",\n    \"620726\": \"其它区\",\n    \"620800\": \"平凉市\",\n    \"620802\": \"崆峒区\",\n    \"620821\": \"泾川县\",\n    \"620822\": \"灵台县\",\n    \"620823\": \"崇信县\",\n    \"620824\": \"华亭县\",\n    \"620825\": \"庄浪县\",\n    \"620826\": \"静宁县\",\n    \"620827\": \"其它区\",\n    \"620900\": \"酒泉市\",\n    \"620902\": \"肃州区\",\n    \"620921\": \"金塔县\",\n    \"620922\": \"瓜州县\",\n    \"620923\": \"肃北蒙古族自治县\",\n    \"620924\": \"阿克塞哈萨克族自治县\",\n    \"620981\": \"玉门市\",\n    \"620982\": \"敦煌市\",\n    \"620983\": \"其它区\",\n    \"621000\": \"庆阳市\",\n    \"621002\": \"西峰区\",\n    \"621021\": \"庆城县\",\n    \"621022\": \"环县\",\n    \"621023\": \"华池县\",\n    \"621024\": \"合水县\",\n    \"621025\": \"正宁县\",\n    \"621026\": \"宁县\",\n    \"621027\": \"镇原县\",\n    \"621028\": \"其它区\",\n    \"621100\": \"定西市\",\n    \"621102\": \"安定区\",\n    \"621121\": \"通渭县\",\n    \"621122\": \"陇西县\",\n    \"621123\": \"渭源县\",\n    \"621124\": \"临洮县\",\n    \"621125\": \"漳县\",\n    \"621126\": \"岷县\",\n    \"621127\": \"其它区\",\n    \"621200\": \"陇南市\",\n    \"621202\": \"武都区\",\n    \"621221\": \"成县\",\n    \"621222\": \"文县\",\n    \"621223\": \"宕昌县\",\n    \"621224\": \"康县\",\n    \"621225\": \"西和县\",\n    \"621226\": \"礼县\",\n    \"621227\": \"徽县\",\n    \"621228\": \"两当县\",\n    \"621229\": \"其它区\",\n    \"622900\": \"临夏回族自治州\",\n    \"622901\": \"临夏市\",\n    \"622921\": \"临夏县\",\n    \"622922\": \"康乐县\",\n    \"622923\": \"永靖县\",\n    \"622924\": \"广河县\",\n    \"622925\": \"和政县\",\n    \"622926\": \"东乡族自治县\",\n    \"622927\": \"积石山保安族东乡族撒拉族自治县\",\n    \"622928\": \"其它区\",\n    \"623000\": \"甘南藏族自治州\",\n    \"623001\": \"合作市\",\n    \"623021\": \"临潭县\",\n    \"623022\": \"卓尼县\",\n    \"623023\": \"舟曲县\",\n    \"623024\": \"迭部县\",\n    \"623025\": \"玛曲县\",\n    \"623026\": \"碌曲县\",\n    \"623027\": \"夏河县\",\n    \"623028\": \"其它区\",\n    \"630000\": \"青海省\",\n    \"630100\": \"西宁市\",\n    \"630102\": \"城东区\",\n    \"630103\": \"城中区\",\n    \"630104\": \"城西区\",\n    \"630105\": \"城北区\",\n    \"630121\": \"大通回族土族自治县\",\n    \"630122\": \"湟中县\",\n    \"630123\": \"湟源县\",\n    \"630124\": \"其它区\",\n    \"632100\": \"海东市\",\n    \"632121\": \"平安县\",\n    \"632122\": \"民和回族土族自治县\",\n    \"632123\": \"乐都区\",\n    \"632126\": \"互助土族自治县\",\n    \"632127\": \"化隆回族自治县\",\n    \"632128\": \"循化撒拉族自治县\",\n    \"632129\": \"其它区\",\n    \"632200\": \"海北藏族自治州\",\n    \"632221\": \"门源回族自治县\",\n    \"632222\": \"祁连县\",\n    \"632223\": \"海晏县\",\n    \"632224\": \"刚察县\",\n    \"632225\": \"其它区\",\n    \"632300\": \"黄南藏族自治州\",\n    \"632321\": \"同仁县\",\n    \"632322\": \"尖扎县\",\n    \"632323\": \"泽库县\",\n    \"632324\": \"河南蒙古族自治县\",\n    \"632325\": \"其它区\",\n    \"632500\": \"海南藏族自治州\",\n    \"632521\": \"共和县\",\n    \"632522\": \"同德县\",\n    \"632523\": \"贵德县\",\n    \"632524\": \"兴海县\",\n    \"632525\": \"贵南县\",\n    \"632526\": \"其它区\",\n    \"632600\": \"果洛藏族自治州\",\n    \"632621\": \"玛沁县\",\n    \"632622\": \"班玛县\",\n    \"632623\": \"甘德县\",\n    \"632624\": \"达日县\",\n    \"632625\": \"久治县\",\n    \"632626\": \"玛多县\",\n    \"632627\": \"其它区\",\n    \"632700\": \"玉树藏族自治州\",\n    \"632721\": \"玉树市\",\n    \"632722\": \"杂多县\",\n    \"632723\": \"称多县\",\n    \"632724\": \"治多县\",\n    \"632725\": \"囊谦县\",\n    \"632726\": \"曲麻莱县\",\n    \"632727\": \"其它区\",\n    \"632800\": \"海西蒙古族藏族自治州\",\n    \"632801\": \"格尔木市\",\n    \"632802\": \"德令哈市\",\n    \"632821\": \"乌兰县\",\n    \"632822\": \"都兰县\",\n    \"632823\": \"天峻县\",\n    \"632824\": \"其它区\",\n    \"640000\": \"宁夏回族自治区\",\n    \"640100\": \"银川市\",\n    \"640104\": \"兴庆区\",\n    \"640105\": \"西夏区\",\n    \"640106\": \"金凤区\",\n    \"640121\": \"永宁县\",\n    \"640122\": \"贺兰县\",\n    \"640181\": \"灵武市\",\n    \"640182\": \"其它区\",\n    \"640200\": \"石嘴山市\",\n    \"640202\": \"大武口区\",\n    \"640205\": \"惠农区\",\n    \"640221\": \"平罗县\",\n    \"640222\": \"其它区\",\n    \"640300\": \"吴忠市\",\n    \"640302\": \"利通区\",\n    \"640303\": \"红寺堡区\",\n    \"640323\": \"盐池县\",\n    \"640324\": \"同心县\",\n    \"640381\": \"青铜峡市\",\n    \"640382\": \"其它区\",\n    \"640400\": \"固原市\",\n    \"640402\": \"原州区\",\n    \"640422\": \"西吉县\",\n    \"640423\": \"隆德县\",\n    \"640424\": \"泾源县\",\n    \"640425\": \"彭阳县\",\n    \"640426\": \"其它区\",\n    \"640500\": \"中卫市\",\n    \"640502\": \"沙坡头区\",\n    \"640521\": \"中宁县\",\n    \"640522\": \"海原县\",\n    \"640523\": \"其它区\",\n    \"650000\": \"新疆维吾尔自治区\",\n    \"650100\": \"乌鲁木齐市\",\n    \"650102\": \"天山区\",\n    \"650103\": \"沙依巴克区\",\n    \"650104\": \"新市区\",\n    \"650105\": \"水磨沟区\",\n    \"650106\": \"头屯河区\",\n    \"650107\": \"达坂城区\",\n    \"650109\": \"米东区\",\n    \"650121\": \"乌鲁木齐县\",\n    \"650122\": \"其它区\",\n    \"650200\": \"克拉玛依市\",\n    \"650202\": \"独山子区\",\n    \"650203\": \"克拉玛依区\",\n    \"650204\": \"白碱滩区\",\n    \"650205\": \"乌尔禾区\",\n    \"650206\": \"其它区\",\n    \"652100\": \"吐鲁番地区\",\n    \"652101\": \"吐鲁番市\",\n    \"652122\": \"鄯善县\",\n    \"652123\": \"托克逊县\",\n    \"652124\": \"其它区\",\n    \"652200\": \"哈密地区\",\n    \"652201\": \"哈密市\",\n    \"652222\": \"巴里坤哈萨克自治县\",\n    \"652223\": \"伊吾县\",\n    \"652224\": \"其它区\",\n    \"652300\": \"昌吉回族自治州\",\n    \"652301\": \"昌吉市\",\n    \"652302\": \"阜康市\",\n    \"652323\": \"呼图壁县\",\n    \"652324\": \"玛纳斯县\",\n    \"652325\": \"奇台县\",\n    \"652327\": \"吉木萨尔县\",\n    \"652328\": \"木垒哈萨克自治县\",\n    \"652329\": \"其它区\",\n    \"652700\": \"博尔塔拉蒙古自治州\",\n    \"652701\": \"博乐市\",\n    \"652702\": \"阿拉山口市\",\n    \"652722\": \"精河县\",\n    \"652723\": \"温泉县\",\n    \"652724\": \"其它区\",\n    \"652800\": \"巴音郭楞蒙古自治州\",\n    \"652801\": \"库尔勒市\",\n    \"652822\": \"轮台县\",\n    \"652823\": \"尉犁县\",\n    \"652824\": \"若羌县\",\n    \"652825\": \"且末县\",\n    \"652826\": \"焉耆回族自治县\",\n    \"652827\": \"和静县\",\n    \"652828\": \"和硕县\",\n    \"652829\": \"博湖县\",\n    \"652830\": \"其它区\",\n    \"652900\": \"阿克苏地区\",\n    \"652901\": \"阿克苏市\",\n    \"652922\": \"温宿县\",\n    \"652923\": \"库车县\",\n    \"652924\": \"沙雅县\",\n    \"652925\": \"新和县\",\n    \"652926\": \"拜城县\",\n    \"652927\": \"乌什县\",\n    \"652928\": \"阿瓦提县\",\n    \"652929\": \"柯坪县\",\n    \"652930\": \"其它区\",\n    \"653000\": \"克孜勒苏柯尔克孜自治州\",\n    \"653001\": \"阿图什市\",\n    \"653022\": \"阿克陶县\",\n    \"653023\": \"阿合奇县\",\n    \"653024\": \"乌恰县\",\n    \"653025\": \"其它区\",\n    \"653100\": \"喀什地区\",\n    \"653101\": \"喀什市\",\n    \"653121\": \"疏附县\",\n    \"653122\": \"疏勒县\",\n    \"653123\": \"英吉沙县\",\n    \"653124\": \"泽普县\",\n    \"653125\": \"莎车县\",\n    \"653126\": \"叶城县\",\n    \"653127\": \"麦盖提县\",\n    \"653128\": \"岳普湖县\",\n    \"653129\": \"伽师县\",\n    \"653130\": \"巴楚县\",\n    \"653131\": \"塔什库尔干塔吉克自治县\",\n    \"653132\": \"其它区\",\n    \"653200\": \"和田地区\",\n    \"653201\": \"和田市\",\n    \"653221\": \"和田县\",\n    \"653222\": \"墨玉县\",\n    \"653223\": \"皮山县\",\n    \"653224\": \"洛浦县\",\n    \"653225\": \"策勒县\",\n    \"653226\": \"于田县\",\n    \"653227\": \"民丰县\",\n    \"653228\": \"其它区\",\n    \"654000\": \"伊犁哈萨克自治州\",\n    \"654002\": \"伊宁市\",\n    \"654003\": \"奎屯市\",\n    \"654021\": \"伊宁县\",\n    \"654022\": \"察布查尔锡伯自治县\",\n    \"654023\": \"霍城县\",\n    \"654024\": \"巩留县\",\n    \"654025\": \"新源县\",\n    \"654026\": \"昭苏县\",\n    \"654027\": \"特克斯县\",\n    \"654028\": \"尼勒克县\",\n    \"654029\": \"其它区\",\n    \"654200\": \"塔城地区\",\n    \"654201\": \"塔城市\",\n    \"654202\": \"乌苏市\",\n    \"654221\": \"额敏县\",\n    \"654223\": \"沙湾县\",\n    \"654224\": \"托里县\",\n    \"654225\": \"裕民县\",\n    \"654226\": \"和布克赛尔蒙古自治县\",\n    \"654227\": \"其它区\",\n    \"654300\": \"阿勒泰地区\",\n    \"654301\": \"阿勒泰市\",\n    \"654321\": \"布尔津县\",\n    \"654322\": \"富蕴县\",\n    \"654323\": \"福海县\",\n    \"654324\": \"哈巴河县\",\n    \"654325\": \"青河县\",\n    \"654326\": \"吉木乃县\",\n    \"654327\": \"其它区\",\n    \"659001\": \"石河子市\",\n    \"659002\": \"阿拉尔市\",\n    \"659003\": \"图木舒克市\",\n    \"659004\": \"五家渠市\",\n    \"710000\": \"台湾\",\n    \"710100\": \"台北市\",\n    \"710101\": \"中正区\",\n    \"710102\": \"大同区\",\n    \"710103\": \"中山区\",\n    \"710104\": \"松山区\",\n    \"710105\": \"大安区\",\n    \"710106\": \"万华区\",\n    \"710107\": \"信义区\",\n    \"710108\": \"士林区\",\n    \"710109\": \"北投区\",\n    \"710110\": \"内湖区\",\n    \"710111\": \"南港区\",\n    \"710112\": \"文山区\",\n    \"710113\": \"其它区\",\n    \"710200\": \"高雄市\",\n    \"710201\": \"新兴区\",\n    \"710202\": \"前金区\",\n    \"710203\": \"芩雅区\",\n    \"710204\": \"盐埕区\",\n    \"710205\": \"鼓山区\",\n    \"710206\": \"旗津区\",\n    \"710207\": \"前镇区\",\n    \"710208\": \"三民区\",\n    \"710209\": \"左营区\",\n    \"710210\": \"楠梓区\",\n    \"710211\": \"小港区\",\n    \"710212\": \"其它区\",\n    \"710241\": \"苓雅区\",\n    \"710242\": \"仁武区\",\n    \"710243\": \"大社区\",\n    \"710244\": \"冈山区\",\n    \"710245\": \"路竹区\",\n    \"710246\": \"阿莲区\",\n    \"710247\": \"田寮区\",\n    \"710248\": \"燕巢区\",\n    \"710249\": \"桥头区\",\n    \"710250\": \"梓官区\",\n    \"710251\": \"弥陀区\",\n    \"710252\": \"永安区\",\n    \"710253\": \"湖内区\",\n    \"710254\": \"凤山区\",\n    \"710255\": \"大寮区\",\n    \"710256\": \"林园区\",\n    \"710257\": \"鸟松区\",\n    \"710258\": \"大树区\",\n    \"710259\": \"旗山区\",\n    \"710260\": \"美浓区\",\n    \"710261\": \"六龟区\",\n    \"710262\": \"内门区\",\n    \"710263\": \"杉林区\",\n    \"710264\": \"甲仙区\",\n    \"710265\": \"桃源区\",\n    \"710266\": \"那玛夏区\",\n    \"710267\": \"茂林区\",\n    \"710268\": \"茄萣区\",\n    \"710300\": \"台南市\",\n    \"710301\": \"中西区\",\n    \"710302\": \"东区\",\n    \"710303\": \"南区\",\n    \"710304\": \"北区\",\n    \"710305\": \"安平区\",\n    \"710306\": \"安南区\",\n    \"710307\": \"其它区\",\n    \"710339\": \"永康区\",\n    \"710340\": \"归仁区\",\n    \"710341\": \"新化区\",\n    \"710342\": \"左镇区\",\n    \"710343\": \"玉井区\",\n    \"710344\": \"楠西区\",\n    \"710345\": \"南化区\",\n    \"710346\": \"仁德区\",\n    \"710347\": \"关庙区\",\n    \"710348\": \"龙崎区\",\n    \"710349\": \"官田区\",\n    \"710350\": \"麻豆区\",\n    \"710351\": \"佳里区\",\n    \"710352\": \"西港区\",\n    \"710353\": \"七股区\",\n    \"710354\": \"将军区\",\n    \"710355\": \"学甲区\",\n    \"710356\": \"北门区\",\n    \"710357\": \"新营区\",\n    \"710358\": \"后壁区\",\n    \"710359\": \"白河区\",\n    \"710360\": \"东山区\",\n    \"710361\": \"六甲区\",\n    \"710362\": \"下营区\",\n    \"710363\": \"柳营区\",\n    \"710364\": \"盐水区\",\n    \"710365\": \"善化区\",\n    \"710366\": \"大内区\",\n    \"710367\": \"山上区\",\n    \"710368\": \"新市区\",\n    \"710369\": \"安定区\",\n    \"710400\": \"台中市\",\n    \"710401\": \"中区\",\n    \"710402\": \"东区\",\n    \"710403\": \"南区\",\n    \"710404\": \"西区\",\n    \"710405\": \"北区\",\n    \"710406\": \"北屯区\",\n    \"710407\": \"西屯区\",\n    \"710408\": \"南屯区\",\n    \"710409\": \"其它区\",\n    \"710431\": \"太平区\",\n    \"710432\": \"大里区\",\n    \"710433\": \"雾峰区\",\n    \"710434\": \"乌日区\",\n    \"710435\": \"丰原区\",\n    \"710436\": \"后里区\",\n    \"710437\": \"石冈区\",\n    \"710438\": \"东势区\",\n    \"710439\": \"和平区\",\n    \"710440\": \"新社区\",\n    \"710441\": \"潭子区\",\n    \"710442\": \"大雅区\",\n    \"710443\": \"神冈区\",\n    \"710444\": \"大肚区\",\n    \"710445\": \"沙鹿区\",\n    \"710446\": \"龙井区\",\n    \"710447\": \"梧栖区\",\n    \"710448\": \"清水区\",\n    \"710449\": \"大甲区\",\n    \"710450\": \"外埔区\",\n    \"710451\": \"大安区\",\n    \"710500\": \"金门县\",\n    \"710507\": \"金沙镇\",\n    \"710508\": \"金湖镇\",\n    \"710509\": \"金宁乡\",\n    \"710510\": \"金城镇\",\n    \"710511\": \"烈屿乡\",\n    \"710512\": \"乌坵乡\",\n    \"710600\": \"南投县\",\n    \"710614\": \"南投市\",\n    \"710615\": \"中寮乡\",\n    \"710616\": \"草屯镇\",\n    \"710617\": \"国姓乡\",\n    \"710618\": \"埔里镇\",\n    \"710619\": \"仁爱乡\",\n    \"710620\": \"名间乡\",\n    \"710621\": \"集集镇\",\n    \"710622\": \"水里乡\",\n    \"710623\": \"鱼池乡\",\n    \"710624\": \"信义乡\",\n    \"710625\": \"竹山镇\",\n    \"710626\": \"鹿谷乡\",\n    \"710700\": \"基隆市\",\n    \"710701\": \"仁爱区\",\n    \"710702\": \"信义区\",\n    \"710703\": \"中正区\",\n    \"710704\": \"中山区\",\n    \"710705\": \"安乐区\",\n    \"710706\": \"暖暖区\",\n    \"710707\": \"七堵区\",\n    \"710708\": \"其它区\",\n    \"710800\": \"新竹市\",\n    \"710801\": \"东区\",\n    \"710802\": \"北区\",\n    \"710803\": \"香山区\",\n    \"710804\": \"其它区\",\n    \"710900\": \"嘉义市\",\n    \"710901\": \"东区\",\n    \"710902\": \"西区\",\n    \"710903\": \"其它区\",\n    \"711100\": \"新北市\",\n    \"711130\": \"万里区\",\n    \"711131\": \"金山区\",\n    \"711132\": \"板桥区\",\n    \"711133\": \"汐止区\",\n    \"711134\": \"深坑区\",\n    \"711135\": \"石碇区\",\n    \"711136\": \"瑞芳区\",\n    \"711137\": \"平溪区\",\n    \"711138\": \"双溪区\",\n    \"711139\": \"贡寮区\",\n    \"711140\": \"新店区\",\n    \"711141\": \"坪林区\",\n    \"711142\": \"乌来区\",\n    \"711143\": \"永和区\",\n    \"711144\": \"中和区\",\n    \"711145\": \"土城区\",\n    \"711146\": \"三峡区\",\n    \"711147\": \"树林区\",\n    \"711148\": \"莺歌区\",\n    \"711149\": \"三重区\",\n    \"711150\": \"新庄区\",\n    \"711151\": \"泰山区\",\n    \"711152\": \"林口区\",\n    \"711153\": \"芦洲区\",\n    \"711154\": \"五股区\",\n    \"711155\": \"八里区\",\n    \"711156\": \"淡水区\",\n    \"711157\": \"三芝区\",\n    \"711158\": \"石门区\",\n    \"711200\": \"宜兰县\",\n    \"711214\": \"宜兰市\",\n    \"711215\": \"头城镇\",\n    \"711216\": \"礁溪乡\",\n    \"711217\": \"壮围乡\",\n    \"711218\": \"员山乡\",\n    \"711219\": \"罗东镇\",\n    \"711220\": \"三星乡\",\n    \"711221\": \"大同乡\",\n    \"711222\": \"五结乡\",\n    \"711223\": \"冬山乡\",\n    \"711224\": \"苏澳镇\",\n    \"711225\": \"南澳乡\",\n    \"711226\": \"钓鱼台\",\n    \"711300\": \"新竹县\",\n    \"711314\": \"竹北市\",\n    \"711315\": \"湖口乡\",\n    \"711316\": \"新丰乡\",\n    \"711317\": \"新埔镇\",\n    \"711318\": \"关西镇\",\n    \"711319\": \"芎林乡\",\n    \"711320\": \"宝山乡\",\n    \"711321\": \"竹东镇\",\n    \"711322\": \"五峰乡\",\n    \"711323\": \"横山乡\",\n    \"711324\": \"尖石乡\",\n    \"711325\": \"北埔乡\",\n    \"711326\": \"峨眉乡\",\n    \"711400\": \"桃园县\",\n    \"711414\": \"中坜市\",\n    \"711415\": \"平镇市\",\n    \"711416\": \"龙潭乡\",\n    \"711417\": \"杨梅市\",\n    \"711418\": \"新屋乡\",\n    \"711419\": \"观音乡\",\n    \"711420\": \"桃园市\",\n    \"711421\": \"龟山乡\",\n    \"711422\": \"八德市\",\n    \"711423\": \"大溪镇\",\n    \"711424\": \"复兴乡\",\n    \"711425\": \"大园乡\",\n    \"711426\": \"芦竹乡\",\n    \"711500\": \"苗栗县\",\n    \"711519\": \"竹南镇\",\n    \"711520\": \"头份镇\",\n    \"711521\": \"三湾乡\",\n    \"711522\": \"南庄乡\",\n    \"711523\": \"狮潭乡\",\n    \"711524\": \"后龙镇\",\n    \"711525\": \"通霄镇\",\n    \"711526\": \"苑里镇\",\n    \"711527\": \"苗栗市\",\n    \"711528\": \"造桥乡\",\n    \"711529\": \"头屋乡\",\n    \"711530\": \"公馆乡\",\n    \"711531\": \"大湖乡\",\n    \"711532\": \"泰安乡\",\n    \"711533\": \"铜锣乡\",\n    \"711534\": \"三义乡\",\n    \"711535\": \"西湖乡\",\n    \"711536\": \"卓兰镇\",\n    \"711700\": \"彰化县\",\n    \"711727\": \"彰化市\",\n    \"711728\": \"芬园乡\",\n    \"711729\": \"花坛乡\",\n    \"711730\": \"秀水乡\",\n    \"711731\": \"鹿港镇\",\n    \"711732\": \"福兴乡\",\n    \"711733\": \"线西乡\",\n    \"711734\": \"和美镇\",\n    \"711735\": \"伸港乡\",\n    \"711736\": \"员林镇\",\n    \"711737\": \"社头乡\",\n    \"711738\": \"永靖乡\",\n    \"711739\": \"埔心乡\",\n    \"711740\": \"溪湖镇\",\n    \"711741\": \"大村乡\",\n    \"711742\": \"埔盐乡\",\n    \"711743\": \"田中镇\",\n    \"711744\": \"北斗镇\",\n    \"711745\": \"田尾乡\",\n    \"711746\": \"埤头乡\",\n    \"711747\": \"溪州乡\",\n    \"711748\": \"竹塘乡\",\n    \"711749\": \"二林镇\",\n    \"711750\": \"大城乡\",\n    \"711751\": \"芳苑乡\",\n    \"711752\": \"二水乡\",\n    \"711900\": \"嘉义县\",\n    \"711919\": \"番路乡\",\n    \"711920\": \"梅山乡\",\n    \"711921\": \"竹崎乡\",\n    \"711922\": \"阿里山乡\",\n    \"711923\": \"中埔乡\",\n    \"711924\": \"大埔乡\",\n    \"711925\": \"水上乡\",\n    \"711926\": \"鹿草乡\",\n    \"711927\": \"太保市\",\n    \"711928\": \"朴子市\",\n    \"711929\": \"东石乡\",\n    \"711930\": \"六脚乡\",\n    \"711931\": \"新港乡\",\n    \"711932\": \"民雄乡\",\n    \"711933\": \"大林镇\",\n    \"711934\": \"溪口乡\",\n    \"711935\": \"义竹乡\",\n    \"711936\": \"布袋镇\",\n    \"712100\": \"云林县\",\n    \"712121\": \"斗南镇\",\n    \"712122\": \"大埤乡\",\n    \"712123\": \"虎尾镇\",\n    \"712124\": \"土库镇\",\n    \"712125\": \"褒忠乡\",\n    \"712126\": \"东势乡\",\n    \"712127\": \"台西乡\",\n    \"712128\": \"仑背乡\",\n    \"712129\": \"麦寮乡\",\n    \"712130\": \"斗六市\",\n    \"712131\": \"林内乡\",\n    \"712132\": \"古坑乡\",\n    \"712133\": \"莿桐乡\",\n    \"712134\": \"西螺镇\",\n    \"712135\": \"二仑乡\",\n    \"712136\": \"北港镇\",\n    \"712137\": \"水林乡\",\n    \"712138\": \"口湖乡\",\n    \"712139\": \"四湖乡\",\n    \"712140\": \"元长乡\",\n    \"712400\": \"屏东县\",\n    \"712434\": \"屏东市\",\n    \"712435\": \"三地门乡\",\n    \"712436\": \"雾台乡\",\n    \"712437\": \"玛家乡\",\n    \"712438\": \"九如乡\",\n    \"712439\": \"里港乡\",\n    \"712440\": \"高树乡\",\n    \"712441\": \"盐埔乡\",\n    \"712442\": \"长治乡\",\n    \"712443\": \"麟洛乡\",\n    \"712444\": \"竹田乡\",\n    \"712445\": \"内埔乡\",\n    \"712446\": \"万丹乡\",\n    \"712447\": \"潮州镇\",\n    \"712448\": \"泰武乡\",\n    \"712449\": \"来义乡\",\n    \"712450\": \"万峦乡\",\n    \"712451\": \"崁顶乡\",\n    \"712452\": \"新埤乡\",\n    \"712453\": \"南州乡\",\n    \"712454\": \"林边乡\",\n    \"712455\": \"东港镇\",\n    \"712456\": \"琉球乡\",\n    \"712457\": \"佳冬乡\",\n    \"712458\": \"新园乡\",\n    \"712459\": \"枋寮乡\",\n    \"712460\": \"枋山乡\",\n    \"712461\": \"春日乡\",\n    \"712462\": \"狮子乡\",\n    \"712463\": \"车城乡\",\n    \"712464\": \"牡丹乡\",\n    \"712465\": \"恒春镇\",\n    \"712466\": \"满州乡\",\n    \"712500\": \"台东县\",\n    \"712517\": \"台东市\",\n    \"712518\": \"绿岛乡\",\n    \"712519\": \"兰屿乡\",\n    \"712520\": \"延平乡\",\n    \"712521\": \"卑南乡\",\n    \"712522\": \"鹿野乡\",\n    \"712523\": \"关山镇\",\n    \"712524\": \"海端乡\",\n    \"712525\": \"池上乡\",\n    \"712526\": \"东河乡\",\n    \"712527\": \"成功镇\",\n    \"712528\": \"长滨乡\",\n    \"712529\": \"金峰乡\",\n    \"712530\": \"大武乡\",\n    \"712531\": \"达仁乡\",\n    \"712532\": \"太麻里乡\",\n    \"712600\": \"花莲县\",\n    \"712615\": \"花莲市\",\n    \"712616\": \"新城乡\",\n    \"712617\": \"太鲁阁\",\n    \"712618\": \"秀林乡\",\n    \"712619\": \"吉安乡\",\n    \"712620\": \"寿丰乡\",\n    \"712621\": \"凤林镇\",\n    \"712622\": \"光复乡\",\n    \"712623\": \"丰滨乡\",\n    \"712624\": \"瑞穗乡\",\n    \"712625\": \"万荣乡\",\n    \"712626\": \"玉里镇\",\n    \"712627\": \"卓溪乡\",\n    \"712628\": \"富里乡\",\n    \"712700\": \"澎湖县\",\n    \"712707\": \"马公市\",\n    \"712708\": \"西屿乡\",\n    \"712709\": \"望安乡\",\n    \"712710\": \"七美乡\",\n    \"712711\": \"白沙乡\",\n    \"712712\": \"湖西乡\",\n    \"712800\": \"连江县\",\n    \"712805\": \"南竿乡\",\n    \"712806\": \"北竿乡\",\n    \"712807\": \"莒光乡\",\n    \"712808\": \"东引乡\",\n    \"810000\": \"香港特别行政区\",\n    \"810100\": \"香港岛\",\n    \"810101\": \"中西区\",\n    \"810102\": \"湾仔\",\n    \"810103\": \"东区\",\n    \"810104\": \"南区\",\n    \"810200\": \"九龙\",\n    \"810201\": \"九龙城区\",\n    \"810202\": \"油尖旺区\",\n    \"810203\": \"深水埗区\",\n    \"810204\": \"黄大仙区\",\n    \"810205\": \"观塘区\",\n    \"810300\": \"新界\",\n    \"810301\": \"北区\",\n    \"810302\": \"大埔区\",\n    \"810303\": \"沙田区\",\n    \"810304\": \"西贡区\",\n    \"810305\": \"元朗区\",\n    \"810306\": \"屯门区\",\n    \"810307\": \"荃湾区\",\n    \"810308\": \"葵青区\",\n    \"810309\": \"离岛区\",\n    \"820000\": \"澳门特别行政区\",\n    \"820100\": \"澳门半岛\",\n    \"820200\": \"离岛\",\n    \"990000\": \"海外\",\n    \"990100\": \"海外\"\n}\n\n// id pid/parentId name children\nfunction tree(list) {\n    var mapped = {}\n    for (var i = 0, item; i < list.length; i++) {\n        item = list[i]\n        if (!item || !item.id) continue\n        mapped[item.id] = item\n    }\n\n    var result = []\n    for (var ii = 0; ii < list.length; ii++) {\n        item = list[ii]\n\n        if (!item) continue\n            /* jshint -W041 */\n        if (item.pid == undefined && item.parentId == undefined) {\n            result.push(item)\n            continue\n        }\n        var parent = mapped[item.pid] || mapped[item.parentId]\n        if (!parent) continue\n        if (!parent.children) parent.children = []\n        parent.children.push(item)\n    }\n    return result\n}\n\nvar DICT_FIXED = function() {\n    var fixed = []\n    for (var id in DICT) {\n        var pid = id.slice(2, 6) === '0000' ? undefined :\n            id.slice(4, 6) == '00' ? (id.slice(0, 2) + '0000') :\n            id.slice(0, 4) + '00'\n        fixed.push({\n            id: id,\n            pid: pid,\n            name: DICT[id]\n        })\n    }\n    return tree(fixed)\n}()\n\nmodule.exports = DICT_FIXED\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Parser = __webpack_require__(22)\nvar Handler = __webpack_require__(23)\nmodule.exports = {\n\tParser: Parser,\n\tHandler: Handler\n}\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(24)\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* global require, module, window */\nvar Handler = __webpack_require__(10)\nvar Util = __webpack_require__(0)\nvar Random = __webpack_require__(2)\nvar RE = __webpack_require__(7)\nvar toJSONSchema = __webpack_require__(8)\nvar valid = __webpack_require__(25)\n\nvar XHR\nif (typeof window !== 'undefined') XHR = __webpack_require__(27)\n\n/*!\n    Mock - 模拟请求 & 模拟数据\n    https://github.com/nuysoft/Mock\n    墨智 mozhi.gyy@taobao.com nuysoft@gmail.com\n*/\nvar Mock = {\n    Handler: Handler,\n    Random: Random,\n    Util: Util,\n    XHR: XHR,\n    RE: RE,\n    toJSONSchema: toJSONSchema,\n    valid: valid,\n    heredoc: Util.heredoc,\n    setup: function(settings) {\n        return XHR.setup(settings)\n    },\n    _mocked: {}\n}\n\nMock.version = '1.0.1-beta3'\n\n// 避免循环依赖\nif (XHR) XHR.Mock = Mock\n\n/*\n    * Mock.mock( template )\n    * Mock.mock( function() )\n    * Mock.mock( rurl, template )\n    * Mock.mock( rurl, function(options) )\n    * Mock.mock( rurl, rtype, template )\n    * Mock.mock( rurl, rtype, function(options) )\n\n    根据数据模板生成模拟数据。\n*/\nMock.mock = function(rurl, rtype, template) {\n    // Mock.mock(template)\n    if (arguments.length === 1) {\n        return Handler.gen(rurl)\n    }\n    // Mock.mock(rurl, template)\n    if (arguments.length === 2) {\n        template = rtype\n        rtype = undefined\n    }\n    // 拦截 XHR\n    if (XHR) window.XMLHttpRequest = XHR\n    Mock._mocked[rurl + (rtype || '')] = {\n        rurl: rurl,\n        rtype: rtype,\n        template: template\n    }\n    return Mock\n}\n\nmodule.exports = Mock\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* \n    ## Handler\n\n    处理数据模板。\n    \n    * Handler.gen( template, name?, context? )\n\n        入口方法。\n\n    * Data Template Definition, DTD\n        \n        处理数据模板定义。\n\n        * Handler.array( options )\n        * Handler.object( options )\n        * Handler.number( options )\n        * Handler.boolean( options )\n        * Handler.string( options )\n        * Handler.function( options )\n        * Handler.regexp( options )\n        \n        处理路径（相对和绝对）。\n\n        * Handler.getValueByKeyPath( key, options )\n\n    * Data Placeholder Definition, DPD\n\n        处理数据占位符定义\n\n        * Handler.placeholder( placeholder, context, templateContext, options )\n\n*/\n\nvar Constant = __webpack_require__(1)\nvar Util = __webpack_require__(0)\nvar Parser = __webpack_require__(3)\nvar Random = __webpack_require__(2)\nvar RE = __webpack_require__(7)\n\nvar Handler = {\n    extend: Util.extend\n}\n\n/*\n    template        属性值（即数据模板）\n    name            属性名\n    context         数据上下文，生成后的数据\n    templateContext 模板上下文，\n\n    Handle.gen(template, name, options)\n    context\n        currentContext, templateCurrentContext, \n        path, templatePath\n        root, templateRoot\n*/\nHandler.gen = function(template, name, context) {\n    /* jshint -W041 */\n    name = name == undefined ? '' : (name + '')\n\n    context = context || {}\n    context = {\n            // 当前访问路径，只有属性名，不包括生成规则\n            path: context.path || [Constant.GUID],\n            templatePath: context.templatePath || [Constant.GUID++],\n            // 最终属性值的上下文\n            currentContext: context.currentContext,\n            // 属性值模板的上下文\n            templateCurrentContext: context.templateCurrentContext || template,\n            // 最终值的根\n            root: context.root || context.currentContext,\n            // 模板的根\n            templateRoot: context.templateRoot || context.templateCurrentContext || template\n        }\n        // console.log('path:', context.path.join('.'), template)\n\n    var rule = Parser.parse(name)\n    var type = Util.type(template)\n    var data\n\n    if (Handler[type]) {\n        data = Handler[type]({\n            // 属性值类型\n            type: type,\n            // 属性值模板\n            template: template,\n            // 属性名 + 生成规则\n            name: name,\n            // 属性名\n            parsedName: name ? name.replace(Constant.RE_KEY, '$1') : name,\n\n            // 解析后的生成规则\n            rule: rule,\n            // 相关上下文\n            context: context\n        })\n\n        if (!context.root) context.root = data\n        return data\n    }\n\n    return template\n}\n\nHandler.extend({\n    array: function(options) {\n        var result = [],\n            i, ii;\n\n        // 'name|1': []\n        // 'name|count': []\n        // 'name|min-max': []\n        if (options.template.length === 0) return result\n\n        // 'arr': [{ 'email': '@EMAIL' }, { 'email': '@EMAIL' }]\n        if (!options.rule.parameters) {\n            for (i = 0; i < options.template.length; i++) {\n                options.context.path.push(i)\n                options.context.templatePath.push(i)\n                result.push(\n                    Handler.gen(options.template[i], i, {\n                        path: options.context.path,\n                        templatePath: options.context.templatePath,\n                        currentContext: result,\n                        templateCurrentContext: options.template,\n                        root: options.context.root || result,\n                        templateRoot: options.context.templateRoot || options.template\n                    })\n                )\n                options.context.path.pop()\n                options.context.templatePath.pop()\n            }\n        } else {\n            // 'method|1': ['GET', 'POST', 'HEAD', 'DELETE']\n            if (options.rule.min === 1 && options.rule.max === undefined) {\n                // fix #17\n                options.context.path.push(options.name)\n                options.context.templatePath.push(options.name)\n                result = Random.pick(\n                    Handler.gen(options.template, undefined, {\n                        path: options.context.path,\n                        templatePath: options.context.templatePath,\n                        currentContext: result,\n                        templateCurrentContext: options.template,\n                        root: options.context.root || result,\n                        templateRoot: options.context.templateRoot || options.template\n                    })\n                )\n                options.context.path.pop()\n                options.context.templatePath.pop()\n            } else {\n                // 'data|+1': [{}, {}]\n                if (options.rule.parameters[2]) {\n                    options.template.__order_index = options.template.__order_index || 0\n\n                    options.context.path.push(options.name)\n                    options.context.templatePath.push(options.name)\n                    result = Handler.gen(options.template, undefined, {\n                        path: options.context.path,\n                        templatePath: options.context.templatePath,\n                        currentContext: result,\n                        templateCurrentContext: options.template,\n                        root: options.context.root || result,\n                        templateRoot: options.context.templateRoot || options.template\n                    })[\n                        options.template.__order_index % options.template.length\n                    ]\n\n                    options.template.__order_index += +options.rule.parameters[2]\n\n                    options.context.path.pop()\n                    options.context.templatePath.pop()\n\n                } else {\n                    // 'data|1-10': [{}]\n                    for (i = 0; i < options.rule.count; i++) {\n                        // 'data|1-10': [{}, {}]\n                        for (ii = 0; ii < options.template.length; ii++) {\n                            options.context.path.push(result.length)\n                            options.context.templatePath.push(ii)\n                            result.push(\n                                Handler.gen(options.template[ii], result.length, {\n                                    path: options.context.path,\n                                    templatePath: options.context.templatePath,\n                                    currentContext: result,\n                                    templateCurrentContext: options.template,\n                                    root: options.context.root || result,\n                                    templateRoot: options.context.templateRoot || options.template\n                                })\n                            )\n                            options.context.path.pop()\n                            options.context.templatePath.pop()\n                        }\n                    }\n                }\n            }\n        }\n        return result\n    },\n    object: function(options) {\n        var result = {},\n            keys, fnKeys, key, parsedKey, inc, i;\n\n        // 'obj|min-max': {}\n        /* jshint -W041 */\n        if (options.rule.min != undefined) {\n            keys = Util.keys(options.template)\n            keys = Random.shuffle(keys)\n            keys = keys.slice(0, options.rule.count)\n            for (i = 0; i < keys.length; i++) {\n                key = keys[i]\n                parsedKey = key.replace(Constant.RE_KEY, '$1')\n                options.context.path.push(parsedKey)\n                options.context.templatePath.push(key)\n                result[parsedKey] = Handler.gen(options.template[key], key, {\n                    path: options.context.path,\n                    templatePath: options.context.templatePath,\n                    currentContext: result,\n                    templateCurrentContext: options.template,\n                    root: options.context.root || result,\n                    templateRoot: options.context.templateRoot || options.template\n                })\n                options.context.path.pop()\n                options.context.templatePath.pop()\n            }\n\n        } else {\n            // 'obj': {}\n            keys = []\n            fnKeys = [] // #25 改变了非函数属性的顺序，查找起来不方便\n            for (key in options.template) {\n                (typeof options.template[key] === 'function' ? fnKeys : keys).push(key)\n            }\n            keys = keys.concat(fnKeys)\n\n            /*\n                会改变非函数属性的顺序\n                keys = Util.keys(options.template)\n                keys.sort(function(a, b) {\n                    var afn = typeof options.template[a] === 'function'\n                    var bfn = typeof options.template[b] === 'function'\n                    if (afn === bfn) return 0\n                    if (afn && !bfn) return 1\n                    if (!afn && bfn) return -1\n                })\n            */\n\n            for (i = 0; i < keys.length; i++) {\n                key = keys[i]\n                parsedKey = key.replace(Constant.RE_KEY, '$1')\n                options.context.path.push(parsedKey)\n                options.context.templatePath.push(key)\n                result[parsedKey] = Handler.gen(options.template[key], key, {\n                    path: options.context.path,\n                    templatePath: options.context.templatePath,\n                    currentContext: result,\n                    templateCurrentContext: options.template,\n                    root: options.context.root || result,\n                    templateRoot: options.context.templateRoot || options.template\n                })\n                options.context.path.pop()\n                options.context.templatePath.pop()\n                    // 'id|+1': 1\n                inc = key.match(Constant.RE_KEY)\n                if (inc && inc[2] && Util.type(options.template[key]) === 'number') {\n                    options.template[key] += parseInt(inc[2], 10)\n                }\n            }\n        }\n        return result\n    },\n    number: function(options) {\n        var result, parts;\n        if (options.rule.decimal) { // float\n            options.template += ''\n            parts = options.template.split('.')\n                // 'float1|.1-10': 10,\n                // 'float2|1-100.1-10': 1,\n                // 'float3|999.1-10': 1,\n                // 'float4|.3-10': 123.123,\n            parts[0] = options.rule.range ? options.rule.count : parts[0]\n            parts[1] = (parts[1] || '').slice(0, options.rule.dcount)\n            while (parts[1].length < options.rule.dcount) {\n                parts[1] += (\n                    // 最后一位不能为 0：如果最后一位为 0，会被 JS 引擎忽略掉。\n                    (parts[1].length < options.rule.dcount - 1) ? Random.character('number') : Random.character('123456789')\n                )\n            }\n            result = parseFloat(parts.join('.'), 10)\n        } else { // integer\n            // 'grade1|1-100': 1,\n            result = options.rule.range && !options.rule.parameters[2] ? options.rule.count : options.template\n        }\n        return result\n    },\n    boolean: function(options) {\n        var result;\n        // 'prop|multiple': false, 当前值是相反值的概率倍数\n        // 'prop|probability-probability': false, 当前值与相反值的概率\n        result = options.rule.parameters ? Random.bool(options.rule.min, options.rule.max, options.template) : options.template\n        return result\n    },\n    string: function(options) {\n        var result = '',\n            i, placeholders, ph, phed;\n        if (options.template.length) {\n\n            //  'foo': '★',\n            /* jshint -W041 */\n            if (options.rule.count == undefined) {\n                result += options.template\n            }\n\n            // 'star|1-5': '★',\n            for (i = 0; i < options.rule.count; i++) {\n                result += options.template\n            }\n            // 'email|1-10': '@EMAIL, ',\n            placeholders = result.match(Constant.RE_PLACEHOLDER) || [] // A-Z_0-9 > \\w_\n            for (i = 0; i < placeholders.length; i++) {\n                ph = placeholders[i]\n\n                // 遇到转义斜杠，不需要解析占位符\n                if (/^\\\\/.test(ph)) {\n                    placeholders.splice(i--, 1)\n                    continue\n                }\n\n                phed = Handler.placeholder(ph, options.context.currentContext, options.context.templateCurrentContext, options)\n\n                // 只有一个占位符，并且没有其他字符\n                if (placeholders.length === 1 && ph === result && typeof phed !== typeof result) { // \n                    result = phed\n                    break\n\n                    if (Util.isNumeric(phed)) {\n                        result = parseFloat(phed, 10)\n                        break\n                    }\n                    if (/^(true|false)$/.test(phed)) {\n                        result = phed === 'true' ? true :\n                            phed === 'false' ? false :\n                            phed // 已经是布尔值\n                        break\n                    }\n                }\n                result = result.replace(ph, phed)\n            }\n\n        } else {\n            // 'ASCII|1-10': '',\n            // 'ASCII': '',\n            result = options.rule.range ? Random.string(options.rule.count) : options.template\n        }\n        return result\n    },\n    'function': function(options) {\n        // ( context, options )\n        return options.template.call(options.context.currentContext, options)\n    },\n    'regexp': function(options) {\n        var source = ''\n\n        // 'name': /regexp/,\n        /* jshint -W041 */\n        if (options.rule.count == undefined) {\n            source += options.template.source // regexp.source\n        }\n\n        // 'name|1-5': /regexp/,\n        for (var i = 0; i < options.rule.count; i++) {\n            source += options.template.source\n        }\n\n        return RE.Handler.gen(\n            RE.Parser.parse(\n                source\n            )\n        )\n    }\n})\n\nHandler.extend({\n    _all: function() {\n        var re = {};\n        for (var key in Random) re[key.toLowerCase()] = key\n        return re\n    },\n    // 处理占位符，转换为最终值\n    placeholder: function(placeholder, obj, templateContext, options) {\n        // console.log(options.context.path)\n        // 1 key, 2 params\n        Constant.RE_PLACEHOLDER.exec('')\n        var parts = Constant.RE_PLACEHOLDER.exec(placeholder),\n            key = parts && parts[1],\n            lkey = key && key.toLowerCase(),\n            okey = this._all()[lkey],\n            params = parts && parts[2] || ''\n        var pathParts = this.splitPathToArray(key)\n\n        // 解析占位符的参数\n        try {\n            // 1. 尝试保持参数的类型\n            /*\n                #24 [Window Firefox 30.0 引用 占位符 抛错](https://github.com/nuysoft/Mock/issues/24)\n                [BX9056: 各浏览器下 window.eval 方法的执行上下文存在差异](http://www.w3help.org/zh-cn/causes/BX9056)\n                应该属于 Window Firefox 30.0 的 BUG\n            */\n            /* jshint -W061 */\n            params = eval('(function(){ return [].splice.call(arguments, 0 ) })(' + params + ')')\n        } catch (error) {\n            // 2. 如果失败，只能解析为字符串\n            // console.error(error)\n            // if (error instanceof ReferenceError) params = parts[2].split(/,\\s*/);\n            // else throw error\n            params = parts[2].split(/,\\s*/)\n        }\n\n        // 占位符优先引用数据模板中的属性\n        if (obj && (key in obj)) return obj[key]\n\n        // @index @key\n        // if (Constant.RE_INDEX.test(key)) return +options.name\n        // if (Constant.RE_KEY.test(key)) return options.name\n\n        // 绝对路径 or 相对路径\n        if (\n            key.charAt(0) === '/' ||\n            pathParts.length > 1\n        ) return this.getValueByKeyPath(key, options)\n\n        // 递归引用数据模板中的属性\n        if (templateContext &&\n            (typeof templateContext === 'object') &&\n            (key in templateContext) &&\n            (placeholder !== templateContext[key]) // fix #15 避免自己依赖自己\n        ) {\n            // 先计算被引用的属性值\n            templateContext[key] = Handler.gen(templateContext[key], key, {\n                currentContext: obj,\n                templateCurrentContext: templateContext\n            })\n            return templateContext[key]\n        }\n\n        // 如果未找到，则原样返回\n        if (!(key in Random) && !(lkey in Random) && !(okey in Random)) return placeholder\n\n        // 递归解析参数中的占位符\n        for (var i = 0; i < params.length; i++) {\n            Constant.RE_PLACEHOLDER.exec('')\n            if (Constant.RE_PLACEHOLDER.test(params[i])) {\n                params[i] = Handler.placeholder(params[i], obj, templateContext, options)\n            }\n        }\n\n        var handle = Random[key] || Random[lkey] || Random[okey]\n        switch (Util.type(handle)) {\n            case 'array':\n                // 自动从数组中取一个，例如 @areas\n                return Random.pick(handle)\n            case 'function':\n                // 执行占位符方法（大多数情况）\n                handle.options = options\n                var re = handle.apply(Random, params)\n                if (re === undefined) re = '' // 因为是在字符串中，所以默认为空字符串。\n                delete handle.options\n                return re\n        }\n    },\n    getValueByKeyPath: function(key, options) {\n        var originalKey = key\n        var keyPathParts = this.splitPathToArray(key)\n        var absolutePathParts = []\n\n        // 绝对路径\n        if (key.charAt(0) === '/') {\n            absolutePathParts = [options.context.path[0]].concat(\n                this.normalizePath(keyPathParts)\n            )\n        } else {\n            // 相对路径\n            if (keyPathParts.length > 1) {\n                absolutePathParts = options.context.path.slice(0)\n                absolutePathParts.pop()\n                absolutePathParts = this.normalizePath(\n                    absolutePathParts.concat(keyPathParts)\n                )\n\n            }\n        }\n\n        key = keyPathParts[keyPathParts.length - 1]\n        var currentContext = options.context.root\n        var templateCurrentContext = options.context.templateRoot\n        for (var i = 1; i < absolutePathParts.length - 1; i++) {\n            currentContext = currentContext[absolutePathParts[i]]\n            templateCurrentContext = templateCurrentContext[absolutePathParts[i]]\n        }\n        // 引用的值已经计算好\n        if (currentContext && (key in currentContext)) return currentContext[key]\n\n        // 尚未计算，递归引用数据模板中的属性\n        if (templateCurrentContext &&\n            (typeof templateCurrentContext === 'object') &&\n            (key in templateCurrentContext) &&\n            (originalKey !== templateCurrentContext[key]) // fix #15 避免自己依赖自己\n        ) {\n            // 先计算被引用的属性值\n            templateCurrentContext[key] = Handler.gen(templateCurrentContext[key], key, {\n                currentContext: currentContext,\n                templateCurrentContext: templateCurrentContext\n            })\n            return templateCurrentContext[key]\n        }\n    },\n    // https://github.com/kissyteam/kissy/blob/master/src/path/src/path.js\n    normalizePath: function(pathParts) {\n        var newPathParts = []\n        for (var i = 0; i < pathParts.length; i++) {\n            switch (pathParts[i]) {\n                case '..':\n                    newPathParts.pop()\n                    break\n                case '.':\n                    break\n                default:\n                    newPathParts.push(pathParts[i])\n            }\n        }\n        return newPathParts\n    },\n    splitPathToArray: function(path) {\n        var parts = path.split(/\\/+/);\n        if (!parts[parts.length - 1]) parts = parts.slice(0, -1)\n        if (!parts[0]) parts = parts.slice(1)\n        return parts;\n    }\n})\n\nmodule.exports = Handler\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n/*\n    ## Date\n*/\nvar patternLetters = {\n    yyyy: 'getFullYear',\n    yy: function(date) {\n        return ('' + date.getFullYear()).slice(2)\n    },\n    y: 'yy',\n\n    MM: function(date) {\n        var m = date.getMonth() + 1\n        return m < 10 ? '0' + m : m\n    },\n    M: function(date) {\n        return date.getMonth() + 1\n    },\n\n    dd: function(date) {\n        var d = date.getDate()\n        return d < 10 ? '0' + d : d\n    },\n    d: 'getDate',\n\n    HH: function(date) {\n        var h = date.getHours()\n        return h < 10 ? '0' + h : h\n    },\n    H: 'getHours',\n    hh: function(date) {\n        var h = date.getHours() % 12\n        return h < 10 ? '0' + h : h\n    },\n    h: function(date) {\n        return date.getHours() % 12\n    },\n\n    mm: function(date) {\n        var m = date.getMinutes()\n        return m < 10 ? '0' + m : m\n    },\n    m: 'getMinutes',\n\n    ss: function(date) {\n        var s = date.getSeconds()\n        return s < 10 ? '0' + s : s\n    },\n    s: 'getSeconds',\n\n    SS: function(date) {\n        var ms = date.getMilliseconds()\n        return ms < 10 && '00' + ms || ms < 100 && '0' + ms || ms\n    },\n    S: 'getMilliseconds',\n\n    A: function(date) {\n        return date.getHours() < 12 ? 'AM' : 'PM'\n    },\n    a: function(date) {\n        return date.getHours() < 12 ? 'am' : 'pm'\n    },\n    T: 'getTime'\n}\nmodule.exports = {\n    // 日期占位符集合。\n    _patternLetters: patternLetters,\n    // 日期占位符正则。\n    _rformat: new RegExp((function() {\n        var re = []\n        for (var i in patternLetters) re.push(i)\n        return '(' + re.join('|') + ')'\n    })(), 'g'),\n    // 格式化日期。\n    _formatDate: function(date, format) {\n        return format.replace(this._rformat, function creatNewSubString($0, flag) {\n            return typeof patternLetters[flag] === 'function' ? patternLetters[flag](date) :\n                patternLetters[flag] in patternLetters ? creatNewSubString($0, patternLetters[flag]) :\n                date[patternLetters[flag]]()\n        })\n    },\n    // 生成一个随机的 Date 对象。\n    _randomDate: function(min, max) { // min, max\n        min = min === undefined ? new Date(0) : min\n        max = max === undefined ? new Date() : max\n        return new Date(Math.random() * (max.getTime() - min.getTime()))\n    },\n    // 返回一个随机的日期字符串。\n    date: function(format) {\n        format = format || 'yyyy-MM-dd'\n        return this._formatDate(this._randomDate(), format)\n    },\n    // 返回一个随机的时间字符串。\n    time: function(format) {\n        format = format || 'HH:mm:ss'\n        return this._formatDate(this._randomDate(), format)\n    },\n    // 返回一个随机的日期和时间字符串。\n    datetime: function(format) {\n        format = format || 'yyyy-MM-dd HH:mm:ss'\n        return this._formatDate(this._randomDate(), format)\n    },\n    // 返回当前的日期和时间字符串。\n    now: function(unit, format) {\n        // now(unit) now(format)\n        if (arguments.length === 1) {\n            // now(format)\n            if (!/year|month|day|hour|minute|second|week/.test(unit)) {\n                format = unit\n                unit = ''\n            }\n        }\n        unit = (unit || '').toLowerCase()\n        format = format || 'yyyy-MM-dd HH:mm:ss'\n\n        var date = new Date()\n\n        /* jshint -W086 */\n        // 参考自 http://momentjs.cn/docs/#/manipulating/start-of/\n        switch (unit) {\n            case 'year':\n                date.setMonth(0)\n            case 'month':\n                date.setDate(1)\n            case 'week':\n            case 'day':\n                date.setHours(0)\n            case 'hour':\n                date.setMinutes(0)\n            case 'minute':\n                date.setSeconds(0)\n            case 'second':\n                date.setMilliseconds(0)\n        }\n        switch (unit) {\n            case 'week':\n                date.setDate(date.getDate() - date.getDay())\n        }\n\n        return this._formatDate(date, format)\n    }\n}\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {/* global document  */\n/*\n    ## Image\n*/\nmodule.exports = {\n    // 常见的广告宽高\n    _adSize: [\n        '300x250', '250x250', '240x400', '336x280', '180x150',\n        '720x300', '468x60', '234x60', '88x31', '120x90',\n        '120x60', '120x240', '125x125', '728x90', '160x600',\n        '120x600', '300x600'\n    ],\n    // 常见的屏幕宽高\n    _screenSize: [\n        '320x200', '320x240', '640x480', '800x480', '800x480',\n        '1024x600', '1024x768', '1280x800', '1440x900', '1920x1200',\n        '2560x1600'\n    ],\n    // 常见的视频宽高\n    _videoSize: ['720x480', '768x576', '1280x720', '1920x1080'],\n    /*\n        生成一个随机的图片地址。\n\n        替代图片源\n            http://fpoimg.com/\n        参考自 \n            http://rensanning.iteye.com/blog/1933310\n            http://code.tutsplus.com/articles/the-top-8-placeholders-for-web-designers--net-19485\n    */\n    image: function(size, background, foreground, format, text) {\n        // Random.image( size, background, foreground, text )\n        if (arguments.length === 4) {\n            text = format\n            format = undefined\n        }\n        // Random.image( size, background, text )\n        if (arguments.length === 3) {\n            text = foreground\n            foreground = undefined\n        }\n        // Random.image()\n        if (!size) size = this.pick(this._adSize)\n\n        if (background && ~background.indexOf('#')) background = background.slice(1)\n        if (foreground && ~foreground.indexOf('#')) foreground = foreground.slice(1)\n\n        // http://dummyimage.com/600x400/cc00cc/470047.png&text=hello\n        return 'http://dummyimage.com/' + size +\n            (background ? '/' + background : '') +\n            (foreground ? '/' + foreground : '') +\n            (format ? '.' + format : '') +\n            (text ? '&text=' + text : '')\n    },\n    img: function() {\n        return this.image.apply(this, arguments)\n    },\n\n    /*\n        BrandColors\n        http://brandcolors.net/\n        A collection of major brand color codes curated by Galen Gidman.\n        大牌公司的颜色集合\n\n        // 获取品牌和颜色\n        $('h2').each(function(index, item){\n            item = $(item)\n            console.log('\\'' + item.text() + '\\'', ':', '\\'' + item.next().text() + '\\'', ',')\n        })\n    */\n    _brandColors: {\n        '4ormat': '#fb0a2a',\n        '500px': '#02adea',\n        'About.me (blue)': '#00405d',\n        'About.me (yellow)': '#ffcc33',\n        'Addvocate': '#ff6138',\n        'Adobe': '#ff0000',\n        'Aim': '#fcd20b',\n        'Amazon': '#e47911',\n        'Android': '#a4c639',\n        'Angie\\'s List': '#7fbb00',\n        'AOL': '#0060a3',\n        'Atlassian': '#003366',\n        'Behance': '#053eff',\n        'Big Cartel': '#97b538',\n        'bitly': '#ee6123',\n        'Blogger': '#fc4f08',\n        'Boeing': '#0039a6',\n        'Booking.com': '#003580',\n        'Carbonmade': '#613854',\n        'Cheddar': '#ff7243',\n        'Code School': '#3d4944',\n        'Delicious': '#205cc0',\n        'Dell': '#3287c1',\n        'Designmoo': '#e54a4f',\n        'Deviantart': '#4e6252',\n        'Designer News': '#2d72da',\n        'Devour': '#fd0001',\n        'DEWALT': '#febd17',\n        'Disqus (blue)': '#59a3fc',\n        'Disqus (orange)': '#db7132',\n        'Dribbble': '#ea4c89',\n        'Dropbox': '#3d9ae8',\n        'Drupal': '#0c76ab',\n        'Dunked': '#2a323a',\n        'eBay': '#89c507',\n        'Ember': '#f05e1b',\n        'Engadget': '#00bdf6',\n        'Envato': '#528036',\n        'Etsy': '#eb6d20',\n        'Evernote': '#5ba525',\n        'Fab.com': '#dd0017',\n        'Facebook': '#3b5998',\n        'Firefox': '#e66000',\n        'Flickr (blue)': '#0063dc',\n        'Flickr (pink)': '#ff0084',\n        'Forrst': '#5b9a68',\n        'Foursquare': '#25a0ca',\n        'Garmin': '#007cc3',\n        'GetGlue': '#2d75a2',\n        'Gimmebar': '#f70078',\n        'GitHub': '#171515',\n        'Google Blue': '#0140ca',\n        'Google Green': '#16a61e',\n        'Google Red': '#dd1812',\n        'Google Yellow': '#fcca03',\n        'Google+': '#dd4b39',\n        'Grooveshark': '#f77f00',\n        'Groupon': '#82b548',\n        'Hacker News': '#ff6600',\n        'HelloWallet': '#0085ca',\n        'Heroku (light)': '#c7c5e6',\n        'Heroku (dark)': '#6567a5',\n        'HootSuite': '#003366',\n        'Houzz': '#73ba37',\n        'HTML5': '#ec6231',\n        'IKEA': '#ffcc33',\n        'IMDb': '#f3ce13',\n        'Instagram': '#3f729b',\n        'Intel': '#0071c5',\n        'Intuit': '#365ebf',\n        'Kickstarter': '#76cc1e',\n        'kippt': '#e03500',\n        'Kodery': '#00af81',\n        'LastFM': '#c3000d',\n        'LinkedIn': '#0e76a8',\n        'Livestream': '#cf0005',\n        'Lumo': '#576396',\n        'Mixpanel': '#a086d3',\n        'Meetup': '#e51937',\n        'Nokia': '#183693',\n        'NVIDIA': '#76b900',\n        'Opera': '#cc0f16',\n        'Path': '#e41f11',\n        'PayPal (dark)': '#1e477a',\n        'PayPal (light)': '#3b7bbf',\n        'Pinboard': '#0000e6',\n        'Pinterest': '#c8232c',\n        'PlayStation': '#665cbe',\n        'Pocket': '#ee4056',\n        'Prezi': '#318bff',\n        'Pusha': '#0f71b4',\n        'Quora': '#a82400',\n        'QUOTE.fm': '#66ceff',\n        'Rdio': '#008fd5',\n        'Readability': '#9c0000',\n        'Red Hat': '#cc0000',\n        'Resource': '#7eb400',\n        'Rockpack': '#0ba6ab',\n        'Roon': '#62b0d9',\n        'RSS': '#ee802f',\n        'Salesforce': '#1798c1',\n        'Samsung': '#0c4da2',\n        'Shopify': '#96bf48',\n        'Skype': '#00aff0',\n        'Snagajob': '#f47a20',\n        'Softonic': '#008ace',\n        'SoundCloud': '#ff7700',\n        'Space Box': '#f86960',\n        'Spotify': '#81b71a',\n        'Sprint': '#fee100',\n        'Squarespace': '#121212',\n        'StackOverflow': '#ef8236',\n        'Staples': '#cc0000',\n        'Status Chart': '#d7584f',\n        'Stripe': '#008cdd',\n        'StudyBlue': '#00afe1',\n        'StumbleUpon': '#f74425',\n        'T-Mobile': '#ea0a8e',\n        'Technorati': '#40a800',\n        'The Next Web': '#ef4423',\n        'Treehouse': '#5cb868',\n        'Trulia': '#5eab1f',\n        'Tumblr': '#34526f',\n        'Twitch.tv': '#6441a5',\n        'Twitter': '#00acee',\n        'TYPO3': '#ff8700',\n        'Ubuntu': '#dd4814',\n        'Ustream': '#3388ff',\n        'Verizon': '#ef1d1d',\n        'Vimeo': '#86c9ef',\n        'Vine': '#00a478',\n        'Virb': '#06afd8',\n        'Virgin Media': '#cc0000',\n        'Wooga': '#5b009c',\n        'WordPress (blue)': '#21759b',\n        'WordPress (orange)': '#d54e21',\n        'WordPress (grey)': '#464646',\n        'Wunderlist': '#2b88d9',\n        'XBOX': '#9bc848',\n        'XING': '#126567',\n        'Yahoo!': '#720e9e',\n        'Yandex': '#ffcc00',\n        'Yelp': '#c41200',\n        'YouTube': '#c4302b',\n        'Zalongo': '#5498dc',\n        'Zendesk': '#78a300',\n        'Zerply': '#9dcc7a',\n        'Zootool': '#5e8b1d'\n    },\n    _brandNames: function() {\n        var brands = [];\n        for (var b in this._brandColors) {\n            brands.push(b)\n        }\n        return brands\n    },\n    /*\n        生成一段随机的 Base64 图片编码。\n\n        https://github.com/imsky/holder\n        Holder renders image placeholders entirely on the client side.\n\n        dataImageHolder: function(size) {\n            return 'holder.js/' + size\n        },\n    */\n    dataImage: function(size, text) {\n        var canvas\n        if (typeof document !== 'undefined') {\n            canvas = document.createElement('canvas')\n        } else {\n            /*\n                https://github.com/Automattic/node-canvas\n                    npm install canvas --save\n                安装问题：\n                * http://stackoverflow.com/questions/22953206/gulp-issues-with-cario-install-command-not-found-when-trying-to-installing-canva\n                * https://github.com/Automattic/node-canvas/issues/415\n                * https://github.com/Automattic/node-canvas/wiki/_pages\n\n                PS：node-canvas 的安装过程实在是太繁琐了，所以不放入 package.json 的 dependencies。\n             */\n            var Canvas = module.require('canvas')\n            canvas = new Canvas()\n        }\n\n        var ctx = canvas && canvas.getContext && canvas.getContext(\"2d\")\n        if (!canvas || !ctx) return ''\n\n        if (!size) size = this.pick(this._adSize)\n        text = text !== undefined ? text : size\n\n        size = size.split('x')\n\n        var width = parseInt(size[0], 10),\n            height = parseInt(size[1], 10),\n            background = this._brandColors[this.pick(this._brandNames())],\n            foreground = '#FFF',\n            text_height = 14,\n            font = 'sans-serif';\n\n        canvas.width = width\n        canvas.height = height\n        ctx.textAlign = 'center'\n        ctx.textBaseline = 'middle'\n        ctx.fillStyle = background\n        ctx.fillRect(0, 0, width, height)\n        ctx.fillStyle = foreground\n        ctx.font = 'bold ' + text_height + 'px ' + font\n        ctx.fillText(text, (width / 2), (height / 2), width)\n        return canvas.toDataURL('image/png')\n    }\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(13)(module)))\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nmodule.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif(!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n    ## Color\n\n    http://llllll.li/randomColor/\n        A color generator for JavaScript.\n        randomColor generates attractive colors by default. More specifically, randomColor produces bright colors with a reasonably high saturation. This makes randomColor particularly useful for data visualizations and generative art.\n\n    http://randomcolour.com/\n        var bg_colour = Math.floor(Math.random() * 16777215).toString(16);\n        bg_colour = \"#\" + (\"000000\" + bg_colour).slice(-6);\n        document.bgColor = bg_colour;\n    \n    http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/\n        Creating random colors is actually more difficult than it seems. The randomness itself is easy, but aesthetically pleasing randomness is more difficult.\n        https://github.com/devongovett/color-generator\n\n    http://www.paulirish.com/2009/random-hex-color-code-snippets/\n        Random Hex Color Code Generator in JavaScript\n\n    http://chancejs.com/#color\n        chance.color()\n        // => '#79c157'\n        chance.color({format: 'hex'})\n        // => '#d67118'\n        chance.color({format: 'shorthex'})\n        // => '#60f'\n        chance.color({format: 'rgb'})\n        // => 'rgb(110,52,164)'\n\n    http://tool.c7sky.com/webcolor\n        网页设计常用色彩搭配表\n    \n    https://github.com/One-com/one-color\n        An OO-based JavaScript color parser/computation toolkit with support for RGB, HSV, HSL, CMYK, and alpha channels.\n        API 很赞\n\n    https://github.com/harthur/color\n        JavaScript color conversion and manipulation library\n\n    https://github.com/leaverou/css-colors\n        Share & convert CSS colors\n    http://leaverou.github.io/css-colors/#slategray\n        Type a CSS color keyword, #hex, hsl(), rgba(), whatever:\n\n    色调 hue\n        http://baike.baidu.com/view/23368.htm\n        色调指的是一幅画中画面色彩的总体倾向，是大的色彩效果。\n    饱和度 saturation\n        http://baike.baidu.com/view/189644.htm\n        饱和度是指色彩的鲜艳程度，也称色彩的纯度。饱和度取决于该色中含色成分和消色成分（灰色）的比例。含色成分越大，饱和度越大；消色成分越大，饱和度越小。\n    亮度 brightness\n        http://baike.baidu.com/view/34773.htm\n        亮度是指发光体（反光体）表面发光（反光）强弱的物理量。\n    照度 luminosity\n        物体被照亮的程度,采用单位面积所接受的光通量来表示,表示单位为勒[克斯](Lux,lx) ,即 1m / m2 。\n\n    http://stackoverflow.com/questions/1484506/random-color-generator-in-javascript\n        var letters = '0123456789ABCDEF'.split('')\n        var color = '#'\n        for (var i = 0; i < 6; i++) {\n            color += letters[Math.floor(Math.random() * 16)]\n        }\n        return color\n    \n        // 随机生成一个无脑的颜色，格式为 '#RRGGBB'。\n        // _brainlessColor()\n        var color = Math.floor(\n            Math.random() *\n            (16 * 16 * 16 * 16 * 16 * 16 - 1)\n        ).toString(16)\n        color = \"#\" + (\"000000\" + color).slice(-6)\n        return color.toUpperCase()\n*/\n\nvar Convert = __webpack_require__(15)\nvar DICT = __webpack_require__(16)\n\nmodule.exports = {\n    // 随机生成一个有吸引力的颜色，格式为 '#RRGGBB'。\n    color: function(name) {\n        if (name || DICT[name]) return DICT[name].nicer\n        return this.hex()\n    },\n    // #DAC0DE\n    hex: function() {\n        var hsv = this._goldenRatioColor()\n        var rgb = Convert.hsv2rgb(hsv)\n        var hex = Convert.rgb2hex(rgb[0], rgb[1], rgb[2])\n        return hex\n    },\n    // rgb(128,255,255)\n    rgb: function() {\n        var hsv = this._goldenRatioColor()\n        var rgb = Convert.hsv2rgb(hsv)\n        return 'rgb(' +\n            parseInt(rgb[0], 10) + ', ' +\n            parseInt(rgb[1], 10) + ', ' +\n            parseInt(rgb[2], 10) + ')'\n    },\n    // rgba(128,255,255,0.3)\n    rgba: function() {\n        var hsv = this._goldenRatioColor()\n        var rgb = Convert.hsv2rgb(hsv)\n        return 'rgba(' +\n            parseInt(rgb[0], 10) + ', ' +\n            parseInt(rgb[1], 10) + ', ' +\n            parseInt(rgb[2], 10) + ', ' +\n            Math.random().toFixed(2) + ')'\n    },\n    // hsl(300,80%,90%)\n    hsl: function() {\n        var hsv = this._goldenRatioColor()\n        var hsl = Convert.hsv2hsl(hsv)\n        return 'hsl(' +\n            parseInt(hsl[0], 10) + ', ' +\n            parseInt(hsl[1], 10) + ', ' +\n            parseInt(hsl[2], 10) + ')'\n    },\n    // http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/\n    // https://github.com/devongovett/color-generator/blob/master/index.js\n    // 随机生成一个有吸引力的颜色。\n    _goldenRatioColor: function(saturation, value) {\n        this._goldenRatio = 0.618033988749895\n        this._hue = this._hue || Math.random()\n        this._hue += this._goldenRatio\n        this._hue %= 1\n\n        if (typeof saturation !== \"number\") saturation = 0.5;\n        if (typeof value !== \"number\") value = 0.95;\n\n        return [\n            this._hue * 360,\n            saturation * 100,\n            value * 100\n        ]\n    }\n}\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n/*\n    ## Color Convert\n\n    http://blog.csdn.net/idfaya/article/details/6770414\n        颜色空间RGB与HSV(HSL)的转换\n*/\n// https://github.com/harthur/color-convert/blob/master/conversions.js\nmodule.exports = {\n\trgb2hsl: function rgb2hsl(rgb) {\n\t\tvar r = rgb[0] / 255,\n\t\t\tg = rgb[1] / 255,\n\t\t\tb = rgb[2] / 255,\n\t\t\tmin = Math.min(r, g, b),\n\t\t\tmax = Math.max(r, g, b),\n\t\t\tdelta = max - min,\n\t\t\th, s, l;\n\n\t\tif (max == min)\n\t\t\th = 0;\n\t\telse if (r == max)\n\t\t\th = (g - b) / delta;\n\t\telse if (g == max)\n\t\t\th = 2 + (b - r) / delta;\n\t\telse if (b == max)\n\t\t\th = 4 + (r - g) / delta;\n\n\t\th = Math.min(h * 60, 360);\n\n\t\tif (h < 0)\n\t\t\th += 360;\n\n\t\tl = (min + max) / 2;\n\n\t\tif (max == min)\n\t\t\ts = 0;\n\t\telse if (l <= 0.5)\n\t\t\ts = delta / (max + min);\n\t\telse\n\t\t\ts = delta / (2 - max - min);\n\n\t\treturn [h, s * 100, l * 100];\n\t},\n\trgb2hsv: function rgb2hsv(rgb) {\n\t\tvar r = rgb[0],\n\t\t\tg = rgb[1],\n\t\t\tb = rgb[2],\n\t\t\tmin = Math.min(r, g, b),\n\t\t\tmax = Math.max(r, g, b),\n\t\t\tdelta = max - min,\n\t\t\th, s, v;\n\n\t\tif (max === 0)\n\t\t\ts = 0;\n\t\telse\n\t\t\ts = (delta / max * 1000) / 10;\n\n\t\tif (max == min)\n\t\t\th = 0;\n\t\telse if (r == max)\n\t\t\th = (g - b) / delta;\n\t\telse if (g == max)\n\t\t\th = 2 + (b - r) / delta;\n\t\telse if (b == max)\n\t\t\th = 4 + (r - g) / delta;\n\n\t\th = Math.min(h * 60, 360);\n\n\t\tif (h < 0)\n\t\t\th += 360;\n\n\t\tv = ((max / 255) * 1000) / 10;\n\n\t\treturn [h, s, v];\n\t},\n\thsl2rgb: function hsl2rgb(hsl) {\n\t\tvar h = hsl[0] / 360,\n\t\t\ts = hsl[1] / 100,\n\t\t\tl = hsl[2] / 100,\n\t\t\tt1, t2, t3, rgb, val;\n\n\t\tif (s === 0) {\n\t\t\tval = l * 255;\n\t\t\treturn [val, val, val];\n\t\t}\n\n\t\tif (l < 0.5)\n\t\t\tt2 = l * (1 + s);\n\t\telse\n\t\t\tt2 = l + s - l * s;\n\t\tt1 = 2 * l - t2;\n\n\t\trgb = [0, 0, 0];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\t\tif (t3 < 0) t3++;\n\t\t\tif (t3 > 1) t3--;\n\n\t\t\tif (6 * t3 < 1)\n\t\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t\telse if (2 * t3 < 1)\n\t\t\t\tval = t2;\n\t\t\telse if (3 * t3 < 2)\n\t\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t\telse\n\t\t\t\tval = t1;\n\n\t\t\trgb[i] = val * 255;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\thsl2hsv: function hsl2hsv(hsl) {\n\t\tvar h = hsl[0],\n\t\t\ts = hsl[1] / 100,\n\t\t\tl = hsl[2] / 100,\n\t\t\tsv, v;\n\t\tl *= 2;\n\t\ts *= (l <= 1) ? l : 2 - l;\n\t\tv = (l + s) / 2;\n\t\tsv = (2 * s) / (l + s);\n\t\treturn [h, sv * 100, v * 100];\n\t},\n\thsv2rgb: function hsv2rgb(hsv) {\n\t\tvar h = hsv[0] / 60\n\t\tvar s = hsv[1] / 100\n\t\tvar v = hsv[2] / 100\n\t\tvar hi = Math.floor(h) % 6\n\n\t\tvar f = h - Math.floor(h)\n\t\tvar p = 255 * v * (1 - s)\n\t\tvar q = 255 * v * (1 - (s * f))\n\t\tvar t = 255 * v * (1 - (s * (1 - f)))\n\n\t\tv = 255 * v\n\n\t\tswitch (hi) {\n\t\t\tcase 0:\n\t\t\t\treturn [v, t, p]\n\t\t\tcase 1:\n\t\t\t\treturn [q, v, p]\n\t\t\tcase 2:\n\t\t\t\treturn [p, v, t]\n\t\t\tcase 3:\n\t\t\t\treturn [p, q, v]\n\t\t\tcase 4:\n\t\t\t\treturn [t, p, v]\n\t\t\tcase 5:\n\t\t\t\treturn [v, p, q]\n\t\t}\n\t},\n\thsv2hsl: function hsv2hsl(hsv) {\n\t\tvar h = hsv[0],\n\t\t\ts = hsv[1] / 100,\n\t\t\tv = hsv[2] / 100,\n\t\t\tsl, l;\n\n\t\tl = (2 - s) * v;\n\t\tsl = s * v;\n\t\tsl /= (l <= 1) ? l : 2 - l;\n\t\tl /= 2;\n\t\treturn [h, sl * 100, l * 100];\n\t},\n\t// http://www.140byt.es/keywords/color\n\trgb2hex: function(\n\t\ta, // red, as a number from 0 to 255\n\t\tb, // green, as a number from 0 to 255\n\t\tc // blue, as a number from 0 to 255\n\t) {\n\t\treturn \"#\" + ((256 + a << 8 | b) << 8 | c).toString(16).slice(1)\n\t},\n\thex2rgb: function(\n\t\ta // take a \"#xxxxxx\" hex string,\n\t) {\n\t\ta = '0x' + a.slice(1).replace(a.length > 4 ? a : /./g, '$&$&') | 0;\n\t\treturn [a >> 16, a >> 8 & 255, a & 255]\n\t}\n}\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\n/*\n    ## Color 字典数据\n\n    字典数据来源 [A nicer color palette for the web](http://clrs.cc/)\n*/\nmodule.exports = {\n    // name value nicer\n    navy: {\n        value: '#000080',\n        nicer: '#001F3F'\n    },\n    blue: {\n        value: '#0000ff',\n        nicer: '#0074D9'\n    },\n    aqua: {\n        value: '#00ffff',\n        nicer: '#7FDBFF'\n    },\n    teal: {\n        value: '#008080',\n        nicer: '#39CCCC'\n    },\n    olive: {\n        value: '#008000',\n        nicer: '#3D9970'\n    },\n    green: {\n        value: '#008000',\n        nicer: '#2ECC40'\n    },\n    lime: {\n        value: '#00ff00',\n        nicer: '#01FF70'\n    },\n    yellow: {\n        value: '#ffff00',\n        nicer: '#FFDC00'\n    },\n    orange: {\n        value: '#ffa500',\n        nicer: '#FF851B'\n    },\n    red: {\n        value: '#ff0000',\n        nicer: '#FF4136'\n    },\n    maroon: {\n        value: '#800000',\n        nicer: '#85144B'\n    },\n    fuchsia: {\n        value: '#ff00ff',\n        nicer: '#F012BE'\n    },\n    purple: {\n        value: '#800080',\n        nicer: '#B10DC9'\n    },\n    silver: {\n        value: '#c0c0c0',\n        nicer: '#DDDDDD'\n    },\n    gray: {\n        value: '#808080',\n        nicer: '#AAAAAA'\n    },\n    black: {\n        value: '#000000',\n        nicer: '#111111'\n    },\n    white: {\n        value: '#FFFFFF',\n        nicer: '#FFFFFF'\n    }\n}\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n    ## Text\n\n    http://www.lipsum.com/\n*/\nvar Basic = __webpack_require__(4)\nvar Helper = __webpack_require__(5)\n\nfunction range(defaultMin, defaultMax, min, max) {\n    return min === undefined ? Basic.natural(defaultMin, defaultMax) : // ()\n        max === undefined ? min : // ( len )\n        Basic.natural(parseInt(min, 10), parseInt(max, 10)) // ( min, max )\n}\n\nmodule.exports = {\n    // 随机生成一段文本。\n    paragraph: function(min, max) {\n        var len = range(3, 7, min, max)\n        var result = []\n        for (var i = 0; i < len; i++) {\n            result.push(this.sentence())\n        }\n        return result.join(' ')\n    },\n    // \n    cparagraph: function(min, max) {\n        var len = range(3, 7, min, max)\n        var result = []\n        for (var i = 0; i < len; i++) {\n            result.push(this.csentence())\n        }\n        return result.join('')\n    },\n    // 随机生成一个句子，第一个单词的首字母大写。\n    sentence: function(min, max) {\n        var len = range(12, 18, min, max)\n        var result = []\n        for (var i = 0; i < len; i++) {\n            result.push(this.word())\n        }\n        return Helper.capitalize(result.join(' ')) + '.'\n    },\n    // 随机生成一个中文句子。\n    csentence: function(min, max) {\n        var len = range(12, 18, min, max)\n        var result = []\n        for (var i = 0; i < len; i++) {\n            result.push(this.cword())\n        }\n\n        return result.join('') + '。'\n    },\n    // 随机生成一个单词。\n    word: function(min, max) {\n        var len = range(3, 10, min, max)\n        var result = '';\n        for (var i = 0; i < len; i++) {\n            result += Basic.character('lower')\n        }\n        return result\n    },\n    // 随机生成一个或多个汉字。\n    cword: function(pool, min, max) {\n        // 最常用的 500 个汉字 http://baike.baidu.com/view/568436.htm\n        var DICT_KANZI = '的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两体制机当使点从业本去把性好应开它合还因由其些然前外天政四日那社义事平形相全表间样与关各重新线内数正心反你明看原又么利比或但质气第向道命此变条只没结解问意建月公无系军很情者最立代想已通并提直题党程展五果料象员革位入常文总次品式活设及管特件长求老头基资边流路级少图山统接知较将组见计别她手角期根论运农指几九区强放决西被干做必战先回则任取据处队南给色光门即保治北造百规热领七海口东导器压志世金增争济阶油思术极交受联什认六共权收证改清己美再采转更单风切打白教速花带安场身车例真务具万每目至达走积示议声报斗完类八离华名确才科张信马节话米整空元况今集温传土许步群广石记需段研界拉林律叫且究观越织装影算低持音众书布复容儿须际商非验连断深难近矿千周委素技备半办青省列习响约支般史感劳便团往酸历市克何除消构府称太准精值号率族维划选标写存候毛亲快效斯院查江型眼王按格养易置派层片始却专状育厂京识适属圆包火住调满县局照参红细引听该铁价严龙飞'\n\n        var len\n        switch (arguments.length) {\n            case 0: // ()\n                pool = DICT_KANZI\n                len = 1\n                break\n            case 1: // ( pool )\n                if (typeof arguments[0] === 'string') {\n                    len = 1\n                } else {\n                    // ( length )\n                    len = pool\n                    pool = DICT_KANZI\n                }\n                break\n            case 2:\n                // ( pool, length )\n                if (typeof arguments[0] === 'string') {\n                    len = min\n                } else {\n                    // ( min, max )\n                    len = this.natural(pool, min)\n                    pool = DICT_KANZI\n                }\n                break\n            case 3:\n                len = this.natural(min, max)\n                break\n        }\n\n        var result = ''\n        for (var i = 0; i < len; i++) {\n            result += pool.charAt(this.natural(0, pool.length - 1))\n        }\n        return result\n    },\n    // 随机生成一句标题，其中每个单词的首字母大写。\n    title: function(min, max) {\n        var len = range(3, 7, min, max)\n        var result = []\n        for (var i = 0; i < len; i++) {\n            result.push(this.capitalize(this.word()))\n        }\n        return result.join(' ')\n    },\n    // 随机生成一句中文标题。\n    ctitle: function(min, max) {\n        var len = range(3, 7, min, max)\n        var result = []\n        for (var i = 0; i < len; i++) {\n            result.push(this.cword())\n        }\n        return result.join('')\n    }\n}\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\n/*\n    ## Name\n\n    [Beyond the Top 1000 Names](http://www.ssa.gov/oact/babynames/limits.html)\n*/\nmodule.exports = {\n\t// 随机生成一个常见的英文名。\n\tfirst: function() {\n\t\tvar names = [\n\t\t\t// male\n\t\t\t\"James\", \"John\", \"Robert\", \"Michael\", \"William\",\n\t\t\t\"David\", \"Richard\", \"Charles\", \"Joseph\", \"Thomas\",\n\t\t\t\"Christopher\", \"Daniel\", \"Paul\", \"Mark\", \"Donald\",\n\t\t\t\"George\", \"Kenneth\", \"Steven\", \"Edward\", \"Brian\",\n\t\t\t\"Ronald\", \"Anthony\", \"Kevin\", \"Jason\", \"Matthew\",\n\t\t\t\"Gary\", \"Timothy\", \"Jose\", \"Larry\", \"Jeffrey\",\n\t\t\t\"Frank\", \"Scott\", \"Eric\"\n\t\t].concat([\n\t\t\t// female\n\t\t\t\"Mary\", \"Patricia\", \"Linda\", \"Barbara\", \"Elizabeth\",\n\t\t\t\"Jennifer\", \"Maria\", \"Susan\", \"Margaret\", \"Dorothy\",\n\t\t\t\"Lisa\", \"Nancy\", \"Karen\", \"Betty\", \"Helen\",\n\t\t\t\"Sandra\", \"Donna\", \"Carol\", \"Ruth\", \"Sharon\",\n\t\t\t\"Michelle\", \"Laura\", \"Sarah\", \"Kimberly\", \"Deborah\",\n\t\t\t\"Jessica\", \"Shirley\", \"Cynthia\", \"Angela\", \"Melissa\",\n\t\t\t\"Brenda\", \"Amy\", \"Anna\"\n\t\t])\n\t\treturn this.pick(names)\n\t\t\t// or this.capitalize(this.word())\n\t},\n\t// 随机生成一个常见的英文姓。\n\tlast: function() {\n\t\tvar names = [\n\t\t\t\"Smith\", \"Johnson\", \"Williams\", \"Brown\", \"Jones\",\n\t\t\t\"Miller\", \"Davis\", \"Garcia\", \"Rodriguez\", \"Wilson\",\n\t\t\t\"Martinez\", \"Anderson\", \"Taylor\", \"Thomas\", \"Hernandez\",\n\t\t\t\"Moore\", \"Martin\", \"Jackson\", \"Thompson\", \"White\",\n\t\t\t\"Lopez\", \"Lee\", \"Gonzalez\", \"Harris\", \"Clark\",\n\t\t\t\"Lewis\", \"Robinson\", \"Walker\", \"Perez\", \"Hall\",\n\t\t\t\"Young\", \"Allen\"\n\t\t]\n\t\treturn this.pick(names)\n\t\t\t// or this.capitalize(this.word())\n\t},\n\t// 随机生成一个常见的英文姓名。\n\tname: function(middle) {\n\t\treturn this.first() + ' ' +\n\t\t\t(middle ? this.first() + ' ' : '') +\n\t\t\tthis.last()\n\t},\n\t/*\n\t    随机生成一个常见的中文姓。\n\t    [世界常用姓氏排行](http://baike.baidu.com/view/1719115.htm)\n\t    [玄派网 - 网络小说创作辅助平台](http://xuanpai.sinaapp.com/)\n\t */\n\tcfirst: function() {\n\t\tvar names = (\n\t\t\t'王 李 张 刘 陈 杨 赵 黄 周 吴 ' +\n\t\t\t'徐 孙 胡 朱 高 林 何 郭 马 罗 ' +\n\t\t\t'梁 宋 郑 谢 韩 唐 冯 于 董 萧 ' +\n\t\t\t'程 曹 袁 邓 许 傅 沈 曾 彭 吕 ' +\n\t\t\t'苏 卢 蒋 蔡 贾 丁 魏 薛 叶 阎 ' +\n\t\t\t'余 潘 杜 戴 夏 锺 汪 田 任 姜 ' +\n\t\t\t'范 方 石 姚 谭 廖 邹 熊 金 陆 ' +\n\t\t\t'郝 孔 白 崔 康 毛 邱 秦 江 史 ' +\n\t\t\t'顾 侯 邵 孟 龙 万 段 雷 钱 汤 ' +\n\t\t\t'尹 黎 易 常 武 乔 贺 赖 龚 文'\n\t\t).split(' ')\n\t\treturn this.pick(names)\n\t},\n\t/*\n\t    随机生成一个常见的中文名。\n\t    [中国最常见名字前50名_三九算命网](http://www.name999.net/xingming/xingshi/20131004/48.html)\n\t */\n\tclast: function() {\n\t\tvar names = (\n\t\t\t'伟 芳 娜 秀英 敏 静 丽 强 磊 军 ' +\n\t\t\t'洋 勇 艳 杰 娟 涛 明 超 秀兰 霞 ' +\n\t\t\t'平 刚 桂英'\n\t\t).split(' ')\n\t\treturn this.pick(names)\n\t},\n\t// 随机生成一个常见的中文姓名。\n\tcname: function() {\n\t\treturn this.cfirst() + this.clast()\n\t}\n}\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports) {\n\n/*\n    ## Web\n*/\nmodule.exports = {\n    /*\n        随机生成一个 URL。\n\n        [URL 规范](http://www.w3.org/Addressing/URL/url-spec.txt)\n            http                    Hypertext Transfer Protocol \n            ftp                     File Transfer protocol \n            gopher                  The Gopher protocol \n            mailto                  Electronic mail address \n            mid                     Message identifiers for electronic mail \n            cid                     Content identifiers for MIME body part \n            news                    Usenet news \n            nntp                    Usenet news for local NNTP access only \n            prospero                Access using the prospero protocols \n            telnet rlogin tn3270    Reference to interactive sessions\n            wais                    Wide Area Information Servers \n    */\n    url: function(protocol, host) {\n        return (protocol || this.protocol()) + '://' + // protocol?\n            (host || this.domain()) + // host?\n            '/' + this.word()\n    },\n    // 随机生成一个 URL 协议。\n    protocol: function() {\n        return this.pick(\n            // 协议簇\n            'http ftp gopher mailto mid cid news nntp prospero telnet rlogin tn3270 wais'.split(' ')\n        )\n    },\n    // 随机生成一个域名。\n    domain: function(tld) {\n        return this.word() + '.' + (tld || this.tld())\n    },\n    /*\n        随机生成一个顶级域名。\n        国际顶级域名 international top-level domain-names, iTLDs\n        国家顶级域名 national top-level domainnames, nTLDs\n        [域名后缀大全](http://www.163ns.com/zixun/post/4417.html)\n    */\n    tld: function() { // Top Level Domain\n        return this.pick(\n            (\n                // 域名后缀\n                'com net org edu gov int mil cn ' +\n                // 国内域名\n                'com.cn net.cn gov.cn org.cn ' +\n                // 中文国内域名\n                '中国 中国互联.公司 中国互联.网络 ' +\n                // 新国际域名\n                'tel biz cc tv info name hk mobi asia cd travel pro museum coop aero ' +\n                // 世界各国域名后缀\n                'ad ae af ag ai al am an ao aq ar as at au aw az ba bb bd be bf bg bh bi bj bm bn bo br bs bt bv bw by bz ca cc cf cg ch ci ck cl cm cn co cq cr cu cv cx cy cz de dj dk dm do dz ec ee eg eh es et ev fi fj fk fm fo fr ga gb gd ge gf gh gi gl gm gn gp gr gt gu gw gy hk hm hn hr ht hu id ie il in io iq ir is it jm jo jp ke kg kh ki km kn kp kr kw ky kz la lb lc li lk lr ls lt lu lv ly ma mc md mg mh ml mm mn mo mp mq mr ms mt mv mw mx my mz na nc ne nf ng ni nl no np nr nt nu nz om qa pa pe pf pg ph pk pl pm pn pr pt pw py re ro ru rw sa sb sc sd se sg sh si sj sk sl sm sn so sr st su sy sz tc td tf tg th tj tk tm tn to tp tr tt tv tw tz ua ug uk us uy va vc ve vg vn vu wf ws ye yu za zm zr zw'\n            ).split(' ')\n        )\n    },\n    // 随机生成一个邮件地址。\n    email: function(domain) {\n        return this.character('lower') + '.' + this.word() + '@' +\n            (\n                domain ||\n                (this.word() + '.' + this.tld())\n            )\n            // return this.character('lower') + '.' + this.last().toLowerCase() + '@' + this.last().toLowerCase() + '.' + this.tld()\n            // return this.word() + '@' + (domain || this.domain())\n    },\n    // 随机生成一个 IP 地址。\n    ip: function() {\n        return this.natural(0, 255) + '.' +\n            this.natural(0, 255) + '.' +\n            this.natural(0, 255) + '.' +\n            this.natural(0, 255)\n    }\n}\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n    ## Address\n*/\n\nvar DICT = __webpack_require__(6)\nvar REGION = ['东北', '华北', '华东', '华中', '华南', '西南', '西北']\n\nmodule.exports = {\n    // 随机生成一个大区。\n    region: function() {\n        return this.pick(REGION)\n    },\n    // 随机生成一个（中国）省（或直辖市、自治区、特别行政区）。\n    province: function() {\n        return this.pick(DICT).name\n    },\n    // 随机生成一个（中国）市。\n    city: function(prefix) {\n        var province = this.pick(DICT)\n        var city = this.pick(province.children)\n        return prefix ? [province.name, city.name].join(' ') : city.name\n    },\n    // 随机生成一个（中国）县。\n    county: function(prefix) {\n        var province = this.pick(DICT)\n        var city = this.pick(province.children)\n        var county = this.pick(city.children) || {\n            name: '-'\n        }\n        return prefix ? [province.name, city.name, county.name].join(' ') : county.name\n    },\n    // 随机生成一个邮政编码（六位数字）。\n    zip: function(len) {\n        var zip = ''\n        for (var i = 0; i < (len || 6); i++) zip += this.natural(0, 9)\n        return zip\n    }\n\n    // address: function() {},\n    // phone: function() {},\n    // areacode: function() {},\n    // street: function() {},\n    // street_suffixes: function() {},\n    // street_suffix: function() {},\n    // states: function() {},\n    // state: function() {},\n}\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n    ## Miscellaneous\n*/\nvar DICT = __webpack_require__(6)\nmodule.exports = {\n\t// Dice\n\td4: function() {\n\t\treturn this.natural(1, 4)\n\t},\n\td6: function() {\n\t\treturn this.natural(1, 6)\n\t},\n\td8: function() {\n\t\treturn this.natural(1, 8)\n\t},\n\td12: function() {\n\t\treturn this.natural(1, 12)\n\t},\n\td20: function() {\n\t\treturn this.natural(1, 20)\n\t},\n\td100: function() {\n\t\treturn this.natural(1, 100)\n\t},\n\t/*\n\t    随机生成一个 GUID。\n\n\t    http://www.broofa.com/2008/09/javascript-uuid-function/\n\t    [UUID 规范](http://www.ietf.org/rfc/rfc4122.txt)\n\t        UUIDs (Universally Unique IDentifier)\n\t        GUIDs (Globally Unique IDentifier)\n\t        The formal definition of the UUID string representation is provided by the following ABNF [7]:\n\t            UUID                   = time-low \"-\" time-mid \"-\"\n\t                                   time-high-and-version \"-\"\n\t                                   clock-seq-and-reserved\n\t                                   clock-seq-low \"-\" node\n\t            time-low               = 4hexOctet\n\t            time-mid               = 2hexOctet\n\t            time-high-and-version  = 2hexOctet\n\t            clock-seq-and-reserved = hexOctet\n\t            clock-seq-low          = hexOctet\n\t            node                   = 6hexOctet\n\t            hexOctet               = hexDigit hexDigit\n\t            hexDigit =\n\t                \"0\" / \"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\" / \"8\" / \"9\" /\n\t                \"a\" / \"b\" / \"c\" / \"d\" / \"e\" / \"f\" /\n\t                \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\"\n\t    \n\t    https://github.com/victorquinn/chancejs/blob/develop/chance.js#L1349\n\t*/\n\tguid: function() {\n\t\tvar pool = \"abcdefABCDEF1234567890\",\n\t\t\tguid = this.string(pool, 8) + '-' +\n\t\t\tthis.string(pool, 4) + '-' +\n\t\t\tthis.string(pool, 4) + '-' +\n\t\t\tthis.string(pool, 4) + '-' +\n\t\t\tthis.string(pool, 12);\n\t\treturn guid\n\t},\n\tuuid: function() {\n\t\treturn this.guid()\n\t},\n\t/*\n\t    随机生成一个 18 位身份证。\n\n\t    [身份证](http://baike.baidu.com/view/1697.htm#4)\n\t        地址码 6 + 出生日期码 8 + 顺序码 3 + 校验码 1\n\t    [《中华人民共和国行政区划代码》国家标准(GB/T2260)](http://zhidao.baidu.com/question/1954561.html)\n\t*/\n\tid: function() {\n\t\tvar id,\n\t\t\tsum = 0,\n\t\t\trank = [\n\t\t\t\t\"7\", \"9\", \"10\", \"5\", \"8\", \"4\", \"2\", \"1\", \"6\", \"3\", \"7\", \"9\", \"10\", \"5\", \"8\", \"4\", \"2\"\n\t\t\t],\n\t\t\tlast = [\n\t\t\t\t\"1\", \"0\", \"X\", \"9\", \"8\", \"7\", \"6\", \"5\", \"4\", \"3\", \"2\"\n\t\t\t]\n\n\t\tid = this.pick(DICT).id +\n\t\t\tthis.date('yyyyMMdd') +\n\t\t\tthis.string('number', 3)\n\n\t\tfor (var i = 0; i < id.length; i++) {\n\t\t\tsum += id[i] * rank[i];\n\t\t}\n\t\tid += last[sum % 11];\n\n\t\treturn id\n\t},\n\n\t/*\n\t    生成一个全局的自增整数。\n\t    类似自增主键（auto increment primary key）。\n\t*/\n\tincrement: function() {\n\t\tvar key = 0\n\t\treturn function(step) {\n\t\t\treturn key += (+step || 1) // step?\n\t\t}\n\t}(),\n\tinc: function(step) {\n\t\treturn this.increment(step)\n\t}\n}\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\n// https://github.com/nuysoft/regexp\n// forked from https://github.com/ForbesLindesay/regexp\n\nfunction parse(n) {\n    if (\"string\" != typeof n) {\n        var l = new TypeError(\"The regexp to parse must be represented as a string.\");\n        throw l;\n    }\n    return index = 1, cgs = {}, parser.parse(n);\n}\n\nfunction Token(n) {\n    this.type = n, this.offset = Token.offset(), this.text = Token.text();\n}\n\nfunction Alternate(n, l) {\n    Token.call(this, \"alternate\"), this.left = n, this.right = l;\n}\n\nfunction Match(n) {\n    Token.call(this, \"match\"), this.body = n.filter(Boolean);\n}\n\nfunction Group(n, l) {\n    Token.call(this, n), this.body = l;\n}\n\nfunction CaptureGroup(n) {\n    Group.call(this, \"capture-group\"), this.index = cgs[this.offset] || (cgs[this.offset] = index++), \n    this.body = n;\n}\n\nfunction Quantified(n, l) {\n    Token.call(this, \"quantified\"), this.body = n, this.quantifier = l;\n}\n\nfunction Quantifier(n, l) {\n    Token.call(this, \"quantifier\"), this.min = n, this.max = l, this.greedy = !0;\n}\n\nfunction CharSet(n, l) {\n    Token.call(this, \"charset\"), this.invert = n, this.body = l;\n}\n\nfunction CharacterRange(n, l) {\n    Token.call(this, \"range\"), this.start = n, this.end = l;\n}\n\nfunction Literal(n) {\n    Token.call(this, \"literal\"), this.body = n, this.escaped = this.body != this.text;\n}\n\nfunction Unicode(n) {\n    Token.call(this, \"unicode\"), this.code = n.toUpperCase();\n}\n\nfunction Hex(n) {\n    Token.call(this, \"hex\"), this.code = n.toUpperCase();\n}\n\nfunction Octal(n) {\n    Token.call(this, \"octal\"), this.code = n.toUpperCase();\n}\n\nfunction BackReference(n) {\n    Token.call(this, \"back-reference\"), this.code = n.toUpperCase();\n}\n\nfunction ControlCharacter(n) {\n    Token.call(this, \"control-character\"), this.code = n.toUpperCase();\n}\n\nvar parser = function() {\n    function n(n, l) {\n        function u() {\n            this.constructor = n;\n        }\n        u.prototype = l.prototype, n.prototype = new u();\n    }\n    function l(n, l, u, t, r) {\n        function e(n, l) {\n            function u(n) {\n                function l(n) {\n                    return n.charCodeAt(0).toString(16).toUpperCase();\n                }\n                return n.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"').replace(/\\x08/g, \"\\\\b\").replace(/\\t/g, \"\\\\t\").replace(/\\n/g, \"\\\\n\").replace(/\\f/g, \"\\\\f\").replace(/\\r/g, \"\\\\r\").replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function(n) {\n                    return \"\\\\x0\" + l(n);\n                }).replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function(n) {\n                    return \"\\\\x\" + l(n);\n                }).replace(/[\\u0180-\\u0FFF]/g, function(n) {\n                    return \"\\\\u0\" + l(n);\n                }).replace(/[\\u1080-\\uFFFF]/g, function(n) {\n                    return \"\\\\u\" + l(n);\n                });\n            }\n            var t, r;\n            switch (n.length) {\n              case 0:\n                t = \"end of input\";\n                break;\n\n              case 1:\n                t = n[0];\n                break;\n\n              default:\n                t = n.slice(0, -1).join(\", \") + \" or \" + n[n.length - 1];\n            }\n            return r = l ? '\"' + u(l) + '\"' : \"end of input\", \"Expected \" + t + \" but \" + r + \" found.\";\n        }\n        this.expected = n, this.found = l, this.offset = u, this.line = t, this.column = r, \n        this.name = \"SyntaxError\", this.message = e(n, l);\n    }\n    function u(n) {\n        function u() {\n            return n.substring(Lt, qt);\n        }\n        function t() {\n            return Lt;\n        }\n        function r(l) {\n            function u(l, u, t) {\n                var r, e;\n                for (r = u; t > r; r++) e = n.charAt(r), \"\\n\" === e ? (l.seenCR || l.line++, l.column = 1, \n                l.seenCR = !1) : \"\\r\" === e || \"\\u2028\" === e || \"\\u2029\" === e ? (l.line++, l.column = 1, \n                l.seenCR = !0) : (l.column++, l.seenCR = !1);\n            }\n            return Mt !== l && (Mt > l && (Mt = 0, Dt = {\n                line: 1,\n                column: 1,\n                seenCR: !1\n            }), u(Dt, Mt, l), Mt = l), Dt;\n        }\n        function e(n) {\n            Ht > qt || (qt > Ht && (Ht = qt, Ot = []), Ot.push(n));\n        }\n        function o(n) {\n            var l = 0;\n            for (n.sort(); l < n.length; ) n[l - 1] === n[l] ? n.splice(l, 1) : l++;\n        }\n        function c() {\n            var l, u, t, r, o;\n            return l = qt, u = i(), null !== u ? (t = qt, 124 === n.charCodeAt(qt) ? (r = fl, \n            qt++) : (r = null, 0 === Wt && e(sl)), null !== r ? (o = c(), null !== o ? (r = [ r, o ], \n            t = r) : (qt = t, t = il)) : (qt = t, t = il), null === t && (t = al), null !== t ? (Lt = l, \n            u = hl(u, t), null === u ? (qt = l, l = u) : l = u) : (qt = l, l = il)) : (qt = l, \n            l = il), l;\n        }\n        function i() {\n            var n, l, u, t, r;\n            if (n = qt, l = f(), null === l && (l = al), null !== l) if (u = qt, Wt++, t = d(), \n            Wt--, null === t ? u = al : (qt = u, u = il), null !== u) {\n                for (t = [], r = h(), null === r && (r = a()); null !== r; ) t.push(r), r = h(), \n                null === r && (r = a());\n                null !== t ? (r = s(), null === r && (r = al), null !== r ? (Lt = n, l = dl(l, t, r), \n                null === l ? (qt = n, n = l) : n = l) : (qt = n, n = il)) : (qt = n, n = il);\n            } else qt = n, n = il; else qt = n, n = il;\n            return n;\n        }\n        function a() {\n            var n;\n            return n = x(), null === n && (n = Q(), null === n && (n = B())), n;\n        }\n        function f() {\n            var l, u;\n            return l = qt, 94 === n.charCodeAt(qt) ? (u = pl, qt++) : (u = null, 0 === Wt && e(vl)), \n            null !== u && (Lt = l, u = wl()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function s() {\n            var l, u;\n            return l = qt, 36 === n.charCodeAt(qt) ? (u = Al, qt++) : (u = null, 0 === Wt && e(Cl)), \n            null !== u && (Lt = l, u = gl()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function h() {\n            var n, l, u;\n            return n = qt, l = a(), null !== l ? (u = d(), null !== u ? (Lt = n, l = bl(l, u), \n            null === l ? (qt = n, n = l) : n = l) : (qt = n, n = il)) : (qt = n, n = il), n;\n        }\n        function d() {\n            var n, l, u;\n            return Wt++, n = qt, l = p(), null !== l ? (u = k(), null === u && (u = al), null !== u ? (Lt = n, \n            l = Tl(l, u), null === l ? (qt = n, n = l) : n = l) : (qt = n, n = il)) : (qt = n, \n            n = il), Wt--, null === n && (l = null, 0 === Wt && e(kl)), n;\n        }\n        function p() {\n            var n;\n            return n = v(), null === n && (n = w(), null === n && (n = A(), null === n && (n = C(), \n            null === n && (n = g(), null === n && (n = b()))))), n;\n        }\n        function v() {\n            var l, u, t, r, o, c;\n            return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)), \n            null !== u ? (t = T(), null !== t ? (44 === n.charCodeAt(qt) ? (r = ml, qt++) : (r = null, \n            0 === Wt && e(Rl)), null !== r ? (o = T(), null !== o ? (125 === n.charCodeAt(qt) ? (c = Fl, \n            qt++) : (c = null, 0 === Wt && e(Ql)), null !== c ? (Lt = l, u = Sl(t, o), null === u ? (qt = l, \n            l = u) : l = u) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l, \n            l = il)) : (qt = l, l = il), l;\n        }\n        function w() {\n            var l, u, t, r;\n            return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)), \n            null !== u ? (t = T(), null !== t ? (n.substr(qt, 2) === Ul ? (r = Ul, qt += 2) : (r = null, \n            0 === Wt && e(El)), null !== r ? (Lt = l, u = Gl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, \n            l = il)) : (qt = l, l = il)) : (qt = l, l = il), l;\n        }\n        function A() {\n            var l, u, t, r;\n            return l = qt, 123 === n.charCodeAt(qt) ? (u = xl, qt++) : (u = null, 0 === Wt && e(yl)), \n            null !== u ? (t = T(), null !== t ? (125 === n.charCodeAt(qt) ? (r = Fl, qt++) : (r = null, \n            0 === Wt && e(Ql)), null !== r ? (Lt = l, u = Bl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, \n            l = il)) : (qt = l, l = il)) : (qt = l, l = il), l;\n        }\n        function C() {\n            var l, u;\n            return l = qt, 43 === n.charCodeAt(qt) ? (u = jl, qt++) : (u = null, 0 === Wt && e($l)), \n            null !== u && (Lt = l, u = ql()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function g() {\n            var l, u;\n            return l = qt, 42 === n.charCodeAt(qt) ? (u = Ll, qt++) : (u = null, 0 === Wt && e(Ml)), \n            null !== u && (Lt = l, u = Dl()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function b() {\n            var l, u;\n            return l = qt, 63 === n.charCodeAt(qt) ? (u = Hl, qt++) : (u = null, 0 === Wt && e(Ol)), \n            null !== u && (Lt = l, u = Wl()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function k() {\n            var l;\n            return 63 === n.charCodeAt(qt) ? (l = Hl, qt++) : (l = null, 0 === Wt && e(Ol)), \n            l;\n        }\n        function T() {\n            var l, u, t;\n            if (l = qt, u = [], zl.test(n.charAt(qt)) ? (t = n.charAt(qt), qt++) : (t = null, \n            0 === Wt && e(Il)), null !== t) for (;null !== t; ) u.push(t), zl.test(n.charAt(qt)) ? (t = n.charAt(qt), \n            qt++) : (t = null, 0 === Wt && e(Il)); else u = il;\n            return null !== u && (Lt = l, u = Jl(u)), null === u ? (qt = l, l = u) : l = u, \n            l;\n        }\n        function x() {\n            var l, u, t, r;\n            return l = qt, 40 === n.charCodeAt(qt) ? (u = Kl, qt++) : (u = null, 0 === Wt && e(Nl)), \n            null !== u ? (t = R(), null === t && (t = F(), null === t && (t = m(), null === t && (t = y()))), \n            null !== t ? (41 === n.charCodeAt(qt) ? (r = Pl, qt++) : (r = null, 0 === Wt && e(Vl)), \n            null !== r ? (Lt = l, u = Xl(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, \n            l = il)) : (qt = l, l = il)) : (qt = l, l = il), l;\n        }\n        function y() {\n            var n, l;\n            return n = qt, l = c(), null !== l && (Lt = n, l = Yl(l)), null === l ? (qt = n, \n            n = l) : n = l, n;\n        }\n        function m() {\n            var l, u, t;\n            return l = qt, n.substr(qt, 2) === Zl ? (u = Zl, qt += 2) : (u = null, 0 === Wt && e(_l)), \n            null !== u ? (t = c(), null !== t ? (Lt = l, u = nu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, \n            l = il)) : (qt = l, l = il), l;\n        }\n        function R() {\n            var l, u, t;\n            return l = qt, n.substr(qt, 2) === lu ? (u = lu, qt += 2) : (u = null, 0 === Wt && e(uu)), \n            null !== u ? (t = c(), null !== t ? (Lt = l, u = tu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, \n            l = il)) : (qt = l, l = il), l;\n        }\n        function F() {\n            var l, u, t;\n            return l = qt, n.substr(qt, 2) === ru ? (u = ru, qt += 2) : (u = null, 0 === Wt && e(eu)), \n            null !== u ? (t = c(), null !== t ? (Lt = l, u = ou(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, \n            l = il)) : (qt = l, l = il), l;\n        }\n        function Q() {\n            var l, u, t, r, o;\n            if (Wt++, l = qt, 91 === n.charCodeAt(qt) ? (u = iu, qt++) : (u = null, 0 === Wt && e(au)), \n            null !== u) if (94 === n.charCodeAt(qt) ? (t = pl, qt++) : (t = null, 0 === Wt && e(vl)), \n            null === t && (t = al), null !== t) {\n                for (r = [], o = S(), null === o && (o = U()); null !== o; ) r.push(o), o = S(), \n                null === o && (o = U());\n                null !== r ? (93 === n.charCodeAt(qt) ? (o = fu, qt++) : (o = null, 0 === Wt && e(su)), \n                null !== o ? (Lt = l, u = hu(t, r), null === u ? (qt = l, l = u) : l = u) : (qt = l, \n                l = il)) : (qt = l, l = il);\n            } else qt = l, l = il; else qt = l, l = il;\n            return Wt--, null === l && (u = null, 0 === Wt && e(cu)), l;\n        }\n        function S() {\n            var l, u, t, r;\n            return Wt++, l = qt, u = U(), null !== u ? (45 === n.charCodeAt(qt) ? (t = pu, qt++) : (t = null, \n            0 === Wt && e(vu)), null !== t ? (r = U(), null !== r ? (Lt = l, u = wu(u, r), null === u ? (qt = l, \n            l = u) : l = u) : (qt = l, l = il)) : (qt = l, l = il)) : (qt = l, l = il), Wt--, \n            null === l && (u = null, 0 === Wt && e(du)), l;\n        }\n        function U() {\n            var n, l;\n            return Wt++, n = G(), null === n && (n = E()), Wt--, null === n && (l = null, 0 === Wt && e(Au)), \n            n;\n        }\n        function E() {\n            var l, u;\n            return l = qt, Cu.test(n.charAt(qt)) ? (u = n.charAt(qt), qt++) : (u = null, 0 === Wt && e(gu)), \n            null !== u && (Lt = l, u = bu(u)), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function G() {\n            var n;\n            return n = L(), null === n && (n = Y(), null === n && (n = H(), null === n && (n = O(), \n            null === n && (n = W(), null === n && (n = z(), null === n && (n = I(), null === n && (n = J(), \n            null === n && (n = K(), null === n && (n = N(), null === n && (n = P(), null === n && (n = V(), \n            null === n && (n = X(), null === n && (n = _(), null === n && (n = nl(), null === n && (n = ll(), \n            null === n && (n = ul(), null === n && (n = tl()))))))))))))))))), n;\n        }\n        function B() {\n            var n;\n            return n = j(), null === n && (n = q(), null === n && (n = $())), n;\n        }\n        function j() {\n            var l, u;\n            return l = qt, 46 === n.charCodeAt(qt) ? (u = ku, qt++) : (u = null, 0 === Wt && e(Tu)), \n            null !== u && (Lt = l, u = xu()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function $() {\n            var l, u;\n            return Wt++, l = qt, mu.test(n.charAt(qt)) ? (u = n.charAt(qt), qt++) : (u = null, \n            0 === Wt && e(Ru)), null !== u && (Lt = l, u = bu(u)), null === u ? (qt = l, l = u) : l = u, \n            Wt--, null === l && (u = null, 0 === Wt && e(yu)), l;\n        }\n        function q() {\n            var n;\n            return n = M(), null === n && (n = D(), null === n && (n = Y(), null === n && (n = H(), \n            null === n && (n = O(), null === n && (n = W(), null === n && (n = z(), null === n && (n = I(), \n            null === n && (n = J(), null === n && (n = K(), null === n && (n = N(), null === n && (n = P(), \n            null === n && (n = V(), null === n && (n = X(), null === n && (n = Z(), null === n && (n = _(), \n            null === n && (n = nl(), null === n && (n = ll(), null === n && (n = ul(), null === n && (n = tl()))))))))))))))))))), \n            n;\n        }\n        function L() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === Fu ? (u = Fu, qt += 2) : (u = null, 0 === Wt && e(Qu)), \n            null !== u && (Lt = l, u = Su()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function M() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === Fu ? (u = Fu, qt += 2) : (u = null, 0 === Wt && e(Qu)), \n            null !== u && (Lt = l, u = Uu()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function D() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === Eu ? (u = Eu, qt += 2) : (u = null, 0 === Wt && e(Gu)), \n            null !== u && (Lt = l, u = Bu()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function H() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === ju ? (u = ju, qt += 2) : (u = null, 0 === Wt && e($u)), \n            null !== u && (Lt = l, u = qu()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function O() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === Lu ? (u = Lu, qt += 2) : (u = null, 0 === Wt && e(Mu)), \n            null !== u && (Lt = l, u = Du()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function W() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === Hu ? (u = Hu, qt += 2) : (u = null, 0 === Wt && e(Ou)), \n            null !== u && (Lt = l, u = Wu()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function z() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === zu ? (u = zu, qt += 2) : (u = null, 0 === Wt && e(Iu)), \n            null !== u && (Lt = l, u = Ju()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function I() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === Ku ? (u = Ku, qt += 2) : (u = null, 0 === Wt && e(Nu)), \n            null !== u && (Lt = l, u = Pu()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function J() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === Vu ? (u = Vu, qt += 2) : (u = null, 0 === Wt && e(Xu)), \n            null !== u && (Lt = l, u = Yu()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function K() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === Zu ? (u = Zu, qt += 2) : (u = null, 0 === Wt && e(_u)), \n            null !== u && (Lt = l, u = nt()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function N() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === lt ? (u = lt, qt += 2) : (u = null, 0 === Wt && e(ut)), \n            null !== u && (Lt = l, u = tt()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function P() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === rt ? (u = rt, qt += 2) : (u = null, 0 === Wt && e(et)), \n            null !== u && (Lt = l, u = ot()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function V() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === ct ? (u = ct, qt += 2) : (u = null, 0 === Wt && e(it)), \n            null !== u && (Lt = l, u = at()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function X() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === ft ? (u = ft, qt += 2) : (u = null, 0 === Wt && e(st)), \n            null !== u && (Lt = l, u = ht()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function Y() {\n            var l, u, t;\n            return l = qt, n.substr(qt, 2) === dt ? (u = dt, qt += 2) : (u = null, 0 === Wt && e(pt)), \n            null !== u ? (n.length > qt ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(vt)), \n            null !== t ? (Lt = l, u = wt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, \n            l = il)) : (qt = l, l = il), l;\n        }\n        function Z() {\n            var l, u, t;\n            return l = qt, 92 === n.charCodeAt(qt) ? (u = At, qt++) : (u = null, 0 === Wt && e(Ct)), \n            null !== u ? (gt.test(n.charAt(qt)) ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(bt)), \n            null !== t ? (Lt = l, u = kt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, \n            l = il)) : (qt = l, l = il), l;\n        }\n        function _() {\n            var l, u, t, r;\n            if (l = qt, n.substr(qt, 2) === Tt ? (u = Tt, qt += 2) : (u = null, 0 === Wt && e(xt)), \n            null !== u) {\n                if (t = [], yt.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(mt)), \n                null !== r) for (;null !== r; ) t.push(r), yt.test(n.charAt(qt)) ? (r = n.charAt(qt), \n                qt++) : (r = null, 0 === Wt && e(mt)); else t = il;\n                null !== t ? (Lt = l, u = Rt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, \n                l = il);\n            } else qt = l, l = il;\n            return l;\n        }\n        function nl() {\n            var l, u, t, r;\n            if (l = qt, n.substr(qt, 2) === Ft ? (u = Ft, qt += 2) : (u = null, 0 === Wt && e(Qt)), \n            null !== u) {\n                if (t = [], St.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(Ut)), \n                null !== r) for (;null !== r; ) t.push(r), St.test(n.charAt(qt)) ? (r = n.charAt(qt), \n                qt++) : (r = null, 0 === Wt && e(Ut)); else t = il;\n                null !== t ? (Lt = l, u = Et(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, \n                l = il);\n            } else qt = l, l = il;\n            return l;\n        }\n        function ll() {\n            var l, u, t, r;\n            if (l = qt, n.substr(qt, 2) === Gt ? (u = Gt, qt += 2) : (u = null, 0 === Wt && e(Bt)), \n            null !== u) {\n                if (t = [], St.test(n.charAt(qt)) ? (r = n.charAt(qt), qt++) : (r = null, 0 === Wt && e(Ut)), \n                null !== r) for (;null !== r; ) t.push(r), St.test(n.charAt(qt)) ? (r = n.charAt(qt), \n                qt++) : (r = null, 0 === Wt && e(Ut)); else t = il;\n                null !== t ? (Lt = l, u = jt(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, \n                l = il);\n            } else qt = l, l = il;\n            return l;\n        }\n        function ul() {\n            var l, u;\n            return l = qt, n.substr(qt, 2) === Tt ? (u = Tt, qt += 2) : (u = null, 0 === Wt && e(xt)), \n            null !== u && (Lt = l, u = $t()), null === u ? (qt = l, l = u) : l = u, l;\n        }\n        function tl() {\n            var l, u, t;\n            return l = qt, 92 === n.charCodeAt(qt) ? (u = At, qt++) : (u = null, 0 === Wt && e(Ct)), \n            null !== u ? (n.length > qt ? (t = n.charAt(qt), qt++) : (t = null, 0 === Wt && e(vt)), \n            null !== t ? (Lt = l, u = bu(t), null === u ? (qt = l, l = u) : l = u) : (qt = l, \n            l = il)) : (qt = l, l = il), l;\n        }\n        var rl, el = arguments.length > 1 ? arguments[1] : {}, ol = {\n            regexp: c\n        }, cl = c, il = null, al = \"\", fl = \"|\", sl = '\"|\"', hl = function(n, l) {\n            return l ? new Alternate(n, l[1]) : n;\n        }, dl = function(n, l, u) {\n            return new Match([ n ].concat(l).concat([ u ]));\n        }, pl = \"^\", vl = '\"^\"', wl = function() {\n            return new Token(\"start\");\n        }, Al = \"$\", Cl = '\"$\"', gl = function() {\n            return new Token(\"end\");\n        }, bl = function(n, l) {\n            return new Quantified(n, l);\n        }, kl = \"Quantifier\", Tl = function(n, l) {\n            return l && (n.greedy = !1), n;\n        }, xl = \"{\", yl = '\"{\"', ml = \",\", Rl = '\",\"', Fl = \"}\", Ql = '\"}\"', Sl = function(n, l) {\n            return new Quantifier(n, l);\n        }, Ul = \",}\", El = '\",}\"', Gl = function(n) {\n            return new Quantifier(n, 1/0);\n        }, Bl = function(n) {\n            return new Quantifier(n, n);\n        }, jl = \"+\", $l = '\"+\"', ql = function() {\n            return new Quantifier(1, 1/0);\n        }, Ll = \"*\", Ml = '\"*\"', Dl = function() {\n            return new Quantifier(0, 1/0);\n        }, Hl = \"?\", Ol = '\"?\"', Wl = function() {\n            return new Quantifier(0, 1);\n        }, zl = /^[0-9]/, Il = \"[0-9]\", Jl = function(n) {\n            return +n.join(\"\");\n        }, Kl = \"(\", Nl = '\"(\"', Pl = \")\", Vl = '\")\"', Xl = function(n) {\n            return n;\n        }, Yl = function(n) {\n            return new CaptureGroup(n);\n        }, Zl = \"?:\", _l = '\"?:\"', nu = function(n) {\n            return new Group(\"non-capture-group\", n);\n        }, lu = \"?=\", uu = '\"?=\"', tu = function(n) {\n            return new Group(\"positive-lookahead\", n);\n        }, ru = \"?!\", eu = '\"?!\"', ou = function(n) {\n            return new Group(\"negative-lookahead\", n);\n        }, cu = \"CharacterSet\", iu = \"[\", au = '\"[\"', fu = \"]\", su = '\"]\"', hu = function(n, l) {\n            return new CharSet(!!n, l);\n        }, du = \"CharacterRange\", pu = \"-\", vu = '\"-\"', wu = function(n, l) {\n            return new CharacterRange(n, l);\n        }, Au = \"Character\", Cu = /^[^\\\\\\]]/, gu = \"[^\\\\\\\\\\\\]]\", bu = function(n) {\n            return new Literal(n);\n        }, ku = \".\", Tu = '\".\"', xu = function() {\n            return new Token(\"any-character\");\n        }, yu = \"Literal\", mu = /^[^|\\\\\\/.[()?+*$\\^]/, Ru = \"[^|\\\\\\\\\\\\/.[()?+*$\\\\^]\", Fu = \"\\\\b\", Qu = '\"\\\\\\\\b\"', Su = function() {\n            return new Token(\"backspace\");\n        }, Uu = function() {\n            return new Token(\"word-boundary\");\n        }, Eu = \"\\\\B\", Gu = '\"\\\\\\\\B\"', Bu = function() {\n            return new Token(\"non-word-boundary\");\n        }, ju = \"\\\\d\", $u = '\"\\\\\\\\d\"', qu = function() {\n            return new Token(\"digit\");\n        }, Lu = \"\\\\D\", Mu = '\"\\\\\\\\D\"', Du = function() {\n            return new Token(\"non-digit\");\n        }, Hu = \"\\\\f\", Ou = '\"\\\\\\\\f\"', Wu = function() {\n            return new Token(\"form-feed\");\n        }, zu = \"\\\\n\", Iu = '\"\\\\\\\\n\"', Ju = function() {\n            return new Token(\"line-feed\");\n        }, Ku = \"\\\\r\", Nu = '\"\\\\\\\\r\"', Pu = function() {\n            return new Token(\"carriage-return\");\n        }, Vu = \"\\\\s\", Xu = '\"\\\\\\\\s\"', Yu = function() {\n            return new Token(\"white-space\");\n        }, Zu = \"\\\\S\", _u = '\"\\\\\\\\S\"', nt = function() {\n            return new Token(\"non-white-space\");\n        }, lt = \"\\\\t\", ut = '\"\\\\\\\\t\"', tt = function() {\n            return new Token(\"tab\");\n        }, rt = \"\\\\v\", et = '\"\\\\\\\\v\"', ot = function() {\n            return new Token(\"vertical-tab\");\n        }, ct = \"\\\\w\", it = '\"\\\\\\\\w\"', at = function() {\n            return new Token(\"word\");\n        }, ft = \"\\\\W\", st = '\"\\\\\\\\W\"', ht = function() {\n            return new Token(\"non-word\");\n        }, dt = \"\\\\c\", pt = '\"\\\\\\\\c\"', vt = \"any character\", wt = function(n) {\n            return new ControlCharacter(n);\n        }, At = \"\\\\\", Ct = '\"\\\\\\\\\"', gt = /^[1-9]/, bt = \"[1-9]\", kt = function(n) {\n            return new BackReference(n);\n        }, Tt = \"\\\\0\", xt = '\"\\\\\\\\0\"', yt = /^[0-7]/, mt = \"[0-7]\", Rt = function(n) {\n            return new Octal(n.join(\"\"));\n        }, Ft = \"\\\\x\", Qt = '\"\\\\\\\\x\"', St = /^[0-9a-fA-F]/, Ut = \"[0-9a-fA-F]\", Et = function(n) {\n            return new Hex(n.join(\"\"));\n        }, Gt = \"\\\\u\", Bt = '\"\\\\\\\\u\"', jt = function(n) {\n            return new Unicode(n.join(\"\"));\n        }, $t = function() {\n            return new Token(\"null-character\");\n        }, qt = 0, Lt = 0, Mt = 0, Dt = {\n            line: 1,\n            column: 1,\n            seenCR: !1\n        }, Ht = 0, Ot = [], Wt = 0;\n        if (\"startRule\" in el) {\n            if (!(el.startRule in ol)) throw new Error(\"Can't start parsing from rule \\\"\" + el.startRule + '\".');\n            cl = ol[el.startRule];\n        }\n        if (Token.offset = t, Token.text = u, rl = cl(), null !== rl && qt === n.length) return rl;\n        throw o(Ot), Lt = Math.max(qt, Ht), new l(Ot, Lt < n.length ? n.charAt(Lt) : null, Lt, r(Lt).line, r(Lt).column);\n    }\n    return n(l, Error), {\n        SyntaxError: l,\n        parse: u\n    };\n}(), index = 1, cgs = {};\n\nmodule.exports = parser\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n    ## RegExp Handler\n\n    https://github.com/ForbesLindesay/regexp\n    https://github.com/dmajda/pegjs\n    http://www.regexper.com/\n\n    每个节点的结构\n        {\n            type: '',\n            offset: number,\n            text: '',\n            body: {},\n            escaped: true/false\n        }\n\n    type 可选值\n        alternate             |         选择\n        match                 匹配\n        capture-group         ()        捕获组\n        non-capture-group     (?:...)   非捕获组\n        positive-lookahead    (?=p)     零宽正向先行断言\n        negative-lookahead    (?!p)     零宽负向先行断言\n        quantified            a*        重复节点\n        quantifier            *         量词\n        charset               []        字符集\n        range                 {m, n}    范围\n        literal               a         直接量字符\n        unicode               \\uxxxx    Unicode\n        hex                   \\x        十六进制\n        octal                 八进制\n        back-reference        \\n        反向引用\n        control-character     \\cX       控制字符\n\n        // Token\n        start               ^       开头\n        end                 $       结尾\n        any-character       .       任意字符\n        backspace           [\\b]    退格直接量\n        word-boundary       \\b      单词边界\n        non-word-boundary   \\B      非单词边界\n        digit               \\d      ASCII 数字，[0-9]\n        non-digit           \\D      非 ASCII 数字，[^0-9]\n        form-feed           \\f      换页符\n        line-feed           \\n      换行符\n        carriage-return     \\r      回车符\n        white-space         \\s      空白符\n        non-white-space     \\S      非空白符\n        tab                 \\t      制表符\n        vertical-tab        \\v      垂直制表符\n        word                \\w      ASCII 字符，[a-zA-Z0-9]\n        non-word            \\W      非 ASCII 字符，[^a-zA-Z0-9]\n        null-character      \\o      NUL 字符\n */\n\nvar Util = __webpack_require__(0)\nvar Random = __webpack_require__(2)\n    /*\n        \n    */\nvar Handler = {\n    extend: Util.extend\n}\n\n// http://en.wikipedia.org/wiki/ASCII#ASCII_printable_code_chart\n/*var ASCII_CONTROL_CODE_CHART = {\n    '@': ['\\u0000'],\n    A: ['\\u0001'],\n    B: ['\\u0002'],\n    C: ['\\u0003'],\n    D: ['\\u0004'],\n    E: ['\\u0005'],\n    F: ['\\u0006'],\n    G: ['\\u0007', '\\a'],\n    H: ['\\u0008', '\\b'],\n    I: ['\\u0009', '\\t'],\n    J: ['\\u000A', '\\n'],\n    K: ['\\u000B', '\\v'],\n    L: ['\\u000C', '\\f'],\n    M: ['\\u000D', '\\r'],\n    N: ['\\u000E'],\n    O: ['\\u000F'],\n    P: ['\\u0010'],\n    Q: ['\\u0011'],\n    R: ['\\u0012'],\n    S: ['\\u0013'],\n    T: ['\\u0014'],\n    U: ['\\u0015'],\n    V: ['\\u0016'],\n    W: ['\\u0017'],\n    X: ['\\u0018'],\n    Y: ['\\u0019'],\n    Z: ['\\u001A'],\n    '[': ['\\u001B', '\\e'],\n    '\\\\': ['\\u001C'],\n    ']': ['\\u001D'],\n    '^': ['\\u001E'],\n    '_': ['\\u001F']\n}*/\n\n// ASCII printable code chart\n// var LOWER = 'abcdefghijklmnopqrstuvwxyz'\n// var UPPER = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n// var NUMBER = '0123456789'\n// var SYMBOL = ' !\"#$%&\\'()*+,-./' + ':;<=>?@' + '[\\\\]^_`' + '{|}~'\nvar LOWER = ascii(97, 122)\nvar UPPER = ascii(65, 90)\nvar NUMBER = ascii(48, 57)\nvar OTHER = ascii(32, 47) + ascii(58, 64) + ascii(91, 96) + ascii(123, 126) // 排除 95 _ ascii(91, 94) + ascii(96, 96)\nvar PRINTABLE = ascii(32, 126)\nvar SPACE = ' \\f\\n\\r\\t\\v\\u00A0\\u2028\\u2029'\nvar CHARACTER_CLASSES = {\n    '\\\\w': LOWER + UPPER + NUMBER + '_', // ascii(95, 95)\n    '\\\\W': OTHER.replace('_', ''),\n    '\\\\s': SPACE,\n    '\\\\S': function() {\n        var result = PRINTABLE\n        for (var i = 0; i < SPACE.length; i++) {\n            result = result.replace(SPACE[i], '')\n        }\n        return result\n    }(),\n    '\\\\d': NUMBER,\n    '\\\\D': LOWER + UPPER + OTHER\n}\n\nfunction ascii(from, to) {\n    var result = ''\n    for (var i = from; i <= to; i++) {\n        result += String.fromCharCode(i)\n    }\n    return result\n}\n\n// var ast = RegExpParser.parse(regexp.source)\nHandler.gen = function(node, result, cache) {\n    cache = cache || {\n        guid: 1\n    }\n    return Handler[node.type] ? Handler[node.type](node, result, cache) :\n        Handler.token(node, result, cache)\n}\n\nHandler.extend({\n    /* jshint unused:false */\n    token: function(node, result, cache) {\n        switch (node.type) {\n            case 'start':\n            case 'end':\n                return ''\n            case 'any-character':\n                return Random.character()\n            case 'backspace':\n                return ''\n            case 'word-boundary': // TODO\n                return ''\n            case 'non-word-boundary': // TODO\n                break\n            case 'digit':\n                return Random.pick(\n                    NUMBER.split('')\n                )\n            case 'non-digit':\n                return Random.pick(\n                    (LOWER + UPPER + OTHER).split('')\n                )\n            case 'form-feed':\n                break\n            case 'line-feed':\n                return node.body || node.text\n            case 'carriage-return':\n                break\n            case 'white-space':\n                return Random.pick(\n                    SPACE.split('')\n                )\n            case 'non-white-space':\n                return Random.pick(\n                    (LOWER + UPPER + NUMBER).split('')\n                )\n            case 'tab':\n                break\n            case 'vertical-tab':\n                break\n            case 'word': // \\w [a-zA-Z0-9]\n                return Random.pick(\n                    (LOWER + UPPER + NUMBER).split('')\n                )\n            case 'non-word': // \\W [^a-zA-Z0-9]\n                return Random.pick(\n                    OTHER.replace('_', '').split('')\n                )\n            case 'null-character':\n                break\n        }\n        return node.body || node.text\n    },\n    /*\n        {\n            type: 'alternate',\n            offset: 0,\n            text: '',\n            left: {\n                boyd: []\n            },\n            right: {\n                boyd: []\n            }\n        }\n    */\n    alternate: function(node, result, cache) {\n        // node.left/right {}\n        return this.gen(\n            Random.boolean() ? node.left : node.right,\n            result,\n            cache\n        )\n    },\n    /*\n        {\n            type: 'match',\n            offset: 0,\n            text: '',\n            body: []\n        }\n    */\n    match: function(node, result, cache) {\n        result = ''\n            // node.body []\n        for (var i = 0; i < node.body.length; i++) {\n            result += this.gen(node.body[i], result, cache)\n        }\n        return result\n    },\n    // ()\n    'capture-group': function(node, result, cache) {\n        // node.body {}\n        result = this.gen(node.body, result, cache)\n        cache[cache.guid++] = result\n        return result\n    },\n    // (?:...)\n    'non-capture-group': function(node, result, cache) {\n        // node.body {}\n        return this.gen(node.body, result, cache)\n    },\n    // (?=p)\n    'positive-lookahead': function(node, result, cache) {\n        // node.body\n        return this.gen(node.body, result, cache)\n    },\n    // (?!p)\n    'negative-lookahead': function(node, result, cache) {\n        // node.body\n        return ''\n    },\n    /*\n        {\n            type: 'quantified',\n            offset: 3,\n            text: 'c*',\n            body: {\n                type: 'literal',\n                offset: 3,\n                text: 'c',\n                body: 'c',\n                escaped: false\n            },\n            quantifier: {\n                type: 'quantifier',\n                offset: 4,\n                text: '*',\n                min: 0,\n                max: Infinity,\n                greedy: true\n            }\n        }\n    */\n    quantified: function(node, result, cache) {\n        result = ''\n            // node.quantifier {}\n        var count = this.quantifier(node.quantifier);\n        // node.body {}\n        for (var i = 0; i < count; i++) {\n            result += this.gen(node.body, result, cache)\n        }\n        return result\n    },\n    /*\n        quantifier: {\n            type: 'quantifier',\n            offset: 4,\n            text: '*',\n            min: 0,\n            max: Infinity,\n            greedy: true\n        }\n    */\n    quantifier: function(node, result, cache) {\n        var min = Math.max(node.min, 0)\n        var max = isFinite(node.max) ? node.max :\n            min + Random.integer(3, 7)\n        return Random.integer(min, max)\n    },\n    /*\n        \n    */\n    charset: function(node, result, cache) {\n        // node.invert\n        if (node.invert) return this['invert-charset'](node, result, cache)\n\n        // node.body []\n        var literal = Random.pick(node.body)\n        return this.gen(literal, result, cache)\n    },\n    'invert-charset': function(node, result, cache) {\n        var pool = PRINTABLE\n        for (var i = 0, item; i < node.body.length; i++) {\n            item = node.body[i]\n            switch (item.type) {\n                case 'literal':\n                    pool = pool.replace(item.body, '')\n                    break\n                case 'range':\n                    var min = this.gen(item.start, result, cache).charCodeAt()\n                    var max = this.gen(item.end, result, cache).charCodeAt()\n                    for (var ii = min; ii <= max; ii++) {\n                        pool = pool.replace(String.fromCharCode(ii), '')\n                    }\n                    /* falls through */\n                default:\n                    var characters = CHARACTER_CLASSES[item.text]\n                    if (characters) {\n                        for (var iii = 0; iii <= characters.length; iii++) {\n                            pool = pool.replace(characters[iii], '')\n                        }\n                    }\n            }\n        }\n        return Random.pick(pool.split(''))\n    },\n    range: function(node, result, cache) {\n        // node.start, node.end\n        var min = this.gen(node.start, result, cache).charCodeAt()\n        var max = this.gen(node.end, result, cache).charCodeAt()\n        return String.fromCharCode(\n            Random.integer(min, max)\n        )\n    },\n    literal: function(node, result, cache) {\n        return node.escaped ? node.body : node.text\n    },\n    // Unicode \\u\n    unicode: function(node, result, cache) {\n        return String.fromCharCode(\n            parseInt(node.code, 16)\n        )\n    },\n    // 十六进制 \\xFF\n    hex: function(node, result, cache) {\n        return String.fromCharCode(\n            parseInt(node.code, 16)\n        )\n    },\n    // 八进制 \\0\n    octal: function(node, result, cache) {\n        return String.fromCharCode(\n            parseInt(node.code, 8)\n        )\n    },\n    // 反向引用\n    'back-reference': function(node, result, cache) {\n        return cache[node.code] || ''\n    },\n    /*\n        http://en.wikipedia.org/wiki/C0_and_C1_control_codes\n    */\n    CONTROL_CHARACTER_MAP: function() {\n        var CONTROL_CHARACTER = '@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \\\\ ] ^ _'.split(' ')\n        var CONTROL_CHARACTER_UNICODE = '\\u0000 \\u0001 \\u0002 \\u0003 \\u0004 \\u0005 \\u0006 \\u0007 \\u0008 \\u0009 \\u000A \\u000B \\u000C \\u000D \\u000E \\u000F \\u0010 \\u0011 \\u0012 \\u0013 \\u0014 \\u0015 \\u0016 \\u0017 \\u0018 \\u0019 \\u001A \\u001B \\u001C \\u001D \\u001E \\u001F'.split(' ')\n        var map = {}\n        for (var i = 0; i < CONTROL_CHARACTER.length; i++) {\n            map[CONTROL_CHARACTER[i]] = CONTROL_CHARACTER_UNICODE[i]\n        }\n        return map\n    }(),\n    'control-character': function(node, result, cache) {\n        return this.CONTROL_CHARACTER_MAP[node.code]\n    }\n})\n\nmodule.exports = Handler\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n    ## toJSONSchema\n\n    把 Mock.js 风格的数据模板转换成 JSON Schema。\n\n    > [JSON Schema](http://json-schema.org/)\n */\nvar Constant = __webpack_require__(1)\nvar Util = __webpack_require__(0)\nvar Parser = __webpack_require__(3)\n\nfunction toJSONSchema(template, name, path /* Internal Use Only */ ) {\n    // type rule properties items\n    path = path || []\n    var result = {\n        name: typeof name === 'string' ? name.replace(Constant.RE_KEY, '$1') : name,\n        template: template,\n        type: Util.type(template), // 可能不准确，例如 { 'name|1': [{}, {} ...] }\n        rule: Parser.parse(name)\n    }\n    result.path = path.slice(0)\n    result.path.push(name === undefined ? 'ROOT' : result.name)\n\n    switch (result.type) {\n        case 'array':\n            result.items = []\n            Util.each(template, function(value, index) {\n                result.items.push(\n                    toJSONSchema(value, index, result.path)\n                )\n            })\n            break\n        case 'object':\n            result.properties = []\n            Util.each(template, function(value, name) {\n                result.properties.push(\n                    toJSONSchema(value, name, result.path)\n                )\n            })\n            break\n    }\n\n    return result\n\n}\n\nmodule.exports = toJSONSchema\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(26)\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n    ## valid(template, data)\n\n    校验真实数据 data 是否与数据模板 template 匹配。\n    \n    实现思路：\n    1. 解析规则。\n        先把数据模板 template 解析为更方便机器解析的 JSON-Schame\n        name               属性名 \n        type               属性值类型\n        template           属性值模板\n        properties         对象属性数组\n        items              数组元素数组\n        rule               属性值生成规则\n    2. 递归验证规则。\n        然后用 JSON-Schema 校验真实数据，校验项包括属性名、值类型、值、值生成规则。\n\n    提示信息 \n    https://github.com/fge/json-schema-validator/blob/master/src/main/resources/com/github/fge/jsonschema/validator/validation.properties\n    [JSON-Schama validator](http://json-schema-validator.herokuapp.com/)\n    [Regexp Demo](http://demos.forbeslindesay.co.uk/regexp/)\n*/\nvar Constant = __webpack_require__(1)\nvar Util = __webpack_require__(0)\nvar toJSONSchema = __webpack_require__(8)\n\nfunction valid(template, data) {\n    var schema = toJSONSchema(template)\n    var result = Diff.diff(schema, data)\n    for (var i = 0; i < result.length; i++) {\n        // console.log(template, data)\n        // console.warn(Assert.message(result[i]))\n    }\n    return result\n}\n\n/*\n    ## name\n        有生成规则：比较解析后的 name\n        无生成规则：直接比较\n    ## type\n        无类型转换：直接比较\n        有类型转换：先试着解析 template，然后再检查？\n    ## value vs. template\n        基本类型\n            无生成规则：直接比较\n            有生成规则：\n                number\n                    min-max.dmin-dmax\n                    min-max.dcount\n                    count.dmin-dmax\n                    count.dcount\n                    +step\n                    整数部分\n                    小数部分\n                boolean \n                string  \n                    min-max\n                    count\n    ## properties\n        对象\n            有生成规则：检测期望的属性个数，继续递归\n            无生成规则：检测全部的属性个数，继续递归\n    ## items\n        数组\n            有生成规则：\n                `'name|1': [{}, {} ...]`            其中之一，继续递归\n                `'name|+1': [{}, {} ...]`           顺序检测，继续递归\n                `'name|min-max': [{}, {} ...]`      检测个数，继续递归\n                `'name|count': [{}, {} ...]`        检测个数，继续递归\n            无生成规则：检测全部的元素个数，继续递归\n*/\nvar Diff = {\n    diff: function diff(schema, data, name /* Internal Use Only */ ) {\n        var result = []\n\n        // 先检测名称 name 和类型 type，如果匹配，才有必要继续检测\n        if (\n            this.name(schema, data, name, result) &&\n            this.type(schema, data, name, result)\n        ) {\n            this.value(schema, data, name, result)\n            this.properties(schema, data, name, result)\n            this.items(schema, data, name, result)\n        }\n\n        return result\n    },\n    /* jshint unused:false */\n    name: function(schema, data, name, result) {\n        var length = result.length\n\n        Assert.equal('name', schema.path, name + '', schema.name + '', result)\n\n        return result.length === length\n    },\n    type: function(schema, data, name, result) {\n        var length = result.length\n\n        switch (schema.type) {\n            case 'string':\n                // 跳过含有『占位符』的属性值，因为『占位符』返回值的类型可能和模板不一致，例如 '@int' 会返回一个整形值\n                if (schema.template.match(Constant.RE_PLACEHOLDER)) return true\n                break\n            case 'array':\n                if (schema.rule.parameters) {\n                    // name|count: array\n                    if (schema.rule.min !== undefined && schema.rule.max === undefined) {\n                        // 跳过 name|1: array，因为最终值的类型（很可能）不是数组，也不一定与 `array` 中的类型一致\n                        if (schema.rule.count === 1) return true\n                    }\n                    // 跳过 name|+inc: array\n                    if (schema.rule.parameters[2]) return true\n                }\n                break\n            case 'function':\n                // 跳过 `'name': function`，因为函数可以返回任何类型的值。\n                return true\n        }\n\n        Assert.equal('type', schema.path, Util.type(data), schema.type, result)\n\n        return result.length === length\n    },\n    value: function(schema, data, name, result) {\n        var length = result.length\n\n        var rule = schema.rule\n        var templateType = schema.type\n        if (templateType === 'object' || templateType === 'array' || templateType === 'function') return true\n\n        // 无生成规则\n        if (!rule.parameters) {\n            switch (templateType) {\n                case 'regexp':\n                    Assert.match('value', schema.path, data, schema.template, result)\n                    return result.length === length\n                case 'string':\n                    // 同样跳过含有『占位符』的属性值，因为『占位符』的返回值会通常会与模板不一致\n                    if (schema.template.match(Constant.RE_PLACEHOLDER)) return result.length === length\n                    break\n            }\n            Assert.equal('value', schema.path, data, schema.template, result)\n            return result.length === length\n        }\n\n        // 有生成规则\n        var actualRepeatCount\n        switch (templateType) {\n            case 'number':\n                var parts = (data + '').split('.')\n                parts[0] = +parts[0]\n\n                // 整数部分\n                // |min-max\n                if (rule.min !== undefined && rule.max !== undefined) {\n                    Assert.greaterThanOrEqualTo('value', schema.path, parts[0], Math.min(rule.min, rule.max), result)\n                        // , 'numeric instance is lower than the required minimum (minimum: {expected}, found: {actual})')\n                    Assert.lessThanOrEqualTo('value', schema.path, parts[0], Math.max(rule.min, rule.max), result)\n                }\n                // |count\n                if (rule.min !== undefined && rule.max === undefined) {\n                    Assert.equal('value', schema.path, parts[0], rule.min, result, '[value] ' + name)\n                }\n\n                // 小数部分\n                if (rule.decimal) {\n                    // |dmin-dmax\n                    if (rule.dmin !== undefined && rule.dmax !== undefined) {\n                        Assert.greaterThanOrEqualTo('value', schema.path, parts[1].length, rule.dmin, result)\n                        Assert.lessThanOrEqualTo('value', schema.path, parts[1].length, rule.dmax, result)\n                    }\n                    // |dcount\n                    if (rule.dmin !== undefined && rule.dmax === undefined) {\n                        Assert.equal('value', schema.path, parts[1].length, rule.dmin, result)\n                    }\n                }\n\n                break\n\n            case 'boolean':\n                break\n\n            case 'string':\n                // 'aaa'.match(/a/g)\n                actualRepeatCount = data.match(new RegExp(schema.template, 'g'))\n                actualRepeatCount = actualRepeatCount ? actualRepeatCount.length : 0\n\n                // |min-max\n                if (rule.min !== undefined && rule.max !== undefined) {\n                    Assert.greaterThanOrEqualTo('repeat count', schema.path, actualRepeatCount, rule.min, result)\n                    Assert.lessThanOrEqualTo('repeat count', schema.path, actualRepeatCount, rule.max, result)\n                }\n                // |count\n                if (rule.min !== undefined && rule.max === undefined) {\n                    Assert.equal('repeat count', schema.path, actualRepeatCount, rule.min, result)\n                }\n\n                break\n\n            case 'regexp':\n                actualRepeatCount = data.match(new RegExp(schema.template.source.replace(/^\\^|\\$$/g, ''), 'g'))\n                actualRepeatCount = actualRepeatCount ? actualRepeatCount.length : 0\n\n                // |min-max\n                if (rule.min !== undefined && rule.max !== undefined) {\n                    Assert.greaterThanOrEqualTo('repeat count', schema.path, actualRepeatCount, rule.min, result)\n                    Assert.lessThanOrEqualTo('repeat count', schema.path, actualRepeatCount, rule.max, result)\n                }\n                // |count\n                if (rule.min !== undefined && rule.max === undefined) {\n                    Assert.equal('repeat count', schema.path, actualRepeatCount, rule.min, result)\n                }\n                break\n        }\n\n        return result.length === length\n    },\n    properties: function(schema, data, name, result) {\n        var length = result.length\n\n        var rule = schema.rule\n        var keys = Util.keys(data)\n        if (!schema.properties) return\n\n        // 无生成规则\n        if (!schema.rule.parameters) {\n            Assert.equal('properties length', schema.path, keys.length, schema.properties.length, result)\n        } else {\n            // 有生成规则\n            // |min-max\n            if (rule.min !== undefined && rule.max !== undefined) {\n                Assert.greaterThanOrEqualTo('properties length', schema.path, keys.length, Math.min(rule.min, rule.max), result)\n                Assert.lessThanOrEqualTo('properties length', schema.path, keys.length, Math.max(rule.min, rule.max), result)\n            }\n            // |count\n            if (rule.min !== undefined && rule.max === undefined) {\n                // |1, |>1\n                if (rule.count !== 1) Assert.equal('properties length', schema.path, keys.length, rule.min, result)\n            }\n        }\n\n        if (result.length !== length) return false\n\n        for (var i = 0; i < keys.length; i++) {\n            result.push.apply(\n                result,\n                this.diff(\n                    function() {\n                        var property\n                        Util.each(schema.properties, function(item /*, index*/ ) {\n                            if (item.name === keys[i]) property = item\n                        })\n                        return property || schema.properties[i]\n                    }(),\n                    data[keys[i]],\n                    keys[i]\n                )\n            )\n        }\n\n        return result.length === length\n    },\n    items: function(schema, data, name, result) {\n        var length = result.length\n\n        if (!schema.items) return\n\n        var rule = schema.rule\n\n        // 无生成规则\n        if (!schema.rule.parameters) {\n            Assert.equal('items length', schema.path, data.length, schema.items.length, result)\n        } else {\n            // 有生成规则\n            // |min-max\n            if (rule.min !== undefined && rule.max !== undefined) {\n                Assert.greaterThanOrEqualTo('items', schema.path, data.length, (Math.min(rule.min, rule.max) * schema.items.length), result,\n                    '[{utype}] array is too short: {path} must have at least {expected} elements but instance has {actual} elements')\n                Assert.lessThanOrEqualTo('items', schema.path, data.length, (Math.max(rule.min, rule.max) * schema.items.length), result,\n                    '[{utype}] array is too long: {path} must have at most {expected} elements but instance has {actual} elements')\n            }\n            // |count\n            if (rule.min !== undefined && rule.max === undefined) {\n                // |1, |>1\n                if (rule.count === 1) return result.length === length\n                else Assert.equal('items length', schema.path, data.length, (rule.min * schema.items.length), result)\n            }\n            // |+inc\n            if (rule.parameters[2]) return result.length === length\n        }\n\n        if (result.length !== length) return false\n\n        for (var i = 0; i < data.length; i++) {\n            result.push.apply(\n                result,\n                this.diff(\n                    schema.items[i % schema.items.length],\n                    data[i],\n                    i % schema.items.length\n                )\n            )\n        }\n\n        return result.length === length\n    }\n}\n\n/*\n    完善、友好的提示信息\n    \n    Equal, not equal to, greater than, less than, greater than or equal to, less than or equal to\n    路径 验证类型 描述 \n\n    Expect path.name is less than or equal to expected, but path.name is actual.\n\n    Expect path.name is less than or equal to expected, but path.name is actual.\n    Expect path.name is greater than or equal to expected, but path.name is actual.\n\n*/\nvar Assert = {\n    message: function(item) {\n        return (item.message ||\n                '[{utype}] Expect {path}\\'{ltype} {action} {expected}, but is {actual}')\n            .replace('{utype}', item.type.toUpperCase())\n            .replace('{ltype}', item.type.toLowerCase())\n            .replace('{path}', Util.isArray(item.path) && item.path.join('.') || item.path)\n            .replace('{action}', item.action)\n            .replace('{expected}', item.expected)\n            .replace('{actual}', item.actual)\n    },\n    equal: function(type, path, actual, expected, result, message) {\n        if (actual === expected) return true\n        switch (type) {\n            case 'type':\n                // 正则模板 === 字符串最终值\n                if (expected === 'regexp' && actual === 'string') return true\n                break\n        }\n\n        var item = {\n            path: path,\n            type: type,\n            actual: actual,\n            expected: expected,\n            action: 'is equal to',\n            message: message\n        }\n        item.message = Assert.message(item)\n        result.push(item)\n        return false\n    },\n    // actual matches expected\n    match: function(type, path, actual, expected, result, message) {\n        if (expected.test(actual)) return true\n\n        var item = {\n            path: path,\n            type: type,\n            actual: actual,\n            expected: expected,\n            action: 'matches',\n            message: message\n        }\n        item.message = Assert.message(item)\n        result.push(item)\n        return false\n    },\n    notEqual: function(type, path, actual, expected, result, message) {\n        if (actual !== expected) return true\n        var item = {\n            path: path,\n            type: type,\n            actual: actual,\n            expected: expected,\n            action: 'is not equal to',\n            message: message\n        }\n        item.message = Assert.message(item)\n        result.push(item)\n        return false\n    },\n    greaterThan: function(type, path, actual, expected, result, message) {\n        if (actual > expected) return true\n        var item = {\n            path: path,\n            type: type,\n            actual: actual,\n            expected: expected,\n            action: 'is greater than',\n            message: message\n        }\n        item.message = Assert.message(item)\n        result.push(item)\n        return false\n    },\n    lessThan: function(type, path, actual, expected, result, message) {\n        if (actual < expected) return true\n        var item = {\n            path: path,\n            type: type,\n            actual: actual,\n            expected: expected,\n            action: 'is less to',\n            message: message\n        }\n        item.message = Assert.message(item)\n        result.push(item)\n        return false\n    },\n    greaterThanOrEqualTo: function(type, path, actual, expected, result, message) {\n        if (actual >= expected) return true\n        var item = {\n            path: path,\n            type: type,\n            actual: actual,\n            expected: expected,\n            action: 'is greater than or equal to',\n            message: message\n        }\n        item.message = Assert.message(item)\n        result.push(item)\n        return false\n    },\n    lessThanOrEqualTo: function(type, path, actual, expected, result, message) {\n        if (actual <= expected) return true\n        var item = {\n            path: path,\n            type: type,\n            actual: actual,\n            expected: expected,\n            action: 'is less than or equal to',\n            message: message\n        }\n        item.message = Assert.message(item)\n        result.push(item)\n        return false\n    }\n}\n\nvalid.Diff = Diff\nvalid.Assert = Assert\n\nmodule.exports = valid\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(28)\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* global window, document, location, Event, setTimeout */\n/*\n    ## MockXMLHttpRequest\n\n    期望的功能：\n    1. 完整地覆盖原生 XHR 的行为\n    2. 完整地模拟原生 XHR 的行为\n    3. 在发起请求时，自动检测是否需要拦截\n    4. 如果不必拦截，则执行原生 XHR 的行为\n    5. 如果需要拦截，则执行虚拟 XHR 的行为\n    6. 兼容 XMLHttpRequest 和 ActiveXObject\n        new window.XMLHttpRequest()\n        new window.ActiveXObject(\"Microsoft.XMLHTTP\")\n\n    关键方法的逻辑：\n    * new   此时尚无法确定是否需要拦截，所以创建原生 XHR 对象是必须的。\n    * open  此时可以取到 URL，可以决定是否进行拦截。\n    * send  此时已经确定了请求方式。\n\n    规范：\n    http://xhr.spec.whatwg.org/\n    http://www.w3.org/TR/XMLHttpRequest2/\n\n    参考实现：\n    https://github.com/philikon/MockHttpRequest/blob/master/lib/mock.js\n    https://github.com/trek/FakeXMLHttpRequest/blob/master/fake_xml_http_request.js\n    https://github.com/ilinsky/xmlhttprequest/blob/master/XMLHttpRequest.js\n    https://github.com/firebug/firebug-lite/blob/master/content/lite/xhr.js\n    https://github.com/thx/RAP/blob/master/lab/rap.plugin.xinglie.js\n\n    **需不需要全面重写 XMLHttpRequest？**\n        http://xhr.spec.whatwg.org/#interface-xmlhttprequest\n        关键属性 readyState、status、statusText、response、responseText、responseXML 是 readonly，所以，试图通过修改这些状态，来模拟响应是不可行的。\n        因此，唯一的办法是模拟整个 XMLHttpRequest，就像 jQuery 对事件模型的封装。\n\n    // Event handlers\n    onloadstart         loadstart\n    onprogress          progress\n    onabort             abort\n    onerror             error\n    onload              load\n    ontimeout           timeout\n    onloadend           loadend\n    onreadystatechange  readystatechange\n */\n\nvar Util = __webpack_require__(0)\n\n// 备份原生 XMLHttpRequest\nwindow._XMLHttpRequest = window.XMLHttpRequest\nwindow._ActiveXObject = window.ActiveXObject\n\n/*\n    PhantomJS\n    TypeError: '[object EventConstructor]' is not a constructor (evaluating 'new Event(\"readystatechange\")')\n\n    https://github.com/bluerail/twitter-bootstrap-rails-confirm/issues/18\n    https://github.com/ariya/phantomjs/issues/11289\n*/\ntry {\n    new window.Event('custom')\n} catch (exception) {\n    window.Event = function(type, bubbles, cancelable, detail) {\n        var event = document.createEvent('CustomEvent') // MUST be 'CustomEvent'\n        event.initCustomEvent(type, bubbles, cancelable, detail)\n        return event\n    }\n}\n\nvar XHR_STATES = {\n    // The object has been constructed.\n    UNSENT: 0,\n    // The open() method has been successfully invoked.\n    OPENED: 1,\n    // All redirects (if any) have been followed and all HTTP headers of the response have been received.\n    HEADERS_RECEIVED: 2,\n    // The response's body is being received.\n    LOADING: 3,\n    // The data transfer has been completed or something went wrong during the transfer (e.g. infinite redirects).\n    DONE: 4\n}\n\nvar XHR_EVENTS = 'readystatechange loadstart progress abort error load timeout loadend'.split(' ')\nvar XHR_REQUEST_PROPERTIES = 'timeout withCredentials'.split(' ')\nvar XHR_RESPONSE_PROPERTIES = 'readyState responseURL status statusText responseType response responseText responseXML'.split(' ')\n\n// https://github.com/trek/FakeXMLHttpRequest/blob/master/fake_xml_http_request.js#L32\nvar HTTP_STATUS_CODES = {\n    100: \"Continue\",\n    101: \"Switching Protocols\",\n    200: \"OK\",\n    201: \"Created\",\n    202: \"Accepted\",\n    203: \"Non-Authoritative Information\",\n    204: \"No Content\",\n    205: \"Reset Content\",\n    206: \"Partial Content\",\n    300: \"Multiple Choice\",\n    301: \"Moved Permanently\",\n    302: \"Found\",\n    303: \"See Other\",\n    304: \"Not Modified\",\n    305: \"Use Proxy\",\n    307: \"Temporary Redirect\",\n    400: \"Bad Request\",\n    401: \"Unauthorized\",\n    402: \"Payment Required\",\n    403: \"Forbidden\",\n    404: \"Not Found\",\n    405: \"Method Not Allowed\",\n    406: \"Not Acceptable\",\n    407: \"Proxy Authentication Required\",\n    408: \"Request Timeout\",\n    409: \"Conflict\",\n    410: \"Gone\",\n    411: \"Length Required\",\n    412: \"Precondition Failed\",\n    413: \"Request Entity Too Large\",\n    414: \"Request-URI Too Long\",\n    415: \"Unsupported Media Type\",\n    416: \"Requested Range Not Satisfiable\",\n    417: \"Expectation Failed\",\n    422: \"Unprocessable Entity\",\n    500: \"Internal Server Error\",\n    501: \"Not Implemented\",\n    502: \"Bad Gateway\",\n    503: \"Service Unavailable\",\n    504: \"Gateway Timeout\",\n    505: \"HTTP Version Not Supported\"\n}\n\n/*\n    MockXMLHttpRequest\n*/\n\nfunction MockXMLHttpRequest() {\n    // 初始化 custom 对象，用于存储自定义属性\n    this.custom = {\n        events: {},\n        requestHeaders: {},\n        responseHeaders: {}\n    }\n}\n\nMockXMLHttpRequest._settings = {\n    timeout: '10-100',\n    /*\n        timeout: 50,\n        timeout: '10-100',\n     */\n}\n\nMockXMLHttpRequest.setup = function(settings) {\n    Util.extend(MockXMLHttpRequest._settings, settings)\n    return MockXMLHttpRequest._settings\n}\n\nUtil.extend(MockXMLHttpRequest, XHR_STATES)\nUtil.extend(MockXMLHttpRequest.prototype, XHR_STATES)\n\n// 标记当前对象为 MockXMLHttpRequest\nMockXMLHttpRequest.prototype.mock = true\n\n// 是否拦截 Ajax 请求\nMockXMLHttpRequest.prototype.match = false\n\n// 初始化 Request 相关的属性和方法\nUtil.extend(MockXMLHttpRequest.prototype, {\n    // https://xhr.spec.whatwg.org/#the-open()-method\n    // Sets the request method, request URL, and synchronous flag.\n    open: function(method, url, async, username, password) {\n        var that = this\n\n        Util.extend(this.custom, {\n            method: method,\n            url: url,\n            async: typeof async === 'boolean' ? async : true,\n            username: username,\n            password: password,\n            options: {\n                url: url,\n                type: method\n            }\n        })\n\n        this.custom.timeout = function(timeout) {\n            if (typeof timeout === 'number') return timeout\n            if (typeof timeout === 'string' && !~timeout.indexOf('-')) return parseInt(timeout, 10)\n            if (typeof timeout === 'string' && ~timeout.indexOf('-')) {\n                var tmp = timeout.split('-')\n                var min = parseInt(tmp[0], 10)\n                var max = parseInt(tmp[1], 10)\n                return Math.round(Math.random() * (max - min)) + min\n            }\n        }(MockXMLHttpRequest._settings.timeout)\n\n        // 查找与请求参数匹配的数据模板\n        var item = find(this.custom.options)\n\n        function handle(event) {\n            // 同步属性 NativeXMLHttpRequest => MockXMLHttpRequest\n            for (var i = 0; i < XHR_RESPONSE_PROPERTIES.length; i++) {\n                try {\n                    that[XHR_RESPONSE_PROPERTIES[i]] = xhr[XHR_RESPONSE_PROPERTIES[i]]\n                } catch (e) {}\n            }\n            // 触发 MockXMLHttpRequest 上的同名事件\n            that.dispatchEvent(new Event(event.type /*, false, false, that*/ ))\n        }\n\n        // 如果未找到匹配的数据模板，则采用原生 XHR 发送请求。\n        if (!item) {\n            // 创建原生 XHR 对象，调用原生 open()，监听所有原生事件\n            var xhr = createNativeXMLHttpRequest()\n            this.custom.xhr = xhr\n\n            // 初始化所有事件，用于监听原生 XHR 对象的事件\n            for (var i = 0; i < XHR_EVENTS.length; i++) {\n                xhr.addEventListener(XHR_EVENTS[i], handle)\n            }\n\n            // xhr.open()\n            if (username) xhr.open(method, url, async, username, password)\n            else xhr.open(method, url, async)\n\n            // 同步属性 MockXMLHttpRequest => NativeXMLHttpRequest\n            for (var j = 0; j < XHR_REQUEST_PROPERTIES.length; j++) {\n                try {\n                    xhr[XHR_REQUEST_PROPERTIES[j]] = that[XHR_REQUEST_PROPERTIES[j]]\n                } catch (e) {}\n            }\n\n            // 这里的核心问题就是没考虑到在open以后去修改属性 比如axios修改responseType的行为就在open之后\n            Object.defineProperty(that, 'responseType', {\n                get: function () {\n                    return xhr.responseType\n                },\n                set: function (v) {\n                    return (xhr.responseType = v)\n                }\n            });\n\n            return\n        }\n\n        // 找到了匹配的数据模板，开始拦截 XHR 请求\n        this.match = true\n        this.custom.template = item\n        this.readyState = MockXMLHttpRequest.OPENED\n        this.dispatchEvent(new Event('readystatechange' /*, false, false, this*/ ))\n    },\n    // https://xhr.spec.whatwg.org/#the-setrequestheader()-method\n    // Combines a header in author request headers.\n    setRequestHeader: function(name, value) {\n        // 原生 XHR\n        if (!this.match) {\n            this.custom.xhr.setRequestHeader(name, value)\n            return\n        }\n\n        // 拦截 XHR\n        var requestHeaders = this.custom.requestHeaders\n        if (requestHeaders[name]) requestHeaders[name] += ',' + value\n        else requestHeaders[name] = value\n    },\n    timeout: 0,\n    withCredentials: false,\n    upload: {},\n    // https://xhr.spec.whatwg.org/#the-send()-method\n    // Initiates the request.\n    send: function send(data) {\n        var that = this\n        this.custom.options.body = data\n\n        // 原生 XHR\n        if (!this.match) {\n            this.custom.xhr.send(data)\n            return\n        }\n\n        // 拦截 XHR\n\n        // X-Requested-With header\n        this.setRequestHeader('X-Requested-With', 'MockXMLHttpRequest')\n\n        // loadstart The fetch initiates.\n        this.dispatchEvent(new Event('loadstart' /*, false, false, this*/ ))\n\n        if (this.custom.async) setTimeout(done, this.custom.timeout) // 异步\n        else done() // 同步\n\n        function done() {\n            that.readyState = MockXMLHttpRequest.HEADERS_RECEIVED\n            that.dispatchEvent(new Event('readystatechange' /*, false, false, that*/ ))\n            that.readyState = MockXMLHttpRequest.LOADING\n            that.dispatchEvent(new Event('readystatechange' /*, false, false, that*/ ))\n\n            // fix #92 #93 by @qddegtya\n            that.response = that.responseText = JSON.stringify(\n                convert(that.custom.template, that.custom.options),\n                null, 4\n            )\n\n            that.status = that.custom.options.status || 200\n            that.statusText = HTTP_STATUS_CODES[that.status]\n\n            that.readyState = MockXMLHttpRequest.DONE\n            that.dispatchEvent(new Event('readystatechange' /*, false, false, that*/ ))\n            that.dispatchEvent(new Event('load' /*, false, false, that*/ ));\n            that.dispatchEvent(new Event('loadend' /*, false, false, that*/ ));\n        }\n    },\n    // https://xhr.spec.whatwg.org/#the-abort()-method\n    // Cancels any network activity.\n    abort: function abort() {\n        // 原生 XHR\n        if (!this.match) {\n            this.custom.xhr.abort()\n            return\n        }\n\n        // 拦截 XHR\n        this.readyState = MockXMLHttpRequest.UNSENT\n        this.dispatchEvent(new Event('abort', false, false, this))\n        this.dispatchEvent(new Event('error', false, false, this))\n    }\n})\n\n// 初始化 Response 相关的属性和方法\nUtil.extend(MockXMLHttpRequest.prototype, {\n    responseURL: '',\n    status: MockXMLHttpRequest.UNSENT,\n    statusText: '',\n    // https://xhr.spec.whatwg.org/#the-getresponseheader()-method\n    getResponseHeader: function(name) {\n        // 原生 XHR\n        if (!this.match) {\n            return this.custom.xhr.getResponseHeader(name)\n        }\n\n        // 拦截 XHR\n        return this.custom.responseHeaders[name.toLowerCase()]\n    },\n    // https://xhr.spec.whatwg.org/#the-getallresponseheaders()-method\n    // http://www.utf8-chartable.de/\n    getAllResponseHeaders: function() {\n        // 原生 XHR\n        if (!this.match) {\n            return this.custom.xhr.getAllResponseHeaders()\n        }\n\n        // 拦截 XHR\n        var responseHeaders = this.custom.responseHeaders\n        var headers = ''\n        for (var h in responseHeaders) {\n            if (!responseHeaders.hasOwnProperty(h)) continue\n            headers += h + ': ' + responseHeaders[h] + '\\r\\n'\n        }\n        return headers\n    },\n    overrideMimeType: function( /*mime*/ ) {},\n    responseType: '', // '', 'text', 'arraybuffer', 'blob', 'document', 'json'\n    response: null,\n    responseText: '',\n    responseXML: null\n})\n\n// EventTarget\nUtil.extend(MockXMLHttpRequest.prototype, {\n    addEventListener: function addEventListener(type, handle) {\n        var events = this.custom.events\n        if (!events[type]) events[type] = []\n        events[type].push(handle)\n    },\n    removeEventListener: function removeEventListener(type, handle) {\n        var handles = this.custom.events[type] || []\n        for (var i = 0; i < handles.length; i++) {\n            if (handles[i] === handle) {\n                handles.splice(i--, 1)\n            }\n        }\n    },\n    dispatchEvent: function dispatchEvent(event) {\n        var handles = this.custom.events[event.type] || []\n        for (var i = 0; i < handles.length; i++) {\n            handles[i].call(this, event)\n        }\n\n        var ontype = 'on' + event.type\n        if (this[ontype]) this[ontype](event)\n    }\n})\n\n// Inspired by jQuery\nfunction createNativeXMLHttpRequest() {\n    var isLocal = function() {\n        var rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/\n        var rurl = /^([\\w.+-]+:)(?:\\/\\/([^\\/?#:]*)(?::(\\d+)|)|)/\n        var ajaxLocation = location.href\n        var ajaxLocParts = rurl.exec(ajaxLocation.toLowerCase()) || []\n        return rlocalProtocol.test(ajaxLocParts[1])\n    }()\n\n    return window.ActiveXObject ?\n        (!isLocal && createStandardXHR() || createActiveXHR()) : createStandardXHR()\n\n    function createStandardXHR() {\n        try {\n            return new window._XMLHttpRequest();\n        } catch (e) {}\n    }\n\n    function createActiveXHR() {\n        try {\n            return new window._ActiveXObject(\"Microsoft.XMLHTTP\");\n        } catch (e) {}\n    }\n}\n\n\n// 查找与请求参数匹配的数据模板：URL，Type\nfunction find(options) {\n\n    for (var sUrlType in MockXMLHttpRequest.Mock._mocked) {\n        var item = MockXMLHttpRequest.Mock._mocked[sUrlType]\n        if (\n            (!item.rurl || match(item.rurl, options.url)) &&\n            (!item.rtype || match(item.rtype, options.type.toLowerCase()))\n        ) {\n            // console.log('[mock]', options.url, '>', item.rurl)\n            return item\n        }\n    }\n\n    function match(expected, actual) {\n        if (Util.type(expected) === 'string') {\n            return expected === actual\n        }\n        if (Util.type(expected) === 'regexp') {\n            return expected.test(actual)\n        }\n    }\n\n}\n\n// 数据模板 ＝> 响应数据\nfunction convert(item, options) {\n    if (Util.isFunction(item.template)) {\n        var data = item.template(options)\n        // 数据模板中的返回参构造处理\n        // _status 控制返回状态码\n        data._status && data._status !== 0 && (options.status = data._status)\n        delete data._status\n        return data\n    }\n    return MockXMLHttpRequest.Mock.mock(item.template)\n}\n\nmodule.exports = MockXMLHttpRequest\n\n\n/***/ })\n/******/ ]);\n});"]}