bf是什么意思| 心字底的字与什么有关| 不可名状的名是什么意思| 银杏叶是什么颜色| 小三阳是什么| 肠胃痉挛什么症状| 胃胀什么原因| 手指疣初期什么样子| aa是什么| 前位子宫和后位子宫有什么区别| 一视同仁什么意思| 扁桃体发炎严重吃什么药好得快| 太阳里面有什么| 孕妇腿抽筋是什么原因| 邓绥和阴丽华什么关系| 福利院是干什么的| 中午12点半是什么时辰| 黄茶属于什么茶| 少年白头发是什么原因| 眼睛黑色部分叫什么| 做水煮鱼用什么鱼最好| 暂时无法接通是什么意思| 做梦梦见屎是什么意思| 上海手表什么档次| 血肌酐高吃什么食物| 手脱皮用什么药| 马虎是什么意思| 单飞什么意思| 湿疹抹什么药膏| 耳朵一直痒是什么原因| 上火喉咙痛吃什么药| 州字五行属什么| 多饮多尿可能是什么病| 7岁属什么| 血小板低是什么原因引起的| 提前来大姨妈是什么原因| 遮挡车牌属于什么行为| 罗可以组什么词| 梨状肌综合症吃什么药| 89年属什么生肖| 颔是什么部位| 熟地是什么| max是什么品牌| 相濡以沫什么意思| 间接胆红素高是什么原因| 六月飞雪是什么意思| 五花肉炖什么好吃| 颞下颌关节炎吃什么药| 酸奶什么时候喝好| 知了猴是什么东西| 什么人适合吃红参| 闻风丧胆指什么动物| 红什么| 良知是什么意思| 口腔溃疡是缺少什么维生素| 1月15日什么星座| 着凉嗓子疼吃什么药| 全身酸痛什么原因| 时迁的绰号是什么| 胃胀胃不消化吃什么药| 发烧不能吃什么水果| 孕激素高是什么原因| 天珠是什么材质| 低血糖是什么症状| 乳酪是什么东西| 菩提萨婆诃是什么意思| 天天吹空调有什么危害| 肺纤维灶是什么意思| 企业hr是什么意思| 丹青指什么| 胃气上逆吃什么药| 血小板计数偏高是什么意思| 广基息肉是什么意思| wendy什么意思| 舌尖痛什么原因| 血糖高吃什么中药好| 肌酸激酶高是什么原因| 毛主席什么时候去世| 紫色加绿色是什么颜色| 老年人心慌是什么原因| 第二次世界大战是什么时候| 胃糜烂吃什么药可以根治| 04年属猴的是什么命| 什么药降肌酐| 海藻是什么植物| 色拉油是什么| 肩膀疼痛挂什么科| 似是而非是什么意思| 欧米茄算什么档次| 杏黄是什么颜色| 吃什么补充维生素b6| 来月经喝红糖水有什么好处| 曹操是个什么样的人| 头总出汗是什么原因| 违拗是什么意思| 87年属什么的| 心脏在什么位置图片| 去湿气喝什么| 什么是姜黄| 什么水果蛋白质含量高| 世界第一大运动是什么| 岂是什么意思| 医生为什么用肥皂洗手| 骞字五行属什么| 60岁男人喜欢什么样的女人| 吃生姜有什么好处| 汇总压缩是什么意思| 粉色代表什么| 梦见豹子是什么预兆| 结石有什么症状| 什么是证件照| 优雅知性是什么意思| 6月20日是什么星座| 无缘无故流鼻血是什么原因| 吃什么胎儿眼睛黑又亮| 台风是什么意思| 先入为主是什么意思| 拍身份证穿什么颜色衣服| 燕窝是什么东西做成的| 拉绿粑粑是什么原因| 紫得什么| 什么人生病不看医生| 麦粒肿是什么原因引起的| 医托是什么意思| 肝损害是什么意思| 身体缺镁会有什么症状| 胆囊炎吃什么水果好| 阳痿是什么意思| 湿疹涂什么药膏| 2.20什么星座| 戒色有什么好处| 人流后吃什么水果| 胎毛是什么| 知了为什么一直叫| 6月16号是什么星座| 吃什么排铜最快| 直肠给药对小孩身体有什么影响| 扁桃体长什么样子| 人最怕什么| 来月经期间吃什么最好| 甲减吃什么盐| 老年人脚肿是什么原因| 狗贫血吃什么补血最快| 天秤座是什么星象| 梦见蚯蚓是什么预兆| 乐话提醒业务是什么意思| 宫颈多发潴留囊肿是什么意思| 胰腺在人体什么位置| 下面有异味是什么原因| 阴道炎是什么症状| 合寿木是什么意思| 后背疼是什么原因引起的| 肺积水是什么病| 鼻炎用什么药好| 痛风是什么原因引起的| 弱肉强食是什么意思| 十一月三号是什么星座| 独立户口需要什么条件办理| 右手手指头麻木是什么病的前兆| 哭笑不得是什么意思| 60年属什么| 芭乐是什么季节的水果| 五月份是什么季节| 单纯疱疹病毒吃什么药| 吃什么美白| 吃蛋白粉有什么好处和坏处| 五月二十六是什么星座| 为什么老是恶心想吐| 总胆固醇是什么| 退烧药吃什么| 心电图窦性心律什么意思| 身上起红点是什么原因| 治痛风吃什么药| 香奶奶是什么牌子| 欢乐海岸有什么好玩的| 铁蛋白是什么| 春秋是一部什么体史书| 属兔的守护神是什么菩萨| 肾功能不好吃什么药| 小腿麻木是什么原因| 肝损伤吃什么药| 2001年是什么年| 反应蛋白测定是查什么的| 笑刑是什么| 转氨酶偏高是什么意思| 葡萄球菌用什么抗生素| 夫复何求什么意思| 66年属马是什么命| 卵巢多囊样改变是什么意思| 梦见捉蛇是什么意思| 舌头苦是什么原因| 阑尾炎应该挂什么科| 毕加索全名是什么| 脸上有红血丝是什么原因| 腰膝酸软是什么症状| 学姐是什么意思| 唐僧真名叫什么| 2007年属什么生肖| 属羊的是什么命| LOP是什么胎位| abc是什么药| 乳房头疼是什么原因| 抗氧化性是什么意思| 淘宝和天猫有什么区别| 时光静好是什么意思| 小孩黄疸高有什么危害| 槊是什么意思| 心火吃什么药| 先天性聋哑病属于什么遗传病| 清真什么意思| 头发麻是什么病的前兆| 上海松江有什么好玩的地方| 青少年腰疼是什么原因引起的| 胚由什么组成| 八戒是什么意思| 肾囊肿挂什么科| 肉蔻炖肉起什么作用| 舌头疼吃什么药| 月经期喝什么茶好| 中医四诊指的是什么| 氨纶是什么面料| 鼻炎是什么原因引起的| 为什么会有头皮屑| 巨蟹座是什么性格| 肠胃感冒吃什么食物| 火龙果什么人不能吃| 01年属什么生肖| rush是什么| 钻牛角尖什么意思| 脂肪肝用什么药| 超敏crp是什么意思| 结节性红斑吃什么药| 什么东西护肝养肝| 非你莫属是什么意思| 土茯苓和什么煲汤最好| 尿酸为什么会高| 软化血管吃什么药| 百香果有什么营养| 鼻炎吃什么药最好| miu什么牌子| chilli是什么意思| 妈妈姐姐的女儿叫什么| 是什么部首| 艾草泡脚有什么功效| kt什么意思| 2019是什么生肖| 舌头不舒服挂什么科| 什么是三级片| 75c是什么罩杯| 汀是什么意思| 金国人是现在的什么人| 油烟机什么牌子好| 饮食男女是什么意思| 黄占读什么| 脖子肿是什么原因| 肺癌靶向治疗是什么意思| 肾错构瘤是什么原因引起的| lemaire是什么品牌| 心慌气短是什么原因| 牙龈起泡是什么原因| 非淋菌性尿道炎吃什么药最好| 梦见自己在洗澡是什么意思| 口腔溃疡用什么药好得快| m 是什么单位| 百度Jump to content

