国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

Pytorch轉(zhuǎn)Msnhnet模型思路分享

共 14135字,需瀏覽 29分鐘

 ·

2020-09-21 02:01


?

GiantPandaCV導(dǎo)語:「這篇文章要為大家介紹一下MsnhNet的模型轉(zhuǎn)換思路,大多數(shù)搞CV的小伙伴都知道:珍愛生命,遠(yuǎn)離模型轉(zhuǎn)換。但是啊,當(dāng)你想部署訓(xùn)練出來的模型時(如Pytorch訓(xùn)練的),模型轉(zhuǎn)換又是必不可少的步驟,這個時候就真的很愁。為什么調(diào)用xxx腳本轉(zhuǎn)換出來的模型報錯了?為什么轉(zhuǎn)換出來的模型推理結(jié)果不正確呢?所以,我認(rèn)為在做模型轉(zhuǎn)換時擁有一個清晰的分析思路是不可少的。這篇文章就為大家分享了一下最近開源的前向推理框架MsnhNet是如何將原始的Pytorch模型較為優(yōu)雅的轉(zhuǎn)換過來,希望我們介紹的思路可以對有模型轉(zhuǎn)換需求的同學(xué)帶來一定啟發(fā)」

?

1.網(wǎng)絡(luò)結(jié)構(gòu)的轉(zhuǎn)換

網(wǎng)絡(luò)結(jié)構(gòu)轉(zhuǎn)換比較復(fù)雜,其原因在于涉及到不同的op以及相關(guān)的基礎(chǔ)操作.

  • 「思路一」: 利用print的結(jié)果進(jìn)行構(gòu)建
    • 「優(yōu)點(diǎn)」: 簡單易用
    • 「缺點(diǎn)」: 大部分網(wǎng)絡(luò),print并不能完全展現(xiàn)出其結(jié)構(gòu).簡單網(wǎng)絡(luò)可用.
  • 代碼實(shí)現(xiàn):
import?torch
import?torch.nn?as?nn

class?Model(nn.Module):
????def?__init__(self):
????????super(Model,?self).__init__()
????????self.conv1?=?nn.Conv2d(1,?6,?5)
????????self.bn1???=?nn.BatchNorm2d(6,eps=1e-5,momentum=0.1)
????????self.relu1?=?nn.ReLU()
????????self.pool1?=?nn.MaxPool2d(2)
????????self.conv2?=?nn.Conv2d(6,?16,?5)
????????self.bn2???=?nn.BatchNorm2d(16,eps=1e-5,momentum=0.1)
????????self.relu2?=?nn.ReLU()
????????self.pool2?=?nn.MaxPool2d(2)

????def?forward(self,?x):
????????y?=?self.conv1(x)
????????y?=?self.bn1(y)
????????y?=?self.relu1(y)?
????????y?=?self.pool1(y)?
????????y?=?self.conv2(y)
????????y?=?self.bn2(y)?
????????y?=?self.relu2(y)?
????????y?=?self.pool2(y)
????????return?y

nn?=?Model()
print(nn)
  • 結(jié)果: 很顯然對于用純nn.Module搭建的網(wǎng)絡(luò)是可行的
Model
(
??(conv1):?Conv2d(1,?6,?kernel_size=(5,?5),?stride=(1,?1))
??(bn1):?BatchNorm2d(6,?eps=1e-05,?momentum=0.1,?affine=True,?track_running_stats=True)
??(relu1):?ReLU()
??(pool1):?MaxPool2d(kernel_size=2,?stride=2,?padding=0,?dilation=1,?ceil_mode=False)
??(conv2):?Conv2d(6,?16,?kernel_size=(5,?5),?stride=(1,?1))
??(bn2):?BatchNorm2d(16,?eps=1e-05,?momentum=0.1,?affine=True,?track_running_stats=True)
??(relu2):?ReLU()
??(pool2):?MaxPool2d(kernel_size=2,?stride=2,?padding=0,?dilation=1,?ceil_mode=False)
)
  • 如果在forward內(nèi)添加相關(guān)操作,則此方案將無效.
  • 代碼實(shí)現(xiàn):
import?torch
import?torch.nn?as?nn

class?Model(nn.Module):
????def?__init__(self):
????????super(Model,?self).__init__()
????????self.conv1?=?nn.Conv2d(1,?6,?5)
????????self.bn1???=?nn.BatchNorm2d(6,eps=1e-5,momentum=0.1)
????????self.relu1?=?nn.ReLU()
????????self.pool1?=?nn.MaxPool2d(2)
????????self.conv2?=?nn.Conv2d(6,?16,?5)
????????self.bn2???=?nn.BatchNorm2d(16,eps=1e-5,momentum=0.1)
????????self.relu2?=?nn.ReLU()
????????self.pool2?=?nn.MaxPool2d(2)

????def?forward(self,?x):
????????y?=?self.conv1(x)
????????y?=?self.bn1(y)
????????y?=?self.relu1(y)?
????????y?=?self.pool1(y)?
????????y?=?self.conv2(y)
????????y?=?self.bn2(y)?
????????y?=?self.relu2(y)?
????????y?=?self.pool2(y)
????????y?=?torch.flatten(y)
????????return?y

nn?=?Model()
print(nn)
  • 結(jié)果: 很顯然forward內(nèi)的flatten操作并沒有被導(dǎo)出.
Model(
??(conv1):?Conv2d(1,?6,?kernel_size=(5,?5),?stride=(1,?1))
??(bn1):?BatchNorm2d(6,?eps=1e-05,?momentum=0.1,?affine=True,?track_running_stats=True)
??(relu1):?ReLU()
??(pool1):?MaxPool2d(kernel_size=2,?stride=2,?padding=0,?dilation=1,?ceil_mode=False)
??(conv2):?Conv2d(6,?16,?kernel_size=(5,?5),?stride=(1,?1))
??(bn2):?BatchNorm2d(16,?eps=1e-05,?momentum=0.1,?affine=True,?track_running_stats=True)
??(relu2):?ReLU()
??(pool2):?MaxPool2d(kernel_size=2,?stride=2,?padding=0,?dilation=1,?ceil_mode=False)
)
  • 「思路二」: 通過類似Windows Hook技術(shù).(思路來源pytorch_to_caffe) 在pytorch的Op在執(zhí)行之前,對此Op進(jìn)行截取,以獲取相關(guān)信息,從而實(shí)現(xiàn)網(wǎng)絡(luò)構(gòu)建.
    • 優(yōu)點(diǎn): 幾乎可以完成所有pytorch的op導(dǎo)出.
    • 缺點(diǎn): 實(shí)現(xiàn)復(fù)雜,容易誤操作,可能影響pytorch本身結(jié)果錯誤.
  • 代碼實(shí)現(xiàn): 通過構(gòu)建Hook類, 重寫op, 并替換原op操作,獲取op的參數(shù). 層的上下關(guān)系,通過tensor的_cdata作為唯一識別的ID.
