老司机夜插-理伦理片-理伦片免费-理伦片免费观看-理伦片免费看-理伦日韩-理论福利片-理论片第一页-理论片电影-理论片理论

金喜正规买球

深度剖析Java中的Lambda表達式

原創|行業資訊|編輯:郝浩|2017-08-11 17:52:08.000|閱讀 1090 次

概述:本文將從字節碼(Bytecode)的級別研究Lambda表達式是如何工作的,以及如何將它與getter、setter和其它技巧組合起來的。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

在本文中,我們將介紹Java 8中Lambda表達式的一些鮮為人知的技巧及其局限性,其主要受眾包括中高級Java開發人員、研究人員和工具編寫者。在這里我們將只使用公共Java API而不使用com.sun和其它的內部類,因此代碼可以在不同的JVM中實現。

快速介紹


Lambda表達式在Java 8中被引入,作為一種實現匿名函數的方法,在某些情況下,可作為匿名類的替代方案。在字節碼(Bytecode)的級別中,Lambda表達式用invokedynamic指令替代,該指令能夠簡化JVM上動態類型語言的編譯器和運行時系統的實現。其delegates類能夠調用Lambda主體內所定義的代碼的實例。

例如,我們有以下代碼:

void printElements(List<String> strings){
    strings.forEach(item -> System.out.println("Item = %s", item));
}

這段代碼由Java編譯器編譯后成為這樣:

private static void lambda_forEach(String item) { //generated by Java compiler
    System.out.println("Item = %s", item);
}
private static CallSite bootstrapLambda(Lookup lookup, String name, MethodType type) { //
    //lookup = provided by VM
    //name = "lambda_forEach", provided by VM
    //type = String -> void
    MethodHandle lambdaImplementation = lookup.findStatic(lookup.lookupClass(), name, type);
    return LambdaMetafactory.metafactory(lookup,
        "accept",
        MethodType.methodType(Consumer.class), //signature of lambda factory
        MethodType.methodType(void.class, Object.class), //signature of method Consumer.accept after type erasure  
        lambdaImplementation, //reference to method with lambda body
        type);
}
void printElements(List < String > strings) {
    Consumer < String > lambda = invokedynamic# bootstrapLambda, #lambda_forEach
    strings.forEach(lambda);
}

invokedynamic指令可以將其粗略地表達為以下代碼:

private static CallSite cs;
void printElements(List < String > strings) {
    Consumer < String > lambda;
    //begin invokedynamic
    if (cs == null)
        cs = bootstrapLambda(MethodHandles.lookup(), "lambda_forEach", MethodType.methodType(void.class, String.class));
    lambda = (Consumer < String > ) cs.getTarget().invokeExact();
    //end invokedynamic
    strings.forEach(lambda);
}

正如你所看到的,LambdaMetafactory用于生成某個目標函數(匿名類)在工廠模式下的調用點(call site)。而工廠模式會返回這個函數接口在使用invokeExact的實現結果。如果Lambda附加了變量,那么invokeExact將會把這些變量作為實際參數。

在Oracle JRE 8中,metafactory會使用,通過實現函數接口的方式,動態生成一個Java類。如果Lambda表達式包含外部變量,則可以在生成類中添加附加字段。這種方法類似于Java語言中的匿名類,但有以下的不同點:

  • 匿名類是由Java編譯器在編譯時生成的。
  • 而Lambda實現的類是由JVM在運行時生成的。

注意:metafactory的實現依賴于JVM供應商和版本

invokedynamic指令并不只用于Java中的Lambda表達式,該指令的引入主要是為了JVM之上動態語言的運行。Nashorn,Java開箱即用的下一代JavaScript引擎中大量地使用了這個指令。

在本文的后面部分,我們將重點討論LambdaMetafactory類及其功能。本文的下一節是基于假設你完全理解了metafactory方法的工作原理和方法。

關于Lambda的技巧


在本節中我們將介紹如何在日常任務中使用Lambda的動態構建。