浙江青田召开移风易俗工作现场推进会

From Wikidata
Lua
CodeDiscussionLinksLink count SubpagesDocumentationTestsResultsSandboxLive code All modules
百度 央视网以大矩阵构建传播新格局建设PC网站、手机央视网、央视影音客户端、4G手机电视、IPTV、互联网电视、户外电视、两微矩阵、海外社交媒体账号等,实现“用户在哪里,央视网的覆盖就在哪里,央视网的服务就在哪里”。

This module includes a number of functions for dealing with Lua tables. It is a meta-module, meant to be called from other Lua modules, and should not be called directly from #invoke.

Loading the module

[edit]

To use any of the functions, first you must load the module.

local TableTools = require('Module:TableTools')

isPositiveInteger

[edit]
TableTools.isPositiveInteger(value)

Returns true if value is a positive integer, and false if not. Although it doesn't operate on tables, it is included here as it is useful for determining whether a given table key is in the array part or the hash part of a table.

isNan

[edit]
TableTools.isNan(value)

Returns true if value is a NaN value, and false if not. Although it doesn't operate on tables, it is included here as it is useful for determining whether a value can be a valid table key. (Lua will generate an error if a NaN value is used as a table key.)

shallowClone

[edit]
TableTools.shallowClone(t)

Returns a clone of a table. The value returned is a new table, but all subtables and functions are shared. Metamethods are respected, but the returned table will have no metatable of its own. If you want to make a new table with no shared subtables and with metatables transferred, you can use mw.clone instead.

