日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

提高模型的训练性能(一)

發布時間:2024/1/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 提高模型的训练性能(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載地址:https://bbs.huaweicloud.com/forum/thread-118716-1-1.html

作者:李響

梯度累積引入Mini-batch的概念,首先對每個Mini-batch的數據計算loss和梯度,但不立即更新模型參數,而是先對所得梯度進行累加,然后在指定數量(N)個Mini-batch之后,用累積后的梯度更新網絡參數。下次訓練前清空過往累積梯度后重新累加,如此往復。最終目的是為了達到跟直接用N*Mini-batch數據訓練幾乎同樣的效果。

在單機模式下,主要通過將訓練流程拆分為正向反向訓練、參數更新和累積梯度清理三個部分實現梯度累積。

(以下以MNIST數據集為例)

導入需要的庫文件:

import argparse

import os

from collections.abc import Iterable

import mindspore.nn as nn

from mindspore import ParameterTuple

from mindspore import context, DatasetHelper, save_checkpoint

from mindspore.nn import Cell

import mindspore.ops as ops

from model_zoo.official.cv.lenet.src.dataset import create_dataset

from model_zoo.official.cv.lenet.src.lenet import LeNet5

定義訓練流程:

將訓練流程拆分為正向反向訓練、參數更新和累積梯度清理三個部分:

TrainForwardBackward計算loss和梯度,利用grad_sum實現梯度累加。

TrainOptim實現參數更新。

TrainClear實現對梯度累加變量grad_sum清零。

_sum_op = ops.MultitypeFuncGraph("grad_sum_op")

_clear_op = ops.MultitypeFuncGraph("clear_op")

@_sum_op.register("Tensor", "Tensor")

def _cumulative_grad(grad_sum, grad):

? ? """Apply grad sum to cumulative gradient."""

? ? add = ops.AssignAdd()

? ? return add(grad_sum, grad)

@_clear_op.register("Tensor", "Tensor")

def _clear_grad_sum(grad_sum, zero):

? ? """Apply zero to clear grad_sum."""

? ? success = True

? ? success = ops.depend(success, ops.assign(grad_sum, zero))

? ? return success

class TrainForwardBackward(Cell):

? ? def __init__(self, network, optimizer, grad_sum, sens=1.0):

? ? ? ? super(TrainForwardBackward, self).__init__(auto_prefix=False)

? ? ? ? self.network = network

? ? ? ? self.network.set_grad()

? ? ? ? self.network.add_flags(defer_inline=True)

? ? ? ? self.weights = ParameterTuple(network.trainable_params())

? ? ? ? self.optimizer = optimizer

? ? ? ? self.grad_sum = grad_sum

? ? ? ? self.grad = ops.GradOperation(get_by_list=True, sens_param=True)

? ? ? ? self.sens = sens

? ? ? ? self.hyper_map = ops.HyperMap()

? ? def construct(self, *inputs):

? ? ? ? weights = self.weights

? ? ? ? loss = self.network(*inputs)

? ? ? ? sens = ops.Fill()(ops.DType()(loss), ops.Shape()(loss), self.sens)

? ? ? ? grads = self.grad(self.network, weights)(*inputs, sens)

? ? ? ? return ops.depend(loss, self.hyper_map(ops.partial(_sum_op), self.grad_sum, grads))

class TrainOptim(Cell):

? ? def __init__(self, optimizer, grad_sum):

? ? ? ? super(TrainOptim, self).__init__(auto_prefix=False)

? ? ? ? self.optimizer = optimizer

? ? ? ? self.grad_sum = grad_sum

? ? def construct(self):

? ? ? ? return self.optimizer(self.grad_sum)

class TrainClear(Cell):

? ? def __init__(self, grad_sum, zeros):

? ? ? ? super(TrainClear, self).__init__(auto_prefix=False)

? ? ? ? self.grad_sum = grad_sum

? ? ? ? self.zeros = zeros

? ? ? ? self.hyper_map = ops.HyperMap()

? ? def construct(self):

? ? ? ? success = self.hyper_map(ops.partial(_clear_op), self.grad_sum, self.zeros)

? ? ? ? return success

訓練并保存模型

調用網絡、優化器及損失函數,然后自定義GradientAccumulation的train_process接口,進行模型訓練。

if __name__ == "__main__":

? ? parser = argparse.ArgumentParser(description='MindSpore Grad Cumulative Example')

? ? parser.add_argument('--device_target', type=str, default="GPU", choices=['GPU'],

? ? ? ? ? ? ? ? ? ? ? ? help='device where the code will be implemented (default: GPU)')

? ? parser.add_argument('--data_path', type=str, default="./Data",

? ? ? ? ? ? ? ? ? ? ? ? help='path where the dataset is saved')

? ? args = parser.parse_args()

? ? context.set_context(mode=context.GRAPH_MODE, device_target=args.device_target)

? ? ds_train = create_dataset(os.path.join(args.data_path, "train"), 32)

? ? net = LeNet5(10)

? ? net_loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True, reduction="mean")

? ? net_opt = nn.Momentum(net.trainable_params(), 0.01, 0.9)

? ? model = GradientAccumulation(net, net_loss, net_opt)

? ? print("============== Starting Training ==============")

? ? model.train_process(10, ds_train, mini_steps=4)

上面闡述的是單機模式,如果在并行模式下,則需要改變策略

在SEMI_AUTO_PARALLEL和AUTO_PARALLEL模式下使用梯度累積,主要是將累積迭代和更新迭代作為兩張圖下發并且交替執行。在累積迭代圖上,只執行正反向運算及梯度累加。在更新迭代圖上,執行正反向運算和參數更新。

定義并行訓練流程

通常情況下,定義了正向網絡后會使用TrainOneStepCell將網絡正反向及優化器關聯到一起。但是梯度累積時存在累積和更新兩種情況,所以我們要基于原有類定義做一些改造。樣例代碼如下:

import numpy as np

import mindspore.common.dtype as mstype

from mindspore import ops, context, Tensor, Parameter

from mindspore.nn import TrainOneStepCell

from mindspore.common.initializer import initializer

zeroslike = ops.ZerosLike()

reset_accu_grads = ops.MultitypeFuncGraph("reset_accu_grads")

@reset_accu_grads.register("Tensor")

def _reset_accu_grads(accu_grad):

? ? succ = True

? ? return ops.depend(succ, ops.assign(accu_grad, zeroslike(accu_grad)))

cast = ops.Cast()

update_accu_grads = ops.MultitypeFuncGraph("update_accu_grads")

@update_accu_grads.register("Tensor", "Tensor")

def _update_accu_grads(accu_grad, grad):

? ? succ = True