import?torch
import?torch.nn?as?nn
from?torchsummary?import?summary
import?torch.nn.functional?as?F

logMsg?=?True
ccc?=?[]
#?Hook截取類
class?Hook(object):
????hookInited?=?False
????def?__init__(self,raw,replace,**kwargs):
????????self.obj=replace?#?被截取之后的op
????????self.raw=raw?#?原op

????def?__call__(self,*args,**kwargs):
????????if?not?Hook.hookInited:?#在Hook類未初始化之前,該信號原路返回
????????????return?self.raw(*args,**kwargs)
????????else:???????????????????#否則,則按截取之后,實(shí)現(xiàn)的函數(shù)執(zhí)行
????????????out=self.obj(self.raw,*args,**kwargs)
????????????return?out

def?log(*args):
????if?logMsg:
????????print(*args)

#?替換原cov2d函數(shù)的實(shí)現(xiàn)
def?_conv2d(raw,inData,?weight,?bias=None,?stride=1,?padding=0,?dilation=1,?groups=1):
????#?對于上下層網(wǎng)絡(luò)關(guān)系,可以使用tensor的_cdata,該參數(shù)類似唯一ID
????#?輸入tensor的唯一ID
????log(?"conv2d-i"?,?inData._cdata)?
????x=raw(inData,weight,bias,stride,padding,dilation,groups)
????ccc.append(x)????????????????????#?此處將輸出保存,防止被inplace操作,導(dǎo)致所有tensor的_cdata喪失唯一性
????#?此處就可以根據(jù)conv2d參數(shù)就行網(wǎng)絡(luò)構(gòu)建
????#?msnhnet.buildConv2d(...)?
????#?輸出tensor的唯一ID
????log(?"conv2d-o"?,?x._cdata)
????return?x

#?被替換OP??????????????????原OP?????自定義OP
F.conv2d????????=???Hook(F.conv2d,_conv2d)
  • 完整Demo:
import?torch
import?torch.nn?as?nn
from?torchsummary?import?summary
import?torch.nn.functional?as?F

logMsg?=?True
ccc?=?[]
#?Hook截取類
class?Hook(object):
????hookInited?=?False
????def?__init__(self,raw,replace,**kwargs):
????????self.obj=replace?#?被截取之后的op
????????self.raw=raw?#?原op

????def?__call__(self,*args,**kwargs):
????????if?not?Hook.hookInited:?#在Hook類未初始化之前,該信號原路返回
????????????return?self.raw(*args,**kwargs)
????????else:???????????????????#否則,則按截取之后,實(shí)現(xiàn)的函數(shù)執(zhí)行
????????????out=self.obj(self.raw,*args,**kwargs)
????????????return?out

def?log(*args):
????if?logMsg:
????????print(*args)

#?替換原cov2d函數(shù)的實(shí)現(xiàn)
def?_conv2d(raw,inData,?weight,?bias=None,?stride=1,?padding=0,?dilation=1,?groups=1):
????#?對于上下層網(wǎng)絡(luò)關(guān)系,可以使用tensor的_cdata,該參數(shù)類似唯一ID
????#?輸入tensor的唯一ID
????log(?"conv2d-i"?,?inData._cdata)?
????x=raw(inData,weight,bias,stride,padding,dilation,groups)
????ccc.append(x)????????????????????#?此處將輸出保存,防止被inplace操作,導(dǎo)致所有tensor的_cdata喪失唯一性
????#?此處就可以根據(jù)conv2d參數(shù)就行網(wǎng)絡(luò)構(gòu)建
????#?msnhnet.buildConv2d(...)?
????#?輸出tensor的唯一ID
????log(?"conv2d-o"?,?x._cdata)
????return?x

def?_relu(raw,?inData,?inplace=False):
????log(?"relu-i"?,?inData._cdata)
????x?=?raw(inData,False)
????ccc.append(x)
????log(?"relu-o"?,?x._cdata)
????return?x

def?_batch_norm(raw,inData,?running_mean,?running_var,?weight=None,?bias=None,training=False,?momentum=0.1,?eps=1e-5):
????log(?"bn-i"?,?inData._cdata)
????x?=?raw(inData,?running_mean,?running_var,?weight,?bias,?training,?momentum,?eps)
????ccc.append(x)
????log(?"bn-o"?,?x._cdata)
????return?x

def?_flatten(raw,*args):
????log(?"flatten-i"?,?args[0]._cdata)
????x=raw(*args)
????ccc.append(x)
????log(?"flatten-o"?,?x._cdata)
????return?x

#?被替換OP???????????????????原OP???????自定義OP
F.conv2d????????=???Hook(F.conv2d,_conv2d)

F.batch_norm????=???Hook(F.batch_norm,_batch_norm)
F.relu??????????=???Hook(F.relu,_relu)
torch.flatten???=???Hook(torch.flatten,_flatten)

class?Model(nn.Module):
????def?__init__(self):
????????super(Model,?self).__init__()
????????self.conv1?=?nn.Conv2d(1,?6,?5)
????????self.bn1???=?nn.BatchNorm2d(6,eps=1e-5,momentum=0.1)
????????self.relu1?=?nn.ReLU()

????def?forward(self,?x):
????????y?=?self.conv1(x)
????????y?=?self.bn1(y)
????????y?=?self.relu1(y)?
????????y?=?torch.flatten(y)
????????return?y

input_var?=?torch.autograd.Variable(torch.rand(1,?1,?28,?28))
nn?=?Model()
nn.eval()
Hook.hookInited?=?True
res?=?nn(input_var)
  • 結(jié)果: flatten操作也完成了導(dǎo)出, 且每個op的input的ID都能在前面找到對應(yīng)op的output的ID.即可知曉上下層之間的關(guān)系,由此,即可構(gòu)建msnhnet.
