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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

聊聊storm的IWaitStrategy

發布時間:2025/3/18 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 聊聊storm的IWaitStrategy 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

本文主要研究一下storm的IWaitStrategy

IWaitStrategy

storm-2.0.0/storm-client/src/jvm/org/apache/storm/policy/IWaitStrategy.java

public interface IWaitStrategy {static IWaitStrategy createBackPressureWaitStrategy(Map<String, Object> topologyConf) {IWaitStrategy producerWaitStrategy =ReflectionUtils.newInstance((String) topologyConf.get(Config.TOPOLOGY_BACKPRESSURE_WAIT_STRATEGY));producerWaitStrategy.prepare(topologyConf, WAIT_SITUATION.BACK_PRESSURE_WAIT);return producerWaitStrategy;}void prepare(Map<String, Object> conf, WAIT_SITUATION waitSituation);/*** Implementations of this method should be thread-safe (preferably no side-effects and lock-free)* <p>* Supports static or dynamic backoff. Dynamic backoff relies on idleCounter to estimate how long caller has been idling.* <p>* <pre>* <code>* int idleCounter = 0;* int consumeCount = consumeFromQ();* while (consumeCount==0) {* idleCounter = strategy.idle(idleCounter);* consumeCount = consumeFromQ();* }* </code>* </pre>** @param idleCounter managed by the idle method until reset* @return new counter value to be used on subsequent idle cycle*/int idle(int idleCounter) throws InterruptedException;enum WAIT_SITUATION {SPOUT_WAIT, BOLT_WAIT, BACK_PRESSURE_WAIT}}
  • 這個接口提供了一個工廠方法,默認是讀取topology.backpressure.wait.strategy參數值,創建producerWaitStrategy,并使用WAIT_SITUATION.BACK_PRESSURE_WAIT初始化
  • WAIT_SITUATION一共有三類,分別是SPOUT_WAIT, BOLT_WAIT, BACK_PRESSURE_WAIT
  • 該接口定義了int idle(int idleCounter)方法,用于static或dynamic backoff

SpoutExecutor

storm-2.0.0/storm-client/src/jvm/org/apache/storm/executor/spout/SpoutExecutor.java