? ? return ops.depend(succ, ops.assign_add(accu_grad, cast(grad, mstype.float32)))

class TrainAccuStepsCell(TrainOneStepCell):

? ? def __init__(self, network, optimizer, sens=1.0):

? ? ? ? super(TrainAccuStepsCell, self).__init__(network, optimizer, sens)

? ? ? ? self.accumulation = False

? ? ? ? self.accumulation_steps = context.get_auto_parallel_context("grad_accumulation_step")

? ? ? ? self.accu_grads = self.weights.clone(prefix="accu_grads", init='zeros')

? ? ? ? self.hyper_map = ops.HyperMap()

? ? def construct(self, *inputs):

? ? ? ? """Defines the computation performed."""

? ? ? ? weights = self.weights

? ? ? ? loss = self.network(*inputs)

? ? ? ? sens = ops.Fill()(ops.DType()(loss), ops.Shape()(loss), self.sens)

? ? ? ? grads = self.grad(self.network, weights)(*inputs, sens)

? ? ? ? if self.accumulation and self.accumulation_steps > 1:

? ? ? ? ? ? accu_succ = self.hyper_map(update_accu_grads, self.accu_grads, grads)

? ? ? ? ? ? loss = ops.depend(loss, accu_succ)

? ? ? ? if self.accumulation:

? ? ? ? ? ? succ = False

? ? ? ? else:

? ? ? ? ? ? grads = self.grad_reducer(grads)

? ? ? ? ? ? accu_grads = ops.depend(self.accu_grads, grads)

? ? ? ? ? ? accu_succ = self.hyper_map(reset_accu_grads, accu_grads)

? ? ? ? ? ? loss = ops.depend(loss, accu_succ)

? ? ? ? ? ? succ = self.optimizer(grads)

? ? ? ? return ops.depend(loss, succ)

在TrainOneStepCell的基礎上,增加累積標記accumulation和累積梯度參數accu_grads的定義,分別用于區分訓練流程和保存累積梯度值。在累積迭代圖上,accumulation為True,只執行正反向運算并將梯度累加到參數accu_grads。在更新迭代圖上,accumulation為False,執行正反向運算和參數更新。在動態loss scale場景下,除了梯度需要累積外,溢出標志位也需要累積判斷,可以基于TrainOneStepWithLossScaleCell改造,實現代碼如下:

import numpy as np

import mindspore.common.dtype as mstype

from mindspore import ops, context, Tensor, Parameter

from mindspore.nn import TrainOneStepWithLossScaleCell

from mindspore.nn.wrap.loss_scale import _grad_scale

from mindspore.common.initializer import initializer

zeroslike = ops.ZerosLike()

reset_accu_grads = ops.MultitypeFuncGraph("reset_accu_grads")

@reset_accu_grads.register("Tensor")

def _reset_accu_grads(accu_grad):

? ? succ = True

? ? return ops.depend(succ, ops.assign(accu_grad, zeroslike(accu_grad)))

cast = ops.Cast()

update_accu_grads = ops.MultitypeFuncGraph("update_accu_grads")

@update_accu_grads.register("Tensor", "Tensor")

def _update_accu_grads(accu_grad, grad):

? ? succ = True

? ? return ops.depend(succ, ops.assign_add(accu_grad, cast(grad, mstype.float32)))

class TrainAccuStepsWithLossScaleCell(TrainOneStepWithLossScaleCell):

? ? def __init__(self, network, optimizer, scale_sense):

? ? ? ? super(TrainAccuStepsWithLossScaleCell, self).__init__(network, optimizer, scale_sense)

? ? ? ? self.accumulation = False

? ? ? ? self.accumulation_steps = context.get_auto_parallel_context("grad_accumulation_step")

? ? ? ? self.one = Tensor(np.array([1]).astype(np.int32))

? ? ? ? self.zero = Tensor(np.array([0]).astype(np.int32))

? ? ? ? self.accu_grads = self.weights.clone(prefix="accu_grads", init='zeros')

? ? ? ? self.accu_overflow = Parameter(initializer(0, [1], mstype.int32))

? ? ? ? self.accu_loss = Parameter(initializer(0, [1], mstype.float32))

? ? ? ? self.cast = ops.Cast()

? ? ? ? self.logical_or = ops.LogicalOr()

? ? ? ? self.not_equal = ops.NotEqual()

? ? ? ? self.select = ops.Select()

? ? ? ? self.reshape = ops.Reshape()

? ? def construct(self, *inputs):

? ? ? ? """Defines the computation performed."""

? ? ? ? weights = self.weights

? ? ? ? loss = self.network(*inputs)

? ? ? ? scaling_sens = self.scale_sense

? ? ? ? status, scaling_sens = self.start_overflow_check(loss, scaling_sens)

? ? ? ? scaling_sens_filled = ops.ones_like(loss) * ops.cast(scaling_sens, ops.dtype(loss))

? ? ? ? grads = self.grad(self.network, weights)(*inputs, scaling_sens_filled)

? ? ? ? # accumulate gradients

? ? ? ? if self.accumulation and self.accumulation_steps > 1:

? ? ? ? ? ? accu_succ = self.hyper_map(update_accu_grads, self.accu_grads, grads)

? ? ? ? ? ? loss = ops.depend(loss, accu_succ)

? ? ? ? overflow = self.get_overflow_status(status, grads)

? ? ? ? overflow = self.logical_or(self.not_equal(self.accu_overflow, self.zero), overflow)

? ? ? ? accu_overflow = self.select(overflow, self.one, self.zero)

? ? ? ? if self.accumulation:

? ? ? ? ? ? succ = False

? ? ? ? ? ? self.accu_overflow = accu_overflow

? ? ? ? else:

? ? ? ? ? ? self.accu_overflow = self.zero

? ? ? ? ? ? # apply grad reducer on grads

? ? ? ? ? ? grads = self.grad_reducer(grads)

? ? ? ? ? ? grads = self.hyper_map(ops.partial(_grad_scale, scaling_sens), grads)

? ? ? ? ? ? accu_overflow = self.allreduce(accu_overflow)

? ? ? ? ? ? overflow = self.less_equal(self.base, accu_overflow)

? ? ? ? ? ? accu_grads = ops.depend(self.accu_grads, grads)

? ? ? ? ? ? accu_succ = self.hyper_map(reset_accu_grads, accu_grads)

? ? ? ? ? ? overflow = ops.depend(overflow, accu_succ)

? ? ? ? ? ? overflow = self.reshape(overflow, (()))

? ? ? ? ? ? overflow = self.process_loss_scale(overflow)

? ? ? ? ? ? if overflow:

? ? ? ? ? ? ? ? succ = False

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? succ = self.optimizer(grads)

