、利用cpui判断cpu的类型及支持的指令集,可以进行条件编程:(InstructionSet.h)
代码语言:javascript
AI代码解释
#pragma once // InstructionSet.cpp // Compile by using: cl /EHsc /W4 InstructionSet.cpp // processor: x86, x64 // Uses the __cpuid intrinsic to get information about // CPU extended instruction set support. #include <opencv2/opencv.hpp> #include <bitset> #include <array> #include <string> #include <intrin.h> class InstructionSet { // forward declarations class InstructionSet_Internal; public: // getters static std::string Vendor(void) { return CPU_Rep.vendor_; } static std::string Brand(void) { return CPU_Rep.brand_; } static bool SSE3(void) { return CPU_Rep.f_1_ECX_[0]; } static bool PCLMULQDQ(void) { return CPU_Rep.f_1_ECX_[1]; } static bool MONITOR(void) { return CPU_Rep.f_1_ECX_[3]; } static bool SSSE3(void) { return CPU_Rep.f_1_ECX_[9]; } static bool FMA(void) { return CPU_Rep.f_1_ECX_[12]; } static bool CMPXCHG16B(void) { return CPU_Rep.f_1_ECX_[13]; } static bool SSE41(void) { return CPU_Rep.f_1_ECX_[19]; } static bool SSE42(void) { return CPU_Rep.f_1_ECX_[20]; } static bool MOVBE(void) { return CPU_Rep.f_1_ECX_[22]; } static bool POPCNT(void) { return CPU_Rep.f_1_ECX_[23]; } static bool AES(void) { return CPU_Rep.f_1_ECX_[25]; } static bool XSAVE(void) { return CPU_Rep.f_1_ECX_[26]; } static bool OSXSAVE(void) { return CPU_Rep.f_1_ECX_[27]; } static bool AVX(void) { return CPU_Rep.f_1_ECX_[28]; } static bool F16C(void) { return CPU_Rep.f_1_ECX_[29]; } static bool RDRAND(void) { return CPU_Rep.f_1_ECX_[30]; } static bool MSR(void) { return CPU_Rep.f_1_EDX_[5]; } static bool CX8(void) { return CPU_Rep.f_1_EDX_[8]; } static bool SEP(void) { return CPU_Rep.f_1_EDX_[11]; } static bool CMOV(void) { return CPU_Rep.f_1_EDX_[15]; } static bool CLFSH(void) { return CPU_Rep.f_1_EDX_[19]; } static bool MMX(void) { return CPU_Rep.f_1_EDX_[23]; } static bool FXSR(void) { return CPU_Rep.f_1_EDX_[24]; } static bool SSE(void) { return CPU_Rep.f_1_EDX_[25]; } static bool SSE2(void) { return CPU_Rep.f_1_EDX_[26]; } static bool FSGSBASE(void) { return CPU_Rep.f_7_EBX_[0]; } static bool BMI1(void) { return CPU_Rep.f_7_EBX_[3]; } static bool HLE(void) { return CPU_Rep.isIntel_ && CPU_Rep.f_7_EBX_[4]; } static bool AVX2(void) { return CPU_Rep.f_7_EBX_[5]; } static bool BMI2(void) { return CPU_Rep.f_7_EBX_[8]; } static bool ERMS(void) { return CPU_Rep.f_7_EBX_[9]; } static bool INVPCID(void) { return CPU_Rep.f_7_EBX_[10]; } static bool RTM(void) { return CPU_Rep.isIntel_ && CPU_Rep.f_7_EBX_[11]; } static bool AVX512F(void) { return CPU_Rep.f_7_EBX_[16]; } static bool RDSEED(void) { return CPU_Rep.f_7_EBX_[18]; } static bool ADX(void) { return CPU_Rep.f_7_EBX_[19]; } static bool AVX512PF(void) { return CPU_Rep.f_7_EBX_[26]; } static bool AVX512ER(void) { return CPU_Rep.f_7_EBX_[27]; } static bool AVX512CD(void) { return CPU_Rep.f_7_EBX_[28]; } static bool SHA(void) { return CPU_Rep.f_7_EBX_[29]; } static bool PREFETCHWT1(void) { return CPU_Rep.f_7_ECX_[0]; } static bool LAHF(void) { return CPU_Rep.f_81_ECX_[0]; } static bool LZCNT(void) { return CPU_Rep.isIntel_ && CPU_Rep.f_81_ECX_[5]; } static bool ABM(void) { return CPU_Rep.isAMD_ && CPU_Rep.f_81_ECX_[5]; } static bool SSE4a(void) { return CPU_Rep.isAMD_ && CPU_Rep.f_81_ECX_[6]; } static bool XOP(void) { return CPU_Rep.isAMD_ && CPU_Rep.f_81_ECX_[11]; } static bool TBM(void) { return CPU_Rep.isAMD_ && CPU_Rep.f_81_ECX_[21]; } static bool SYSCALL(void) { return CPU_Rep.isIntel_ && CPU_Rep.f_81_EDX_[11]; } static bool MMXEXT(void) { return CPU_Rep.isAMD_ && CPU_Rep.f_81_EDX_[22]; } static bool RDTSCP(void) { return CPU_Rep.isIntel_ && CPU_Rep.f_81_EDX_[27]; } static bool _3DNOWEXT(void) { return CPU_Rep.isAMD_ && CPU_Rep.f_81_EDX_[30]; } static bool _3DNOW(void) { return CPU_Rep.isAMD_ && CPU_Rep.f_81_EDX_[31]; } //private: static const InstructionSet_Internal CPU_Rep; class InstructionSet_Internal { public: InstructionSet_Internal() : nIds_{ 0 }, nExIds_{ 0 }, isIntel_{ false }, isAMD_{ false }, f_1_ECX_{ 0 }, f_1_EDX_{ 0 }, f_7_EBX_{ 0 }, f_7_ECX_{ 0 }, f_81_ECX_{ 0 }, f_81_EDX_{ 0 }, data_{}, extdata_{} { //int cpuInfo[4] = {-1}; std::array<int, 4> cpui; // Calling __cpuid with 0x0 as the function_id argument // gets the number of the highest valid function ID. __cpuid(cpui.data(), 0); nIds_ = cpui[0]; for (int i = 0; i <= nIds_; ++i) { __cpuidex(cpui.data(), i, 0); data_.push_back(cpui); } // Capture vendor string char vendor[0x20]; memset(vendor, 0, sizeof(vendor)); *reinterpret_cast<int*>(vendor) = data_[0][1]; *reinterpret_cast<int*>(vendor + 4) = data_[0][3]; *reinterpret_cast<int*>(vendor + 8) = data_[0][2]; vendor_ = vendor; if (vendor_ == "GenuineIntel") { isIntel_ = true; } else if (vendor_ == "AuthenticAMD") { isAMD_ = true; } // load bitset with flags for function 0x00000001 if (nIds_ >= 1) { f_1_ECX_ = data_[1][2]; f_1_EDX_ = data_[1][3]; } // load bitset with flags for function 0x00000007 if (nIds_ >= 7) { f_7_EBX_ = data_[7][1]; f_7_ECX_ = data_[7][2]; } // Calling __cpuid with 0x80000000 as the function_id argument // gets the number of the highest valid extended ID. __cpuid(cpui.data(), 0x80000000); nExIds_ = cpui[0]; char brand[0x40]; memset(brand, 0, sizeof(brand)); for (int i = 0x80000000; i <= nExIds_; ++i) { __cpuidex(cpui.data(), i, 0); extdata_.push_back(cpui); } // load bitset with flags for function 0x80000001 if (nExIds_ >= 0x80000001) { f_81_ECX_ = extdata_[1][2]; f_81_EDX_ = extdata_[1][3]; } // Interpret CPU brand string if reported if (nExIds_ >= 0x80000004) { memcpy(brand, extdata_[2].data(), sizeof(cpui)); memcpy(brand + 16, extdata_[3].data(), sizeof(cpui)); memcpy(brand + 32, extdata_[4].data(), sizeof(cpui)); brand_ = brand; } }; int nIds_; int nExIds_; std::string vendor_; std::string brand_; bool isIntel_; bool isAMD_; std::bitset<32> f_1_ECX_; std::bitset<32> f_1_EDX_; std::bitset<32> f_7_EBX_; std::bitset<32> f_7_ECX_; std::bitset<32> f_81_ECX_; std::bitset<32> f_81_EDX_; std::vector<std::array<int, 4>> data_; std::vector<std::array<int, 4>> extdata_; }; }; // Initialize static member data const InstructionSet::InstructionSet_Internal InstructionSet::CPU_Rep; // Print out supported instruction set extensions //int main() //{ // auto& outstream = std::cout; // // auto support_message = [&outstream](std::string isa_feature, bool is_supported) { // outstream << isa_feature << (is_supported ? " supported" : " not supported") << std::endl; // }; // // std::cout << InstructionSet::Vendor() << std::endl; // std::cout << InstructionSet::Brand() << std::endl; // // support_message("3DNOW", InstructionSet::_3DNOW()); // support_message("3DNOWEXT", InstructionSet::_3DNOWEXT()); // support_message("ABM", InstructionSet::ABM()); // support_message("ADX", InstructionSet::ADX()); // support_message("AES", InstructionSet::AES()); // support_message("AVX", InstructionSet::AVX()); // support_message("AVX2", InstructionSet::AVX2()); // support_message("AVX512CD", InstructionSet::AVX512CD()); // support_message("AVX512ER", InstructionSet::AVX512ER()); // support_message("AVX512F", InstructionSet::AVX512F()); // support_message("AVX512PF", InstructionSet::AVX512PF()); // support_message("BMI1", InstructionSet::BMI1()); // support_message("BMI2", InstructionSet::BMI2()); // support_message("CLFSH", InstructionSet::CLFSH()); // support_message("CMPXCHG16B", InstructionSet::CMPXCHG16B()); // support_message("CX8", InstructionSet::CX8()); // support_message("ERMS", InstructionSet::ERMS()); // support_message("F16C", InstructionSet::F16C()); // support_message("FMA", InstructionSet::FMA()); // support_message("FSGSBASE", InstructionSet::FSGSBASE()); // support_message("FXSR", InstructionSet::FXSR()); // support_message("HLE", InstructionSet::HLE()); // support_message("INVPCID", InstructionSet::INVPCID()); // support_message("LAHF", InstructionSet::LAHF()); // support_message("LZCNT", InstructionSet::LZCNT()); // support_message("MMX", InstructionSet::MMX()); // support_message("MMXEXT", InstructionSet::MMXEXT()); // support_message("MONITOR", InstructionSet::MONITOR()); // support_message("MOVBE", InstructionSet::MOVBE()); // support_message("MSR", InstructionSet::MSR()); // support_message("OSXSAVE", InstructionSet::OSXSAVE()); // support_message("PCLMULQDQ", InstructionSet::PCLMULQDQ()); // support_message("POPCNT", InstructionSet::POPCNT()); // support_message("PREFETCHWT1", InstructionSet::PREFETCHWT1()); // support_message("RDRAND", InstructionSet::RDRAND()); // support_message("RDSEED", InstructionSet::RDSEED()); // support_message("RDTSCP", InstructionSet::RDTSCP()); // support_message("RTM", InstructionSet::RTM()); // support_message("SEP", InstructionSet::SEP()); // support_message("SHA", InstructionSet::SHA()); // support_message("SSE", InstructionSet::SSE()); // support_message("SSE2", InstructionSet::SSE2()); // support_message("SSE3", InstructionSet::SSE3()); // support_message("SSE4.1", InstructionSet::SSE41()); // support_message("SSE4.2", InstructionSet::SSE42()); // support_message("SSE4a", InstructionSet::SSE4a()); // support_message("SSSE3", InstructionSet::SSSE3()); // support_message("SYSCALL", InstructionSet::SYSCALL()); // support_message("TBM", InstructionSet::TBM()); // support_message("XOP", InstructionSet::XOP()); // support_message("XSAVE", InstructionSet::XSAVE()); //}map.dzbneyo.cn/PoTs/593159.TML
map.dzbneyo.cn/PoTs/117557.TML
map.dzbneyo.cn/PoTs/137197.TML
map.dzbneyo.cn/PoTs/319351.TML
map.dzbneyo.cn/PoTs/911595.TML
map.dzbneyo.cn/PoTs/751719.TML
map.dzbneyo.cn/PoTs/599351.TML
map.dzbneyo.cn/PoTs/733339.TML
map.dzbneyo.cn/PoTs/933337.TML
map.dzbneyo.cn/PoTs/355993.TML
map.dzbneyo.cn/PoTs/013845.TML
map.dzbneyo.cn/PoTs/991799.TML
map.dzbneyo.cn/PoTs/171955.TML
map.dzbneyo.cn/PoTs/119995.TML
map.dzbneyo.cn/PoTs/991999.TML
map.dzbneyo.cn/PoTs/793111.TML
map.dzbneyo.cn/PoTs/771173.TML
map.dzbneyo.cn/PoTs/397373.TML
map.dzbneyo.cn/PoTs/133311.TML
map.dzbneyo.cn/PoTs/195919.TML
map.dzbneyo.cn/PoTs/290156.TML
map.dzbneyo.cn/PoTs/991751.TML
map.dzbneyo.cn/PoTs/513359.TML
map.dzbneyo.cn/PoTs/959957.TML
map.dzbneyo.cn/PoTs/397973.TML
map.dzbneyo.cn/PoTs/399315.TML
map.dzbneyo.cn/PoTs/377531.TML
map.dzbneyo.cn/PoTs/515999.TML
map.dzbneyo.cn/PoTs/535577.TML
map.dzbneyo.cn/PoTs/377371.TML
map.dzbneyo.cn/PoTs/397197.TML
map.dzbneyo.cn/PoTs/771353.TML
map.dzbneyo.cn/PoTs/913773.TML
map.dzbneyo.cn/PoTs/377557.TML
map.dzbneyo.cn/PoTs/353753.TML
map.dzbneyo.cn/PoTs/519391.TML
map.dzbneyo.cn/PoTs/913393.TML
map.dzbneyo.cn/PoTs/951597.TML
map.dzbneyo.cn/PoTs/993791.TML
map.dzbneyo.cn/PoTs/979115.TML
map.dzbneyo.cn/PoTs/993171.TML
map.dzbneyo.cn/PoTs/159937.TML
map.dzbneyo.cn/PoTs/133753.TML
map.dzbneyo.cn/PoTs/957395.TML
map.dzbneyo.cn/PoTs/175931.TML
map.dzbneyo.cn/PoTs/353531.TML
map.dzbneyo.cn/PoTs/397555.TML
map.dzbneyo.cn/PoTs/935773.TML
map.dzbneyo.cn/PoTs/175131.TML
map.dzbneyo.cn/PoTs/717533.TML
map.dzbneyo.cn/PoTs/797519.TML
map.dzbneyo.cn/PoTs/117959.TML
map.dzbneyo.cn/PoTs/991999.TML
map.dzbneyo.cn/PoTs/975315.TML
map.dzbneyo.cn/PoTs/393713.TML
map.dzbneyo.cn/PoTs/131517.TML
map.dzbneyo.cn/PoTs/991377.TML
map.dzbneyo.cn/PoTs/753537.TML
map.dzbneyo.cn/PoTs/519573.TML
map.dzbneyo.cn/PoTs/555737.TML
map.dzbneyo.cn/PoTs/537957.TML
map.dzbneyo.cn/PoTs/715791.TML
map.dzbneyo.cn/PoTs/933737.TML
map.dzbneyo.cn/PoTs/773579.TML
map.dzbneyo.cn/PoTs/311353.TML
map.dzbneyo.cn/PoTs/335935.TML
map.dzbneyo.cn/PoTs/393799.TML
map.dzbneyo.cn/PoTs/159939.TML
map.dzbneyo.cn/PoTs/155915.TML
map.dzbneyo.cn/PoTs/959977.TML
map.dzbneyo.cn/PoTs/195959.TML
map.dzbneyo.cn/PoTs/157335.TML
map.dzbneyo.cn/PoTs/135991.TML
map.dzbneyo.cn/PoTs/799951.TML
map.dzbneyo.cn/PoTs/993913.TML
map.dzbneyo.cn/PoTs/719131.TML
map.dzbneyo.cn/PoTs/193719.TML
map.dzbneyo.cn/PoTs/913355.TML
map.dzbneyo.cn/PoTs/917711.TML
map.dzbneyo.cn/PoTs/999539.TML
map.dzbneyo.cn/PoTs/317791.TML
map.dzbneyo.cn/PoTs/719519.TML
map.dzbneyo.cn/PoTs/137973.TML
map.dzbneyo.cn/PoTs/775357.TML
map.dzbneyo.cn/PoTs/517333.TML
map.dzbneyo.cn/PoTs/579939.TML
map.dzbneyo.cn/PoTs/533773.TML
map.dzbneyo.cn/PoTs/919777.TML
map.dzbneyo.cn/PoTs/971137.TML
map.dzbneyo.cn/PoTs/779133.TML
map.dzbneyo.cn/PoTs/935171.TML
map.dzbneyo.cn/PoTs/191735.TML
map.dzbneyo.cn/PoTs/939935.TML
map.dzbneyo.cn/PoTs/577597.TML
map.dzbneyo.cn/PoTs/573375.TML
map.dzbneyo.cn/PoTs/573753.TML
map.dzbneyo.cn/PoTs/513931.TML
map.dzbneyo.cn/PoTs/939339.TML
map.dzbneyo.cn/PoTs/331335.TML
map.dzbneyo.cn/PoTs/399959.TML
map.dzbneyo.cn/PoTs/795759.TML
map.dzbneyo.cn/PoTs/519337.TML
map.dzbneyo.cn/PoTs/935775.TML
map.dzbneyo.cn/PoTs/371539.TML
map.dzbneyo.cn/PoTs/775959.TML
map.dzbneyo.cn/PoTs/935511.TML
map.dzbneyo.cn/PoTs/719551.TML
map.dzbneyo.cn/PoTs/115759.TML
map.dzbneyo.cn/PoTs/719799.TML
map.dzbneyo.cn/PoTs/159171.TML
map.dzbneyo.cn/PoTs/135399.TML
map.dzbneyo.cn/PoTs/193755.TML
map.dzbneyo.cn/PoTs/171393.TML
map.dzbneyo.cn/PoTs/159555.TML
map.dzbneyo.cn/PoTs/117939.TML
map.dzbneyo.cn/PoTs/115177.TML
map.dzbneyo.cn/PoTs/939113.TML
map.dzbneyo.cn/PoTs/537375.TML
map.dzbneyo.cn/PoTs/533773.TML
map.dzbneyo.cn/PoTs/777753.TML
map.dzbneyo.cn/PoTs/779573.TML
map.dzbneyo.cn/PoTs/791791.TML
map.dzbneyo.cn/PoTs/117171.TML
map.dzbneyo.cn/PoTs/551937.TML
map.dzbneyo.cn/PoTs/551375.TML
map.dzbneyo.cn/PoTs/595919.TML
map.dzbneyo.cn/PoTs/317331.TML
map.dzbneyo.cn/PoTs/315511.TML
map.dzbneyo.cn/PoTs/733539.TML
map.dzbneyo.cn/PoTs/575757.TML
map.dzbneyo.cn/PoTs/393577.TML
map.dzbneyo.cn/PoTs/575551.TML
map.dzbneyo.cn/PoTs/151793.TML
map.dzbneyo.cn/PoTs/533917.TML
map.dzbneyo.cn/PoTs/793157.TML
map.dzbneyo.cn/PoTs/377919.TML
map.dzbneyo.cn/PoTs/377797.TML
map.dzbneyo.cn/PoTs/155151.TML
map.dzbneyo.cn/PoTs/935739.TML
map.dzbneyo.cn/PoTs/757395.TML
map.dzbneyo.cn/PoTs/355791.TML
map.dzbneyo.cn/PoTs/779975.TML
map.dzbneyo.cn/PoTs/731159.TML
map.dzbneyo.cn/PoTs/133597.TML
map.dzbneyo.cn/PoTs/193175.TML
map.dzbneyo.cn/PoTs/539351.TML
map.dzbneyo.cn/PoTs/599599.TML
map.dzbneyo.cn/PoTs/937399.TML
map.dzbneyo.cn/PoTs/315511.TML
map.dzbneyo.cn/PoTs/319315.TML
map.dzbneyo.cn/PoTs/197791.TML
map.dzbneyo.cn/PoTs/513111.TML
map.dzbneyo.cn/PoTs/773173.TML
map.dzbneyo.cn/PoTs/179915.TML
map.dzbneyo.cn/PoTs/993351.TML
map.dzbneyo.cn/PoTs/931395.TML
map.dzbneyo.cn/PoTs/313175.TML
map.dzbneyo.cn/PoTs/931371.TML
map.dzbneyo.cn/PoTs/579773.TML
map.dzbneyo.cn/PoTs/339537.TML
map.dzbneyo.cn/PoTs/331573.TML
map.dzbneyo.cn/PoTs/371397.TML
map.dzbneyo.cn/PoTs/333175.TML
map.dzbneyo.cn/PoTs/599935.TML
map.dzbneyo.cn/PoTs/731111.TML
map.dzbneyo.cn/PoTs/551733.TML
map.dzbneyo.cn/PoTs/193511.TML
map.dzbneyo.cn/PoTs/773591.TML
map.dzbneyo.cn/PoTs/159713.TML
map.dzbneyo.cn/PoTs/579339.TML
map.dzbneyo.cn/PoTs/371939.TML
map.dzbneyo.cn/PoTs/931931.TML
map.dzbneyo.cn/PoTs/551577.TML
map.dzbneyo.cn/PoTs/319799.TML
map.dzbneyo.cn/PoTs/135953.TML
map.dzbneyo.cn/PoTs/957755.TML
map.dzbneyo.cn/PoTs/535713.TML
map.dzbneyo.cn/PoTs/771797.TML
map.dzbneyo.cn/PoTs/935919.TML
map.dzbneyo.cn/PoTs/715511.TML
map.dzbneyo.cn/PoTs/779159.TML
map.dzbneyo.cn/PoTs/995993.TML
map.dzbneyo.cn/PoTs/391113.TML
map.dzbneyo.cn/PoTs/773995.TML
map.dzbneyo.cn/PoTs/595795.TML
map.dzbneyo.cn/PoTs/999957.TML
map.dzbneyo.cn/PoTs/315313.TML
map.dzbneyo.cn/PoTs/319575.TML
map.dzbneyo.cn/PoTs/135193.TML
map.dzbneyo.cn/PoTs/597551.TML
map.dzbneyo.cn/PoTs/379731.TML
map.dzbneyo.cn/PoTs/715111.TML
map.dzbneyo.cn/PoTs/773977.TML
map.dzbneyo.cn/PoTs/537759.TML
map.dzbneyo.cn/PoTs/757917.TML
map.dzbneyo.cn/PoTs/351911.TML
map.dzbneyo.cn/PoTs/799553.TML
map.dzbneyo.cn/PoTs/913193.TML
map.dzbneyo.cn/PoTs/535953.TML
map.dzbneyo.cn/PoTs/319755.TML
map.dzbneyo.cn/PoTs/911557.TML
map.dzbneyo.cn/PoTs/595779.TML
map.dzbneyo.cn/PoTs/119593.TML
map.dzbneyo.cn/PoTs/351199.TML
map.dzbneyo.cn/PoTs/797719.TML
map.dzbneyo.cn/PoTs/575997.TML
map.dzbneyo.cn/PoTs/175391.TML
map.dzbneyo.cn/PoTs/595955.TML
map.dzbneyo.cn/PoTs/597155.TML
map.dzbneyo.cn/PoTs/553999.TML
map.dzbneyo.cn/PoTs/759551.TML
map.dzbneyo.cn/PoTs/751935.TML
map.dzbneyo.cn/PoTs/913775.TML
map.dzbneyo.cn/PoTs/373175.TML
map.dzbneyo.cn/PoTs/531971.TML
map.dzbneyo.cn/PoTs/391339.TML
map.dzbneyo.cn/PoTs/535571.TML
map.dzbneyo.cn/PoTs/153913.TML
map.dzbneyo.cn/PoTs/395177.TML
map.dzbneyo.cn/PoTs/973939.TML
map.dzbneyo.cn/PoTs/391133.TML
map.dzbneyo.cn/PoTs/391137.TML
map.dzbneyo.cn/PoTs/997177.TML
map.dzbneyo.cn/PoTs/597915.TML
map.dzbneyo.cn/PoTs/913339.TML
map.dzbneyo.cn/PoTs/395719.TML
map.dzbneyo.cn/PoTs/599959.TML
map.dzbneyo.cn/PoTs/157955.TML
map.dzbneyo.cn/PoTs/379939.TML
map.dzbneyo.cn/PoTs/579959.TML
map.dzbneyo.cn/PoTs/395393.TML
map.dzbneyo.cn/PoTs/195357.TML
map.dzbneyo.cn/PoTs/357931.TML
map.dzbneyo.cn/PoTs/773517.TML
map.dzbneyo.cn/PoTs/339139.TML
map.dzbneyo.cn/PoTs/319199.TML
map.dzbneyo.cn/PoTs/759593.TML
map.dzbneyo.cn/PoTs/751115.TML
map.dzbneyo.cn/PoTs/999177.TML
map.dzbneyo.cn/PoTs/173399.TML
map.dzbneyo.cn/PoTs/993719.TML
map.dzbneyo.cn/PoTs/399791.TML
map.dzbneyo.cn/PoTs/919159.TML
map.dzbneyo.cn/PoTs/757777.TML
map.dzbneyo.cn/PoTs/175157.TML
map.dzbneyo.cn/PoTs/551915.TML
map.dzbneyo.cn/PoTs/371577.TML
map.dzbneyo.cn/PoTs/935535.TML
map.dzbneyo.cn/PoTs/197191.TML
map.dzbneyo.cn/PoTs/111379.TML
map.dzbneyo.cn/PoTs/193137.TML
map.dzbneyo.cn/PoTs/359777.TML
map.dzbneyo.cn/PoTs/595155.TML
map.dzbneyo.cn/PoTs/157755.TML
map.dzbneyo.cn/PoTs/179133.TML
map.dzbneyo.cn/PoTs/199531.TML
map.dzbneyo.cn/PoTs/555533.TML
map.dzbneyo.cn/PoTs/999573.TML
map.dzbneyo.cn/PoTs/022268.TML
map.dzbneyo.cn/PoTs/200624.TML
map.dzbneyo.cn/PoTs/800264.TML
map.dzbneyo.cn/PoTs/139971.TML
map.dzbneyo.cn/PoTs/953931.TML
map.dzbneyo.cn/PoTs/680460.TML
map.dzbneyo.cn/PoTs/442686.TML
map.dzbneyo.cn/PoTs/313771.TML
map.dzbneyo.cn/PoTs/917715.TML
map.dzbneyo.cn/PoTs/353951.TML
map.dzbneyo.cn/PoTs/200842.TML
map.dzbneyo.cn/PoTs/000844.TML
map.dzbneyo.cn/PoTs/775179.TML
map.dzbneyo.cn/PoTs/660808.TML
map.dzbneyo.cn/PoTs/466046.TML
map.dzbneyo.cn/PoTs/397955.TML
map.dzbneyo.cn/PoTs/399513.TML
map.dzbneyo.cn/PoTs/224046.TML
map.dzbneyo.cn/PoTs/660664.TML
map.dzbneyo.cn/PoTs/620682.TML
map.dzbneyo.cn/PoTs/880062.TML
map.dzbneyo.cn/PoTs/993911.TML
map.dzbneyo.cn/PoTs/117935.TML
map.dzbneyo.cn/PoTs/868086.TML
map.dzbneyo.cn/PoTs/171913.TML
map.dzbneyo.cn/PoTs/771997.TML
map.dzbneyo.cn/PoTs/082242.TML
map.dzbneyo.cn/PoTs/759500.TML
map.dzbneyo.cn/PoTs/515991.TML
map.dzbneyo.cn/PoTs/759513.TML
map.dzbneyo.cn/PoTs/197317.TML
map.dzbneyo.cn/PoTs/460420.TML
map.dzbneyo.cn/PoTs/268262.TML
map.dzbneyo.cn/PoTs/113511.TML
map.dzbneyo.cn/PoTs/373539.TML
map.dzbneyo.cn/PoTs/868828.TML
map.dzbneyo.cn/PoTs/820420.TML
map.dzbneyo.cn/PoTs/462020.TML
map.dzbneyo.cn/PoTs/202060.TML
map.dzbneyo.cn/PoTs/046242.TML
map.dzbneyo.cn/PoTs/822848.TML
map.mdugfua.cn/PoTs/997531.TML
map.mdugfua.cn/PoTs/068842.TML
map.mdugfua.cn/PoTs/191135.TML
map.mdugfua.cn/PoTs/955571.TML
map.mdugfua.cn/PoTs/791975.TML
map.mdugfua.cn/PoTs/153755.TML
map.mdugfua.cn/PoTs/559573.TML
map.mdugfua.cn/PoTs/375773.TML
map.mdugfua.cn/PoTs/995339.TML
map.mdugfua.cn/PoTs/266668.TML
map.mdugfua.cn/PoTs/264402.TML
map.mdugfua.cn/PoTs/848648.TML
map.mdugfua.cn/PoTs/791373.TML
map.mdugfua.cn/PoTs/317195.TML
map.mdugfua.cn/PoTs/006028.TML
map.mdugfua.cn/PoTs/482866.TML
map.mdugfua.cn/PoTs/044206.TML
map.mdugfua.cn/PoTs/860264.TML
map.mdugfua.cn/PoTs/220848.TML
map.mdugfua.cn/PoTs/175995.TML
map.mdugfua.cn/PoTs/686282.TML
map.mdugfua.cn/PoTs/991939.TML
map.mdugfua.cn/PoTs/228648.TML
map.mdugfua.cn/PoTs/282866.TML
map.mdugfua.cn/PoTs/864680.TML
map.mdugfua.cn/PoTs/739371.TML
map.mdugfua.cn/PoTs/228668.TML
map.mdugfua.cn/PoTs/684400.TML
map.mdugfua.cn/PoTs/759375.TML
map.mdugfua.cn/PoTs/860064.TML
map.mdugfua.cn/PoTs/484426.TML
map.mdugfua.cn/PoTs/404602.TML
map.mdugfua.cn/PoTs/155757.TML
map.mdugfua.cn/PoTs/602622.TML
map.mdugfua.cn/PoTs/646846.TML
map.mdugfua.cn/PoTs/579715.TML
map.mdugfua.cn/PoTs/775375.TML
map.mdugfua.cn/PoTs/682848.TML
map.mdugfua.cn/PoTs/246062.TML
map.mdugfua.cn/PoTs/428408.TML
map.mdugfua.cn/PoTs/442262.TML
map.mdugfua.cn/PoTs/264840.TML
map.mdugfua.cn/PoTs/440622.TML
map.mdugfua.cn/PoTs/486268.TML
map.mdugfua.cn/PoTs/206084.TML
map.mdugfua.cn/PoTs/717937.TML
map.mdugfua.cn/PoTs/628442.TML
map.mdugfua.cn/PoTs/222086.TML
map.mdugfua.cn/PoTs/024444.TML
map.mdugfua.cn/PoTs/393735.TML
map.mdugfua.cn/PoTs/711931.TML
map.mdugfua.cn/PoTs/331975.TML
map.mdugfua.cn/PoTs/793717.TML
map.mdugfua.cn/PoTs/191799.TML
map.mdugfua.cn/PoTs/195155.TML
map.mdugfua.cn/PoTs/711991.TML
map.mdugfua.cn/PoTs/531391.TML
map.mdugfua.cn/PoTs/335991.TML
map.mdugfua.cn/PoTs/397595.TML
map.mdugfua.cn/PoTs/199575.TML
map.mdugfua.cn/PoTs/719995.TML
map.mdugfua.cn/PoTs/913531.TML
map.mdugfua.cn/PoTs/991199.TML
map.mdugfua.cn/PoTs/571713.TML
map.mdugfua.cn/PoTs/171757.TML
map.mdugfua.cn/PoTs/157995.TML
map.mdugfua.cn/PoTs/999171.TML
map.mdugfua.cn/PoTs/595995.TML
map.mdugfua.cn/PoTs/197397.TML
map.mdugfua.cn/PoTs/951915.TML
map.mdugfua.cn/PoTs/115375.TML
map.mdugfua.cn/PoTs/555515.TML
map.mdugfua.cn/PoTs/155575.TML
map.mdugfua.cn/PoTs/591113.TML
map.mdugfua.cn/PoTs/939395.TML
map.mdugfua.cn/PoTs/157339.TML
map.mdugfua.cn/PoTs/953733.TML
map.mdugfua.cn/PoTs/173193.TML
map.mdugfua.cn/PoTs/331393.TML
map.mdugfua.cn/PoTs/731517.TML
map.mdugfua.cn/PoTs/197951.TML
map.mdugfua.cn/PoTs/553139.TML
map.mdugfua.cn/PoTs/197133.TML
map.mdugfua.cn/PoTs/517119.TML
map.mdugfua.cn/PoTs/517919.TML
map.mdugfua.cn/PoTs/995715.TML
map.mdugfua.cn/PoTs/973911.TML
map.mdugfua.cn/PoTs/531517.TML
map.mdugfua.cn/PoTs/997155.TML
map.mdugfua.cn/PoTs/931195.TML
map.mdugfua.cn/PoTs/317393.TML
map.mdugfua.cn/PoTs/171315.TML
map.mdugfua.cn/PoTs/937133.TML
map.mdugfua.cn/PoTs/911771.TML
map.mdugfua.cn/PoTs/975573.TML
map.mdugfua.cn/PoTs/373339.TML
map.mdugfua.cn/PoTs/973159.TML
map.mdugfua.cn/PoTs/179595.TML
map.mdugfua.cn/PoTs/593575.TML
map.mdugfua.cn/PoTs/335317.TML
map.mdugfua.cn/PoTs/139135.TML
map.mdugfua.cn/PoTs/171159.TML
map.mdugfua.cn/PoTs/979133.TML
map.mdugfua.cn/PoTs/155173.TML
map.mdugfua.cn/PoTs/131533.TML
map.mdugfua.cn/PoTs/971513.TML
map.mdugfua.cn/PoTs/737539.TML
map.mdugfua.cn/PoTs/777917.TML
map.mdugfua.cn/PoTs/511751.TML
map.mdugfua.cn/PoTs/191193.TML
map.mdugfua.cn/PoTs/595551.TML
map.mdugfua.cn/PoTs/319531.TML
map.mdugfua.cn/PoTs/351133.TML
map.mdugfua.cn/PoTs/351953.TML
map.mdugfua.cn/PoTs/193795.TML
map.mdugfua.cn/PoTs/957157.TML
map.mdugfua.cn/PoTs/355393.TML
map.mdugfua.cn/PoTs/379131.TML
map.mdugfua.cn/PoTs/755733.TML
map.mdugfua.cn/PoTs/539911.TML
map.mdugfua.cn/PoTs/977533.TML
map.mdugfua.cn/PoTs/375195.TML
map.mdugfua.cn/PoTs/939599.TML
map.mdugfua.cn/PoTs/359975.TML
map.mdugfua.cn/PoTs/517377.TML
map.mdugfua.cn/PoTs/531119.TML
map.mdugfua.cn/PoTs/939797.TML
map.mdugfua.cn/PoTs/511715.TML
map.mdugfua.cn/PoTs/975155.TML
map.mdugfua.cn/PoTs/977911.TML
map.mdugfua.cn/PoTs/991537.TML
map.mdugfua.cn/PoTs/175757.TML
map.mdugfua.cn/PoTs/953797.TML
map.mdugfua.cn/PoTs/117979.TML
map.mdugfua.cn/PoTs/591977.TML
map.mdugfua.cn/PoTs/751735.TML
map.mdugfua.cn/PoTs/391559.TML
map.mdugfua.cn/PoTs/995771.TML
map.mdugfua.cn/PoTs/775311.TML
map.mdugfua.cn/PoTs/157795.TML
map.mdugfua.cn/PoTs/991359.TML
map.mdugfua.cn/PoTs/515933.TML
map.mdugfua.cn/PoTs/933995.TML
map.mdugfua.cn/PoTs/735371.TML
map.mdugfua.cn/PoTs/553197.TML
map.mdugfua.cn/PoTs/173917.TML
map.mdugfua.cn/PoTs/519579.TML
map.mdugfua.cn/PoTs/397155.TML
map.mdugfua.cn/PoTs/179913.TML
map.mdugfua.cn/PoTs/519973.TML
map.mdugfua.cn/PoTs/133753.TML
map.mdugfua.cn/PoTs/359119.TML
map.mdugfua.cn/PoTs/531577.TML
map.mdugfua.cn/PoTs/931719.TML
map.mdugfua.cn/PoTs/557337.TML
map.mdugfua.cn/PoTs/177377.TML
map.mdugfua.cn/PoTs/755955.TML
map.mdugfua.cn/PoTs/151755.TML
map.mdugfua.cn/PoTs/395131.TML
map.mdugfua.cn/PoTs/795957.TML
map.mdugfua.cn/PoTs/319331.TML
map.mdugfua.cn/PoTs/937159.TML
map.mdugfua.cn/PoTs/717517.TML
map.mdugfua.cn/PoTs/915155.TML
map.mdugfua.cn/PoTs/771119.TML
map.mdugfua.cn/PoTs/531557.TML
map.mdugfua.cn/PoTs/119939.TML
map.mdugfua.cn/PoTs/337775.TML
map.mdugfua.cn/PoTs/755977.TML
map.mdugfua.cn/PoTs/791131.TML
map.mdugfua.cn/PoTs/555793.TML
map.mdugfua.cn/PoTs/319719.TML
map.mdugfua.cn/PoTs/595377.TML
map.mdugfua.cn/PoTs/791951.TML
map.mdugfua.cn/PoTs/573313.TML
map.mdugfua.cn/PoTs/313555.TML
map.mdugfua.cn/PoTs/717515.TML
map.mdugfua.cn/PoTs/179557.TML
map.mdugfua.cn/PoTs/533955.TML
map.mdugfua.cn/PoTs/351357.TML
map.mdugfua.cn/PoTs/515597.TML
map.mdugfua.cn/PoTs/511795.TML
map.mdugfua.cn/PoTs/111591.TML
map.mdugfua.cn/PoTs/315777.TML
map.mdugfua.cn/PoTs/393751.TML
map.mdugfua.cn/PoTs/535175.TML
map.mdugfua.cn/PoTs/319537.TML
map.mdugfua.cn/PoTs/791311.TML
map.mdugfua.cn/PoTs/373713.TML
map.mdugfua.cn/PoTs/759371.TML
map.mdugfua.cn/PoTs/733339.TML
map.mdugfua.cn/PoTs/799771.TML
map.mdugfua.cn/PoTs/171197.TML
map.mdugfua.cn/PoTs/379759.TML
map.mdugfua.cn/PoTs/399317.TML
map.mdugfua.cn/PoTs/915151.TML
map.mdugfua.cn/PoTs/935333.TML
map.mdugfua.cn/PoTs/337175.TML
map.mdugfua.cn/PoTs/913373.TML
map.mdugfua.cn/PoTs/955113.TML
map.mdugfua.cn/PoTs/197579.TML
map.mdugfua.cn/PoTs/911711.TML
map.mdugfua.cn/PoTs/377571.TML
map.mdugfua.cn/PoTs/777117.TML
map.mdugfua.cn/PoTs/159573.TML
map.mdugfua.cn/PoTs/579391.TML
map.mdugfua.cn/PoTs/777197.TML
map.mdugfua.cn/PoTs/197513.TML
map.mdugfua.cn/PoTs/355173.TML
map.mdugfua.cn/PoTs/793177.TML
map.mdugfua.cn/PoTs/379797.TML
map.mdugfua.cn/PoTs/971337.TML
map.mdugfua.cn/PoTs/135155.TML
map.mdugfua.cn/PoTs/715393.TML
map.mdugfua.cn/PoTs/591555.TML
map.mdugfua.cn/PoTs/515759.TML
map.mdugfua.cn/PoTs/351717.TML
map.mdugfua.cn/PoTs/959373.TML
map.mdugfua.cn/PoTs/313733.TML
map.mdugfua.cn/PoTs/339135.TML
map.mdugfua.cn/PoTs/159977.TML
map.mdugfua.cn/PoTs/935957.TML
map.mdugfua.cn/PoTs/739933.TML
map.mdugfua.cn/PoTs/731757.TML
map.mdugfua.cn/PoTs/993137.TML
map.mdugfua.cn/PoTs/511317.TML
map.mdugfua.cn/PoTs/537759.TML
map.mdugfua.cn/PoTs/717139.TML
map.mdugfua.cn/PoTs/119735.TML
map.mdugfua.cn/PoTs/577357.TML
map.mdugfua.cn/PoTs/739971.TML
map.mdugfua.cn/PoTs/517959.TML
map.mdugfua.cn/PoTs/731775.TML
map.mdugfua.cn/PoTs/159971.TML
map.mdugfua.cn/PoTs/517759.TML
map.mdugfua.cn/PoTs/515397.TML
map.mdugfua.cn/PoTs/353759.TML
map.mdugfua.cn/PoTs/151551.TML
map.mdugfua.cn/PoTs/933557.TML
map.mdugfua.cn/PoTs/739719.TML
map.mdugfua.cn/PoTs/935333.TML
map.mdugfua.cn/PoTs/771177.TML
map.mdugfua.cn/PoTs/319175.TML
map.mdugfua.cn/PoTs/973911.TML
map.mdugfua.cn/PoTs/193533.TML
map.mdugfua.cn/PoTs/337533.TML
map.mdugfua.cn/PoTs/951739.TML
map.mdugfua.cn/PoTs/193799.TML
map.mdugfua.cn/PoTs/593559.TML
map.mdugfua.cn/PoTs/759195.TML
map.mdugfua.cn/PoTs/797931.TML
map.mdugfua.cn/PoTs/993171.TML
map.mdugfua.cn/PoTs/357937.TML
map.mdugfua.cn/PoTs/551911.TML
map.mdugfua.cn/PoTs/573373.TML
map.mdugfua.cn/PoTs/757599.TML
map.mdugfua.cn/PoTs/999331.TML
map.mdugfua.cn/PoTs/531111.TML
map.mdugfua.cn/PoTs/171975.TML
map.mdugfua.cn/PoTs/735373.TML
map.mdugfua.cn/PoTs/979111.TML
map.mdugfua.cn/PoTs/171373.TML
map.mdugfua.cn/PoTs/135333.TML
map.mdugfua.cn/PoTs/995955.TML
map.mdugfua.cn/PoTs/557333.TML
map.mdugfua.cn/PoTs/175333.TML
map.mdugfua.cn/PoTs/711599.TML
map.mdugfua.cn/PoTs/131113.TML
map.mdugfua.cn/PoTs/797959.TML
map.mdugfua.cn/PoTs/593353.TML
map.mdugfua.cn/PoTs/775199.TML
map.mdugfua.cn/PoTs/157353.TML
map.mdugfua.cn/PoTs/797973.TML
map.mdugfua.cn/PoTs/795171.TML
map.mdugfua.cn/PoTs/377191.TML
map.mdugfua.cn/PoTs/513119.TML
map.mdugfua.cn/PoTs/577551.TML
map.mdugfua.cn/PoTs/735379.TML
map.mdugfua.cn/PoTs/311933.TML
map.mdugfua.cn/PoTs/395331.TML
map.mdugfua.cn/PoTs/919199.TML
map.mdugfua.cn/PoTs/353379.TML
map.mdugfua.cn/PoTs/135175.TML
map.mdugfua.cn/PoTs/171333.TML
map.mdugfua.cn/PoTs/933793.TML
map.mdugfua.cn/PoTs/773517.TML
map.mdugfua.cn/PoTs/359513.TML
map.mdugfua.cn/PoTs/997977.TML
map.mdugfua.cn/PoTs/931559.TML
map.mdugfua.cn/PoTs/713759.TML
map.mdugfua.cn/PoTs/351339.TML
map.mdugfua.cn/PoTs/515157.TML
map.mdugfua.cn/PoTs/917535.TML
map.mdugfua.cn/PoTs/375153.TML
map.mdugfua.cn/PoTs/931195.TML
map.mdugfua.cn/PoTs/931913.TML
map.mdugfua.cn/PoTs/997391.TML
map.mdugfua.cn/PoTs/911531.TML
map.mdugfua.cn/PoTs/913537.TML