conv2d-i?2748363239504
conv2d-o?2748363238224
bn-i?2748363238224
bn-o?2748363242832
relu-i?2748363242832
relu-o?2748363235152
flatten-i?2748363235152
flatten-o?2748363242064

2.參數(shù)的轉(zhuǎn)換

  • 「思路一」: 利用pytorch的state_dict字典,可直接進(jìn)行導(dǎo)出. 由于msnhnet和pytorch的內(nèi)存排布是一致的,都為NCHW模式,且對于BN層的參數(shù)順序也相同,都為scale, bias, mean和var.只需將參數(shù)進(jìn)行逐個提取,然后按二進(jìn)制存儲即可。
    • 優(yōu)點(diǎn): 可以在不知道網(wǎng)絡(luò)運(yùn)行結(jié)構(gòu)的時候?qū)?shù)進(jìn)行導(dǎo)出, 簡單易用.
    • 缺點(diǎn): 當(dāng)網(wǎng)絡(luò)使用參數(shù)的順序和保存的順序不一致時,會出現(xiàn)錯誤.
import?torchvision.models?as?models
import?torch
from?struct?import?pack

md?=?models.resnet18(pretrained?=?True)
md.to("cpu")
md.eval()
val?=?[]
dd?=?0

for?name?in?md.state_dict():
????????if?"num_batches_tracked"?not?in?name:
????????????????c?=?md.state_dict()[name].data.flatten().numpy().tolist()
????????????????dd?=?dd?+?len(c)
????????????????print(name,?":",?len(c))
????????????????val.extend(c)

with?open("alexnet.msnhbin","wb")?as?f:
????for?i?in?val?:
????????f.write(pack('f',i))

注意上面出現(xiàn)了一行if "num_batches_tracked" not in name:,這一行是Pytorch的一個坑點(diǎn),在pytorch 0.4.1及后面的版本里,BatchNorm層新增了num_batches_tracked參數(shù),用來統(tǒng)計(jì)訓(xùn)練時的forward過的batch數(shù)目,源碼如下(pytorch0.4.1):

??if?self.training?and?self.track_running_stats:
????????self.num_batches_tracked?+=?1
????????if?self.momentum?is?None:??#?use?cumulative?moving?average
????????????exponential_average_factor?=?1.0?/?self.num_batches_tracked.item()
????????else:??#?use?exponential?moving?average
????????????exponential_average_factor?=?self.momentum

在調(diào)用預(yù)訓(xùn)練參數(shù)模型時,官方給定的預(yù)訓(xùn)練模型是在pytorch0.4之前。因此,調(diào)用預(yù)訓(xùn)練參數(shù)時,需要過濾掉“num_batches_tracked”。

  • 「思路二」: 利用之前的Hook,在算子運(yùn)行時,對參數(shù)進(jìn)行提取,暫存,最后統(tǒng)一保存.
    • 優(yōu)點(diǎn): 網(wǎng)絡(luò)參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)同時導(dǎo)出,保證參數(shù)與網(wǎng)絡(luò)運(yùn)行結(jié)構(gòu)一致性.
    • 缺點(diǎn): 需要獲取網(wǎng)絡(luò)的運(yùn)行順序才能完成轉(zhuǎn)換.
  • 代碼實(shí)現(xiàn):
...

m_weights?=?[]

def?_conv2d(raw,inData,?weight,?bias=None,?stride=1,?padding=0,?dilation=1,?groups=1):
????
????x=raw(inData,weight,bias,stride,padding,dilation,groups)

????if?Hook.hookInited?:
????????log(?"conv2d-i"?,?inData._cdata)
????????ccc.append(x)
????????log(?"conv2d-o"?,?x._cdata)

????????useBias?=?True
????????if?bias?is?None:
????????????useBias?=?False
????????
????????m_weights.extend(weight.numpy().flatten().tolist())?#暫存

????????if?useBias?:
????????????m_weights.extend(bias.numpy().flatten().tolist())?#暫存

????????msnhnet.checkInput(inData,sys._getframe().f_code.co_name)
????????msnhnet.buildConv2d(str(x._cdata),?x.size()[1],?weight.size()[2],?weight.size()[3],?
????????????????????????????padding[0],?padding[1],?stride[0],?stride[1],?dilation[0],?dilation[1],?groups,?useBias)
????return?x

...

def?trans(net,?inputVar,?msnhnet_path,?msnhbin_path):
????Hook.hookInited?=?True
????msnhnet.buildConfig(str(id(inputVar)),?inputVar.size())
????net.forward(inputVar)

????with?open(msnhnet_path,"w")?as?f1:
????????f1.write(msnhnet.net)

????with?open(msnhbin_path,"wb")?as?f:?#?參數(shù)保存
????????for?i?in?m_weights?:
????????????f.write(pack('f',i))?
????Hook.hookInited?=?False


3.詳細(xì)轉(zhuǎn)換過程代碼編寫

這里先截取一下構(gòu)建MsnhNet的部分代碼,完整代碼見https://github.com/msnh2012/Msnhnet/blob/master/tools/pytorch2Msnhnet/PytorchToMsnhnet.py,如下:

from?collections?import?OrderedDict
import?sys

class?Msnhnet:
????def?__init__(self):
????????self.inAddr?=?""
????????self.net?=?""
????????self.index?=?0
????????self.names?=?[]
????????self.indexes?=?[]

????def?setNameAndIdx(self,?name,?ids):
????????self.names.append(name)
????????self.indexes.append(ids)

????def?getIndexFromName(self,name):
????????ids?=?self.indexes[self.names.index(name)]
????????return?ids

????def?getLastVal(self):
????????return?self.indexes[-1]

????def?getLastKey(self):
????????return?self.names[-1]

????def?checkInput(self,?inAddr,fun):

????????if?self.index?==?0:
????????????return

????????if?str(inAddr._cdata)?!=?self.getLastKey():
????????????try:
????????????????ID?=?self.getIndexFromName(str(inAddr._cdata))
????????????????self.buildRoute(str(inAddr._cdata),str(ID),False)
????????????except:
?????????????????raise?NotImplementedError("last?op?is?not?supported?"?+?fun?+?str(inAddr._cdata))
????????????