? ? ? ? ret = (loss, overflow, scaling_sens)

? ? ? ? return ops.depend(ret, succ)

定義并行訓練模型

經過cell_wrapper封裝的網絡已經包含了正反向和優化器實現,我們還需要將數據集對接到網絡并實現兩張圖交替執行。這里基于框架中的Model接口實現上述功能。

import math

from mindspore.train.callback import RunContext

from mindspore import context

from mindspore.context import ParallelMode

from mindspore import Model, connect_network_with_dataset

from mindspore.common.dtype import pytype_to_dtype

from mindspore._c_expression import init_exec_dataset

from mindspore.train.train_thor.dataset_helper import DatasetHelper

def _convert_type(types):

? ? """

? ? Convert from numpy type to tensor type.

? ? Args:

? ? ? ? types (list): Numpy type list of element in dataset.

? ? Returns:

? ? ? ? list, list of element in dataset.

? ? """

? ? ms_types = []

? ? for np_type in types:

? ? ? ? ms_type = pytype_to_dtype(np_type)

? ? ? ? ms_types.append(ms_type)

? ? return ms_types

def _get_types_and_shapes(dataset):

? ? """Get dataset types and shapes."""

? ? dataset_types = _convert_type(dataset.output_types())

? ? dataset_shapes = dataset.output_shapes()

? ? return dataset_types, dataset_shapes

def _exec_datagraph(exec_dataset, dataset_size, phase='dataset'):

? ? """Initialize and execute the dataset graph."""

? ? batch_size = exec_dataset.get_batch_size()

? ? input_indexs = exec_dataset.input_indexs

? ? # transform data format

? ? dataset_types, dataset_shapes = _get_types_and_shapes(exec_dataset)

? ? init_exec_dataset(exec_dataset.__transfer_dataset__.queue_name,

? ? ? ? ? ? ? ? ? ? ? dataset_size,

? ? ? ? ? ? ? ? ? ? ? batch_size,

? ? ? ? ? ? ? ? ? ? ? dataset_types,

? ? ? ? ? ? ? ? ? ? ? dataset_shapes,

? ? ? ? ? ? ? ? ? ? ? input_indexs,

? ? ? ? ? ? ? ? ? ? ? phase=phase,

? ? ? ? ? ? ? ? ? ? ? need_run=False)

class Model_ACCU(Model):

? ? def __init__(self, network, loss_fn=None, optimizer=None, metrics=None, eval_network=None,

? ? ? ? ? ? ? ? ?eval_indexes=None, amp_level="O0", **kwargs):

? ? ? ? super(Model_ACCU, self).__init__(network, loss_fn, optimizer, metrics, eval_network,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?eval_indexes, amp_level, **kwargs)

? ? ? ? self._frequency = context.get_auto_parallel_context("grad_accumulation_step")

? ? ? ? self._train_network = self._build_train_network()

? ? def _exec_preprocess(self, network, is_train, phase, dataset, dataset_sink_mode, sink_size=-1,

? ? ? ? ? ? ? ? ? ? ? ? ?epoch_num=1, iter_first_order=1):

? ? ? ? """Initializes dataset."""

? ? ? ? if dataset_sink_mode and not is_train:

? ? ? ? ? ? dataset.__loop_size__ = 1

? ? ? ? dataset_helper = DatasetHelper(dataset, dataset_sink_mode, sink_size, epoch_num, iter_first_order)

? ? ? ? if dataset_sink_mode and context.get_context("device_target") != "GPU":

? ? ? ? ? ? network = connect_network_with_dataset(network, dataset_helper)

? ? ? ? network.set_train(is_train)

? ? ? ? network.phase = phase

? ? ? ? if self._parallel_mode in (ParallelMode.SEMI_AUTO_PARALLEL, ParallelMode.AUTO_PARALLEL):

? ? ? ? ? ? network.set_auto_parallel()

? ? ? ? return dataset_helper, network

? ? def _train_dataset_sink_process(self, epoch, train_dataset, list_callback=None, cb_params=None, sink_size=-1):

? ? ? ? """

? ? ? ? Training process. The data would be passed to network through dataset channel.

? ? ? ? Args:

? ? ? ? ? ? epoch (int): Total number of iterations on the data.

? ? ? ? ? ? train_dataset (Dataset): A training dataset iterator. If there is no

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?loss_fn, a tuple with multiple data (data1, data2, data3, ...) should be

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?returned and passed to the network. Otherwise, a tuple (data, label) should

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?be returned. The data and label would be passed to the network and loss

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?function respectively.

? ? ? ? ? ? list_callback (Callback): Executor of callback list. Default: None.

? ? ? ? ? ? cb_params (_InternalCallbackParam): Callback parameters. Default: None.

? ? ? ? ? ? sink_size (int): Control the amount of data in each sink. Default: -1.

? ? ? ? """

? ? ? ? if sink_size == -1:

? ? ? ? ? ? epoch_num = epoch

? ? ? ? else:

? ? ? ? ? ? epoch_num = math.ceil(epoch * sink_size / train_dataset.get_dataset_size())

? ? ? ? iter_first_order = 1

? ? ? ? iter_second_order = self._frequency - 1

? ? ? ? train_dataset.__loop_size__ = iter_second_order

? ? ? ? dataset_helper, train_network = self._exec_preprocess(self._train_network,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? is_train=True,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? phase='train',

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dataset=train_dataset,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dataset_sink_mode=True,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? sink_size=sink_size,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? epoch_num=epoch_num,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? iter_first_order=iter_first_order)

? ? ? ? self._train_network = train_network

? ? ? ? cb_params.train_network = self._train_network

? ? ? ? cb_params.cur_step_num = 0

? ? ? ? run_context = RunContext(cb_params)

? ? ? ? list_callback.begin(run_context)

? ? ? ? # used to stop training for early stop, such as stopAtTIme or stopATStep

? ? ? ? should_stop = False

? ? ? ? switch_branch_one = True

? ? ? ? index_first_order = 0

? ? ? ? train_network_init_flag = True

? ? ? ? has_do_dataset_init = False

? ? ? ? for i in range(epoch):

? ? ? ? ? ? cb_params.cur_epoch_num = i + 1

? ? ? ? ? ? list_callback.epoch_begin(run_context)

? ? ? ? ? ? # for data sink dataset_helper only iter once, other wise iter epoch_size times.

? ? ? ? ? ? for inputs in dataset_helper:

? ? ? ? ? ? ? ? list_callback.step_begin(run_context)

? ? ? ? ? ? ? ? if switch_branch_one:

? ? ? ? ? ? ? ? ? ? cb_params.cur_step_num += iter_second_order