Lambda與受檢查異常(Checked Exception

并不是Java提供的所有函數接口都支持受檢查異常。是否支持受檢查異常在Java世界中是一場古老的圣戰。

如果為了結合使用Java Stream,你需要lambda中含有受檢查異常的代碼,那該怎么做?比如,我們需要將字符串列表轉換成這樣的url列表:

Arrays.asList("//localhost/", "//github.com")
.stream()
.map(URL::new)
.collect(Collectors.toList())

在throws中已聲明了受檢查異常,因此,它不能在中直接作為函數引用。

你可能會說:“這沒問題啊,我可以這么干。”

public static <T> T uncheckCall(Callable<T> callable) {
  try { return callable.call(); }
  catch (Exception e) { return sneakyThrow(e); }
}
private static <E extends Throwable, T> T sneakyThrow0(Throwable t) throws E { throw (E)t; }
public static <T> T sneakyThrow(Throwable e) {
  return Util.<RuntimeException, T>sneakyThrow0(e);
}
// Usage sample
//return s.filter(a -> uncheckCall(a::isActive))
//        .map(Account::getNumber)
//        .collect(toSet());

這個做法并不高明,原因如下:

  • 使用了try-catch語句。
  • 重新拋出了異常。
  • 使用了Java的類型擦除。

上述行為所想要解決的問題我們可以更“規范”的作如下表達:

  • 受檢查異常只能由Java語言的編譯器來識別。
  • 在JVM級別上,throws的異常只是無語義函數的元數據。
  • 在字節碼和JVM級別,受檢查異常和非受檢查異常不易區分。

解決方法是在函數中包裹Callable.call的調用,而不引入throws的部分:

static <V> V callUnchecked(Callable<V> callable){
    return callable.call();
}

這段代碼不會被Java編譯器所編譯,因為Callable.call的throws部分包含受檢查異常。但是我們可以使用動態構建的lambda表達式來刪除這個部分。

首先,我們應當聲明一個沒有throws部分但能夠委托調用Callable.call的函數接口:

@FunctionalInterface
interface SilentInvoker {
    MethodType SIGNATURE = MethodType.methodType(Object.class, Callable.class);//signature of method INVOKE
    <V> V invoke(final Callable<V> callable);
}

第二步是使用LambdaMetafactory創建這個接口的實現,并委托SilentInvoker.invoke調用Callable.call。如前所述,在字節碼級別,throws部分被忽略了,因此,SilentInvoker.invoke可以在不聲明受檢查異常的情況下調用Callable.call。

private static final SilentInvoker SILENT_INVOKER;
final MethodHandles.Lookup lookup = MethodHandles.lookup();
final CallSite site = LambdaMetafactory.metafactory(lookup,
                    "invoke",
                    MethodType.methodType(SilentInvoker.class),
                    SilentInvoker.SIGNATURE,
                    lookup.findVirtual(Callable.class, "call", MethodType.methodType(Object.class)),
                    SilentInvoker.SIGNATURE);
SILENT_INVOKER = (SilentInvoker) site.getTarget().invokeExact();

第三步編寫在不需要聲明受檢查異常的情況下調用Callable.call的函數。

public static <V> V callUnchecked(final Callable<V> callable) /*no throws*/ {
    return SILENT_INVOKER.invoke(callable);
}

現在,我們可以毫無問題的使用檢查異常重寫stream。

Arrays.asList("//localhost/", "//dzone.com")
.stream()
.map(url -> callUnchecked(() -> new URL(url)))
.collect(Collectors.toList());

這段代碼會被成功編譯,因為callUnchecked沒有聲明受檢查異常。此外,由于JVM中只有一個類來實現接口SilentInvoker,因此調用此方法可能會使用單態內聯緩存。

如果Callable.call在運行時拋出了一些異常,它將會通過調用來進行捕捉,而不會出現任何問題:

try{
    callUnchecked(() -> new URL("Invalid URL"));
} catch (final Exception e){
    System.out.println(e);
}

盡管有這樣的方法來實現功能,但我還是強烈推薦以下的用法:

只有當調用代碼保證了無異常產生的情況下才使用callUnchecked隱藏受檢查異常。

下面的示例演示了這種方法:

callUnchecked(() -> new URL("//dzone.com")); //this URL is always valid and the constructor never throws MalformedURLException

這個方法的可在開源項目中找到。

與Getters和Setters的協同工作

這一節對于編寫JSON、Thrift等不同格式的序列化/反序列化的程序員很有幫助。另外,如果你的代碼嚴重依賴于用于JavaBean的getter和setter的Java反射,那么它將讓你收益良多。

JavaBean中聲明的getter,命名為getXXX,是無參數和非void返回類型的函數,JavaBean中聲明的setter,命名為setXXX,是帶有單個參數和返回類型為void的函數。它們可以表示為這樣的函數接口:

  • getter可以表示為一個函數參數由this引用的 。
  • setter可以表示為一個第一參數由this引用,第二參數為傳遞給setter的。

現在我們創建兩個可將任意getter或setter轉換成這些函數接口的方法。這兩個函數接口是否為泛型并不重要。在類型消除之后,實際的類型等于對象。自動選擇返回類型和參數可以由LambdaMetafactory完成。此外,有助于緩存有相同getter或setter的lambda。

首先,有必要為getter和setter聲明一個緩存,來自Reflection API的代表了當前getter或setter,并作為一個key使用。緩存中的值表示特定getter或setter的動態構造函數接口。

private static final Cache<Method, Function> GETTERS = CacheBuilder.newBuilder().weakValues().build();
private static final Cache<Method, BiConsumer> SETTERS = CacheBuilder.newBuilder().weakValues().build();

其次,創建工廠方法,通過從方法句柄中指向getter或setter來創建函數接口的實例: 

private static Function createGetter(final MethodHandles.Lookup lookup,
                                         final MethodHandle getter) throws Exception{
        final CallSite site = LambdaMetafactory.metafactory(lookup, "apply",
                MethodType.methodType(Function.class),
                MethodType.methodType(Object.class, Object.class), //signature of method Function.apply after type erasure
                getter,
                getter.type()); //actual signature of getter
        try {
            return (Function) site.getTarget().invokeExact();
        } catch (final Exception e) {
            throw e;
        } catch (final Throwable e) {
            throw new Error(e);
        }
}
private static BiConsumer createSetter(final MethodHandles.Lookup lookup,
                                           final MethodHandle setter) throws Exception {
        final CallSite site = LambdaMetafactory.metafactory(lookup,
                "accept",
                MethodType.methodType(BiConsumer.class),
                MethodType.methodType(void.class, Object.class, Object.class), //signature of method BiConsumer.accept after type erasure
                setter,
                setter.type()); //actual signature of setter
        try {
            return (BiConsumer) site.getTarget().invokeExact();
        } catch (final Exception e) {
            throw e;
        } catch (final Throwable e) {
            throw new Error(e);
        }

}

通過對samMethodType和instantiatedMethodType(分別對應metafactory的第三個和第五個參數)之間的區分,可以實現類型擦除后的函數接口中基于對象的參數和實際參數類型之間的自動轉換并以getter或setter作為返回類型。實例化方法類型是提供lambda實現的特殊方法。

然后,在緩存的支持下,為這些工廠創建一個外觀:

public static Function reflectGetter(final MethodHandles.Lookup lookup, final Method getter) throws ReflectiveOperationException {
        try {
            return GETTERS.get(getter, () -> createGetter(lookup, lookup.unreflect(getter)));
        } catch (final ExecutionException e) {
            throw new ReflectiveOperationException(e.getCause());
        }
}
public static BiConsumer reflectSetter(final MethodHandles.Lookup lookup, final Method setter) throws ReflectiveOperationException {
        try {
            return SETTERS.get(setter, () -> createSetter(lookup, lookup.unreflect(setter)));
        } catch (final ExecutionException e) {
            throw new ReflectiveOperationException(e.getCause());
        }
}

作為使用 Java 反射 API 的 Method 實例,獲取的方法信息可以輕松地轉換為 MethodHandle。考慮到實例方法總是有隱藏的第一個參數用于將其傳遞給方法。靜態方法沒有這些隱藏的參數。例如,方法具有 int intValue 的實際簽名(Integer this)。這個技巧用于實現 getter 和 setter 的功能包裝器。

現在是時候測試代碼了:

final Date d = new Date();
final BiConsumer<Date, Long> timeSetter = reflectSetter(MethodHandles.lookup(), Date.class.getDeclaredMethod("setTime", long.class));
timeSetter.accept(d, 42L); //the same as d.setTime(42L);
final Function<Date, Long> timeGetter = reflectGetter(MethodHandles.lookup(), Date.class.getDeclaredMethod("getTime"));
System.out.println(timeGetter.apply(d)); //the same as d.getTime()
//output is 42

這種緩存getter和setter的方法可以有效地用于序列化和反序列化期間,使用getter和setter的序列化/反序列化庫(如Jackson)。

使用LambdaMetafactory動態生成的實現調用函數接口比通過Java Reflection API的調用要。

你可以在開源項目中找到。

限制和缺陷

在本節中,我們將給出在 Java 編譯器和 JVM 中與 lambdas 相關的一些錯誤和限制。 所有這些限制都可以在 OpenJDK 和 Oracle JDK 上重現,它們適用于 Windows 和 Linux 的 javac 1.8.0_131。

從方法句柄構建 Lambdas

如你所知,可以使用 LambdaMetafactory 動態構建 lambda。要實現這一點,你應該指定一個 MethodHandle,其中包含一個由函數接口聲明的單個方法的實現。我們來看看這個簡單的例子:

final class TestClass {
            String value = "";
            public String getValue() {
                return value;
            }
            public void setValue(final String value) {
                this.value = value;
            }
        }
final TestClass obj = new TestClass();
obj.setValue("Hello, world!");
final MethodHandles.Lookup lookup = MethodHandles.lookup();
final CallSite site = LambdaMetafactory.metafactory(lookup,
                "get",
                MethodType.methodType(Supplier.class, TestClass.class),
                MethodType.methodType(Object.class),
                lookup.findVirtual(TestClass.class, "getValue", MethodType.methodType(String.class)),
                MethodType.methodType(String.class));
final Supplier<String> getter = (Supplier<String>) site.getTarget().invokeExact(obj);
System.out.println(getter.get());

上面的代碼等價于:

final TestClass obj = new TestClass();
obj.setValue("Hello, world!");
final Supplier<String> elementGetter = () -> obj.getValue();
System.out.println(elementGetter.get());

但如果我們用一個可以表示一個字段獲取方法的方法處理器來替換指向 getValue 的方法處理器的話,情況會如何呢:

final CallSite site = LambdaMetafactory.metafactory(lookup,
                "get",
                MethodType.methodType(Supplier.class, TestClass.class),
                MethodType.methodType(Object.class),
                lookup.findGetter(TestClass.class, "value", String.class), //field getter instead of method handle to getValue
                MethodType.methodType(String.class));

該代碼應該是可以按照預期來運行的,因為 findGetter 會返回一個指向字段獲取方法、并且具備有效簽名的方法處理器。 但是如果你運行了代碼,就會看到如下異常:

java.lang.invoke.LambdaConversionException: Unsupported MethodHandle kind: getField

有趣的是,如果我們使用 ,字段獲取方法卻可以運行得很好:

final Supplier<String> getter = MethodHandleProxies
                                       .asInterfaceInstance(Supplier.class, lookup.findGetter(TestClass.class, "value", String.class)
                                       .bindTo(obj));

要注意 MethodHandleProxies 并非動態創建 lambda 表達式的理想方法,因為這個類只是把 MethodHandle 封裝到一個代理類里面,然后把對的調用指派給了 方法。 這種方法使得 Java 反射機制運行起來非常的慢。

如前所述,并不是所有的方法句柄都可以在運行時用于構建 lambdas。

只有幾種與方法相關的方法句柄可以用于 lambda 表達式的動態構造

這包括:

  • REF_invokeInterface: 對于接口方法可通過 來構建
  • REF_invokeVirtual: 對于由類提供的虛方法可以通過 Lookup.findVirtual 來構建
  • REF_invokeStatic: 對于靜態方法可通過 構建
  • REF_newInvokeSpecial: 對于構造函數可通過 構建
  • REF_invokeSpecial: 對于私有方法和由類提供的早綁定的虛方法可通過構建

其他方法的句柄將會觸發 LambdaConversionException 異常。

泛型異常

這個 bug 與 Java 編譯器以及在 throws 部分聲明泛型異常的能力有關。下面的示例代碼演示了這種行為:

interface ExtendedCallable<V, E extends Exception> extends Callable<V>{
        @Override
        V call() throws E;
}
final ExtendedCallable<URL, MalformedURLException> urlFactory = () -> new URL("//localhost");
urlFactory.call();

這段代碼應該編譯成功因為 URL 構造器拋出 MalformedURLException。但事實并非如此。編譯器產生以下錯誤消息:


Error:(46, 73) java: call() in <.anonymous Test$CODEgt; cannot implement call() in ExtendedCallable
overridden method does not throw java.lang.Exception

但如果我們用一個匿名類替換 lambda 表達式,那么代碼就編譯成功了:

final ExtendedCallable<URL, MalformedURLException> urlFactory = new ExtendedCallable<URL, MalformedURLException>() {
            @Override
            public URL call() throws MalformedURLException {
                return new URL("//localhost");
            }
        };
urlFactory.call();

結論很簡單:

當與lambda表達式配合使用時,泛型異常的類型推斷不能正確工作。

泛型邊界

一個帶有多個邊界的泛型可以用 & 號構造:<T extends A & B & C & ... Z>。這種泛型參數定義很少被使用,但由于其局限性,它對 Java 中的 lambda 表達式有某些影響:

  • 每一個邊界,除了第一個邊界,都必須是一個接口。
  • 具有這種泛型的類的原始版本只考慮了約束中的第一個邊界。

第二個局限性使 Java 編譯器在編譯時和 JVM 在運行時產生不同的行為,當 Lambda 表達式的聯動發生時。可以使用以下代碼重現此行為:

final class MutableInteger extends Number implements IntSupplier, IntConsumer { //mutable container of int value
    private int value;
    public MutableInteger(final int v) {
        value = v;
    }
    @Override
    public int intValue() {
        return value;
    }
    @Override
    public long longValue() {
        return value;
    }
    @Override
    public float floatValue() {
        return value;
    }
    @Override
    public double doubleValue() {
        return value;
    }
    @Override
    public int getAsInt() {
        return intValue();
    }
    @Override
    public void accept(final int value) {
        this.value = value;
    }
}
static < T extends Number & IntSupplier > OptionalInt findMinValue(final Collection < T > values) {
    return values.stream().mapToInt(IntSupplier::getAsInt).min();
}
final List < MutableInteger > values = Arrays.asList(new MutableInteger(10), new MutableInteger(20));
final int mv = findMinValue(values).orElse(Integer.MIN_VALUE);
System.out.println(mv);

這段代碼絕對沒錯,而且用 Java 編譯器編譯也會成功。MutableInteger 這個類可以滿足泛型 T 的多個類型綁定約束:

  • MutableInteger 是從 Number 繼承的
  • MutableInteger 實現了 IntSupplier

但是在運行的時候會拋出異常:

java.lang.BootstrapMethodError: call site initialization exception
    at java.lang.invoke.CallSite.makeSite(CallSite.java:341)
    at java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:307)
    at java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:297)
    at Test.minValue(Test.java:77)