????def?buildConfig(self,?inAddr,?shape):
????????self.inAddr?=?inAddr
????????self.net?=?self.net?+?"config:\n"
????????self.net?=?self.net?+?"??batch:?"?+?str(int(shape[0]))?+?"\n"
????????self.net?=?self.net?+?"??channels:?"?+?str(int(shape[1]))?+?"\n"
????????self.net?=?self.net?+?"??height:?"?+?str(int(shape[2]))?+?"\n"
????????self.net?=?self.net?+?"??width:?"?+?str(int(shape[3]))?+?"\n"

?
????def?buildConv2d(self,?name,?filters,?kSizeX,?kSizeY,?paddingX,?paddingY,?strideX,?strideY,?dilationX,?dilationY,?groups,?useBias):
????????self.setNameAndIdx(name,self.index)
????????self.net?=?self.net?+?"#"?+?str(self.index)?+??"\n"
????????self.index?=?self.index?+?1
????????self.net?=?self.net?+?"conv:\n"
????????self.net?=?self.net?+?"??filters:?"?+?str(int(filters))?+?"\n"
????????self.net?=?self.net?+?"??kSizeX:?"?+?str(int(kSizeX))?+?"\n"
????????self.net?=?self.net?+?"??kSizeY:?"?+?str(int(kSizeY))?+?"\n"
????????self.net?=?self.net?+?"??paddingX:?"?+?str(int(paddingX))?+?"\n"
????????self.net?=?self.net?+?"??paddingY:?"?+?str(int(paddingY))?+?"\n"
????????self.net?=?self.net?+?"??strideX:?"?+?str(int(strideX))?+?"\n"
????????self.net?=?self.net?+?"??strideY:?"?+?str(int(strideY))?+?"\n"
????????self.net?=?self.net?+?"??dilationX:?"?+?str(int(dilationX))?+?"\n"
????????self.net?=?self.net?+?"??dilationY:?"?+?str(int(dilationY))?+?"\n"
????????self.net?=?self.net?+?"??groups:?"?+?str(int(groups))?+?"\n"
????????self.net?=?self.net?+?"??useBias:?"?+?str(int(useBias))?+?"\n"

然后Pytorch2MsnhNet就在前向傳播的過程中按照我們介紹的Hook技術(shù)完成構(gòu)建Pytorch模型對應(yīng)的MsnhNet模型結(jié)構(gòu)。

至此,我們就獲得了MsnhNet的模型參數(shù)文件和權(quán)重文件,可以利用MsnhNet加載模型進(jìn)行推理了。

4. 已經(jīng)支持的OP以及轉(zhuǎn)換實(shí)例

Pytorch2MsnhNet已經(jīng)支持轉(zhuǎn)換的OP如下:

-??conv2d
-??max_pool2d
-??avg_pool2d
-??adaptive_avg_pool2d
-??linear
-??flatten
-??dropout
-??batch_norm
-??interpolate(nearest,?bilinear)
-??cat???
-??elu
-??selu
-??relu
-??relu6
-??leaky_relu
-??tanh
-??softmax
-??sigmoid
-??softplus
-??abs????
-??acos???
-??asin???
-??atan???
-??cos????
-??cosh???
-??sin????
-??sinh???
-??tan????
-??exp????
-??log????
-??log10??
-??mean
-??permute
-??view
-??contiguous
-??sqrt
-??pow
-??sum
-??pad
-??+|-|x|/|+=|-=|x=|/=|

  • ResNet18的轉(zhuǎn)換示例:
import?torch
import?torch.nn?as?nn
from?torchvision.models?import?resnet18
from?PytorchToMsnhnet?import?*

resnet18=resnet18(pretrained=True)
resnet18.eval()
input=torch.ones([1,3,224,224])
trans(resnet18,?input,"resnet18.msnhnet","resnet18.msnhbin")

  • DeepLabV3的轉(zhuǎn)換示例:
import?torch
import?torch.nn?as?nn
from?torchvision.models.segmentation?import?deeplabv3_resnet101
from?PytorchToMsnhnet?import?*

deeplabv3=deeplabv3_resnet101(pretrained=False)
ccc?=?torch.load("C:/Users/msnh/.cache/torch/checkpoints/deeplabv3_resnet101_coco-586e9e4e.pth")
del?ccc["aux_classifier.0.weight"]
del?ccc["aux_classifier.1.weight"]
del?ccc["aux_classifier.1.bias"]
del?ccc["aux_classifier.1.running_mean"]
del?ccc["aux_classifier.1.running_var"]
del?ccc["aux_classifier.1.num_batches_tracked"]
del?ccc["aux_classifier.4.weight"]
del?ccc["aux_classifier.4.bias"]
deeplabv3.load_state_dict(ccc)
deeplabv3.requires_grad_(False)
deeplabv3.eval()


input=torch.ones([1,3,224,224])

#?trans?msnhnet?and?msnhbin?file
trans(deeplabv3,?input,"deeplabv3.msnhnet","deeplabv3.msnhbin")


5. MsnhNet介紹

MsnhNet是一款基于純c++的輕量級推理框架,此框架受到darknet啟發(fā),由穆士凝魂主導(dǎo),并由本公眾號作者團(tuán)隊(duì)業(yè)余協(xié)助開發(fā)。

項(xiàng)目地址:https://github.com/msnh2012/Msnhnet ,歡迎一鍵三連。

本框架目前已經(jīng)支持了X86、Cuda、Arm端的推理(支持的OP有限,正努力開發(fā)中),并且可以直接將Pytorch模型(后面也會嘗試接入更多框架)轉(zhuǎn)為本框架的模型進(jìn)行部署,歡迎對前向推理框架感興趣的同學(xué)試用或者加入我們一起維護(hù)這個輪子。

最后,歡迎加入Msnhnet開發(fā)QQ交流群,有對項(xiàng)目的建議或者個人的需求都可以在群里或者github issue提出。

交流群圖片

歡迎關(guān)注GiantPandaCV, 在這里你將看到獨(dú)家的深度學(xué)習(xí)分享,堅(jiān)持原創(chuàng),每天分享我們學(xué)習(xí)到的新鮮知識。( ? ?ω?? )?

有對文章相關(guān)的問題,或者想要加入交流群,歡迎添加BBuf微信:

二維碼

為了方便讀者獲取資料以及我們公眾號的作者發(fā)布一些Github工程的更新,我們成立了一個QQ群,二維碼如下,感興趣可以加入。