? ? ? ? ? ? ? ? ? ? if train_network_init_flag:

? ? ? ? ? ? ? ? ? ? ? ? self._train_network.add_flags_recursive(accumulation=True)

? ? ? ? ? ? ? ? ? ? self._train_network.phase = 'train0'

? ? ? ? ? ? ? ? else:

? ? ? ? ? ? ? ? ? ? cb_params.cur_step_num += iter_first_order

? ? ? ? ? ? ? ? ? ? if train_network_init_flag:

? ? ? ? ? ? ? ? ? ? ? ? self._train_network.add_flags_recursive(accumulation=False)

? ? ? ? ? ? ? ? ? ? ? ? train_network_init_flag = False

? ? ? ? ? ? ? ? ? ? self._train_network.phase = 'train1'

? ? ? ? ? ? ? ? ? ? if not has_do_dataset_init:

? ? ? ? ? ? ? ? ? ? ? ? _exec_datagraph(train_dataset, iter_first_order, phase='train1_dataset')

? ? ? ? ? ? ? ? ? ? ? ? has_do_dataset_init = True

? ? ? ? ? ? ? ? switch_branch_one = not switch_branch_one

? ? ? ? ? ? ? ? outputs = self._train_network(*inputs)

? ? ? ? ? ? ? ? cb_params.net_outputs = outputs

? ? ? ? ? ? ? ? list_callback.step_end(run_context)

? ? ? ? ? ? list_callback.epoch_end(run_context)

? ? ? ? ? ? should_stop = should_stop or run_context.get_stop_requested()

? ? ? ? ? ? if should_stop:

? ? ? ? ? ? ? ? break

? ? ? ? dataset_helper.stop_send()

? ? ? ? list_callback.end(run_context)

訓練模型

完成上述定義后,即可利用訓練接口完成模型訓練。首先需要在context.set_auto_parallel_context配置grad_accumulation_step參數,使能梯度累積。其次利用改造的cell_warapper封裝網絡結構,傳入Model_ACCU中初始化模型。

context.set_auto_parallel_context(parallel_mode=ParallelMode.AUTO_PARALLEL, gradients_mean=True, grad_accumulation_step=6)

loss_cb = LossMonitor()

data_path = os.getenv('DATA_PATH')

batch_size = 32

dataset = create_dataset(data_path, batch_size=batch_size)

num_classes = 10

net = resnet50(batch_size, num_classes)

loss = SoftmaxCrossEntropyExpand(sparse=True)

opt = Momentum(filter(lambda x: x.requires_grad, net.get_parameters()), 0.01, 0.9)

net_with_loss = nn.WithLossCell(net, loss)

net_with_loss = VirtualDatasetCell(net_with_loss)

wrap_net = TrainAccuStepsCell(net_with_loss, opt)

model = Model_ACCU(wrap_net)

model.train(epoch_size, dataset, callbacks=[loss_cb], dataset_sink_mode=True)

總結