public class SpoutExecutor extends Executor {private static final Logger LOG = LoggerFactory.getLogger(SpoutExecutor.class);private final IWaitStrategy spoutWaitStrategy;private final IWaitStrategy backPressureWaitStrategy;private final AtomicBoolean lastActive;private final MutableLong emittedCount;private final MutableLong emptyEmitStreak;private final SpoutThrottlingMetrics spoutThrottlingMetrics;private final boolean hasAckers;private final SpoutExecutorStats stats;private final BuiltinMetrics builtInMetrics;SpoutOutputCollectorImpl spoutOutputCollector;private Integer maxSpoutPending;private List<ISpout> spouts;private List<SpoutOutputCollector> outputCollectors;private RotatingMap<Long, TupleInfo> pending;private long threadId = 0;public SpoutExecutor(final WorkerState workerData, final List<Long> executorId, Map<String, String> credentials) {super(workerData, executorId, credentials, ClientStatsUtil.SPOUT);this.spoutWaitStrategy = ReflectionUtils.newInstance((String) topoConf.get(Config.TOPOLOGY_SPOUT_WAIT_STRATEGY));this.spoutWaitStrategy.prepare(topoConf, WAIT_SITUATION.SPOUT_WAIT);this.backPressureWaitStrategy = ReflectionUtils.newInstance((String) topoConf.get(Config.TOPOLOGY_BACKPRESSURE_WAIT_STRATEGY));this.backPressureWaitStrategy.prepare(topoConf, WAIT_SITUATION.BACK_PRESSURE_WAIT);//......}//...... }
  • 這里創建了兩個watiStrategy,一個是spoutWaitStrategy,一個是backPressureWaitStrategy
  • spoutWaitStrategy讀取的是topology.spout.wait.strategy參數,在defaults.yaml里頭值為org.apache.storm.policy.WaitStrategyProgressive
  • backPressureWaitStrategy讀取的是topology.backpressure.wait.strategy參數,在defaults.yaml里頭值為org.apache.storm.policy.WaitStrategyProgressive

BoltExecutor

storm-2.0.0/storm-client/src/jvm/org/apache/storm/executor/bolt/BoltExecutor.java

public class BoltExecutor extends Executor {private static final Logger LOG = LoggerFactory.getLogger(BoltExecutor.class);private final BooleanSupplier executeSampler;private final boolean isSystemBoltExecutor;private final IWaitStrategy consumeWaitStrategy; // employed when no incoming dataprivate final IWaitStrategy backPressureWaitStrategy; // employed when outbound path is congestedprivate final BoltExecutorStats stats;private final BuiltinMetrics builtInMetrics;private BoltOutputCollectorImpl outputCollector;public BoltExecutor(WorkerState workerData, List<Long> executorId, Map<String, String> credentials) {super(workerData, executorId, credentials, ClientStatsUtil.BOLT);this.executeSampler = ConfigUtils.mkStatsSampler(topoConf);this.isSystemBoltExecutor = (executorId == Constants.SYSTEM_EXECUTOR_ID);if (isSystemBoltExecutor) {this.consumeWaitStrategy = makeSystemBoltWaitStrategy();} else {this.consumeWaitStrategy = ReflectionUtils.newInstance((String) topoConf.get(Config.TOPOLOGY_BOLT_WAIT_STRATEGY));this.consumeWaitStrategy.prepare(topoConf, WAIT_SITUATION.BOLT_WAIT);}this.backPressureWaitStrategy = ReflectionUtils.newInstance((String) topoConf.get(Config.TOPOLOGY_BACKPRESSURE_WAIT_STRATEGY));this.backPressureWaitStrategy.prepare(topoConf, WAIT_SITUATION.BACK_PRESSURE_WAIT);this.stats = new BoltExecutorStats(ConfigUtils.samplingRate(this.getTopoConf()),ObjectReader.getInt(this.getTopoConf().get(Config.NUM_STAT_BUCKETS)));this.builtInMetrics = new BuiltinBoltMetrics(stats);}private static IWaitStrategy makeSystemBoltWaitStrategy() {WaitStrategyPark ws = new WaitStrategyPark();Map<String, Object> conf = new HashMap<>();conf.put(Config.TOPOLOGY_BOLT_WAIT_PARK_MICROSEC, 5000);ws.prepare(conf, WAIT_SITUATION.BOLT_WAIT);return ws;}//...... }
  • 這里創建了兩個IWaitStrategy,一個是consumeWaitStrategy,一個是backPressureWaitStrategy
  • consumeWaitStrategy在非SystemBoltExecutor的情況下讀取的是topology.bolt.wait.strategy參數,在defaults.yaml里頭值為org.apache.storm.policy.WaitStrategyProgressive;如果是SystemBoltExecutor則使用的是WaitStrategyPark策略
  • backPressureWaitStrategy讀取的是讀取的是topology.backpressure.wait.strategy參數,在defaults.yaml里頭值為org.apache.storm.policy.WaitStrategyProgressive

WaitStrategyPark

storm-2.0.0/storm-client/src/jvm/org/apache/storm/policy/WaitStrategyPark.java

public class WaitStrategyPark implements IWaitStrategy {private long parkTimeNanoSec;public WaitStrategyPark() { // required for instantiation via reflection. must call prepare() thereafter}// Convenience alternative to prepare() for use in Testspublic WaitStrategyPark(long microsec) {parkTimeNanoSec = microsec * 1_000;}@Overridepublic void prepare(Map<String, Object> conf, WAIT_SITUATION waitSituation) {if (waitSituation == WAIT_SITUATION.SPOUT_WAIT) {parkTimeNanoSec = 1_000 * ObjectReader.getLong(conf.get(Config.TOPOLOGY_SPOUT_WAIT_PARK_MICROSEC));} else if (waitSituation == WAIT_SITUATION.BOLT_WAIT) {parkTimeNanoSec = 1_000 * ObjectReader.getLong(conf.get(Config.TOPOLOGY_BOLT_WAIT_PARK_MICROSEC));} else if (waitSituation == WAIT_SITUATION.BACK_PRESSURE_WAIT) {parkTimeNanoSec = 1_000 * ObjectReader.getLong(conf.get(Config.TOPOLOGY_BACKPRESSURE_WAIT_PARK_MICROSEC));} else {throw new IllegalArgumentException("Unknown wait situation : " + waitSituation);}}@Overridepublic int idle(int idleCounter) throws InterruptedException {if (parkTimeNanoSec == 0) {return 1;}LockSupport.parkNanos(parkTimeNanoSec);return idleCounter + 1;} }
  • 該策略使用的是LockSupport.parkNanos(parkTimeNanoSec)方法

WaitStrategyProgressive

storm-2.0.0/storm-client/src/jvm/org/apache/storm/policy/WaitStrategyProgressive.java

/*** A Progressive Wait Strategy* <p> Has three levels of idling. Stays in each level for a configured number of iterations before entering the next level.* Level 1 - No idling. Returns immediately. Stays in this level for `level1Count` iterations. Level 2 - Calls LockSupport.parkNanos(1).* Stays in this level for `level2Count` iterations Level 3 - Calls Thread.sleep(). Stays in this level until wait situation changes.** <p>* The initial spin can be useful to prevent downstream bolt from repeatedly sleeping/parking when the upstream component is a bit* relatively slower. Allows downstream bolt can enter deeper wait states only if the traffic to it appears to have reduced.* <p>*/ public class WaitStrategyProgressive implements IWaitStrategy {private int level1Count;private int level2Count;private long level3SleepMs;@Overridepublic void prepare(Map<String, Object> conf, WAIT_SITUATION waitSituation) {if (waitSituation == WAIT_SITUATION.SPOUT_WAIT) {level1Count = ObjectReader.getInt(conf.get(Config.TOPOLOGY_SPOUT_WAIT_PROGRESSIVE_LEVEL1_COUNT));level2Count = ObjectReader.getInt(conf.get(Config.TOPOLOGY_SPOUT_WAIT_PROGRESSIVE_LEVEL2_COUNT));level3SleepMs = ObjectReader.getLong(conf.get(Config.TOPOLOGY_SPOUT_WAIT_PROGRESSIVE_LEVEL3_SLEEP_MILLIS));} else if (waitSituation == WAIT_SITUATION.BOLT_WAIT) {level1Count = ObjectReader.getInt(conf.get(Config.TOPOLOGY_BOLT_WAIT_PROGRESSIVE_LEVEL1_COUNT));level2Count = ObjectReader.getInt(conf.get(Config.TOPOLOGY_BOLT_WAIT_PROGRESSIVE_LEVEL2_COUNT));level3SleepMs = ObjectReader.getLong(conf.get(Config.TOPOLOGY_BOLT_WAIT_PROGRESSIVE_LEVEL3_SLEEP_MILLIS));} else if (waitSituation == WAIT_SITUATION.BACK_PRESSURE_WAIT) {level1Count = ObjectReader.getInt(conf.get(Config.TOPOLOGY_BACKPRESSURE_WAIT_PROGRESSIVE_LEVEL1_COUNT));level2Count = ObjectReader.getInt(conf.get(Config.TOPOLOGY_BACKPRESSURE_WAIT_PROGRESSIVE_LEVEL2_COUNT));level3SleepMs = ObjectReader.getLong(conf.get(Config.TOPOLOGY_BACKPRESSURE_WAIT_PROGRESSIVE_LEVEL3_SLEEP_MILLIS));} else {throw new IllegalArgumentException("Unknown wait situation : " + waitSituation);}}@Overridepublic int idle(int idleCounter) throws InterruptedException {if (idleCounter < level1Count) { // level 1 - no waiting++idleCounter;} else if (idleCounter < level1Count + level2Count) { // level 2 - parkNanos(1L)++idleCounter;LockSupport.parkNanos(1L);} else { // level 3 - longer idling with Thread.sleep()Thread.sleep(level3SleepMs);}return idleCounter;} }
  • WaitStrategyProgressive是一個漸進式的wait strategy,它分為3個level的idling
  • level 1是no idling,立刻返回;在level 1經歷了level1Count的次數之后進入level 2
  • level 2使用的是LockSupport.parkNanos(1),在level 2經歷了level2Count次數之后進入level 3
  • level 3使用的是Thread.sleep(level3SleepMs),在wait situation改變的時候跳出
  • 不同的WAIT_SITUATION讀取不同的LEVEL1_COUNT、LEVEL2_COUNT、LEVEL3_SLEEP_MILLIS參數,對于spout,它們的默認值分別為0、0、1;對于bolt它們的默認值分別為1、1000、1;對于back pressure,它們的默認值分別為1、1000、1

SpoutExecutor.call

storm-2.0.0/storm-client/src/jvm/org/apache/storm/executor/spout/SpoutExecutor.java

@Overridepublic Callable<Long> call() throws Exception {init(idToTask, idToTaskBase);return new Callable<Long>() {final int recvqCheckSkipCountMax = getSpoutRecvqCheckSkipCount();int recvqCheckSkips = 0;int swIdleCount = 0; // counter for spout wait strategyint bpIdleCount = 0; // counter for back pressure wait strategyint rmspCount = 0;@Overridepublic Long call() throws Exception {int receiveCount = 0;if (recvqCheckSkips++ == recvqCheckSkipCountMax) {receiveCount = receiveQueue.consume(SpoutExecutor.this);recvqCheckSkips = 0;}long currCount = emittedCount.get();boolean reachedMaxSpoutPending = (maxSpoutPending != 0) && (pending.size() >= maxSpoutPending);boolean isActive = stormActive.get();if (!isActive) {inactiveExecute();return 0L;}if (!lastActive.get()) {lastActive.set(true);activateSpouts();}boolean pendingEmitsIsEmpty = tryFlushPendingEmits();boolean noEmits = true;long emptyStretch = 0;if (!reachedMaxSpoutPending && pendingEmitsIsEmpty) {for (int j = 0; j < spouts.size(); j++) { // in critical path. don't use iterators.spouts.get(j).nextTuple();}noEmits = (currCount == emittedCount.get());if (noEmits) {emptyEmitStreak.increment();} else {emptyStretch = emptyEmitStreak.get();emptyEmitStreak.set(0);}}if (reachedMaxSpoutPending) {if (rmspCount == 0) {LOG.debug("Reached max spout pending");}rmspCount++;} else {if (rmspCount > 0) {LOG.debug("Ended max spout pending stretch of {} iterations", rmspCount);}rmspCount = 0;}if (receiveCount > 1) {// continue without idlingreturn 0L;}if (!pendingEmits.isEmpty()) { // then facing backpressurebackPressureWaitStrategy();return 0L;}bpIdleCount = 0;if (noEmits) {spoutWaitStrategy(reachedMaxSpoutPending, emptyStretch);return 0L;}swIdleCount = 0;return 0L;}private void backPressureWaitStrategy() throws InterruptedException {long start = Time.currentTimeMillis();if (bpIdleCount == 0) { // check avoids multiple log msgs when in a idle loopLOG.debug("Experiencing Back Pressure from downstream components. Entering BackPressure Wait.");}bpIdleCount = backPressureWaitStrategy.idle(bpIdleCount);spoutThrottlingMetrics.skippedBackPressureMs(Time.currentTimeMillis() - start);}private void spoutWaitStrategy(boolean reachedMaxSpoutPending, long emptyStretch) throws InterruptedException {emptyEmitStreak.increment();long start = Time.currentTimeMillis();swIdleCount = spoutWaitStrategy.idle(swIdleCount);if (reachedMaxSpoutPending) {spoutThrottlingMetrics.skippedMaxSpoutMs(Time.currentTimeMillis() - start);} else {if (emptyStretch > 0) {LOG.debug("Ending Spout Wait Stretch of {}", emptyStretch);}}}// returns true if pendingEmits is emptyprivate boolean tryFlushPendingEmits() {for (AddressedTuple t = pendingEmits.peek(); t != null; t = pendingEmits.peek()) {if (executorTransfer.tryTransfer(t, null)) {pendingEmits.poll();} else { // to avoid reordering of emits, stop at first failurereturn false;}}return true;}};}
  • spout維護了pendingEmits隊列,即emit沒有成功或者等待emit的隊列,同時也維護了pending的RotatingMap,即等待ack的tuple的id及數據
  • spout從topology.max.spout.pending讀取TOPOLOGY_MAX_SPOUT_PENDING配置,計算maxSpoutPending=ObjectReader.getInt(topoConf.get(Config.TOPOLOGY_MAX_SPOUT_PENDING), 0) * idToTask.size(),默認為null,即maxSpoutPending為0
  • spout在!reachedMaxSpoutPending && pendingEmitsIsEmpty的條件下才調用nextTuple發送數據;在pendingEmits不為空的時候觸發backPressureWaitStrategy;在noEmits((currCount == emittedCount.get()))時觸發spoutWaitStrategy
  • 在每次調用call的時候,在調用nextTuple之間記錄currCount = emittedCount.get();如果有調用nextTuple的話,則會在SpoutOutputCollectorImpl的emit或emitDirect等方法更新emittedCount;之后用noEmits=(currCount == emittedCount.get())判斷是否有發射數據
  • spout維護了bpIdleCount以及swIdleCount,分別用于backPressureWaitStrategy.idle(bpIdleCount)、spoutWaitStrategy.idle(swIdleCount)

BoltExecutor.call

storm-2.0.0/storm-client/src/jvm/org/apache/storm/executor/bolt/BoltExecutor.java

@Overridepublic Callable<Long> call() throws Exception {init(idToTask, idToTaskBase);return new Callable<Long>() {int bpIdleCount = 0;int consumeIdleCounter = 0;private final ExitCondition tillNoPendingEmits = () -> pendingEmits.isEmpty();@Overridepublic Long call() throws Exception {boolean pendingEmitsIsEmpty = tryFlushPendingEmits();if (pendingEmitsIsEmpty) {if (bpIdleCount != 0) {LOG.debug("Ending Back Pressure Wait stretch : {}", bpIdleCount);}bpIdleCount = 0;int consumeCount = receiveQueue.consume(BoltExecutor.this, tillNoPendingEmits);if (consumeCount == 0) {if (consumeIdleCounter == 0) {LOG.debug("Invoking consume wait strategy");}consumeIdleCounter = consumeWaitStrategy.idle(consumeIdleCounter);if (Thread.interrupted()) {throw new InterruptedException();}} else {if (consumeIdleCounter != 0) {LOG.debug("Ending consume wait stretch : {}", consumeIdleCounter);}consumeIdleCounter = 0;}} else {if (bpIdleCount == 0) { // check avoids multiple log msgs when spinning in a idle loopLOG.debug("Experiencing Back Pressure. Entering BackPressure Wait. PendingEmits = {}", pendingEmits.size());}bpIdleCount = backPressureWaitStrategy.idle(bpIdleCount);}return 0L;}// returns true if pendingEmits is emptyprivate boolean tryFlushPendingEmits() {for (AddressedTuple t = pendingEmits.peek(); t != null; t = pendingEmits.peek()) {if (executorTransfer.tryTransfer(t, null)) {pendingEmits.poll();} else { // to avoid reordering of emits, stop at first failurereturn false;}}return true;}};}
  • bolt executor同樣也維護了pendingEmits,在pendingEmits不為空的時候,觸發backPressureWaitStrategy.idle(bpIdleCount)
  • 在pendingEmits為空時,根據receiveQueue.consume(BoltExecutor.this, tillNoPendingEmits)返回的consumeCount,若為0則觸發consumeWaitStrategy.idle(consumeIdleCounter)
  • bolt executor維護了bpIdleCount及consumeIdleCounter,分別用于backPressureWaitStrategy.idle(bpIdleCount)以及consumeWaitStrategy.idle(consumeIdleCounter)

小結

  • spout和bolt的executor里頭都用到了backPressureWaitStrategy,讀取的是topology.backpressure.wait.strategy參數(for any producer (spout/bolt/transfer thread) when the downstream Q is full),使用的實現類為org.apache.storm.policy.WaitStrategyProgressive,在下游component的recv queue滿的時候使用的背壓策略;具體是使用pendingEmits隊列來判斷,spout或bolt的call方法里頭每次判斷pendingEmitsIsEmpty都是調用tryFlushPendingEmits,先嘗試發送數據,如果下游成功接收,則pendingEmits隊列為空,通過這種機制來動態判斷下游負載,決定是否觸發backpressure
  • spout使用的spoutWaitStrategy,讀取的是topology.spout.wait.strategy參數(employed when there is no data to produce),使用的實現類為org.apache.storm.policy.WaitStrategyProgressive,在沒有數據發射的時候使用;具體是使用emittedCount來判斷
  • bolt使用的consumeWaitStrategy,在非SystemBoltExecutor的情況下讀取的是topology.bolt.wait.strategy參數(employed when there is no data in its receive buffer to process),使用的實現類為org.apache.storm.policy.WaitStrategyProgressive,在receive buffer沒有數據處理的時候使用;具體是使用receiveQueue.consume(BoltExecutor.this, tillNoPendingEmits)返回的consumeCount來判斷
  • spout與bolt不同的還有一點就是spout除了pendingEmitsIsEmpty還多了一個reachedMaxSpoutPending參數,來判斷是否繼續產生數據,bolt則使用pendingEmitsIsEmpty來判斷是否可以繼續消費數據
  • IWaitStrategy除了WaitStrategyProgressive實現,還有WaitStrategyPark實現,該策略在bolt是SystemBolt的情況下使用

doc

  • IWaitStrategy
  • WaitStrategyProgressive
  • WaitStrategyPark

轉載于:https://my.oschina.net/go4it/blog/2253850

總結

以上是生活随笔為你收集整理的聊聊storm的IWaitStrategy的全部內容,希望文章能夠幫你解決所遇到的問題。

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

天天干天天射天天操 | 在线国产视频一区 | 国产专区日韩专区 | 免费av网站在线看 | 97国产在线播放 | 欧美一区二区三区在线看 | 国产电影黄色av | 免费看片黄色 | 亚洲精品国精品久久99热 | 九七视频在线 | 综合色狠狠 | 成人av电影免费在线观看 | 在线久草视频 | 精品你懂的 | 国产在线色站 | 中文在线免费视频 | 日韩成人在线一区二区 | 久久精品99视频 | 又长又大又黑又粗欧美 | 97免费视频在线播放 | 久久久久久久影院 | 欧亚日韩精品一区二区在线 | 337p日本大胆噜噜噜噜 | 99久久久久免费精品国产 | 日本最新中文字幕 | 日韩精品视频网站 | 久久精品一区二区三区国产主播 | 久99久精品视频免费观看 | 久久撸在线视频 | 91看片淫黄大片在线播放 | 久久精品久久精品 | 久青草影院 | 天天操婷婷 | 日本公乱妇视频 | 五月天伊人网 | 国产在线超碰 | 国产黄免费在线观看 | 亚洲 欧美 综合 在线 精品 | 韩国av一区二区三区在线观看 | av丝袜美腿 | 草免费视频 | 亚洲片在线观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 九九热精品视频在线播放 | 911精品视频 | 综合网久久 | 国产亚洲欧美在线视频 | 99精品一区二区 | 五月婷婷在线视频观看 | 在线播放亚洲 | 在线观看一区 | 精品视频在线看 | 一区二区理论片 | 久草综合在线 | 日韩在线视频网 | 久久免费精品 | 成人网看片 | 欧美日韩色婷婷 | 中文字幕在线观看免费 | av亚洲产国偷v产偷v自拍小说 | 中文在线免费一区三区 | 91免费观看国产 | 这里只有精品视频在线观看 | 九九视频一区 | 日韩中字在线观看 | 国产美女网站在线观看 | 日韩首页| 久久精选视频 | 亚洲欧美日韩一区二区三区在线观看 | 2021av在线 | 高清一区二区三区 | 成人一区不卡 | 欧美一级免费高清 | 亚洲乱码一区 | 久久亚洲电影 | 免费视频18| 麻豆影视网站 | 中文字幕黄色 | 欧美国产在线看 | 日韩在线字幕 | 免费黄色看片 | www.久草视频 | 黄色片网站大全 | 久久久一本精品99久久精品 | 国产淫片| 黄色一级在线视频 | 国产精品久久99综合免费观看尤物 | 天天草天天干天天射 | 亚洲 综合 国产 精品 | 亚洲精品乱码久久久久久9色 | 高清久久久久久 | 亚洲一级免费观看 | 亚州精品在线视频 | 四虎成人av | 精品一区二区三区久久久 | 视频99爱 | www.久久久com | 日韩一级电影网站 | 国产剧情久久 | 久99久精品视频免费观看 | 成人av电影免费 | 黄色毛片一级 | 国产精品久久久久一区二区三区 | 成年人在线免费看视频 | 人人澡人人模 | 又粗又长又大又爽又黄少妇毛片 | 人人爽人人搞 | 久久亚洲欧美 | 国产亚洲精品成人av久久ww | 久久综合成人网 | av免费在线观看1 | 国产91精品看黄网站在线观看动漫 | 国产免费又爽又刺激在线观看 | 成人小电影在线看 | 四虎在线永久免费观看 | 粉嫩av一区二区三区免费 | 国产精品一区二区吃奶在线观看 | 国产高清中文字幕 | 国产成人精品亚洲 | 在线超碰av| 综合精品久久 | 精品免费视频 | 日韩视频免费播放 | 午夜精品久久久久久 | 视频一区在线免费观看 | 亚洲精品www久久久久久 | www.久久色.com| 国产视频在线看 | 香蕉视频久久 | 天天干天天干 | 国产美女视频 | 夜夜夜夜爽 | 国产亚洲精品日韩在线tv黄 | 99精品视频免费全部在线 | 在线看片中文字幕 | 97精品国产| 超碰在线日本 | 91成人在线观看喷潮 | 久久激情五月丁香伊人 | 一区二区三区四区五区在线视频 | 在线只有精品 | av大全免费在线观看 | 亚洲视频中文 | 五月亚洲| 看国产黄色片 | 国产91综合一区在线观看 | 久久久久北条麻妃免费看 | 久久精品理论 | 欧美一级性| 亚洲精品乱码久久久久v最新版 | 亚洲国产精品第一区二区 | 99久久精品一区二区成人 | 免费精品| 亚洲精品视频免费在线 | av在线免费播放网站 | 久草免费在线观看视频 | 欧美日韩中文字幕综合视频 | 91色欧美| 二区精品视频 | 国产色综合 | 色视频国产直接看 | 在线免费观看麻豆视频 | 日韩欧美精品免费 | 亚洲免费观看在线视频 | 91私密保健 | 亚洲午夜久久久久久久久电影网 | 99视频在线免费看 | 日韩在线国产精品 | 97网| 天天干人人插 | 免费看片色 | 人人超在线公开视频 | 中文字幕一区2区3区 | 碰超在线97人人 | 久要激情网 | 最新av电影网站 | 亚洲精品色婷婷 | 日日日日 | 国产精品综合在线 | 午夜影院日本 | 国产精品久久久久久久久久了 | 91免费在线看片 | 999久久a精品合区久久久 | 夜夜夜夜夜夜操 | 欧美一级电影在线观看 | 99视频精品| 国产在线精品福利 | 日日精品 | 91.精品高清在线观看 | 99久久精品免费视频 | 美女精品久久 | 日韩免费视频线观看 | 国产精品国产亚洲精品看不卡15 | 懂色av一区二区三区蜜臀 | 国产午夜剧场 | 看全黄大色黄大片 | 国产视频精选 | 精品在线观看一区二区三区 | 国产一区视频在线观看免费 | 亚洲精品视频中文字幕 | 9ⅰ精品久久久久久久久中文字幕 | 欧美精品久久久久久久 | 天天干,天天干 | 国模一二三区 | 免费人做人爱www的视 | 久久久国际精品 | 亚洲国产成人精品在线 | 麻豆网站免费观看 | 91精品国产高清自在线观看 | av日韩精品 | 国产精品久久久久久久久岛 | 亚洲 欧洲 国产 精品 | 日日夜夜干 | 狠狠躁日日躁狂躁夜夜躁 | 国产在线精 | 999久久久欧美日韩黑人 | 国产在线精品区 | 丁香5月婷婷久久 | 中文字幕亚洲综合久久五月天色无吗'' | 精品久久久久国产免费第一页 | 亚洲老妇xxxxxx | 中文字幕91在线 | av免费看在线 | 波多野结衣电影一区二区三区 | 国产美女在线精品免费观看 | 久久久久区 | 欧美精品久久天天躁 | 一本一本久久a久久精品综合 | 亚洲人人爱 | 视频二区在线 | 草免费视频 | 国产精品毛片网 | 五月婷婷色播 | 91专区在线观看 | 成人免费网站在线观看 | 黄色电影网站在线观看 | 亚洲国产中文字幕在线视频综合 | 91天堂影院 | 99国产情侣在线播放 | 国产一线二线三线性视频 | 国产成人精品av久久 | mm1313亚洲精品国产 | 在线亚洲人成电影网站色www | 天天色天天骑天天射 | 日韩在线不卡视频 | 国产在线1区 | 亚洲精品九九 | 色五月成人 | 天天干天天干天天色 | 97超碰人人澡| 国产亚洲欧美精品久久久久久 | 精品国产免费观看 | 久久国产精彩视频 | 午夜精品久久久久久久久久 | 亚洲精品高清一区二区三区四区 | 国产精品专区h在线观看 | 日日操天天操夜夜操 | 精品久久久久久亚洲 | 日韩欧美综合在线视频 | 天天操天天综合网 | 久久国产二区 | 在线观看mv的中文字幕网站 | 人人干天天干 | 久久久久久久亚洲精品 | 日韩理论电影在线 | 国产精品每日更新 | 又长又大又黑又粗欧美 | 国产一区在线视频播放 | 国产日本在线 | 亚洲精品资源在线观看 | 日韩xxxxxxxxx | 99精品视频在线观看免费 | 国内久久久久久 | 久久综合中文色婷婷 | 美女久久久久久久久久久 | 久久色在线观看 | 中文字幕在线免费看线人 | 国产一卡在线 | 成人午夜电影在线观看 | 操高跟美女 | 99re8这里有精品热视频免费 | 狠狠操天天射 | 亚在线播放中文视频 | 九九视频网 | 国产精品一区二区在线看 | 97在线超碰 | 亚洲成a人片综合在线 | 国产成人精品久久二区二区 | 久久精品一区二区三区四区 | 成人av网站在线播放 | a级片在线播放 | 成人欧美亚洲 | 最新一区二区三区 | 国产在线va | 久久国语露脸国产精品电影 | 一区二区视频在线播放 | 免费中午字幕无吗 | 一区在线观看视频 | 欧美午夜一区二区福利视频 | 亚洲激情免费 | av日韩精品| 久久久婷 | 国产精品白虎 | 国产99区 | 国产精品久久人 | 国产黄色片免费 | 人人干干人人 | 日韩极品视频在线观看 | 免费在线色 | a级黄色片视频 | 亚州性色| 99色在线播放 | 在线观看国产高清视频 | 国产91探花| 色综合天| 久久精品理论 | 久久精品国产免费看久久精品 | 丁香花在线视频观看免费 | 天天爱av导航| 超碰av免费| 久久久久国产精品免费 | 毛片网站在线看 | 国产亚洲成av人片在线观看桃 | 天天操天天射天天爱 | 欧美影片 | 成人一区二区三区中文字幕 | 亚洲精品国产麻豆 | 97超级碰 | 中文字幕中文字幕在线中文字幕三区 | 91视频久久久久久 | 亚洲欧美怡红院 | 欧美热久久 | 国产色秀视频 | 在线观看视频中文字幕 | 激情综合五月天 | 国产福利网站 | 免费在线观看av网址 | 国产免费大片 | 国产精品成人av在线 | av电影免费在线播放 | 丁香综合 | 丁香久久| 久久国产精品一区二区三区 | 欧美激情精品久久久久久免费 | www最近高清中文国语在线观看 | 深爱婷婷激情 | 国产99久久久国产 | 国产成人一区二区三区影院在线 | 成人久久久精品国产乱码一区二区 | 国产蜜臀av | 色99导航 | 久久视频这里有久久精品视频11 | 午夜精品一区二区三区四区 | 91看片淫黄大片一级在线观看 | 日韩精品在线观看视频 | 高清色免费 | 国产麻豆电影在线观看 | 久久国产精品影片 | 成人教育av | 色片网站在线观看 | 玖草影院| 久艹视频在线免费观看 | 免费在线国产精品 | 天天曰 | 91精品久久久久久综合五月天 | www.com黄色 | 亚洲一区动漫 | 婷婷丁香六月天 | 伊人婷婷色 | 最近中文字幕完整高清 | 日韩毛片在线一区二区毛片 | 丁香高清视频在线看看 | 国产丝袜网站 | 日韩中文在线字幕 | 亚洲天堂精品 | 亚洲人天堂 | 中文字幕人成不卡一区 | 特级毛片aaa| 国产麻豆精品久久一二三 | 久久久免费少妇 | av免费在线网 | 俺要去色综合狠狠 | 91免费视频国产 | 热久久免费国产视频 | 亚洲电影院 | 性色av一区二区三区在线观看 | 999久久久久久久久6666 | 天天色天天射天天干 | 99人成在线观看视频 | 精品电影一区 | 久久久高清一区二区三区 | 亚洲高清免费在线 | 亚洲激情在线观看 | www.色午夜 | 色射爱 | 国产美女精品 | 天天天综合网 | 日韩精品视频免费专区在线播放 | 丁香婷婷深情五月亚洲 | 99 久久久久 | 人人澡人人干 | 在线观看黄网 | 日韩免费电影一区二区 | 九9热这里真品2 | www.五月天婷婷 | 国产高清日韩欧美 | 欧美高清视频不卡网 | 亚洲精品2区 | 国产成人黄色在线 | 美女视频黄,久久 | 国产精品视频 | 久久久久国产一区二区三区 | 欧美激情精品久久久久久变态 | 99久久精品国产亚洲 | av888av.com| 区一区二在线 | 中国美女一级看片 | 午夜av电影院 | 99se视频在线观看 | 91av在线视频播放 | 久久亚洲国产精品 | 97成人精品视频在线播放 | 西西4444www大胆视频 | 国产理伦在线 | 射久久 | 玖玖视频精品 | 五月激情站| 中文字幕在线播放av | 精品久久一 | 又黄又刺激视频 | 在线日本看片免费人成视久网 | 久久综合久久综合这里只有精品 | 天天爱综合 | 成人免费视频在线观看 | 欧美精品一区二区在线观看 | 日日摸日日碰 | 国产视频1区2区3区 久久夜视频 | 亚洲成人第一区 | 色姑娘综合网 | 久保带人 | 天天操网 | 国产午夜在线观看 | 日韩中文字幕免费电影 | 黄色天堂在线观看 | 99久久激情 | 在线观看中文字幕第一页 | 在线观看www. | 伊人官网 | 国产 一区二区三区 在线 | 婷婷丁香导航 | 久久不见久久见免费影院 | 国产系列在线观看 | 日韩一级电影在线观看 | 免费观看完整版无人区 | 国产一区二区久久 | 国产精品久久久久av福利动漫 | 久久久久久久久久久高潮一区二区 | 国产美腿白丝袜足在线av | 在线视频你懂 | 中文免费在线观看 | 国产精品一区二区精品视频免费看 | 久久国产美女 | 国产精品五月天 | 久久久国产毛片 | 久久99在线视频 | 天天射综合网站 | 亚洲精品乱码久久久久v最新版 | 伊人小视频| 成人av在线直播 | 人人插人人费 | 91精品国产欧美一区二区成人 | 激情伊人| 婷婷久久一区 | 91av久久 | 国产香蕉97碰碰碰视频在线观看 | 欧美国产高清 | 免费能看的黄色片 | 久久人人干 | 亚洲成a人片77777潘金莲 | 免费观看的av网站 | 久久精品视频免费 | 中文字幕韩在线第一页 | 天天天天天干 | 夜夜躁日日躁 | 久久免费视频这里只有精品 | 在线久草视频 | 三级在线播放视频 | 毛片网站观看 | 成人一级电影在线观看 | 亚洲人视频在线 | 天天射色综合 | 欧美亚洲精品一区 | 国产精品一区免费在线观看 | 日韩精品一区二区在线观看视频 | 狠狠色狠狠色综合日日92 | 国产不卡视频 | 草久视频在线观看 | 久久96国产精品久久99软件 | 天天干天天操天天干 | 国产小视频在线看 | 成人免费看片98欧美 | 在线欧美最极品的av | 免费在线观看不卡av | 一区中文字幕在线观看 | 亚洲在线视频播放 | 欧美日韩一区二区免费在线观看 | 麻豆影视在线播放 | 超碰电影在线观看 | 狠狠色丁香婷婷综合久小说久 | 欧美有色 | 日韩大片在线 | 91精品国产一区二区在线观看 | 少妇高潮流白浆在线观看 | 欧美一性一交一乱 | 五月天久久 | 精品1区二区 | 日韩激情精品 | 91丨九色丨国产丨porny精品 | 99九九99九九九视频精品 | 欧美性春潮 | 日韩精品最新在线观看 | 亚洲精选视频免费看 | 黄色av播放| 成人免费亚洲 | 91在线亚洲 | 人人爽人人爽人人爽学生一级 | 日韩欧美久久 | 色综合五月 | 综合久久精品 | 国产精品成人免费精品自在线观看 | 成人黄色电影在线 | 久久视频精品在线观看 | 日韩av免费在线电影 | 成人av网站在线观看 | 涩涩网站在线观看 | 久久伊人婷婷 | 国产精品久久99精品毛片三a | 丁香六月久久综合狠狠色 | 91丨九色丨蝌蚪丰满 | 天天干天天操天天入 | 久久久久久99精品 | 日韩一区二区三区高清在线观看 | 日韩毛片在线一区二区毛片 | 国内精品久久久久久久久久久久 | 欧美 日韩 国产 中文字幕 | 97超碰资源 | 国产99一区二区 | 亚洲视频免费在线 | 欧美少妇的秘密 | 国产精品毛片一区视频 | 欧美成人日韩 | 久久国产系列 | 免费亚洲黄色 | 69国产精品视频免费观看 | 日韩av在线一区二区 | av在线免费观看不卡 | 中国黄色一级大片 | 婷婷亚洲五月 | 日韩特黄一级欧美毛片特黄 | 久久精品一区二 | 一区二区三区电影大全 | 毛片精品免费在线观看 | 久久99热精品 | 日韩精品一区二区三区在线播放 | 狠狠干我 | 久久国产综合视频 | 国产精品区在线观看 | 国产区av在线 | 精品黄色片 | 视频在线99re| 欧美视频www| 国产丝袜制服在线 | 曰本三级在线 | 伊人色播 | 黄色av免费看 | 亚洲综合在线发布 | 天天干天天干天天干天天干天天干天天干 | 国产破处视频在线播放 | 中文字幕高清在线 | 日韩免费在线观看视频 | 91福利免费 | 久久综合久久综合这里只有精品 | 丁香九月婷婷综合 | 国产精品热 | 国产精品一区二区av | 国产精品久久久久久麻豆一区 | 国产成视频在线观看 | 操老逼免费视频 | 国产成人精品在线播放 | 99热只有精品在线观看 | 国产在线观看免费 | 天天爱天天操天天干 | 国产成人精品av久久 | 在线视频精品 | 黄色av一区二区三区 | 亚洲婷婷综合色高清在线 | 日韩欧美国产精品 | 夜夜躁天天躁很躁波 | 国产成人精品在线观看 | 亚洲视频电影在线 | 超碰人人国产 | www色综合 | 天堂麻豆 | 日本爽妇网| 人人爽人人澡人人添人人人人 | 成年人黄色免费视频 | 国产91电影在线观看 | 欧美色图亚洲图片 | 亚洲一级片免费观看 | 玖玖爱国产在线 | 日韩电影中文字幕 | 粉嫩av一区二区三区四区 | 国产精品免费视频网站 | 五月天综合色 | 四虎永久免费网站 | 久久官网| 国产精品观看视频 | 日韩av资源站 | 五月天丁香综合 | 人人天天夜夜 | 91麻豆精品国产91久久久使用方法 | 亚洲黄色在线 | 91成人天堂久久成人 | 亚洲欧美日韩一二三区 | 久久精精品视频 | 在线免费黄色av | 2023国产精品自产拍在线观看 | 色香网 | 欧美日韩中文在线 | www.成人精品 | 欧美视频xxx | 日韩欧美一区视频 | 久久伊人免费视频 | 国产成人精品一区二三区 | 亚洲国产无 | 久草在线免费资源 | 国产伦理剧 | 超碰人人乐| 国产一级二级三级视频 | 五月激情视频 | 久久久久久在线观看 | 久热色超碰 | 国产日产在线观看 | 久草视频免费在线观看 | 国内成人精品2018免费看 | 日韩一区二区免费播放 | 97国产在线播放 | 一二三四精品 | 综合久色| 在线观看亚洲专区 | 日韩av专区 | 欧美在线一二 | 伊人超碰在线 | 欧美中文字幕久久 | 亚洲天天综合 | 国产无遮挡又黄又爽在线观看 | 爱爱av网站| 欧美日韩在线网站 | 丁香花在线视频观看免费 | www.五月激情.com | 成人在线观看影院 | 国产精品麻豆欧美日韩ww | 国产免费又爽又刺激在线观看 | 综合色综合| 91麻豆国产 | 亚洲精品黄色片 | 99久免费精品视频在线观看 | 涩涩在线 | 中文字幕视频网站 | 日本精品午夜 | 97色涩| 一区二区三区免费在线观看视频 | 又黄又爽又无遮挡免费的网站 | 欧美精品在线观看免费 | 精品一区二区亚洲 | 天天爽夜夜爽人人爽一区二区 | 成人蜜桃网 | 美女久久久久久久久久久 | 91在线精品观看 | 韩国视频一区二区三区 | 日本一区二区高清不卡 | 97超碰福利久久精品 | 中文字幕永久 | 国产录像在线观看 | 人人爽人人香蕉 | 日日夜夜精品 | 国产麻豆精品一区 | 久久午夜免费视频 | 天天综合亚洲 | 久久久久久久久久久久影院 | 亚洲精品久久久久久久不卡四虎 | 欧美在线视频二区 | 99这里只有久久精品视频 | 在线观看视频国产 | 久久综合久久鬼 | 99精品国产亚洲 | 久久久久国产精品www | 欧美视频www | 综合色爱 | 久久国产亚洲精品 | 欧美精品在线观看一区 | 麻花天美星空视频 | 一区二区三区视频在线 | 国产亚洲一区二区在线观看 | 911久久 | 久久久久久久久影视 | 香蕉视频在线观看免费 | 视频一区二区精品 | 福利视频 | 草樱av| 最近中文字幕高清字幕免费mv | 99视频在线观看视频 | 成人a级黄色片 | 波多野结衣亚洲一区二区 | 91九色视频在线 | 欧美在线99 | 国产97视频在线 | 伊人网av | 国内视频在线 | 伊香蕉大综综综合久久啪 | 在线免费观看黄网站 | av网站在线免费观看 | 999视频在线播放 | 丁香花在线观看视频在线 | 99视频久 | 91亚洲精品视频 | 伊人资源站 | 69av视频在线观看 | 日韩乱色精品一区二区 | 国产高清视频色在线www | 人人插人人看 | 99久久99久久精品国产片果冰 | 亚洲激精日韩激精欧美精品 | 精品欧美一区二区在线观看 | 国产三级精品三级在线观看 | 国产美腿白丝袜足在线av | 亚洲资源网 | 一本到在线 | 91大神精品视频在线观看 | 在线观看中文字幕亚洲 | 伊人久久一区 | 国产在线精品播放 | 久久试看 | 99久久99久久精品免费 | 激情深爱五月 | 91成人在线视频观看 | 日本 在线 视频 中文 有码 | 久久久久免费观看 | 久香蕉| 伊人资源站| 极品美女被弄高潮视频网站 | 亚洲经典在线 | 国产片免费在线观看视频 | 久久久免费 | 天天操天天干天天 | 亚洲成人免费观看 | 91九色蝌蚪国产 | 久99久视频 | 日韩草比 | 美女一级毛片视频 | 国产伦精品一区二区三区… | 欧美精品一区二区免费 | 欧美二区在线播放 | 在线免费观看视频 | 夜夜躁狠狠躁 | 欧洲不卡av | 亚洲一区二区三区精品在线观看 | 热久久影视| 欧美日韩亚洲第一 | 国产精品短视频 | 久久免费av电影 | 免费黄色在线 | 国产精品尤物 | 日韩最新在线视频 | 最近高清中文字幕在线国语5 | 蜜臀av性久久久久av蜜臀三区 | 91女神的呻吟细腰翘臀美女 | 激情五月伊人 | 99精品国产在热久久下载 | 国产精品岛国久久久久久久久红粉 | 亚洲一级性 | 最近中文字幕大全 | 免费观看日韩av | 国产视频综合在线 | 亚洲1区 在线 | 91chinesexxx | 91av手机在线 | 91亚洲精品久久久 | 亚洲精品欧美专区 | 久久福利电影 | 天天爱天天操天天爽 | 久久精品国产一区二区电影 | 国产人免费人成免费视频 | 97av在线视频 | 特级a老妇做爰全过程 | 国产精品自拍在线 | 久草在线在线精品观看 | 96亚洲精品久久久蜜桃 | 午夜久久影视 | 中文字幕丝袜制服 | 91视频 - 88av| 中文字幕久久久精品 | 视频 国产区| 婷婷在线看 | 亚洲最新av在线网址 | 麻豆一二三精选视频 | 天天干视频在线 | 日韩av网址在线 | 综合婷婷丁香 | 99麻豆久久久国产精品免费 | 国产一区二区高清不卡 | 精品毛片久久久久久 | 又黄又爽又无遮挡免费的网站 | 97超碰资源 | 日韩专区在线观看 | 日韩一区二区三区免费视频 | 久久艹影院 | 国产一级二级三级在线观看 | 丁香花中文在线免费观看 | 亚洲涩涩网站 | 免费在线国产黄色 | 91精彩视频在线观看 | 激情五月色播五月 | 午夜10000 | 亚洲涩涩涩 | 久草在线最新 | 五月天天av| 黄色大全免费网站 | 中文字幕一区二区三区四区 | 国产成人福利在线观看 | 又粗又长又大又爽又黄少妇毛片 | 国产视频欧美视频 | 狠狠色丁香婷婷 | 亚洲欧美一区二区三区孕妇写真 | 国产乱码精品一区二区三区介绍 | 国内精品久久久久久久久久 | 免费一级特黄录像 | 亚洲六月丁香色婷婷综合久久 | 国产黄色片在线 | 亚洲精品久久久久58 | 久久国产精品免费一区 | 最近中文字幕在线播放 | 91伊人久久大香线蕉蜜芽人口 | 日韩精品资源 | 97人人澡人人添人人爽超碰 | av色影院 | 三级动图| 美女视频黄频大全免费 | 在线观影网站 | aaa日本高清在线播放免费观看 | 激情欧美xxxx | 国产网红在线观看 | 久久精品精品电影网 | 日韩免费视频在线观看 | 91亚洲精品久久久蜜桃借种 | 91香蕉视频好色先生 | 国产又黄又猛又粗 | 中文一区二区三区在线观看 | 亚洲精品色婷婷 | 亚洲欧美日韩精品一区二区 | 国产精品区二区三区日本 | 国产高清第一页 | 成人在线播放网站 | 91麻豆精品国产 | 国产亚洲视频系列 | 国产一级片一区二区三区 | 久久九九网站 | 久久黄色a级片 | 九九久久久久久久久激情 | 欧美日韩成人一区 | 日韩精品一区二区三区视频播放 | 在线视频观看成人 | 久久国产精品网站 | 99热手机在线 | 成人av在线一区二区 | 国产在线精品播放 | 美女视频a美女大全免费下载蜜臀 | 99久久99久久免费精品蜜臀 | 国产精品v欧美精品v日韩 | 九九九免费视频 | 麻豆 91 在线 | 久久国产视频网 | 欧美在线视频a | 91大片成人网 | 久久午夜精品视频 | 国产精品九九热 | 国产精品午夜久久久久久99热 | 超薄丝袜一二三区 | 激情大尺度视频 | 白丝av免费观看 | 国产精品原创在线 | 日韩午夜在线 | 欧美中文字幕第一页 | 国产精品毛片久久 | www黄免费| 激情久久网| 三级av免费看 | 精品不卡av | 国模视频一区二区三区 | 亚洲专区中文字幕 | 久久99久久久久久 | 天堂在线视频中文网 | av在线播放快速免费阴 | 亚洲精品综合一二三区在线观看 | 国产精选在线观看 | 日韩成片| 国产999精品久久久久久绿帽 | 亚洲春色奇米影视 | 日韩影视在线观看 | 国产精品福利无圣光在线一区 | 国产美女免费观看 | 国产亚洲婷婷免费 | 九九久久国产精品 | 久久久久国产视频 | 天天操夜 | 99国产一区二区三精品乱码 | 国产在线 一区二区三区 | 亚洲精品乱码久久久久久写真 | 国产色婷婷精品综合在线手机播放 | 国产亚洲精品久久19p | 日本高清免费中文字幕 | 日本精a在线观看 | av福利资源| 国产又粗又猛又黄 | av在线日韩| 天天色天天上天天操 | 国产精品久久久毛片 | 国产精品久久久久久久久岛 | 五月天亚洲综合 | 国产精品3| 亚洲精品国产日韩 | 欧美 亚洲 另类 激情 另类 | 97视频在线观看免费 | 色婷婷综合久色 | 99久久99久国产黄毛片 | 国产涩涩网站 | 99re久久资源最新地址 | 91重口视频 | 97视频资源 | 欧美 日韩 视频 | 亚洲欧美日本国产 | 五月视频| 波多野结衣在线中文字幕 | 在线欧美最极品的av | 日黄网站 | 伊人久久精品久久亚洲一区 | 91日韩在线播放 | 国产精品人人做人人爽人人添 | 久久激情五月丁香伊人 | 欧美激情综合色综合啪啪五月 | 日韩免费中文 | 黄色一级性片 | 久久久观看 | 香蕉视频一级 | 久久久久国产精品免费免费搜索 | 超碰国产在线 | 经典三级一区 | 成在人线av | 少妇自拍av | www.888.av| 日韩大片在线 | 久久久久久久久久影视 | 亚洲伦理中文字幕 | 日本黄色免费在线观看 | 亚洲精品理论 | 亚洲japanese制服美女 | 国产在线精品一区二区三区 | 97色资源 | www.天天干.com | 亚洲精品免费播放 | 成人午夜电影网 | 99夜色| 丁香婷婷久久久综合精品国产 | 在线观看91精品国产网站 | 韩日电影在线 | 免费看黄在线 | 午夜精品久久久久久久久久久 | 亚洲日韩欧美一区二区在线 | 国产中文字幕三区 | 国产分类视频 | 欧美动漫一区二区三区 | 国产黄色在线 | 激情电影影院 | 亚洲黄色一级电影 | 久久综合久久综合久久综合 | 视频直播国产精品 | 久久国产精品免费看 | 五月丁香| 99久久久国产精品美女 | 超碰人人99 | 在线一二区 | 国产日韩欧美在线免费观看 | 久草在线免费电影 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 亚洲精品www久久久 www国产精品com | 国产精品精品久久久久久 | 色视频在线免费观看 | 国产成人一区二区三区影院在线 |