公眾號QQ交流群


瀏覽 46
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 欧美你懂的| 五月丁香色色| 正在播放吴梦梦淫行| 成人福利| 日韩免费黄色电影| 中文字幕熟女| 国产精品XXX视频| 人人操人人妻人人| 国产亚洲色情| 操女人逼AV| 中文字幕毛片| 欧美国产精品一二三产品在哪买| 成人性爱在线| 国产一级片在线| 欧美熟妇一区二区三区| 人人干人妻| 中文字幕高清视频| 欧美国产综合在线| 天堂资源在线| 蜜桃网站| 另类日韩| 久久九九国产| 欧美成人在线视频网站| 国产五月天婷婷| 精品热99| 国产精品无| 成人黄色性视频| 国产大奶一区二区| 黄色日本视频| 中文字幕二区| 日韩色情视频| 人人操人人撸| 91日日夜夜| 日韩天天| 无码人妻丰满熟妇区蜜桃| 日韩一级片网站| 亚洲Aⅴ| av色图| 国产成人精品无码片区在线观91| 欧美伊人网在线观看| 日韩视频在线免费观看| 亚洲色久| 女人一级A片色黄情免费| 国产香蕉在线观看| 福利三区| 天天干天| AV资源网站| 一区二区三区久久久久| 国产人妻AV| 人妻操逼视频| 国产3p绿帽骚妻视频| 精品AV国产| 欧美婷婷五月| 日韩黄色免费视频| 婷婷手机在线| 久久黄色网络| 四虎2025在线51| 另类老妇奶性生BBwBB| 操逼精品| 黄色成人视频在线观看| 黄色操逼网站| 一区二区高清| jizzjizz国产| 一级操逼| 天天爱天天射| 久久毛片| 天天色综| 麻豆天美蜜桃91| 制服.丝袜.亚洲.中文豆花| 亚洲高清在线视频| 久久精品在线视频| 中文字幕视频在线观看| 久操网站| 91探花足浴店按摩店| 无码人妻一区二区三区四区老鸭窝| 黄色成人18| 亚洲日韩中文字幕在线观看| 91香蕉视频18| A片免费在线观看| 亚洲一级黄色片| 国产AV高清| 日本免费黄色| 久久午夜无码鲁片午夜精品男男| 免费无码视频一区二区| 精品看片| 一区二区人妻| 国产高清黑人| AV大全在线免费观看| 丁香花免费高清视频小说完整| 人人草在线| 夜色精品视频| 玖玖色资源| 成人AV午夜福利| 男女黄色免费网站| 影音先锋男人网| 久草视频这里只有精品| 欧美成人无码一区二区三区| 影音先锋国产av| 女生操逼网站| 91精品国产综合久久久蜜臀主演 | 成人免费视频18| 91玖玖| 日本免费一区二区三区| 高清无码免费视频| 欧美日韩逼| 日日操天天操夜夜操| 能看的黄色视频| 久久精品视频播放| 免费无码婬片AAAAA片| 亚洲AV电影在线| 精品色播| 婷婷伊人中文字幕| 亚洲视频在线视频| 亚洲1区2区| 成人三级电影在线观看| 人人妻人人澡人人爽人人DVD| 狠狠操av| 狠狠干狠狠操| 久热最新| 久久久久久免费一级A片| 97人人爽人人爽人人爽| 国产熟女在线| 亚洲色热| 国产黄色一级| 国产精品国产三级国产专业不| 欧美97| 五十路在线视频| JUY-579被丈夫的上司侵犯后的第7天,我| 北条麻妃视频在线观看| 脓肿是什么原因引起的,该怎么治疗 | aaa免费视频| 麻豆精品在线| 国产高清无码在线| 久久无码区| 久久爱91| 九九热99视频| 99re国产视频| 日韩午夜电影| 亚洲永久视频| 欧美视频在线观看免费| 中文无码在线| 欧美精品18videosex性欧美 | 亚洲人成高清| 国产精品囯产三级囯产AV野外 | av天堂资源| 婷婷国产综合| 中文电视剧字幕在线播放免费视频 | AV无码高清| 久久精品在线| 影音先锋AV成人| 三须三级久久三级久久18| 日本黄色影院在线| 五月天色色网站| 一级特黄AA片| 久操国产| 午夜色色福利| 色哟哟一区二区三区四区| xxx一区二区| 在线国产福利| 日韩成人黄色电影| 三级片久久久| 精品国产va久久久久久| 久久久综合网| 天堂va欧美ⅴa亚洲va一夜| 亚洲男人的天堂AV| 99无码| 丰满欧美熟妇免费视频| 青青草五月天色婷婷丁香| 一区二区精品视频| 欧美国产操逼| 成人动漫在线观看| 99视频精品在线| 久热大香蕉| 人妻少妇被猛烈进入中文字幕| 在线观看一级片| 欧美BBWBBWBBWBBWBBwBBW | 日本黄色录像| 五十路av| 伊人成人在线| 成人尤物网站| 77777精品成人免费A片| 亚洲AV无一区二区三区久久| 怡红院男人天堂| 亚洲成人一区| 中文字幕高清视频| 国产乱子伦一区二区三区免看| 粉嫩99精品99久久久久久夜| 国产在线资源| 天堂资源地址在线| 男人天堂网av| 亚洲AV中文无码| 色噜噜在线| 成人网站在线免费观看| 在线观看免费人成视频| 性爱AV在线| 2025AV天堂| 在线无码播放| 黄色a片在线观看| 國產精品777777777| 日韩毛片在线播放| 日韩成人无码视频| 懂色一区二区三区免费| 97爱爱网| 三级片网站视频| 国产激情综合| 久久911| 天天干天天操天天爽| 久久成人电影院| 人妻无码免费视频| 999国产精品视频| 91国产精品在线| 蜜桃av无码一区二区三区| 亚洲vs无码秘蜜桃少妇| 啪啪网网站| av在线天堂网| 国产无码Av| 天天日天天爽| 亚洲精品自拍视频| 极品一线天小嫩嫩真紧| 免费在线成人网站| 日本草久| 天天操欧美| 一级av在线| 伊人毛片| 51成人精品午夜福利| 少妇推油呻吟白浆啪啪成人片| 天天精品视频| 人人爽人人爱| 久久无码电影| 亚洲一区视频在线| 成人日批视频| 在线无码高清| 精品女同一区二区三区四区外站在线 | 午夜福利资源| 国产亚洲午夜久久久成人电影 | 免费观看成人毛片A片直播千姿| 精品久久一区二区三区四区| 重庆美女揉BBBB搡BBBB| www.色在线观看| 美日韩无码视频| 日逼免费视频| 美国无码黄片| 精品中文在线| 西西4444www大胆无| 日韩东京热中文字幕| av一区二区在线观看| 五月婷婷激情综合| 亚洲无码中文字幕在线观看| 国产精品久久7777777精品无码| 天天爱天天爽| 久久婷婷秘精品日产538| 欧美老妇大BBBBXXXX| 四虎麻豆| 成人福利在线| 国产91麻豆视频| 亚洲中文字幕不卡| 天天无码| 日韩欧美成人网| 欧美少妇视频| 日韩黄色片| 嫩BBB搡BBBB搡BBBB-百度| 热99re69精品8在线播放| 在线你懂的| 欧美大鸡巴在线观看| 日韩性爱视频网站| 精品无码一区二区三区四区久久久软件 | 潮喷av| 成人国产欧美日韩在线视频| 老师搡BBBB搡BBB| 国产又大又粗又长| 中文字幕成人av| 日韩精品人妻中文字幕有| 大香蕉91| 亚洲天堂女人| 欧美一级aaa| 九九九精品| 99久久99久国产黄毛片| 91区视频| 再深点灬好爽灬轻点久久国产| 少妇做爱视频| 中文一区在线观看| 欧美啪啪啪| 豆花视频在线观看| 蜜桃Av噜噜| 色婷婷亚洲婷婷| 午夜一级性爱片| 影音先锋91久久网| 国产成人无码一区二区| 成人毛片在线播放免费| 亚洲精品乱码久久久久久久| 色吊丝中文字幕| 亚洲久久久久| 欧美一级做| 亚洲偷拍网| 色妞视频精品一区| 色视频国产| 中文字幕福利| 亚洲综合一区二区三区| 啪啪视频免费观看| 久久g热| 影音先锋av资源在线| 神马午夜精品95| 蜜臀网| 日韩激情| 波多野结衣视频无码| 黄av在线| 小黄片免费| 污视频在线免费| 熟女人妻在线观看| 黄视频免费在线观看| 国产精品自产拍| 亚洲高清无码在线播放| 国产又爽又黄视频| 2021国产视频| 中文字幕精品在线| 午夜操人妻| 国产精品不卡在线| 伊人网大香蕉| 成人精品一区二区三区无码视频| 午夜香蕉| 国产农村乱婬片A片AAA图片| 超碰少妇| 男女av在线观看| 无码狠狠躁久久久久久久91| 91丨PORNY丨在线中文| 黄网免费观看| 最新中文字幕视频| 一二三区免费视频| 亚洲日本三级片| 成年人在线播放| 国产做爱导航| a√天堂中文在线8| 亚洲无码视频在线| 巨乳一区二区三区| 国产精品久久久久精| 国产黄色在线观看| 少妇高潮在线| 内射毛片| gogogo日本免费观看高清电视剧的注意 | 亚洲AV无码成人精品区h麻豆| 操操操无码| 69av在线播放| 欧美在线视频a| 欧一美一婬一伦一区二区三区自慰| 欧美AAAAAAAAAA特级| 亚洲无码系列| 欧美日韩在线观看中文字幕 | 国产免费一级特黄A片| 日韩乱伦小说| 日本精品在线播放| 久色网| 高清无码爱爱| 中文字幕亚洲精品| 国产又粗又长视频| 日本少妇电影| 无码人妻精品一区| 亚洲午夜无码精品专区| 影音先锋av中文字幕| 日韩成人在线播放| 69国产成人精品二区| 亚洲无码av在线播放| 星空AV| 欧美日韩成人视频| 国产aaaaaaaaaaaaa| 67194熟女| 婷婷五月天免费视频| 天天天天天天操| 成人无码99| 天干天干天夜夜| 成人久久久| 曰曰摸日日碰| 最美孕交vivoestv另类| 久久精品国产精品| 国产激情精品视频| 欧美性爱一区二区三区| 啪啪网站免费看| 激情欧美| 成人网站www污污污网站公司| 人人摸人人看| 免费肏逼视频| 91在线看18| 亚洲AV资源| 大肉大捧一进一出免费阅读| 国产精品久久久久野外| 逼逼影院| 亚洲综合社区在线| 欧美日韩一二| 久久思热国产| 亚洲天堂在线观看免费视频| 国产乱子伦日B视频| 大香蕉伊人综合网| 日韩视频播放在线综合| 亚洲人成色777777无码| 黄色A网站| www.日韩欧美| 97精品人妻一区二区三区香蕉农| 成人视频一区二区| 成人TV| 亚洲Av无码成人专区擼| 日韩va亚洲va欧美va高清| 日韩少妇视频| 91无码国产成人精品| 99热在线免费观看| 人人色人人操人人干| 国产精品欧美综合亚洲| 日本性爱一区| 欧美做受高潮白| www久久| 男人天堂视频在线观看| 色五月亚洲| 乱伦性爱视频| 狼友综合| 日韩欧美国产黄色电影| 在线观看欧美日韩| 丁香五月天天| 一道本一区二区三区免费视频| 一级特黄AA片| 国产精品视频在线播放| AV大全在线观看| 亚洲天堂在线观看网站| 色色免费视频| 69自拍视频| 国产一区二区三区在线| 国产成人精品免高潮在线人与禽一 | 臭小子啊轻点灬太粗太长了的视频| 骚逼自拍| 成人自拍视频| 中文字幕第315页| 日韩午夜无码| 久久丁香| 亚洲无码一二三| 男人的天堂婷婷| 中文字幕在线免费观看视频| 黄片无码免费| 最好看2019中文在线播放电影| 三级网站在线播放| anwuye官方网站| 男人操女人网站| 黄色三级在线观看| 99久久99久久精品免费看小说。 | 777777国产7777777| 久久伊人在线| 中国一级黄色毛片| 天天操天天干麻豆| 成人三级无码| 日韩欧美国产综合| 丰满人妻一区二区免费看| 国产无码Av| 成人精品一区日本无码网站suv/ | 亚洲日韩国产中文字幕| 三级国产| 欧美成人自拍视频| 激情六月婷婷| 囯产精品久久久久久久久免费无码| 狼人综合色| 国产骚妇| 久久99人妻无码精品一区| 亚洲午夜激情| 肏亚洲美女| 国产精品久久久久久久久久久久久久| 日韩福利一区| 亚洲精品一区二区三区蜜桃| 午夜福利成人视频| 中文字幕第11页| 无码精品人妻一区二区欧美| 日韩欧美国产高清91| 99er在线视频| 毛片A| 操女人逼AV| 亚洲黄色在线视频| 日本一区不卡| 西西人体BBBBBB| 最好看的2019中文在线大全电影| 日韩小视频在线| 日韩99在线观看| 午夜久久| 91久久午夜无码鲁丝片久久人妻| 在线一级A片| 无码专区视频| 在线国产福利| 精品人妻一区二区三区日产乱码| 最好看的MV中文字幕国语电影 | 国产成人影视在线观看| 国产乱国产乱老熟300视频 | 日韩黄色一级| 午夜AV免费| 超碰在线观看97| 免费黄片视频在线观看| 俺去啦俺去啦| 一区二区成人免费视频| A无码| AAA三级片| 成人午夜无码| AA片免费| 色婷婷亚洲| 丰滿人妻一区二区三区| 亚洲成人精品一区二区| 中文字幕一区二区三区人妻电影| 国产黄色视频在线观看| 国产网站在线| 国产黄色视频在线免费看| 欧美性爱AAA| 搡BBBB搡BBB搡五十粉嫩| 韩国成人啪啪无码高潮| 免费观看成人| 五月天一区二区三区| 精品交换一区二区三区无码| 污视频在线看| 国产一区久久| 国产成人无码毛片| 在线一区二区三区四区| 欧美日韩一级A片| 69福利| 日本不卡一区二区三区四区| 特级西西西西4444级酉西88wwww特| 午夜AV在线观看| 黄片网站在线免费观看| 日日夜夜天天操| 强奷伦奷片91| 手机在线观看av| 插插插综合| 国模一区二区三区| 97人妻精品| 国产成人三级片| 91青青草在线| 国产精品秘国产精品88| 性爱视频91| 蝌蚪窝视频在线观看| 爱操逼综合网| 精品国产A片| 91大屁股| 日本成人不卡视频| h片在线| 无码AV中文字幕| 怡春院院成人免费视频| 嫩BBB槡BBBB槡BBBB| 婷婷色777777| 白浆在线| JLZZJLZZ亚洲女人| 99国产在线观看免费视频| 欧美男女交配视频| 国产亚洲aⅴ| 怡红院av| 蜜臀AV成人精品| 99精品无码视频| 国产无码自拍偷拍| 国产小视频免费在线观看| 久热大香蕉| 蜜芽无码| 国产精品911| 无码成人在线| 免费在线a视频| JlZZJLZZJlZZ亚洲女人17| 色77777| 荫蒂添出高潮A片视频| 亚洲区欧美区| 中文字幕在线免费观看电影| 一区二区三区国产精品| 色第一页| 日韩二区| 亚洲成人精品在线观看| 亚洲性爱一区二区| 国产精品久久久久久久久久久久久久久 | 色噜噜在线| 国产精品911| 亚洲无码资源| 黄色免费AV| 国产欧美综合一区| 亚洲AV五月天在线| 91国产爽黄在线相亲| 俄女兵一级婬片A片| 婷婷成人综合| 国产欧美日韩在线视频| 午夜丁香婷婷| 国产91小视频| 日韩欧美在线中文| 91午夜福利| 五月丁香激情视频| 玖玖成人电影| 中文字幕丰满熟妇人妻| 国产精品无码免费| 影音先锋91| 天天操天天操天天操天天| 99久久99久国产黄毛片| 97精品国产| 陈冠希和张柏芝mv| 九九操逼| 亚洲色偷精品一区二区三区| 国产97在线视频| 国产一区久久| 日韩大片在线| 91人妻无码视频| 国产精品果冻传媒| 91女人18毛片水多国产| 91丨九色丨东北熟女| 欧美三级电影在线观看| 男女啊啊啊| 美日韩一区二区三区| 少妇人妻AV| 国产最新福利| 688AV秘无码一区二区| 天天色小说| 综合导航无码| 国产综合自拍| 亚洲在线视频观看| 四虎国产| 高清无码一区二区三区四区| 日韩色综合| www.日韩无码| 成人久久av| 欧美日韩一区二区三区四区| 日韩无码一二三区| 天天干天天操天天拍| 亚洲无码一区二区在线| 欧美日本色| 伊人五月在线| 91在线免费视频| 国精产品一区二区三区| 蜜桃av秘无码一区二区三区 | 美女人人操| 超碰免费视| 日韩无码第四页| 日本a片免费| 一品国精和二品国精的文化意义| 亚洲小视频| 欧美日韩中文字幕无码| 操逼操逼操逼| 国产成人99久久亚洲综合精品| 先锋影音AV资源网| 99热7| 人妻操| 精品资源成人| 北条麻妃99精品| 搡女人视频国产一级午夜片| 色情一级AA片免费观看| 182av| 无码人妻熟妇| 日韩精品无码电影| 一区二区A片| 国产AⅤ无码一区二区| 91精品视频在线免费观看| 日日摸日日添日日躁AV| 996热re视频精品视频这里| 在线日韩一区二区| 国产香蕉在线播放| 大黑逼AV| 91白丝在线观看| 久久成人18免费网站波多野结衣 | 手机在线操B视频| 国产日韩二区| 先锋影音成人资源| 日韩A片免费观看| 天天操人人操| 色操逼网| 免费国产乱伦| 精品国精品自拍自在线| 毛片a级| 天堂国产一区二区三区| 婷婷综合欧美| 人妻少妇综合| 国产精品人妻无码久久久郑州天气网| 人妻18无码人伦一区二区三区精品| 玖玖资源在线观看| 亚洲无码在线精品| 肏屄在线观看| 亚洲性爱小说网址| 99欧美精品| 黄色av免费在线| 亚洲日逼网| 青青青亚州视频在线| 午夜日逼网站| 成人91视频| 久久国产精品免费视频| 69式荫蒂被添全过程| 黄色片大全| 人妻人人骑| 国产女主播在线观看| 中文字幕乱码中文字幕| 人人澡人人澡人人| 18av在线观看| 67194熟女| 亚洲无aV在线中文字幕| 国产成人精品三级麻豆| 国产精品成人AV片| 天天日天天色| 男女av| 思思热在线| 伊人网视频| 人人妻人人澡人人爽久久con| 黄色特级aaa片| 成人国产精品在线观看| 中文字幕一区二区三区人妻在线视频| 亚洲无码在线高清| 亚洲免费av在线| 国产一级特黄大片| 国产精品无码无套在线照片| 青青草黄色视频| 麻豆91精品91久久久| 性生活无码| 欧美成人在线视频网站| 免费看成人A片无码照片88hⅤ | 亚洲成人av| 极品美女扒开粉嫩小泬高潮一| 中文字幕日韩无码电影| 丁香五月一区二区| 日韩美女在线视频| 黄片在线网站| 嫩草嫩草69| 91精品啪| 欧美人妻日韩精品| 澳门免费毛片| 国模私拍视频| 水果派解说在线观看| 黄色三级片网站| 国产口爆| AV天堂小说| 澳门午夜黄色在线| 特级西西444www大胆高清图片| av性爱在线| 狠狠干综合网| 91探花秘在线播放偷拍| 国产综合久久久7777777| 人妻FrXXeeXXee护士| 日韩AV电影在线观看| 啪啪啪免费网站| 日韩欧美视频一区国产欧美在线| 影音先锋AV资源网站| 日韩成人性爱网站| 三级成人免费| 十八女人高潮A片免费| 亚洲最大黄色视频| 丁香五月婷婷网| 插综合网| 成人aaa| 成人国产精品在线观看| 人人射人人摸| 五月天婷婷无码| 91国内精品视频| 人人草人人澡| 一级日逼| 狠狠色婷婷7777| 日韩精品成人专区无码| 日本在线不卡一区| 91av在线观看视频| 丁香天堂| 青草青在线视频| 蜜臀久久久久久999| 久久激情网| 久久成人123| 精品伊人大香蕉| 天天视频入口| 日本内射在线播放| 四虎在线观看一区网址| av免费播放| 天天色综| 国产欧美毛片| 最近中文字幕av| 3d啪啪动漫| 男女啊啊啊| 国产精品久久久久久久久久久免费看 | 日韩一级片网站| 亚洲成人一级片| 免费的A片| 黄片网站免费观看| 一级性生活视频| 亚洲中文无码av| 91丨PORNY丨对白| 欧美一級黃色A片免費看| 強姦婬片A片AAA毛片Mⅴ| 北条麻妃一区二区三区-免费免费高清观看 | 亚洲精品成人视频| 免费A片在线观看| 无码中文字幕高清| 天天草夜夜操| 俺去俺来也在线www色情网| 激情丁香婷婷| 麻豆mdapp01.tⅴ| 91爱爱| 丁香激情综合| 欧美一级成人| 色婷婷成人| 无码精品一区二区三区同学聚会| A黄色绿像| 手机在线一区| 欧美草逼网| 亚洲日韩成人电影| 国产艹逼| 日韩欧美视频一区国产欧美在线| 婷婷久久亚洲| 波多野结衣高清视频| 嫩BBB槡BBBB槡BBB小号| 超碰人人干| 欧美疯狂做受XXXXX高潮| 日韩专区中文字幕| 久久久亚洲AV| 国产黄色自拍视频| 99福利视频| 亚洲人成人无码.www粉色| 福利大香蕉| 日韩免费视频在线观看| 亚洲综合视频在线观看| 91色秘乱码一区二区| 久久成人在线| 欧美日逼网| 日韩一区无码| 思思久久高颜值| 四虎午夜福利| 一本无码高清| 国产精品成人无码a无码| 久久性视频| 亚洲最新在线视频| 亚洲成人av无码| 人妻天天爽| 97无码| 午夜AV福利影院| www.日韩av| 好吊妞在线| 97中文字幕| 96精品久久久久久久久久| 日中国老太太B| 亚洲一级黄色视频| 青春草在线观看| 91麻豆一区二区| 无码人妻在线播放| 午夜男女福利| 色眯眯久久爱| 日本熟妇在线| 午夜成人在线视频| 91人妻人人澡| 日本无码区| 亚洲av网站在线观看| 国产无套免费网站69| 91精品一区| 亚洲1234区| 人人看AV| 九九视频在线观看| 佳佳女王footjob超级爽| 人人摸天天| 淫荡人妻视频| 91av电影| 爱爱高清视频| 99re6热在线精品视频| 超碰人人操人人| 久久精品禁一区二区三区四区五区| 另类TS人妖一区二区三区| 国产凹凸视频| 福利二区| 色呦呦视频| 日韩毛片一级| 日韩A片在线观看| A级片毛片| 在线观看免费视频黄| 国产精品91视频| 女人自慰在线观看| 影音先锋中文字幕av| 美女网站在线观看| 香蕉日逼| 日韩香蕉网| 久久AV秘一区二区三区水生| www.四虎成人网站| 国产一级操逼片| 人人爱人人爽| 91久久精品日日躁夜夜躁国产| 无码成人网| 黄色电影视频网站| 啪啪免费视频| 成人免费视频一区| 天天爽天天爽成人A片影院 | 久久不卡| 精品多人P群无码视频| 中文字幕熟女| 91精品久久久久久久| 国产嫩草影院| 综合色网站| av无码在线观看| 中文字幕在线观看网| 男女啪啪免费视频| 婷婷五月综合久久中文字幕| 特级西西444www大胆高清图片 | 人妻无码免费视频| 亚洲一区二区三区免费视频| 九九综合伊人7777777| 爱爱动态图| 国产影视av| 欧美肉大捧一进一出小说| 欧美日韩成人| 国产第七页| 欧美成人精品欧美一级私黄| 成人AV电影在线观看| 就要操逼| 99在线观看免费视频| 大香蕉操B| 一区二区三区四区免费看| 婷婷色导航| 大香蕉久久精品| 最近2019中文字幕mv第三季歌词| 男人天堂AV片| 国产精品高潮呻吟| 精品人妻一区二区三区-国产精品 无码人妻av黄色一区二区三区 | AV黄片|