以上是生活随笔為你收集整理的提高模型的训练性能(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

www.色五月.com | 久久视频精品在线 | 国产免费人成xvideos视频 | 人人插人人舔 | 五月开心激情网 | 亚洲精品中文在线观看 | 国产色婷婷在线 | 91成人精品观看 | 天天插天天干天天操 | 高清精品视频 | www日韩精品 | 国产精品扒开做爽爽的视频 | 色在线网站 | 日韩av在线免费播放 | 午夜黄网| 在线观看播放av | 欧美日视频 | 黄色的视频网站 | 国内外成人免费在线视频 | 国产精品久久一区二区三区, | 免费在线一区二区三区 | 国产精品黄色 | 美女黄频 | 欧美日韩中文字幕视频 | 成人av免费在线播放 | 在线观看日本高清mv视频 | 国内精自线一二区永久 | 97精品国自产拍在线观看 | 久久少妇| 1024在线看片 | av在线最新 | 五月天婷婷综合 | avwww在线| 亚洲人精品午夜 | 久久国内精品99久久6app | 久久极品| 亚洲精品久久久久久久不卡四虎 | 女人18精品一区二区三区 | 黄色大片免费播放 | 久久免费黄色 | 国产不卡免费 | 激情中文字幕 | 激情欧美丁香 | 国产精品毛片完整版 | 日本在线视频网址 | 中文字幕视频一区 | 色多多污污在线观看 | 亚洲一区二区三区精品在线观看 | 日韩欧美在线观看 | 草久久av | 激情大尺度视频 | 亚洲另类交 | 少妇bbb| 亚洲电影黄色 | 日韩专区在线 | 碰超在线97人人 | 精品福利网 | 91精品免费在线观看 | 91爱看片| 日日夜日日干 | 国产大片黄色 | 亚洲日本一区二区在线 | 日韩二区在线 | 国产视频欧美视频 | 久久精品免视看 | 激情五月婷婷综合 | 久久国产香蕉视频 | 91麻豆网| 色偷偷888欧美精品久久久 | 国产精品初高中精品久久 | 91传媒在线观看 | 久久99热国产 | 国产亚洲精品久久久久久久久久 | 国产精品久久久久一区 | 国产日韩在线视频 | 92av视频 | 色婷婷国产精品一区在线观看 | 国产成人久久77777精品 | 国产欧美综合在线观看 | 久久免费av电影 | 97免费在线观看视频 | 欧美精品国产综合久久 | 国产精品一区二区久久久久 | 精品国产91亚洲一区二区三区www | 人人爽人人爱 | 国产精品女人久久久久久 | 美女免费网站 | 天天色播 | 天天鲁天天干天天射 | 久草视频免费在线播放 | 精品国产一二区 | 欧美在线日韩在线 | 成年人在线观看免费视频 | 在线观看色网站 | 久久免费视频一区 | 国产午夜三级一二三区 | 国产精品综合久久久久 | 国产在线精品观看 | www.色午夜,com | 国产原创在线 | 欧美日韩中字 | 久久 亚洲视频 | 99精品视频免费在线观看 | 精品主播网红福利资源观看 | 国产精品福利在线 | 波多野结衣亚洲一区二区 | 国产一区免费在线 | 日韩av网页 | av手机版 | 久久精品99精品国产香蕉 | 欧美aⅴ在线观看 | 国产黄色精品 | 九九热在线观看视频 | 手机在线看a | 91福利在线导航 | 久久av中文字幕片 | 一区二区三区电影在线播 | 久久久免费精品国产一区二区 | 久久99欧美 | 日韩欧美xxx | 久久综合给合久久狠狠色 | 美女福利视频网 | 欧美va在线观看 | 亚洲国产精品电影在线观看 | 日韩黄色av网站 | 色婷婷国产 | 久久国产系列 | 成人av在线亚洲 | 国产福利一区二区在线 | 午夜精品久久久 | 国产精品视频永久免费播放 | 久久在线| 狠狠操狠狠干天天操 | 美女视频网站久久 | 99精品在线免费视频 | 黄色网址中文字幕 | 日精品在线观看 | 人人看人人做人人澡 | 日日爱网站 | 久久av伊人| 国产精品久久久久久久免费观看 | 色婷婷视频| 992tv又爽又黄的免费视频 | 亚洲精品456在线播放乱码 | 欧美大片在线看免费观看 | 99热.com| 日韩天天干| 九九九热精品 | 久久久久久久国产精品影院 | 国产九九九视频 | 五月黄色| 欧洲精品视频一区 | 久av在线 | 国产极品尤物在线 | 99精品国产一区二区三区不卡 | 久爱综合| 毛片网在线 | 久久在线免费观看视频 | 不卡中文字幕av | 亚洲日日夜夜 | 91黄在线看 | 日韩在线观看一区 | 丁香婷婷综合激情五月色 | 91精品人成在线观看 | www.国产在线视频 | 三级黄色免费片 | 日韩欧美一区二区在线 | 久久草精品 | 日日夜夜狠狠操 | 精品视频久久 | 一区二区三区免费网站 | 久久人人爽人人爽人人片 | 欧美激情亚洲综合 | 在线观看久久 | 欧美婷婷色 | 91久久精品一区 | 久久国产a | 人人爽人人做 | 欧美精品一级视频 | www.久久婷婷| 久久99精品国产麻豆宅宅 | 午夜91在线 | 免费成人在线观看 | 欧美日韩国产一区二区三区在线观看 | 久草资源免费 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 亚洲美女视频网 | 九九一级片| 国产网红在线观看 | 日韩免费在线视频观看 | 日韩v在线 | 91精品国产成 | 日韩精品在线免费播放 | a视频免费 | 欧美日韩aaaa | 久久国产精品二国产精品中国洋人 | 国产美腿白丝袜足在线av | 久久99在线视频 | www.五月天婷婷.com | 亚洲九九九在线观看 | 欧美性猛片 | 天天操狠狠操 | 国产在线播放一区 | 国产成人精品一区二区三区在线观看 | 97在线成人 | av黄色国产 | 亚洲最新视频在线播放 | 天天干 夜夜操 | 久久精品亚洲 | 精品伦理一区二区三区 | 免费看三级黄色片 | 视频一区亚洲 | 国产高清精品在线观看 | 欧美激情综合色综合啪啪五月 | 欧美韩国日本在线观看 | 亚洲欧美日本国产 | 中文字幕永久 | 国产精品视频永久免费播放 | 精品麻豆入口免费 | 欧美激情xxxx性bbbb | 日韩网站在线看片你懂的 | 色www免费视频 | 国产高清不卡av | 久久久久综合网 | 久久精品中文字幕少妇 | 97韩国电影 | 久久久久久久久久久免费视频 | 国产亚洲精品久久久久动 | 亚洲精品视频一 | 岛国一区在线 | 成人av在线一区二区 | 国产精品视频 | 天天曰天天曰 | 在线观看av国产 | av在线com| 欧美激情第一区 | 国产日韩精品视频 | 91精品综合在线观看 | 激情五月综合 | 欧美精品黑人性xxxx | 亚洲精品国产第一综合99久久 | 人人舔人人舔 | 综合色久 | 国产 成人 久久 | 国产麻豆剧果冻传媒视频播放量 | 在线观看av免费 | 麻豆94tv免费版 | 国产精品精品视频 | 亚洲精品乱码 | 亚洲国产成人精品在线观看 | 日本久久片 | 免费在线色 | 国产区久久 | 天天亚洲综合 | 国产九九热视频 | 91看片在线 | 久久99精品国产麻豆婷婷 | 日韩有码中文字幕在线 | 亚洲日韩欧美一区二区在线 | www.在线看片.com | 久久免费国产 | 97电影院网 | 国产精品久久久久久久午夜片 | 激情影音 | 久久精品99久久 | 欧美日韩视频一区二区三区 | 亚洲精品中文字幕视频 | 日韩电影久久 | av日韩不卡 | 99热超碰| 又黄又爽又刺激的视频 | 日本一区二区不卡高清 | 久久视频这里有久久精品视频11 | 国产黄色一级片在线 | 国产色小视频 | 国产69熟 | 国产精品美女久久久久久久 | 久久久国产毛片 | 91亚洲精品久久久蜜桃网站 | www.久草.com| 色999视频| а天堂中文最新一区二区三区 | 日本福利视频在线 | 国产91精品久久久久 | 欧美极品在线播放 | 国产精品精品久久久久久 | 国产一级大片在线观看 | 三上悠亚一区二区在线观看 | 久久精品免费 | 日韩大片在线 | 在线免费看片 | 国产99久久精品一区二区永久免费 | 91av成人| 狠狠干婷婷 | 一区二区三区在线观看中文字幕 | 欧美一二三区在线播放 | 91丨九色丨首页 | 激情六月婷婷久久 | 日韩av电影中文字幕 | 亚洲人成影院在线 | 一区二区国产精品 | 亚洲精品高清一区二区三区四区 | 色999视频| 日韩欧美综合 | 91av在线免费观看 | 麻豆精品视频在线观看免费 | 伊人五月 | 亚洲黄色小说网址 | 亚洲狠狠操 | 中文字幕电影网 | 日韩精品久久中文字幕 | 中文字幕丝袜美腿 | 成人av av在线| a极黄色片| 99精品区 | 久久99久国产精品黄毛片入口 | 美女视频a美女大全免费下载蜜臀 | 狠狠操综合网 | 丁香激情综合久久伊人久久 | 久久99精品视频 | 国产精品久久二区 | 久久精品久久99 | 天干啦夜天干天干在线线 | 国产视频美女 | 99久久精品久久亚洲精品 | 久久99精品久久久久久秒播蜜臀 | 精品久久免费 | 久久精品一区二区三区视频 | 国产一区二区在线观看免费 | 婷婷六月网 | 亚洲最大在线视频 | 开心色插 | 在线视频 一区二区 | 亚洲a免费| 久草影视在线观看 | 在线免费观看黄色小说 | 免费视频在线观看网站 | 免费看片网页 | 久久久久伊人 | 日韩一区二区三免费高清在线观看 | 久久日韩精品 | 欧美精品一级视频 | www91在线观看 | 人人狠狠综合久久亚洲婷 | 在线免费观看的av网站 | 草久久久 | 中文字幕在线观看视频一区 | 国产精品一区二区三区免费视频 | 亚洲欧美成人在线 | 欧美极品少妇xxxx | 久久精品国产亚洲精品 | 黄色精品在线看 | 日韩中文字幕免费看 | 在线日韩一区 | 综合国产在线观看 | 成年人免费观看在线视频 | 精品久久久久久久久久久久久 | 五月婷婷六月丁香 | 国产偷v国产偷∨精品视频 在线草 | 欧美日韩视频在线观看免费 | 久草精品在线观看 | 婷婷六月在线 | 久久久久亚洲天堂 | 91精品免费在线 | 一级黄网 | 999毛片| 一区二区三区久久精品 | 91九色国产 | 3d黄动漫免费看 | 亚洲亚洲精品在线观看 | 久香蕉| 最近中文字幕在线 | 超碰在线官网 | 午夜精品在线看 | 精品在线一区二区三区 | 中文字幕高清免费日韩视频在线 | 99热精品国产 | 免费精品国产 | 成人久久18免费网站麻豆 | 久草视频一区 | 91高清在线| 国产手机视频在线 | 国产丝袜 | 成人av片免费观看app下载 | 人人插人人玩 | 在线视频黄 | 最新国产在线 | 色视频一区 | 欧美日韩免费看 | 天天夜夜操 | 午夜精品电影一区二区在线 | 综合网天天色 | 久久精品视频播放 | 婷婷中文字幕在线观看 | 国产精品网红直播 | 天天操天天操天天爽 | 天堂视频中文在线 | 欧美久久久一区二区三区 | 国产精品一区二区吃奶在线观看 | 色综合久久五月天 | 久久婷婷开心 | 成年人毛片在线观看 | 欧美成人h版 | 精产嫩模国品一二三区 | 国产精品涩涩屋www在线观看 | 日韩中文在线播放 | 国产日本亚洲 | 最新中文字幕在线观看视频 | 国产成人在线观看免费 | 这里只有精品视频在线 | 成年人在线免费看视频 | 日韩av一区二区三区四区 | 成人性生交大片免费看中文网站 | 久草在线视频国产 | 狠狠色丁香婷婷综合基地 | 激情综合网色播五月 | 美女免费黄视频网站 | 久久久久久毛片精品免费不卡 | 96久久精品 | 在线中文视频 | 一区二区不卡视频在线观看 | 狠狠干综合 | 亚洲资源一区 | 国产精品久久久av久久久 | 成人久久久久久久久 | 国产精品手机播放 | 精精国产xxxx视频在线播放 | 国产一区二区在线观看免费 | 国产色婷婷在线 | 在线高清| 天天干夜夜爽 | 国产精品美女在线观看 | 国产美女无遮挡永久免费 | 丁香影院在线 | 99在线免费观看视频 | 午夜精品av在线 | 成年人网站免费在线观看 | 5月丁香婷婷综合 | 99精品视频网 | 日韩手机在线 | 亚洲精品视频在线观看免费视频 | 在线99| 不卡av电影在线 | 久久久久久久久久久久av | 成年人黄色大全 | 欧美日韩网址 | 青青河边草免费直播 | 日韩中文字幕在线 | 99久久er热在这里只有精品66 | 菠萝菠萝在线精品视频 | 婷婷伊人综合 | 亚洲黄色片在线 | 亚洲精品视频网 | 中文字幕一区二区三区乱码不卡 | 8x8x在线观看视频 | 日本精油按摩3 | 国产亚洲91 | 免费又黄又爽的视频 | 最近更新好看的中文字幕 | 天天射天天爱天天干 | 福利视频一二区 | 在线观看一区二区精品 | 99在线热播精品免费99热 | 在线看v片成人 | 99免费在线播放99久久免费 | 成人在线一区二区 | 色av婷婷| 日韩欧美一区二区三区视频 | 97日日| 国内精品在线看 | 精品伊人久久久 | 人人看人人做人人澡 | 国产精品丝袜久久久久久久不卡 | japanesexxxxfreehd乱熟| 免费看国产黄色 | 国产高清永久免费 | 国产黄色精品视频 | 日本黄色免费观看 | www.五月天激情 | 99视频在线观看免费 | 久久久久久久久久久久电影 | 91理论电影| 国产精品一区久久久久 | 国产精品久久久久aaaa | 狠狠操操 | 2023亚洲精品国偷拍自产在线 | 国产在线a视频 | 日本精品久久久久中文字幕 | 插插插色综合 | 亚洲欧美婷婷六月色综合 | 国产精品网站一区二区三区 | 91精品在线观看视频 | 亚洲更新最快 | 特级毛片在线观看 | 婷婷久久五月 | 亚洲特级片| 亚洲天堂激情 | 亚洲人人爱 | 91福利视频在线 | avav片| 97在线视频网站 | 92精品国产成人观看免费 | 久久手机在线视频 | 欧美伊人网 | 成人午夜精品久久久久久久3d | 久久综合色婷婷 | 久久视频国产精品免费视频在线 | 韩日av一区二区 | 精品国内自产拍在线观看视频 | 国产成人香蕉 | 婷婷色婷婷 | 日韩中文字幕免费视频 | 久久精品www人人爽人人 | 国产玖玖精品视频 | 国产日韩视频在线观看 | www.黄色网.com | 国产精品毛片 | 香蕉视频在线观看免费 | 亚洲精品视频在线观看网站 | 亚洲欧美国产日韩在线观看 | 亚洲精品在线看 | 人人爱天天操 | 久久精品国产免费 | 欧美激情精品久久久久久 | 免费看网站在线 | 97视频网址 | 中文字幕观看av | 网址你懂的在线观看 | 欧美另类一二三四区 | 毛片网在线 | 91一区二区三区久久久久国产乱 | 国产精品欧美日韩在线观看 | 啪啪免费试看 | 国产精品成人久久 | 天天操天天操天天操天天操天天操天天操 | 中文字幕亚洲综合久久五月天色无吗'' | 亚洲日韩中文字幕 | 国产成人777777 | 天天操天天爽天天干 | 成人av一区二区三区 | 91色偷偷 | 99精品在线视频播放 | 久久精品—区二区三区 | 成人久久18免费网站麻豆 | 五月天六月婷婷 | 日本久久电影 | 日韩三区在线 | 蜜臀av夜夜澡人人爽人人 | 色综合咪咪久久网 | 91精品国产综合久久福利 | 精品欧美小视频在线观看 | 99在线观看精品 | 久操视频在线免费看 | 国产精品久免费的黄网站 | 日韩黄在线观看 | 欧美色图视频一区 | 91视频91蝌蚪 | 久久久91精品国产一区二区三区 | 久久久国产精品免费 | 亚洲国产精品500在线观看 | 天天色婷婷| 国产黄大片 | 2000xxx影视 | 久久久www成人免费精品张筱雨 | 成人h在线 | 高清视频一区 | 日日夜夜狠狠操 | 国产免费三级在线观看 | 在线中文字幕av观看 | 日本护士三级少妇三级999 | 狠狠的操你 | 国产精品久久久久影院日本 | 在线免费观看视频 | 国产精品成人久久久久久久 | 五月婷婷在线观看 | 久久久久激情电影 | 综合久久一本 | 激情电影在线观看 | 中文字幕在线观看一区二区 | 精品女同一区二区三区在线观看 | 欧美精品v国产精品v日韩精品 | 在线观看免费av网 | 国产精品ssss在线亚洲 | 日韩精品三区四区 | 九九久久久 | 在线黄色国产 | 亚洲经典视频 | 日日夜夜国产 | 狠狠的干 | 丁香六月婷婷综合 | 91免费日韩 | 亚洲狠狠丁香婷婷综合久久久 | 91精品国产一区二区三区 | 亚洲欧洲国产精品 | 久久精品久久99精品久久 | 国精产品999国精产品视频 | 国产日韩一区在线 | 999久久久欧美日韩黑人 | 99精品国产免费久久久久久下载 | 91精品国自产在线观看 | 免费在线播放视频 | 日韩三级视频在线观看 | 国产精品ⅴa有声小说 | 99免费在线观看视频 | 国产美女黄网站免费 | 中文字幕在线播放一区 | 麻豆成人在线观看 | 天天色天天干天天色 | 久久视频这里有久久精品视频11 | 麻豆国产在线播放 | 中文字幕亚洲精品日韩 | 亚洲黄色免费网站 | 91成人网页版 | 五月婷婷六月丁香在线观看 | 网址你懂的在线观看 | 天天射综合网视频 | 人人爽人人爽人人 | 久久国产精品精品国产色婷婷 | 国产免费xvideos视频入口 | 米奇四色影视 | 在线免费视频 你懂得 | av黄色国产 | 日日添夜夜添 | 日日摸日日添日日躁av | 99视频久久 | 狠狠干电影 | 国产伦精品一区二区三区四区视频 | 午夜av在线免费 | 欧美视频二区 | av成人资源 | www.久久99 | 国产精品久久久久av | 亚洲一级电影在线观看 | 色婷婷综合久久久久 | 日韩免费一区二区三区 | 美女网站在线看 | 亚洲精品免费在线观看 | 99久久久国产免费 | 91精品成人久久 | 日韩av高潮 | 免费在线观看av | 免费观看www小视频的软件 | 久久影院一区 | 婷婷 中文字幕 | 成人九九视频 | 日本久久久久久 | 久久久久久久久久久福利 | 全久久久久久久久久久电影 | 色综合天天综合在线视频 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 成人在线观看免费 | 国产精品久久人 | 毛片美女网站 | 国产又粗又猛又黄又爽的视频 | 国产精品久久久久久模特 | 91香蕉视频色版 | 手机av在线网站 | 九九九视频精品 | 在线日韩视频 | 99视频这里有精品 | 亚洲国产网站 | 人人爽人人爽av | 成人亚洲免费 | 亚洲资源视频 | 国产一区二区三区免费在线 | 国产一级a毛片视频爆浆 | 国产一区二区三区久久久 | 开心色停停 | 欧美成人猛片 | 成人免费视频观看 | 日韩免费一级a毛片在线播放一级 | 特黄特色特刺激视频免费播放 | 久久艹国产 | www.国产在线观看 | 九九在线视频免费观看 | 中文字幕av免费 | 超碰在线97免费 | 国产精品久久久免费看 | 二区三区在线 | 五月婷婷综合在线观看 | 欧美成人黄色 | 麻豆视频在线免费观看 | 婷婷激情五月 | 久久99亚洲网美利坚合众国 | 欧美福利片在线观看 | 亚洲精品视频大全 | 国产伦精品一区二区三区高清 | 久久久免费观看 | 国产精品2020| 日韩大片免费在线观看 | 91综合久久一区二区 | 黄污视频网站 | 狠狠狠色狠狠色综合 | 日韩系列在线 | 精品福利片 | 国产区精品 | 999久久久免费精品国产 | 一区二区高清在线 | 亚洲最新在线视频 | 在线看国产| 国产高清在线视频 | 久久精品毛片 | 91麻豆精品国产91久久久无需广告 | 亚洲国产中文字幕 | 在线亚洲小视频 | 97碰在线 | www.啪啪.com| 亚洲在线国产 | 91在线入口 | 久久综合九色综合97_ 久久久 | 99电影| 一本一道久久a久久综合蜜桃 | 久久综合色婷婷 | 国产精品一区在线播放 | 一区二区三区观看 | 日韩大片在线免费观看 | 91欧美精品 | 在线不卡a | 国产免费黄色 | 91精品久久久久久综合乱菊 | 成人av高清在线 | 亚洲精品国内 | 国产v在线播放 | 国产午夜免费视频 | 91久久丝袜国产露脸动漫 | 精品自拍sae8—视频 | 日本韩国精品在线 | 国产亚洲激情视频在线 | 久久9999久久 | 国产综合精品久久 | 国产精品小视频网站 | 日韩中字在线观看 | 最新国产在线视频 | 国产精品久久一区二区三区, | 在线观看日韩一区 | 黄a在线观看 | 国产尤物一区二区三区 | 日本xxxx.com| 中文字幕在线播放视频 | 西西444www高清大胆 | 日韩av视屏 | 国产精品视频最多的网站 | 国产精品资源网 | 亚洲一区黄色 | 91精品国产综合久久久久久久 | 久久三级视频 | 久久视精品 | 91精品久久久久久综合乱菊 | 成人免费视频网站在线观看 | 在线观看一 | 久久久久久久国产精品影院 | 国产精品99视频 | 久久电影网站中文字幕 | 亚洲国产精品va在线 | 中文字幕高清免费日韩视频在线 | 日韩精品黄| 亚洲免费国产视频 | 亚洲精欧美一区二区精品 | 欧美日韩一级视频 | 中文字幕4 | 国产精品入口a级 | 国产精品初高中精品久久 | 日韩无在线 | 婷婷色av | 亚洲国产免费 | 91视频一8mav | 久久国产成人午夜av影院宅 | 亚洲国产黄色片 | 亚洲成av人影院 | 中文字幕中文中文字幕 | av一区二区三区在线播放 | 中国一级片在线播放 | 成年人在线免费视频观看 | 蜜桃视频在线观看一区 | 日本一区二区免费在线观看 | 日日爽 | 激情欧美日韩一区二区 | 日本乱视频 | 成人在线一区二区 | 国产一级电影 | 国产午夜亚洲精品 | 视频一区二区在线 | 麻豆网站免费观看 | 日韩视频一区二区在线观看 | 久久狠狠干 | 日韩视频免费在线观看 | 精品av在线播放 | 国产流白浆高潮在线观看 | 亚洲有 在线 | 国产成人精品一二三区 | 99这里只有久久精品视频 | 免费 在线 中文 日本 | 成人在线观看资源 | 欧美吞精 | 91精品老司机久久一区啪 | 深爱五月激情五月 | 精品色999 | 精品在线看 | 日本成址在线观看 | 欧美性久久久 | 欧美日韩三区二区 | 久久亚洲欧美 | 午夜精品成人一区二区三区 | 久久久久久久看片 | a黄色 | 黄网av在线 | 狠狠色丁香婷婷综合最新地址 | 国产精品免费久久久久久久久久中文 | 毛片永久新网址首页 | 久久99热久久99精品 | 国产香蕉视频在线播放 | 蜜臀av夜夜澡人人爽人人桃色 | 亚洲va在线va天堂va偷拍 | wwxxx日本| 久草视频在 | 久久久久国产精品免费 | 欧美一级视频在线观看 | 四虎影视成人永久免费观看视频 | 最近日本中文字幕 | 在线观看中文字幕一区 | 999国内精品永久免费视频 | 玖玖玖国产精品 | a√资源在线 | 精品在线观看一区二区三区 | 日本韩国在线不卡 | 中文字幕亚洲字幕 | 中文字幕在线网 | 中日韩免费视频 | 国产中文字幕在线播放 | 欧美精品一区二区在线播放 | 精品国产一区二区三区噜噜噜 | 人人玩人人爽 | a久久久久久 | 九九热视频在线免费观看 | 精品一二 | 欧美日韩国产亚洲乱码字幕 | 欧美日韩国产网站 | 免费看黄色小说的网站 | 日韩欧美高清视频在线观看 | 99久久婷婷国产综合亚洲 | 九九热有精品 | 免费看黄在线网站 | 色综合天天爱 | 9999国产精品| 国产精品99久久久精品免费观看 | 亚洲国产欧美一区二区三区丁香婷 | 黄色成年 | 日日干综合 | 一区三区在线欧 | 精品视频一区在线 | 日韩免费一区二区 | 精品亚洲二区 | 日本爱爱免费 | 粉嫩av一区二区三区免费 | 国产精品一级在线 | 天天操综 | 一区二区三区福利 | 九九视频在线播放 | 国产免费高清 | 99成人免费视频 | 天天爽综合网 | www在线免费观看 | 久久精品视频免费播放 | 亚洲国产电影在线观看 | freejavvideo日本免费 | 日韩电影在线观看中文字幕 | 久草在线最新视频 | 久久国产色 | 97av.com| 五月婷婷色综合 | 婷婷丁香六月天 | 91精品在线麻豆 | 不卡在线一区 | 天天干人人干 | 国产一区在线免费观看视频 | 国产视频在线观看一区二区 | 国产麻豆精品在线观看 | 中文字幕日韩免费视频 | 二区三区在线视频 | 日韩视频中文 | 在线看中文字幕 | 亚洲男人天堂a | 麻豆视频入口 | 久久免费公开视频 | 日日日日日 | 免费看十八岁美女 | 久久精品一区八戒影视 | 国产不卡精品 | 久久久免费少妇 | 国产在线播放一区二区三区 | 99久久精品一区二区成人 | 91麻豆精品国产 | 免费v片 | 成人精品亚洲 | 亚洲影视九九影院在线观看 | 日韩电影一区二区三区在线观看 | 国产青青青 | 中文字幕91 | 成人免费观看电影 | 久久av一区二区三区亚洲 | 国产在线国偷精品产拍免费yy | 久久久久 免费视频 | 在线www色 | 伊人资源站 | 午夜在线看片 | www.日日日.com | 欧美性生活大片 | 免费视频在线观看网站 | 久久资源在线 | 高潮久久久久久久久 | 午夜天使 | 狠狠网亚洲精品 | 国产精品亚洲a | 91精品国产九九九久久久亚洲 | 久草在线这里只有精品 | 国产黄色片一级三级 | 国产生活一级片 | 亚洲91中文字幕无线码三区 | 人人干网 | 99精品在线免费 | 国产精品女| 久久中文字幕在线视频 | 狠狠色2019综合网 | 五月婷婷av | 91精品视频在线免费观看 | 日本中文乱码卡一卡二新区 | 美女视频网 | 在线视频国产区 | 中国一级片在线观看 | 久久精精品 | 中文字幕色在线 | 日本性xxx| 国产精品午夜久久久久久99热 | 天天爽夜夜爽精品视频婷婷 | 免费亚洲精品视频 | 久久tv| 亚洲永久字幕 | av中文在线观看 | 婷婷丁香狠狠爱 | 在线视频日韩一区 | 99精品区| 成人久久精品视频 | 九九涩涩av台湾日本热热 | 日韩色综合网 | 久久久久久久免费 | av一级二级| 欧美最爽乱淫视频播放 | 久久久国际精品 | 99热网站 | 综合视频在线 | 人人草在线视频 | 视频一区久久 | 国产91精品久久久久 | 婷婷免费视频 | 亚洲精品国精品久久99热一 | 9ⅰ精品久久久久久久久中文字幕 | 色婷婷av在线 | 91看毛片| 中国黄色一级大片 | 国产精品理论片在线播放 | 欧美在线99 | 99中文视频在线 | 国产精品色视频 | 成人a在线观看高清电影 | 91在线中字 | 香蕉国产91 | 综合久久久久久久久 | 日精品| 五月开心六月伊人色婷婷 | 色欧美成人精品a∨在线观看 | 2019中文| 久久久影院一区二区三区 | 国产亚洲成人网 | 色偷偷网站视频 | 色黄www小说 | 精品久久一 | 午夜av在线播放 | 99九九视频 | 国产在线播放一区二区 | 国产在线不卡视频 | 黄色网在线播放 | 国产视频精选在线 | 久久久久久久18 | 日韩美女免费线视频 | 国产伦精品一区二区三区四区视频 | 色婷婷av一区 | 91麻豆精品国产91久久久久久久久 | 五月婷社区 | 91在线网站 | 黄色小说在线免费观看 | 五月婷av| 久久久国产视频 | 亚洲欧美国产日韩在线观看 | 亚洲精品成人在线 | 久久老司机精品视频 | 亚洲国产影院av久久久久 | 在线观看不卡的av | 日韩最新中文字幕 |