removeDuplicates

[edit]
TableTools.removeDuplicates(t)

Removes duplicate values from an array. This function is only designed to work with standard arrays: keys that are not positive integers are ignored, as are all values after the first nil value. (For arrays containing nil values, you can use compressSparseArray first.) The function tries to preserve the order of the array: the earliest non-unique value is kept, and all subsequent duplicate values are removed. For example, for the table {5, 4, 4, 3, 4, 2, 2, 1} removeDuplicates will return {5, 4, 3, 2, 1}

numKeys

[edit]
TableTools.numKeys(t)

Takes a table t and returns an array containing the numbers of any positive integer keys that have non-nil values, sorted in numerical order. For example, for the table {'foo', nil, 'bar', 'baz', a = 'b'}, numKeys will return {1, 3, 4}.

affixNums

[edit]
TableTools.affixNums(t, prefix, suffix)

Takes a table t and returns an array containing the numbers of keys with the optional prefix prefix and the optional suffix suffix. For example, for the table {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix 'a', affixNums will return {1, 3, 6}. All characters in prefix and suffix are interpreted literally.

numData

[edit]
TableTools.numData(t, compress)

Given a table with keys like "foo1", "bar1", "foo2", and "baz2", returns a table of subtables in the format { [1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'} }. Keys that don't end with an integer are stored in a subtable named "other". The compress option compresses the table so that it can be iterated over with ipairs.

compressSparseArray

[edit]
TableTools.compressSparseArray(t)

Takes an array t with one or more nil values, and removes the nil values while preserving the order, so that the array can be safely traversed with ipairs. Any keys that are not positive integers are removed. For example, for the table {1, nil, foo = 'bar', 3, 2}, compressSparseArray will return {1, 3, 2}.

sparseIpairs

[edit]
TableTools.sparseIpairs(t)

This is an iterator function for traversing a sparse array t. It is similar to ipairs, but will continue to iterate until the highest numerical key, whereas ipairs may stop after the first nil value. Any keys that are not positive integers are ignored.

Usually sparseIpairs is used in a generic for loop.

for i, v in TableTools.sparseIpairs(t) do
   -- code block
end

Note that sparseIpairs uses the pairs function in its implementation. Although some table keys appear to be ignored, all table keys are accessed when it is run.

size

[edit]
TableTools.size(t)

Finds the size of a key/value pair table. For example, for the table {foo = 'foo', bar = 'bar'}, size will return 2. The function will also work on arrays, but for arrays it is more efficient to use the # operator. Note that to find the table size, this function uses the pairs function to iterate through all of the table keys.

Code

--[[
------------------------------------------------------------------------------------
--                               TableTools                                       --
--                                                                                --
-- This module includes a number of functions for dealing with Lua tables.        --
-- It is a meta-module, meant to be called from other Lua modules, and should     --
-- not be called directly from #invoke.                                           --
------------------------------------------------------------------------------------
--]]

local libraryUtil = require('libraryUtil')

local p = {}

-- Define often-used variables and functions.
local floor = math.floor
local infinity = math.huge
local checkType = libraryUtil.checkType
local checkTypeMulti = libraryUtil.checkTypeMulti

--[[
------------------------------------------------------------------------------------
-- isPositiveInteger
--
-- This function returns true if the given value is a positive integer, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a given table key is in the array part or the
-- hash part of a table.
------------------------------------------------------------------------------------
--]]
function p.isPositiveInteger(v)
	if type(v) == 'number' and v >= 1 and floor(v) == v and v < infinity then
		return true
	else
		return false
	end
end

--[[
------------------------------------------------------------------------------------
-- isNan
--
-- This function returns true if the given number is a NaN value, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a value can be a valid table key. Lua will
-- generate an error if a NaN is used as a table key.
------------------------------------------------------------------------------------
--]]
function p.isNan(v)
	if type(v) == 'number' and tostring(v) == '-nan' then
		return true
	else
		return false
	end
end

--[[
------------------------------------------------------------------------------------
-- shallowClone
--
-- This returns a clone of a table. The value returned is a new table, but all
-- subtables and functions are shared. Metamethods are respected, but the returned
-- table will have no metatable of its own.
------------------------------------------------------------------------------------
--]]
function p.shallowClone(t)
	local ret = {}
	for k, v in pairs(t) do
		ret[k] = v
	end
	return ret
end

--[[
------------------------------------------------------------------------------------
-- removeDuplicates
--
-- This removes duplicate values from an array. Non-positive-integer keys are
-- ignored. The earliest value is kept, and all subsequent duplicate values are
-- removed, but otherwise the array order is unchanged.
------------------------------------------------------------------------------------
--]]
function p.removeDuplicates(t)
	checkType('removeDuplicates', 1, t, 'table')
	local isNan = p.isNan
	local ret, exists = {}, {}
	for i, v in ipairs(t) do
		if isNan(v) then
			-- NaNs can't be table keys, and they are also unique, so we don't need to check existence.
			ret[#ret + 1] = v
		else
			if not exists[v] then
				ret[#ret + 1] = v
				exists[v] = true
			end
		end	
	end
	return ret
end			

--[[
------------------------------------------------------------------------------------
-- numKeys
--
-- This takes a table and returns an array containing the numbers of any numerical
-- keys that have non-nil values, sorted in numerical order.
------------------------------------------------------------------------------------
--]]
function p.numKeys(t)
	checkType('numKeys', 1, t, 'table')
	local isPositiveInteger = p.isPositiveInteger
	local nums = {}
	for k, v in pairs(t) do
		if isPositiveInteger(k) then
			nums[#nums + 1] = k
		end
	end
	table.sort(nums)
	return nums
end

--[[
------------------------------------------------------------------------------------
-- affixNums
--
-- This takes a table and returns an array containing the numbers of keys with the
-- specified prefix and suffix. For example, for the table
-- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix "a", affixNums will
-- return {1, 3, 6}.
------------------------------------------------------------------------------------
--]]
function p.affixNums(t, prefix, suffix)
	checkType('affixNums', 1, t, 'table')
	checkType('affixNums', 2, prefix, 'string', true)
	checkType('affixNums', 3, suffix, 'string', true)

	local function cleanPattern(s)
		-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally.
		s = s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')
		return s
	end

	prefix = prefix or ''
	suffix = suffix or ''
	prefix = cleanPattern(prefix)
	suffix = cleanPattern(suffix)
	local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$'

	local nums = {}
	for k, v in pairs(t) do
		if type(k) == 'string' then			
			local num = mw.ustring.match(k, pattern)
			if num then
				nums[#nums + 1] = tonumber(num)
			end
		end
	end
	table.sort(nums)
	return nums
end

--[[
------------------------------------------------------------------------------------
-- numData
--
-- Given a table with keys like ("foo1", "bar1", "foo2", "baz2"), returns a table
-- of subtables in the format 
-- { [1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'} }
-- Keys that don't end with an integer are stored in a subtable named "other".
-- The compress option compresses the table so that it can be iterated over with
-- ipairs.
------------------------------------------------------------------------------------
--]]
function p.numData(t, compress)
	checkType('numData', 1, t, 'table')
	checkType('numData', 2, compress, 'boolean', true)
	local ret = {}
	for k, v in pairs(t) do
		local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$')
		if num then
			num = tonumber(num)
			local subtable = ret[num] or {}
			if prefix == '' then
				-- Positional parameters match the blank string; put them at the start of the subtable instead.
				prefix = 1
			end
			subtable[prefix] = v
			ret[num] = subtable
		else
			local subtable = ret.other or {}
			subtable[k] = v
			ret.other = subtable
		end
	end
	if compress then
		local other = ret.other
		ret = p.compressSparseArray(ret)
		ret.other = other
	end
	return ret
end

--[[
------------------------------------------------------------------------------------
-- compressSparseArray
--
-- This takes an array with one or more nil values, and removes the nil values
-- while preserving the order, so that the array can be safely traversed with
-- ipairs.
------------------------------------------------------------------------------------
--]]
function p.compressSparseArray(t)
	checkType('compressSparseArray', 1, t, 'table')
	local ret = {}
	local nums = p.numKeys(t)
	for _, num in ipairs(nums) do
		ret[#ret + 1] = t[num]
	end
	return ret
end

--[[
------------------------------------------------------------------------------------
-- sparseIpairs
--
-- This is an iterator for sparse arrays. It can be used like ipairs, but can
-- handle nil values.
------------------------------------------------------------------------------------
--]]
function p.sparseIpairs(t)
	checkType('sparseIpairs', 1, t, 'table')
	local nums = p.numKeys(t)
	local i = 0
	local lim = #nums
	return function ()
		i = i + 1
		if i <= lim then
			local key = nums[i]
			return key, t[key]
		else
			return nil, nil
		end
	end
end

--[[
------------------------------------------------------------------------------------
-- size
--
-- This returns the size of a key/value pair table. It will also work on arrays,
-- but for arrays it is more efficient to use the # operator.
------------------------------------------------------------------------------------
--]]

function p.size(t)
	checkType('size', 1, t, 'table')
	local i = 0
	for k in pairs(t) do
		i = i + 1
	end
	return i
end


local function defaultKeySort(item1, item2)
	-- "number" < "string", so numbers will be sorted before strings.
	local type1, type2 = type(item1), type(item2)
	if type1 ~= type2 then
		return type1 < type2
	else -- This will fail with table, boolean, function.
		return item1 < item2
	end
end

--[[
	Returns a list of the keys in a table, sorted using either a default
	comparison function or a custom keySort function.
]]
function p.keysToList(t, keySort, checked)
	if not checked then
		checkType('keysToList', 1, t, 'table')
		checkTypeMulti('keysToList', 2, keySort, { 'function', 'boolean', 'nil' })
	end
	
	local list = {}
	local index = 1
	for key, value in pairs(t) do
		list[index] = key
		index = index + 1
	end
	
	if keySort ~= false then
		keySort = type(keySort) == 'function' and keySort or defaultKeySort
		
		table.sort(list, keySort)
	end
	
	return list
end

--[[
	Iterates through a table, with the keys sorted using the keysToList function.
	If there are only numerical keys, sparseIpairs is probably more efficient.
]]
function p.sortedPairs(t, keySort)
	checkType('sortedPairs', 1, t, 'table')
	checkType('sortedPairs', 2, keySort, 'function', true)
	
	local list = p.keysToList(t, keySort, true)
	
	local i = 0
	return function()
		i = i + 1
		local key = list[i]
		if key ~= nil then
			return key, t[key]
		else
			return nil, nil
		end
	end
end

--[[
	Returns true if all keys in the table are consecutive integers starting at 1.
--]]
function p.isArray(t)
	checkType("isArray", 1, t, "table")
	
	local i = 0
	for k, v in pairs(t) do
		i = i + 1
		if t[i] == nil then
			return false
		end
	end
	return true
end

-- { "a", "b", "c" } -> { a = 1, b = 2, c = 3 }
function p.invert(array)
	checkType("invert", 1, array, "table")
	
	local map = {}
	for i, v in ipairs(array) do
		map[v] = i
	end
	
	return map
end

--[[
	{ "a", "b", "c" } -> { ["a"] = true, ["b"] = true, ["c"] = true }
--]]
function p.listToSet(t)
	checkType("listToSet", 1, t, "table")
	
	local set = {}
	for _, item in ipairs(t) do
		set[item] = true
	end
	
	return set
end

--[[
	Recursive deep copy function.
	Preserves identities of subtables.
	
]]
local function _deepCopy(orig, includeMetatable, already_seen)
	-- Stores copies of tables indexed by the original table.
	already_seen = already_seen or {}
	
	local copy = already_seen[orig]
	if copy ~= nil then
		return copy
	end
	
	if type(orig) == 'table' then
		copy = {}
		for orig_key, orig_value in pairs(orig) do
			copy[deepcopy(orig_key, includeMetatable, already_seen)] = deepcopy(orig_value, includeMetatable, already_seen)
		end
		already_seen[orig] = copy
		
		if includeMetatable then
			local mt = getmetatable(orig)
			if mt ~= nil then
				local mt_copy = deepcopy(mt, includeMetatable, already_seen)
				setmetatable(copy, mt_copy)
				already_seen[mt] = mt_copy
			end
		end
	else -- number, string, boolean, etc
		copy = orig
	end
	return copy
end

function p.deepCopy(orig, noMetatable, already_seen)
	checkType("deepCopy", 3, already_seen, "table", true)
	
	return _deepCopy(orig, not noMetatable, already_seen)
end

--[[
	Concatenates all values in the table that are indexed by a number, in order.
	sparseConcat{ a, nil, c, d }  =>  "acd"
	sparseConcat{ nil, b, c, d }  =>  "bcd"
]]
function p.sparseConcat(t, sep, i, j)
	local list = {}
	
	local list_i = 0
	for _, v in p.sparseIpairs(t) do
		list_i = list_i + 1
		list[list_i] = v
	end
	
	return table.concat(list, sep, i, j)
end

--[[
-- This returns the length of a table, or the first integer key n counting from
-- 1 such that t[n + 1] is nil. It is similar to the operator #, but may return
-- a different value when there are gaps in the array portion of the table.
-- Intended to be used on data loaded with mw.loadData. For other tables, use #.
-- Note: #frame.args in frame object always be set to 0, regardless of 
-- the number of unnamed template parameters, so use this function for
-- frame.args.
--]]
function p.length(t)
	local i = 1
	while t[i] ~= nil do
		i = i + 1
	end
	return i - 1
end

function p.inArray(arr, valueToFind)
	checkType("inArray", 1, arr, "table")
	
	-- if valueToFind is nil, error?
	
	for _, v in ipairs(arr) do
		if v == valueToFind then
			return true
		end
	end
	
	return false
end

return p
霍家为什么娶郭晶晶 无菌性前列腺炎吃什么药效果好 腰椎间盘突出吃什么药好 最坚固的锁怕什么 小腿发胀是什么原因
七七是什么意思 咳嗽不停是什么原因 沉积是什么意思 河南有什么大学 dpo是什么意思
血离子是检查什么的 天狼星在什么位置 眼睛干涩是什么原因 羞辱什么意思 米是什么结构
阴骘什么意思 刘嘉玲什么星座 公务员是干什么的 做俯卧撑有什么好处 拉稀吃什么药最有效果
ar技术是什么意思hcv9jop3ns6r.cn 舌头变肥大什么原因hcv8jop2ns4r.cn 崩溃是什么意思hcv9jop4ns6r.cn 毛主席什么时候去世hcv8jop5ns7r.cn 屈曲是什么意思hcv8jop5ns8r.cn
这个季节吃什么菜好hcv8jop3ns8r.cn 汉尼拔什么意思hcv8jop0ns1r.cn 亚麻籽和什么相克hcv8jop6ns4r.cn 起司是什么hlguo.com 淋证是什么病hcv7jop9ns2r.cn
杀马特什么意思hcv8jop3ns6r.cn 皮下出血点是什么原因hcv7jop6ns7r.cn 卵巢囊肿吃什么药好得最快hcv9jop0ns6r.cn 粗粮是什么hcv8jop3ns9r.cn 刘备字什么hcv9jop0ns0r.cn
甲状腺有什么作用hcv8jop5ns0r.cn 什么花在什么时间开hcv8jop1ns0r.cn 乳癖是什么病hcv7jop5ns4r.cn 颈椎间盘突出有什么症状hcv9jop1ns2r.cn 前瞻是什么意思hcv7jop9ns6r.cn
百度