Caused by: java.lang.invoke.LambdaConversionException: Invalid receiver type class java.lang.Number; not a subtype of implementation type interface java.util.function.IntSupplier
    at java.lang.invoke.AbstractValidatingLambdaMetafactory.validateMetafactoryArgs(AbstractValidatingLambdaMetafactory.java:233)
    at java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:303)
    at java.lang.invoke.CallSite.makeSite(CallSite.java:302)

之所以會這樣是因為 Java Stream 的管道只捕獲到了一個原始類型,它是一個 Number 類。Number 類本身并沒有實現 IntSupplier 接口。 要修復此問題,可以在一個作為方法引用的單獨方法中明確定義一個參數類型:

private static int getInt(final IntSupplier i){
    return i.getAsInt();
}
private static <T extends Number & IntSupplier> OptionalInt findMinValue(final Collection<T> values){
    return values.stream().mapToInt(UtilsTest::getInt).min();
}

這個示例就演示了 Java 編譯器和運行時所進行的一次不正確的類型推斷。

在 Java 中的編譯時和運行時處理與 lambdas 結合的多個類型綁定會導致不兼容。

 

本文翻譯自


標簽:Java

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn


為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
国语对白清晰好大好白在线 | 日本高清二区 | 亚洲日本va中文字幕区 | 成人123| 69国产精品人妻无码免费 | 午夜网站在线观看 | 一级毛片q片 | 久久综合伊人77777麻豆 | 亚洲 日韩 国产 制服 在线 | 秋香蕉丝瓜榴莲污APP下载 | 无人视频在线观看免费播放下载 | 中文无码欧美人妻日韩精品 | 男人扒开女人腿桶免费视频 | 国产香线蕉手机视频在线观看 | 成年网站在线观看 | 亚洲乱色 | 成人在线视频免费 | 日韩欧美伦理 | 日韩视频一 | 亚洲视频自拍 | 动漫美女的巨乳被揉胸 | 素人约啪第五季 | 免费在线色视频 | 在线 亚洲 欧美 | 午夜亚洲国产理论片二级港台二级 | 亚洲国产青草 | 婷婷四月开心色房播播网 | jizz在线观看国产精品 | 精品国产福利一区二区在线 | 欧美成人亚洲国产精品 | 老师解我胸罩让我去他办公室 | 波多野结衣33分钟办公室jian情 | 强睡年轻的女老板2中文电影 | 亚洲精品资源在线 | 青草视频网站在线观看 | 亚洲韩国偷拍在线观看 | 久久视频这里只精品18 | 日韩在线观看视频免费 | 久久国产精品久久久久久小说 | 中文字幕无限乱码不卡2021 | 波多野结衣人妻渴望A片 | 99热久久爱五月天婷婷 | 最近最新日本中文字幕MV2024 | 免费AA片少妇人AA片直播 | 日韩欧美一区二区三区在线视频 | 脱了在阳台趴着去H | 欧美bbww| 免费的黄网| 小小女视频网站色琼网站 | 欧美高清视频www夜色资源网 | 精品国产午夜肉伦伦影院 | 导航在线 | 国产少妇人妻 在线播放 | 欧美久久久久 | 精品熟女少妇AV久久免费A片 | 桃花综合久久久久久久久久网 | 人人揉人人人人澡人人 | 美女精品久久久久久国产潘金莲 | 国产精品综合久成人 | 日韩免费视频一区 | 国产又爽又黄无码无遮挡在线观看 | 亚洲人成一区二区不卡 | 亚洲自偷自拍另类图片小说 | 无人在线观看高清视频单曲直播 | 黄色网 在线播放 | 精品 在线 视频 亚洲小说 | 乱小说欧美综合 | 高清一区二区亚洲欧美日韩 | 99国产精品久久久久久久日本竹 | 三级理论中文字幕在线播放 | 欧美又大又粗又爽无码视频 | 成品人和精品人的在线观看 | 无线日本视频精品 | 黄色一级视频免费观看 | 精品国产天堂综合一区在线 | 一区二区网站 | 欧美色激情| 小妖精又紧又湿高潮H视频69 | 日本酷刑bdsm成人 | 黑人巨茎大战白人美女 | 国产免费观看黄A片又黄又硬小说 | 日本一曲二曲三曲高清 | 国产素人自拍 | 美国巨根| 国产伊人网 | 九九热在线视频观看这里只有精品 | 成人国产免费 | 国产综合有码无码中文字幕 | 欧洲欧美人成视频在线 | 大香线蕉97久久 | 女人一级毛片免费观看 | 最近中文字幕免费视频 | 亚洲精品高潮久久久久久日本 | 日韩欧美中文字幕一区 | 2017能在线观看的网站 | 最近中文字幕免费完整版2019 | 忘忧草爱网 | 五月天黄色片 | 久久综合影视 | 国产又黄又湿又刺激不卡网站 | 亚洲伊人久久综合影院2021 | 羞羞影院男女爽爽影院尤物 | 国产色精品久久人妻无码 | 中出片| 老板揉搓秘书丰满大乳 | 素人约啪第五季 | 中出片 | 欧美性爱天天影视 | 亚洲欧美另类图片 | 钻女神胯vk | 亚洲色无码A片一区二区潘甜甜 | 国产精品亚洲视频在线观看 | 奇米四色二区 | 欧美人妖20p | 亚洲精品一区久久久久一品AV | 成人a毛片久久免费播放 | 国产欧美日本亚洲精品五区 | 少妇人妻偷人精品视蜜桃 | 性盈盈网站久久久久忘忧草 | 99国产在线视频有精品视频 | a久久久久一级毛片护士免费 | 免费人成在线观看网站品爱网 | 成AV人片一区二区三区久久 | 激情五月婷婷 | 99视频精品 | 96精品专区国产在线观看高清 | 亚洲精品无码成人A片在线虐 | 毛片网站免费 | 精品无码国产欧美在线 | 亚洲国产成人一区二区在线 | 老太婆BBBBBB视频 | 日本一线a视频免费观看 | 在线成本人动漫视频网站 | 男人的天堂亚洲一线AV在线观看 | 日日摸天天添天天添无码蜜臀 | 国产精品日本不卡一区二区 | 国产性生大片免费观看性 | 古代高H啪肉NP文 | 在线 国产 欧美 专区 | 亚洲无人区在线观看AV | 欧美激情一区二区三区在线 | 亚洲免费观看视频 | 蜜桃综合网 | 久久亚洲精品高潮综合色A片小说 | 亚洲经典一曲二曲三曲 | 蜜桃视频在线观看免费视频网站WWW | 亚洲va中文字幕欧美不卡 | 欧美一区二区三区激情视频 | 丰满女邻居做爰BD在线电影 | 亚洲AV成人无码久久精品A片 | 国产精品久久久久久久久免费观看 | 欧洲乱码卡1卡2在线 | 夜夜噜2024最新 | 浪潮AV在线观看高清 | 日韩亚洲制服丝袜中文字幕 | 亚洲小说乱欧美另类 | XL上司带翻译不打马赛 | 波多野结在线 | 精品剧情v国产在线麻豆 | 午夜三级在线 | 欧美伦理片美亚电影网 | 国产精品第一国产精品 | 中文字幕在线电影观看 | 精品视频在线观看你懂的一区 | 五月天丁香婷婷开心激情五月 | 精品久久久久久无码人妻国产馆 | 午夜免费福利小电影 | 免费在线观看h片 | 日本卡一卡二卡三卡四免费 | 蜜桃臀在线成人亚洲 | 性一交一乱一伦在线播放 | 国产久热在线观看视频 | 全古装一级毛片大全 | 亚洲 无码 欧美 经典 | 狠狠色丁香婷婷久久综合五月 | 亚洲区偷拍自拍29P 亚洲人成77777A片张津瑜 | 免费成人毛片 | 国产影片大全 | 蜜臀色欲AV无人A片一区 | 91热久久免费频精品黑人99 | 成人免费va视频 | 黄色片网站在线 | 免费毛片视频网站 | 黄页在线播放网址 | 别停好爽好深好大好舒服视频 | 久操视频免费观看 | 中文字幕 一区 婷婷 在线 | 99久久免费看少妇高潮A片特黄 | 好大好硬好爽18禁视频免费 | 快播av种子 | 久久久免费看少妇高潮A片特黄 | 日韩国产午夜一区二区三区 | 亚洲最大色网 | 美女露出尿口让男人揉动态图网站 | 久久久久一区二区三区 | 亚洲人成无码久久久AAA片 | 国产人妻人伦精品1国产 | 久久草草亚洲蜜桃臀 | 五月激情啪啪 | 国语对白久久 | 久久99国产精品亚洲 | 美国的毛片免费的 | 亚洲国产精品成人综合久久久 | 一级毛片卡 | 2024人禽伦交 | 亚洲欧美中文v日韩v在线 | 完美世界动漫在线视频免费观看 | 久草免费新视频14 | 图片区 亚洲 在线视频 | 国产成人免费全部网站 | 欧美特级午夜一区二区三区 | 亚洲精品色情婷婷在线播放 | 黄网站免费在线观看 | WW.国产人妻人伦精品 | 日本高清免费中文字幕不卡 | 波多野结衣伦理在线观看 | 久久国产高清字幕中文 | 亚洲日本中文字幕在线 | 狠狠躁日日躁夜夜躁A片小说按摩 | 真实国产熟睡乱子伦视频 | 受在寝室被多攻高H男男小说 | 久久久免费看少妇高潮A片18禁 | 国产又粗又黄又爽的A片动漫软件 | 国产精品呻吟久久人妻无吗 | 舌头伸进去添的我好爽高潮视频 | A片做爰片仑理片免费看 | 久久精品久久精品 | 中文乱码字慕人妻熟女人妻 | 91制片厂制作果冻传媒所有 | 欧美人与zoxxxx视频 | 一道本不卡免费高清在线 | 强姧美女动态图片 | 禁止的爱6浴室吃奶中文字幕 | 99热资源 | jizzjizzjizz亚洲18 | 五月婷婷综合网 | 亚洲精华国产精华精华液网站 | 久久久久久久久久久久福利 | 日本中文字幕在线视频站 | 精品欧美亚洲韩国日本久久 | 最近中文字幕在线中文视频 | 成人亚洲A片V一区二区三区日本 | 色中色论坛网址 | 四虎在线观看一区二区 | 单县影院伦理 | 影音先锋色情资源站 | 五月天激情片 | 天天操天天干视频 | 大地影院日本韩国电影免费观看 | 亚洲伦理在线 | 免费看成人A片无码网站 | 秋霞伦理手机在钱 | 99久久无码一区人妻A黑国产馆 | 国产加勒比 | 无码人妻丰满熟妇奶水区码 | 岛国岛国免费V片在线观看 岛国精品无码少妇在线 | 伊人精品网 | 年下攻高(H)纯肉 | 一区二区国产在线播放 | 图片区小说区激情春色 | 天堂在线www网亚洲 天堂在线v | 日韩成人高清 | 中文字幕第一页在线播放 | 久久亚洲人成网站 | 进进出出好涨啊粗大动态图 | 美日韩在线观看 | 安与安寻 | 亚洲日日做天天做日日谢 | 日本精品人妻无码久久久 | 久久久中日AB精品综合 | 综合干狼人综合首页 | 免费在线黄色网址 | 无人视频在线观看免费播放下载 | 久久免费福利 | 色妇视频| 97色在线视频 | 日本视频在线免费观看 | 国产熟妇另类久久久久 | 樱花草在线社区www日本视频 | 一个人在线视频免费观看www | 国产成人无码免费看片软件 | 四虎在线观看一区二区 | A片粗大的内捧猛烈进出AV | 最好免费观看高清视频直播小说 | 免费A级毛片黄A片高清在线播放 | 日本一卡二卡三四卡在线观看免费视频 | 国产欧美二区综合 | 出差我被公高潮A片1000部 | 亚洲精品福利一区二区在线观看 | 婷婷色基地 | 手机看片福利永久925 | 青青国产线观观看视频 | 日韩好片一区二区在线看 | 欧美老妇性生活 | 中文字幕亚洲一区婷婷 | 强伦姧人妻波多野结衣 | 99久久99久久精品免费看子伦 | 成人在线午夜 | 久草app黄 | 欧美中文在线 | 四虎影视永久免费观看 | 92看看福利午夜影院 | 草草视频手机在线观看视频 | 午夜AV亚洲一码二中文字幕青青 | 亚洲日本精品va中文字幕 | 尤物tv在线 | 公和我做爽死我了A片口述 公交车上无耻挖阴 | 国产精品AV色欲蜜臀在线 | 国产男女猛烈无遮挡A片漫画 | 麻豆乱码国产一区二区三区 | 香蕉久久av一区二区三区 | 美国成人影院 | 免费高清视频免费观看 | 曰b免费视频 | 亚洲第一成年免费网站 | 国产精品久久毛片A片软件爽爽 | 大尺度黄文小说短篇刺激 | 色综合久久综合中文小说 | 精品久久精品久久 | 最新国产三级 | 草莓茄子丝瓜樱桃奶茶秋葵 | 在线观看a网站 | 师尊被掐着腰做到潮喷纯肉GB | 国产91久久精品一区二区 | 美女大战巨茎黑人 | 午夜www在线观看完整版视频 | 色综合久久久高清综合久久久 | 亚洲国产精品综合久久2007 | 91产国天堂游戏 | 五月婷婷丁香在线视频 | 亚洲色偷偷男人的天堂 | 国产女高清在线看免费观看 | 午夜刺激爽爽视频免费观看 | 欧亚成人A片一区二区 | 当着闺蜜的面被抽插后入小说 | 色综合亚洲色综合网站 | 高清对白精彩国产国语 | 福利视频在线播放 | 国产精品国产三级国产在线观看 | 不卡国产视频 | 污网站在线免费看 | 伦理片97影视网 | 青草热久精品视频在线观看 | 波多野结衣在线一区 | 韩国伦理电影在线伦理 | 天堂网中文 | 五月深爱网 | 性吧有你cc | 99九九精品国产高清自在线 | 天天在线综合网 | 极品美女久久久久久久久久久 | 亚洲有码薄码 | 两性午夜色视频免费网站 | 国精品人妻无码一区二区三区一 | 国产人妻人伦精品熟女麻豆 | 国产99小视频 | 国产激情一级毛片久久久 | 色视频网站色视频播放 | 新人人影视 | 色欲AV在线观看国产精品 | 最近中文国语字幕在线播放视频 | 在线观看免费的小电影网站 | 在线观看电影 | 乱码一卡二卡新区永久入口 | 波多野结衣办公室在线 | 春色校园亚洲综合小说 | 五月激情综合网 | 久热亚洲精品一区二区 | 另类专区av无码 | 国产精品久久久久久爽爽爽床戏 | 污片网站在线观看 | 亚洲日本一期二期三期精华液 | 成人在线日韩 | 999久久欧美人妻一区二区 | 国产情侣作爱视频免费观看 | 奇米777影视成人四色 | 激烈啪啪啪动态图 | 18禁无遮挡羞羞动漫视频免费 | 综合无码色情一区二区 | 成年人在线免费网站 | 国产aⅴ片 | 成人亚洲区无码偷拍 | 丁香花视频在线播放免费观看 | 91精品久久久久久久99蜜桃 | 嗯真s啊快点c | 永久免费看A片在线直播 | 欧美视频导航 | 午夜色情影视免费播放 | 国产成人高清亚洲一区app | 色偷偷亚洲第一成人综合网址 | 色综合天天综合网国产成人 | 日韩一区二区A片免费观看 日韩一级视频 | 欧美狠狠 | 色妃网 | 亚洲卡一卡二卡三 | 国产chinesehdxxxx大胸 | 久久国产免费 | stranger things| 人与禽ZOZO性伦 | 欧美剧场成人精品午夜 | 91破处视频| 午夜一级毛片不卡 | 国产人久久人人人人爽 | 脱女学小内内摸出水网站免费 | 激情六月天婷婷 | 国产AV亚洲精品久久久久久小说 | 久久国产精品人妻无码 | 香蕉成人啪国产精品视频综合网 | 97人妻一区二区精品免费 | 91午夜精品亚洲一区二区三区 | 337p日本亚洲 | 色综合第一页 | 欧美日韩国产亚洲一区二区三区 | 欧美 亚洲 国产 在线 第1页 | 国产不卡在线播放 | 国产成人18黄网站在线观看网站 | 99视频这里只有精品国产 | 2024国精产品一二二线精华液 | 国产三级黄色毛片 | 日韩手机视频 | 国产又黄又猛又粗又爽的A片 | 国产精品高潮呻吟久久影视A片 | 国产成人不卡亚洲精品91 | 影音先锋资源站av资源 | 国产精品变态重口在线 | 爱你千万次韩剧在线观看 | 成人福利在线播放 | 欧美牲 | 伊人在香蕉| 簧片在线免费观看 | 国产欧美成人一区二区A片 国产女人乱人伦精品一区二区 | 内射在线CHINESE | chinese熟女熟妇m1f | 黑人巨大两根一起挤进A片小说 | 蜜桃色欲AV久久无码精品 | 99re6在线观看 | 性色吧| 国产精品久久久久影院免费 | 和漂亮老师做爰5中文字幕 黑巨茎大战俄罗斯白人美女 | 亚洲精品久久久久久中文 | 日本h视频 | 小秘书夹得好紧太爽H大肉乳 | 欧美一区亚洲 | 亚洲精品一区二区精华液 | 国产精品乱码一区二三区 | 太色了影视 | 国内免费高清在线观看 | 精品综合久久久久久蜜月 | 日本一曲二曲三曲高清 | 免费在线黄网站 | 久久人人澡 | 曰本人做爰大片免费观看一 | 99se亚洲综合色区 | 国产高清管线视频免费 | 亚洲AVAV天堂AV在线网爱情 | 亚洲欧美中文字幕5发布 | 在线观看黄网视频免费播放 | 狠狠躁日日躁夜夜躁A片小说按摩 | 国产午夜在线视频 | 欧美亚洲日韩在线在线影院 | 欧美色道| 97色一色图片 | 免费看片A级毛片免费看 | 国产手机视频在线 | 男女裸交无遮挡啪啪激情试看 | 深夜你懂的在线网址入口 | 五月深爱婷婷 | 国产三级视频在线 | 91免费精品国自产拍在线不卡 | 99精品电影一区二区免费看 | 成人美女免费网站视频 | 可以直接看的av网址站 | 成人性生交A片免费看麻豆 成人性生交大片免费看中国A片 | 黄色福利片 | 亚洲第一AAAAA片 | 少妇人妻真实偷人精品视频 | 国产精品久久久久久永久牛牛 | 日本a级影院 | 日本高清一卡二卡三卡四卡无卡 | 国产精品久久精品 | 国产偷人妻精品一区 | 亚洲欧美精品一区天堂久久 | 免费看一区二区三区 | 国产亚洲精品久久久一区 | 免费网站毛片 | 国产精品久久久AV久久久 | 国产又粗又黄又爽的A片精华液 | 污污又黄又爽免费的网站 | 精品a级片| 中文字幕乱码一区二区欧美 | 国产欧美成人一区二区A片 国产女人乱人伦精品一区二区 | 日韩国产免费一区二区三区 | 亚洲欧美一区二区三区图片 | 人妻无码AV久久一二三区 | 欧美人与动牲交免费观看视频 | 精品日韩 | 亚洲凤凰av免费观看 | 蜜桃AV麻豆AV果冻传媒 | 国产69精品久久久久观看软件 | 欧美激情视频二区三区 | 精品国产网 | 欧美成人亚洲国产精品 | 中文区中文字幕免费看 | 日韩久久网 | 日韩成人黄色片 | 日韩视频一 | 精品人妻少妇一区偷拍视频 | 内射中出无码护士在线 | 日本高清在线观看视频www | 最近高清无吗免费看 | 在线观看播放理论片 | 60岁老年熟妇在线无码 | 最近中文国语字幕在线播放 | v片免费看| 欧美第八页 | 国产91观看| 乱子轮熟睡1区 | 欧美变态老妇重口与另类 | 黑人大战亚裔美女 | 狠狠色噜噜狠狠狠狠69 | 97精品一区二区视频在线观看 | 精品国产中文字幕在线视频 | 中文字幕综合在线 | 男女爽爽午夜18污污影院 | 亚洲视频日本有码中文 | 亚洲不卡高清免v无码屋 | 久久精品亚洲综合一品 | 亚洲熟妇无码乱子AV电影 | 少妇高潮惨叫久久久久久欧美 | 91蝌蚪国产 | 成熟YIN荡美妞A片视频麻豆 | 老太婆毛片 | 四虎影视在线看免费 720p | 日本视频一区二区 | 全部免费的毛片视频观看 | 伦理电影在线视频网站天堂 | 99爱精品 | 91网站免费观看 | 日韩内射美女片在线观看网站 | 久久综合亚洲鲁鲁五月天欧美 | 狠狠操欧美 | 精品视频在线播放 | 亚洲精品伦理熟女国产一区二区 | 国产福利小视频尤物98 | 一本到一本到高清视频在线观看 | 亚洲性无码A片在线观看尖叫 | 免费a网址| 国产亚洲AV片在线观看16女人 | 国产激情视频在线观看首页 | 日本久久精品毛片一区随边看 | 久久综合久色欧美综合狠狠 | 把女人弄爽A片特黄大片在线 | 亚洲AV久久无码精品夜夜挺 | 色网址在线观看 | 最新韩国r剧2019在线观看 | 人妻换人妻互换A片爽电影 人妻精品国产一区二区 | 奇米777四色影视 | 岛国三级 | 国精产品一区二区三区 | 伊人久久99 | 亚洲阿v天堂无码在线 | 日韩亚洲制服丝袜中文字幕 | 色吊丝永久性观看网站 | 久久99精品久久久久久噜噜丰满 | 日本老太做爰XX0LD | 国产精品久久久久久久久动漫 | 千涩成人网 | 2018精品国产一区二区 | 亚洲午夜久久久久久91 | 刺激性A片欧美激情免费 | 成人5252色 | 天天干天天操天天插 | 欧美精品黄页在线观看大全 | 中文字幕无码人妻AAA片 | 亚洲区视频在线观看 | 青青青在线视频国产 | 国产精品69人妻无码久久久 | 国产精品美女WWW爽爽爽视频 | 日本黄线在线播放免费观看 | 中文字幕精品AV一区二区五区 | 日本精品无码久久久久三级国产 | 88海外华人免费 | 久草最新网址 | 亚洲精品久久精品一区二区 | 四虎影视国产在线观看精品 | 一个人看免费视频www在线观看 | 91制片厂 果冻传媒 天美传媒 | 国产一卡2卡三卡4卡免费网站 | 国产精品久久久久久日本一道 | 黄色在线播放网址 | 小77论坛 唯美清纯 逍遥五月天 | 亚洲 欧美 自拍 美腿 卡通 | 天美麻豆| 国产精品视频一区牛牛视频 | 91快射| 日本最新在线不卡免费视频 | 免费伦费一区二区三区四区 | 色情大尺度吃奶做爰在线观看 | 亚洲一区免费观看 | 五月丁香啪啪激情综合5109 | 青草青草久热精品视频在线网站 | 日韩在线视频精品 | 8x视频在线 | 在线国产播放 | 亚洲自偷自拍另类图片 | 午夜在线观看网站 | 免费观看又色又爽又黄的 | 亚洲综合精品香蕉久久网97 | 日本三级香港三级韩国三级 | 97在线视频免费人妻 | 少妇做爰片AA | av狼 地址 | 九九久久九九久久 | 无码精品人妻一区二区三区... | 国产成人精品免费视频网页大全 | 日韩欧美一区二区三区在线 | 日韩欧美伦理片 | 韩日一区二区三区 | 精品无人区一区二区三区a 精品无人区乱码一区二区三区手机 | 大片性播放器 | 三级毛片免费 | 男女做爰全过程免费现看 | 熟女人妻水多爽中文字幕 | 苍井空电影去哪儿看网址 | 天天综合天天看夜夜添狠狠玩 | 青草园网站在线观看 | 人人舔人人爱 | 男主开会桌下被C得合不拢H | 日本一线a视频免费观看 | 天天综合天天看夜夜添狠狠玩 | 久久久久免费精品国产小说 | jizz亚洲| 欧洲精品色 | 亚州少妇无套内射激情视频 | 乖宝真紧H嘶爽老子H | 国语对白清晰好大好白在线 | 女主床戏被进高H | 免费网站观看WWW在线观看 | 北条麻妃 中文字幕 | 2022免费国产精品福利在线 | 日韩欧美视频一区二区 | 日本xxwwwxxxx| 翁莹情乱50章三人同床 | 国产极品JK白丝喷白浆羞羞 | 污网址在线观看 | 男女做爰全过程免费现看 | 国产av1插花菊综合网 | 一区二区三区不卡视频 | 国精产品自偷自偷综合下载 | 亚洲国产精品成人精品A片 亚洲国产高清在线观看视频 | 免费视频国产 | 3d肉蒲团之喜爱夜蒲 | 国产精品永久在线 | 国产真实乱人偷精品人妻图 | 全黄H全肉短篇禁乱 | 麻豆传煤官网APP入口 IOS | 久草国产在线播放 | 欧美日本中文字幕 | 亚洲一区二区观看播放 | 国产麻豆放荡AV剧情演绎 | 日本高清免费观看视频在线 | 天天插天天干天天射 | 色五五月五月开 | 免费国产作爱视频网站 | 五月色播先锋在线丁香 | 桃花综合久久久久久久久久网 | 99久久综合九九亚洲 | 日本一本免费线观看视频 | 天天爽夜夜操 | 国产偷抇久久精品A片蜜臀AV | 亚洲色综合中文字幕在线 | 99精品免费久久久久久久久日本 | 亚瑟在线视频免费视频观看 | 欧洲不卡一卡2卡三卡4卡网站 | WWW亚洲精品久久久无码 | 亚欧色一区W666天堂 | 亚洲 欧美 校园 春色 小说 | 日本高清视频色视频免费 | 精品1区2区3区产品乱码 | 亚洲色欲色欲202477小说 | 免费观看欧美成人1314w色 | 日韩精品免费在线观看 | 欧洲每年百万吨电子垃圾流向亚非 | 插B内射18免费视频 插吧插吧综合网 | 一色一伦一区二区三区 | 色欲国产麻豆精品AV免费 | 免费网站高清在线观看视频 | 久久国产精品免费看 | 大陆一级毛片免费视频观看 | 日韩色情综合网 | 要狠狠撸 | 国产精品影视 | 韩国久久久久无码国产精品 | 国产一级特黄高清免费大片dvd | 欧美亚洲免费久久久 | 伦理电影中文字幕韩国在线观看 | 中文字幕视频免费在线观看 | 搡东北熟妇老女人 | 国产亚洲精品久久久久秋霞不卡 | 玖玖成人 | caoporn国产| 午夜福利1692免费视颍 | 毛片黄在线看免费 | 免费视频国产在线观看 | 国色天香精品一卡2卡3卡4公司 | 在线播放国产不卡免费视频 | 天美传媒新剧国产资源 | 九一毛片 | tobu8 hd| 国产又黄又猛又粗又爽的A片动漫 | 天堂网ww| 国产精品国产三级国产普通话对白 | 久久成人麻豆午夜电影 | 好硬啊进得太深了A片无码视频 | 乱H合集系列小说目录男男 乱精品一区字幕二区 | 日本在线观看一级高清片 | 欧美日本日韩aⅴ在线视频 欧美日本日韩 | 快穿被各种男主强好爽H | 亚洲视频999 | 亚洲欧美日本国产 | 2022日韩欧美国国产AV | 骚宝宝把我夹射好不好?年上 | 国产人澡人澡澡澡人碰视频 | 日韩欧无码一区二区三区免费不卡 | 亚洲免费久久 | 国内精品不卡一区二区三区 | 色天使色护士在线视频 | 天天夜夜啦啦啦 | 校园H所有人随时随地做 | 乱亲H女秽乱常伦强强和苹苹 | 高强度辣爽文 全是肉NP | 夜插插 | 亚洲 图片 另类 综合 小说 | 乱码视频午夜间在线观看 | 色综合欧美| 91精品中文字幕 | 亚洲在线日韩伦理片 | 男男BL各种姿势地方PLAY文 | 久久久999国产精品 久久久91精品国产一区二区三区 | 日本高清在线一区二区三区 | 92看看福利1000集合集免费 | 天天躁夜夜躁狠狠躁2023 | 午夜AV精品一区二区三区 | 韩国影片爱的色放 | 免费AA片少妇人AA片直播 | 欧美亚洲日本国产 | 欧美日韩精品一区二区三区视频 | 色丁香综合| 国精品日韩欧美一区二区三区 | 99久久免费午夜国产精品 | 久久视频在线视频观看99 | 秋霞日韩一区二区三区在线观看 | xxxxhd欧美精品 | 狠狠插视频 | 伦理片97影视网 | 国产成人精品日本亚洲18图 | 91产国天堂游戏 | 日韩精品在线视频 | 欧美黑人xxxx| 操亚洲女人 | 香蕉人人精品 | 免费国产成人高清在线观看网站 | a免费网站 | 欧美激情精品久久久久久大尺度 | 九九亚洲精品 | 国产精品久久久久影院 | 亚洲综合香蕉 | 99久久国产露脸人妻精品 | 欧美特级限制片高清 | www.欧美色 | 嫩草AV久久伊人妇女超级A | 成人v| 中文无码有码亚洲 欧美 | 欧美性xxxx另类 | 四房网| 欧美性影院 | 鲁鲁在线视频 | 91免费福利 | 香港三级日本三级妇三级 | 日韩做A爰片久久毛片A片 | 久久91综合国产91久久精品 | 国产一区二区三区美女在线观看 | 国模嘉妮极品美胞 | 国产精品久久久久9999高清 | 黄色三级免费观看 | 国产成人综合视频 | 欧美一区二区在线免费观看 | 男女做羞羞的事视频免费观看无遮挡 | 久久精品国产99久久无毒不卡 | 免费看的黄网站 | 少妇做爰免费视看片 | 2019最新国产高清不卡a | 国产xx肥老妇视频奂费 | 亚洲m男在线中文字幕 | 精品一区二区三区AV天堂 | 亚洲中文 字幕 国产 综合 | 99好久被狂躁A片视频无码刻晴 | 国产亚洲日本精品无码电影 | 美味三姐妹在线观看 |