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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

在Java中使用Protocol Buffers

發(fā)布時(shí)間:2024/4/11 java 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Java中使用Protocol Buffers 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這份教程為Java開發(fā)者提供了使用 Protocol Buffer 的基本介紹。通過(guò)創(chuàng)建一個(gè)簡(jiǎn)單的示例應(yīng)用,它展示了

  • .proto 文件中定義消息格式。
  • 使用 Protocol Buffer 編譯器。
  • 使用Java Protocol Buffer API讀寫消息。

這不是一個(gè)在Java中使用 Protocol Buffer 的全面指南。更多詳細(xì)的信息,請(qǐng)參考Protocol Buffer語(yǔ)言指南, Java API參考,Java Generated Code Guide,和 編碼參考。

為什么使用Protocol Buffers?

我們將使用的例子是一個(gè)非常簡(jiǎn)單的 "address book" 應(yīng)用,它可以從文件讀取和向文件寫入人們的聯(lián)系人詳情。地址簿中的每個(gè)人具有一個(gè)名字 (name),ID,電子郵件地址 (email address),和聯(lián)系人電話號(hào)碼 (contact phone)。

你要如何序列化和提取這樣的結(jié)構(gòu)化數(shù)據(jù)呢?有一些方法可以解決這個(gè)問(wèn)題:

  • 使用Java序列化接口。這是默認(rèn)的方法,因?yàn)樗蔷幊陶Z(yǔ)言內(nèi)建的,但它有一個(gè)廣為人知的問(wèn)題 (參見Josh Bloch的Effective Java,pp. 213),而且如果你需要與用C++或Python編寫的應(yīng)用共享數(shù)據(jù)時(shí)不能很好的工作。
  • 你可以發(fā)明一種特別的方式來(lái)將數(shù)據(jù)項(xiàng)編碼為一個(gè)字符串 —— 比如將4個(gè)int值編碼為"12:3:-23:67"。這是一個(gè)簡(jiǎn)單而靈活的方法,盡管它需要編寫一次性的編碼和解析代碼,而且解析消耗一小段運(yùn)行時(shí)代價(jià)。這對(duì)于編碼非常簡(jiǎn)單的數(shù)據(jù)是最好的方式。
  • 將數(shù)據(jù)序列化為XML。這種方法可能非常具有吸引力,因?yàn)閄ML是 (有點(diǎn)) 人類可讀的,而且它有大量編程語(yǔ)言的bindings庫(kù)。如果你想要與其它的應(yīng)用/項(xiàng)目共享數(shù)據(jù)的話,這可能是一個(gè)很好的選擇。然而,XML是臭名昭著的空間密集,而且編碼/解碼它需要消耗應(yīng)用大量的性能開銷。而且,瀏覽一個(gè)XML DOM樹也被認(rèn)為比通常瀏覽類中的簡(jiǎn)單字段更復(fù)雜。

Protocol buffers 是解決這個(gè)問(wèn)題靈活,高效,自動(dòng)化的方案。通過(guò) Protocol buffers ,你可以編寫一個(gè) .proto 描述你想要存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)。通過(guò)它, Protocol buffers 編譯器創(chuàng)建一個(gè)類,以一種高效的二進(jìn)制格式實(shí)現(xiàn)自動(dòng)地編碼和解析 Protocol buffers 數(shù)據(jù)。生成的類為構(gòu)成一個(gè) Protocol buffers 的字段提供了getters和setters方法,并處理讀取和寫入 Protocol buffers 的細(xì)節(jié)。重要地是, Protocol buffers 格式通過(guò)使代碼依然能夠讀取用老的格式編碼的數(shù)據(jù)來(lái)支持隨著時(shí)間對(duì)格式的擴(kuò)展。

在哪里可以找到示例代碼

源碼包中包含的示例代碼,在"examples" 目錄下。在這里下載。

定義你的協(xié)議格式

為了創(chuàng)建你的地址簿應(yīng)用,你需要先創(chuàng)建一個(gè) .proto 文件。 .proto 文件中的定義很簡(jiǎn)單:為每個(gè)你想要序列化的數(shù)據(jù)結(jié)構(gòu)添加一個(gè) 消息(message) ,然后為消息中的每個(gè)字段指定一個(gè)名字和類型。這里是定義你的消息的 .proto 文件,addressbook.proto。

package tutorial;option java_package = "com.example.tutorial"; option java_outer_classname = "AddressBookProtos";message Person {required string name = 1;required int32 id = 2;optional string email = 3;enum PhoneType {MOBILE = 0;HOME = 1;WORK = 2;}message PhoneNumber {required string number = 1;optional PhoneType type = 2 [default = HOME];}repeated PhoneNumber phone = 4; }message AddressBook {repeated Person person = 1; }

如你所見,語(yǔ)法與C++或Java類似。讓我們看一下這個(gè)文件的每個(gè)部分,并看一下它做了什么。

.proto 文件以一個(gè)包聲明開始,這用于防止不同項(xiàng)目間的命名沖突。在Java中,包名被用作Java包,除非你已經(jīng)顯式地指定了 java_package,如我們這里看到的。即使你不提供 java_package,你依然應(yīng)該定義一個(gè)普通的 package 以避免Protocol Buffers命名空間中的沖突,以及在非Java語(yǔ)言中。

聲明了包之后,你可以看到兩個(gè)Java特有的選項(xiàng): java_packagejava_outer_classnamejava_package 指定生成的類應(yīng)該放在什么Java包名下。如果你沒有顯式地指定這個(gè)值,則它簡(jiǎn)單地匹配由package 聲明給出的Java包名,但這些名字通常都不是合適的Java包名 (由于它們通常不以一個(gè)域名打頭)。 java_outer_classname 選項(xiàng)定義應(yīng)該包含這個(gè)文件中所有類的類名。如果你沒有顯式地給定java_outer_classname ,則將通過(guò)把文件名轉(zhuǎn)換為首字母大寫來(lái)生成。比如"my_proto.proto",默認(rèn)情況下,將使用 "MyProto" 做為它的外層類的類名。

接下來(lái),定義你的消息。消息只是包含了具有類型的字段的聚合。許多標(biāo)準(zhǔn)的簡(jiǎn)單數(shù)據(jù)類型可用作字段類型,包括bool,int32,float,double,和string。你也可以通過(guò)使用消息類型作為字段類型來(lái)給你的消息添加更多結(jié)構(gòu) —— 在上面的例子中,Person消息包含了多個(gè)PhoneNumber消息,同時(shí)AddressBook消息包含Person消息。你甚至可以在其它消息中嵌套的定義消息類型 —— 如你所見,PhoneNumber類型是在Person中定義的。如果你想要你的字段值為某個(gè)預(yù)定義的值列表中的某個(gè)值的話,你也可以定義enum類型 —— 這里你想要指定電話號(hào)碼是MOBILE,HOME,或WORK中的一個(gè)。

每個(gè)元素上的 " = 1"," = 2"標(biāo)記標(biāo)識(shí)在二進(jìn)制編碼中使用的該字段唯一的 "tag" 。Tag數(shù)字 1-15 比更大的數(shù)字在編碼上少一個(gè)字節(jié),因而作為一種優(yōu)化,你可以決定將那些數(shù)字用作常用的或重復(fù)的元素的tag,而將16及更大的數(shù)字tag留給更加不常用的可選元素。重復(fù)字段中的每個(gè)元素需要重編碼tag數(shù)字,因而這種優(yōu)化特別適用于重復(fù)字段。

每個(gè)字段必須用下面的修飾符中的一個(gè)來(lái)注解:

  • required:字段必須提供,否則消息將被認(rèn)為是 "未初始化的 (uninitialized)"。嘗試構(gòu)建一個(gè)未初始化的消息將拋出一個(gè) RuntimeException。解析一個(gè)未初始化的消息將拋出一個(gè) IOException。此外,required字段的行為與optional字段完全相同。

  • optional:字段可以設(shè)置也可以不設(shè)置。如果可選的字段值沒有設(shè)置,則將使用默認(rèn)值。對(duì)于簡(jiǎn)單的類型,你可以指定你自己的默認(rèn)值,如我們?cè)诶又袨殡娫捥?hào)碼 類型 做的那樣。否則,將使用系統(tǒng)默認(rèn)值:數(shù)字類型為0,字符串類型為空字符串,bools值為false。對(duì)于內(nèi)嵌的消息,默認(rèn)值總是消息的 "默認(rèn)實(shí)例 (default instance)" 或 "原型(prototype)",它們沒有自己的字段集。調(diào)用accessor獲取還沒有顯式地設(shè)置的 optional (或required) 字段的值總是返回字段的默認(rèn)值。

  • repeated:字段可以重復(fù)任意多次 (包括0)。在 protocol buffer 中,重復(fù)值的順序?qū)⒈槐A簟⒅貜?fù)字段想象為動(dòng)態(tài)大小的數(shù)組。

你將找到一個(gè)編寫 .proto 文件的完整指南 —— 包括所有可能的字段類型 —— 在Protocol Buffer Language Guide 一文中。不要尋找與類繼承類似的設(shè)施 —— protocol buffer 不那樣做。

編譯你的Protocol Buffers

現(xiàn)在你有了一個(gè).proto,接下來(lái)你需要做的事情是生成讀寫 AddressBook (及Person 和 PhoneNumber) 消息所需的類。要做到這一點(diǎn),你需要在你的 .proto 上運(yùn)行 Protocol Buffers 編譯器protoc:

  • 如果你還沒有安裝編譯器,則下載包,并按照README的指示進(jìn)行。

  • 現(xiàn)在運(yùn)行編譯器,指定源目錄 (放置你的應(yīng)用程序源代碼的地方 —— 如果你沒有提供則使用當(dāng)前目錄),目的目錄 (你希望放置生成的代碼的位置;通常與$SRC_DIR相同),你的.proto的路徑。在這個(gè)例子中,你... :

  • protoc -I=$SRC_DIR --java_out=$DST_DIR $SRC_DIR/addressbook.proto

    由于你想要Java類,所以使用 --java_out 選項(xiàng) —— 也為其它支持的語(yǔ)言提供了類似的選項(xiàng)。

    這將在你指定的目的目錄下生成com/example/tutorial/AddressBookProtos.java

    Protocol Buffer API

    讓我們看一下生成的代碼,并看一下編譯器都為你創(chuàng)建了什么類和函數(shù)。如果查看 AddressBookProtos.java,你可以看到它定義了一個(gè)稱為 AddressBookProtos 的類,其中嵌套了為你在 addressbook.proto 中描述的每個(gè)消息的類。每個(gè)類都有它自己的 Builder 類,你可以用來(lái)創(chuàng)建那個(gè)類的實(shí)例。你可以在下面的 Builders vs. Messages 小節(jié)中找到更多關(guān)于builders的信息。

    消息和builders具有為消息的每個(gè)字段自動(dòng)生成的accessor方法;消息只有g(shù)etters,而builders則同時(shí)具有g(shù)etters和setters。這里是 Person 類的一些accessors (省略實(shí)現(xiàn)以便于簡(jiǎn)潔):

    // required string name = 1; public boolean hasName(); public String getName();// required int32 id = 2; public boolean hasId(); public int getId();// optional string email = 3; public boolean hasEmail(); public String getEmail();// repeated .tutorial.Person.PhoneNumber phone = 4; public List<PhoneNumber> getPhoneList(); public int getPhoneCount(); public PhoneNumber getPhone(int index);

    同時(shí) Person.Person 類具有相同的getters外加setters:

    // required string name = 1; public boolean hasName(); public java.lang.String getName(); public Builder setName(String value); public Builder clearName();// required int32 id = 2; public boolean hasId(); public int getId(); public Builder setId(int value); public Builder clearId();// optional string email = 3; public boolean hasEmail(); public String getEmail(); public Builder setEmail(String value); public Builder clearEmail();// repeated .tutorial.Person.PhoneNumber phone = 4; public List<PhoneNumber> getPhoneList(); public int getPhoneCount(); public PhoneNumber getPhone(int index); public Builder setPhone(int index, PhoneNumber value); public Builder addPhone(PhoneNumber value); public Builder addAllPhone(Iterable<PhoneNumber> value); public Builder clearPhone();

    如你所見,每個(gè)自動(dòng)都有簡(jiǎn)單的JavaBeans風(fēng)格的getters和setters。每個(gè)單數(shù)的 (required 或 optional) 字段還有 has 方法,如果那個(gè)字段已經(jīng)被設(shè)置了則它們放回true。最后,每個(gè)字段具有一個(gè) clear 方法,用于將字段設(shè)置回它的空狀態(tài)。

    重復(fù)的字段還有一些額外的方法 —— 一個(gè) Count 方法(是列表大小的速記),通過(guò)索引獲取和設(shè)置列表的特定元素的getters和setters,一個(gè) add 方法,將新元素添加到列表的末尾,及一個(gè) addAll 方法,它將一個(gè)裝滿元素的整個(gè)容器添加到列表中。

    注意這些accessor方法是如何以駝峰形式命名的,即使 .proto 文件使用了小寫字母加下劃線。這種轉(zhuǎn)換是由protocol buffer編譯器自動(dòng)地完成的,以產(chǎn)生與標(biāo)準(zhǔn)Java風(fēng)格規(guī)范匹配的類。你應(yīng)該總是在你的 .proto 文件中為字段使用小寫字母加下劃線;這確保了在所有生成的語(yǔ)言中良好的命名實(shí)踐。參考 風(fēng)格指南 來(lái)了解更多好的 .proto 風(fēng)格。

    關(guān)于protocol編譯器為任何特定的字段定義產(chǎn)生什么成員的更多信息,請(qǐng)參考 Java 生成代碼參考。

    枚舉和嵌套類

    生成的代碼包含一個(gè)PhoneType Java 5枚舉,嵌套在 Person 中:

    public static enum PhoneType {MOBILE(0, 0),HOME(1, 1),WORK(2, 2),;... }

    生成的嵌套類型 Person.PhoneNumber,如你期待的那樣,是 Person 的嵌套類。

    Builders和Messages

    由protocol buffer編譯器生成的所有消息類都是不可變的。一旦某個(gè)消息對(duì)象構(gòu)造完成 ,則它不能被修改,如同Java的 String 一樣。要構(gòu)造一個(gè)消息,你必須首先構(gòu)造一個(gè)builder,設(shè)置你想要設(shè)置的字段為你選擇的值,然后調(diào)用builder的 build() 方法。

    你可能已經(jīng)注意到了builder的每個(gè)方法都修改消息并返回另一個(gè)builder。返回的對(duì)象實(shí)際上與調(diào)用方法的那個(gè)builder是同一個(gè)。它被返回以使你可以將多個(gè)setters串在一起放在單獨(dú)的一行代碼上。

    這里是如何創(chuàng)建你想要的 "Person" 實(shí)例一個(gè)例子:

    Person john =Person.newBuilder().setId(1234).setName("John Doe").setEmail("jdoe@example.com").addPhone(Person.PhoneNumber.newBuilder().setNumber("555-4321").setType(Person.PhoneType.HOME)).build();

    標(biāo)準(zhǔn)的消息方法

    每個(gè)消息和builder類還包含大量的其它方法,來(lái)讓你檢查或管理整個(gè)消息,包括:

    • isInitialized() : 檢查是否所有的required字段都已經(jīng)被設(shè)置了。
    • toString() : 返回一個(gè)人類可讀的消息表示,對(duì)調(diào)試特別有用。
    • mergeFrom(Message other): (只有builder可用) 將 other 的內(nèi)容合并到這個(gè)消息中,覆寫單數(shù)的字段,附接重復(fù)的。
    • clear(): (只有builder可用) 清空所有的元素為空狀態(tài)。

    這些方法實(shí)現(xiàn)由所有的Java消息和builders所共享的 MessageMessage.Builder 接口。更多信息,請(qǐng)參考 Message的完整API文檔。

    解析和序列化

    最后,每個(gè)protocol buffer類都有使用protocol buffer 二進(jìn)制格式寫和讀你所選擇類型的消息的方法。這些方法包括:

    • byte[] toByteArray();: 序列化消息并返回一個(gè)包含它的原始字節(jié)的字節(jié)數(shù)組。
    • static Person parseFrom(byte[] data);: 從給定的字節(jié)數(shù)組解析一個(gè)消息。
    • void writeTo(OutputStream output);: 序列化消息并將消息寫入 OutputStream
    • static Person parseFrom(InputStream input);: 從一個(gè) InputStream 讀取并解析消息。

    這些只是解析和序列化提供的一些選項(xiàng)。再次,請(qǐng)參考 Message API 參考 來(lái)獲得完整的列表。

    寫消息

    現(xiàn)在讓我們?cè)囍褂胮rotocol buffer類。你想要你的地址簿應(yīng)用能夠做的第一件事情是將個(gè)人詳情寫入地址簿文件。要做到這一點(diǎn),你需要?jiǎng)?chuàng)建并放置你的protocol buffer類的實(shí)例,然后將它們寫入一個(gè)輸出流。

    這里是一個(gè)程序,它從一個(gè)文件讀取一個(gè)AddressBook,基于用戶輸入給它添加一個(gè)新Person,并再次將新的AddressBook寫回文件。直接調(diào)用或引用由protocol編譯器生成的代碼的部分都被高亮了。

    import com.example.tutorial.AddressBookProtos.AddressBook; import com.example.tutorial.AddressBookProtos.Person; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.IOException; import java.io.PrintStream;class AddPerson {// This function fills in a Person message based on user input.static Person PromptForAddress(BufferedReader stdin,PrintStream stdout) throws IOException {Person.Builder person = Person.newBuilder();stdout.print("Enter person ID: ");person.setId(Integer.valueOf(stdin.readLine()));stdout.print("Enter name: ");person.setName(stdin.readLine());stdout.print("Enter email address (blank for none): ");String email = stdin.readLine();if (email.length() > 0) {person.setEmail(email);}while (true) {stdout.print("Enter a phone number (or leave blank to finish): ");String number = stdin.readLine();if (number.length() == 0) {break;}Person.PhoneNumber.Builder phoneNumber =Person.PhoneNumber.newBuilder().setNumber(number);stdout.print("Is this a mobile, home, or work phone? ");String type = stdin.readLine();if (type.equals("mobile")) {phoneNumber.setType(Person.PhoneType.MOBILE);} else if (type.equals("home")) {phoneNumber.setType(Person.PhoneType.HOME);} else if (type.equals("work")) {phoneNumber.setType(Person.PhoneType.WORK);} else {stdout.println("Unknown phone type. Using default.");}person.addPhone(phoneNumber);}return person.build();}// Main function: Reads the entire address book from a file,// adds one person based on user input, then writes it back out to the same// file.public static void main(String[] args) throws Exception {if (args.length != 1) {System.err.println("Usage: AddPerson ADDRESS_BOOK_FILE");System.exit(-1);}AddressBook.Builder addressBook = AddressBook.newBuilder();// Read the existing address book.try {addressBook.mergeFrom(new FileInputStream(args[0]));} catch (FileNotFoundException e) {System.out.println(args[0] + ": File not found. Creating a new file.");}// Add an address.addressBook.addPerson(PromptForAddress(new BufferedReader(new InputStreamReader(System.in)),System.out));// Write the new address book back to disk.FileOutputStream output = new FileOutputStream(args[0]);addressBook.build().writeTo(output);output.close();} }

    讀消息

    當(dāng)然,如果你不能從地址簿中獲取信息的話,那它就沒什么用了。這個(gè)例子讀取上面例子創(chuàng)建的文件并打印它的所有信息。

    import com.example.tutorial.AddressBookProtos.AddressBook; import com.example.tutorial.AddressBookProtos.Person; import java.io.FileInputStream; import java.io.IOException; import java.io.PrintStream;class ListPeople {// Iterates though all people in the AddressBook and prints info about them.static void Print(AddressBook addressBook) {for (Person person: addressBook.getPersonList()) {System.out.println("Person ID: " + person.getId());System.out.println(" Name: " + person.getName());if (person.hasEmail()) {System.out.println(" E-mail address: " + person.getEmail());}for (Person.PhoneNumber phoneNumber : person.getPhoneList()) {switch (phoneNumber.getType()) {case MOBILE:System.out.print(" Mobile phone #: ");break;case HOME:System.out.print(" Home phone #: ");break;case WORK:System.out.print(" Work phone #: ");break;}System.out.println(phoneNumber.getNumber());}}}// Main function: Reads the entire address book from a file and prints all// the information inside.public static void main(String[] args) throws Exception {if (args.length != 1) {System.err.println("Usage: ListPeople ADDRESS_BOOK_FILE");System.exit(-1);}// Read the existing address book.AddressBook addressBook =AddressBook.parseFrom(new FileInputStream(args[0]));Print(addressBook);} }

    擴(kuò)展一個(gè)Protocol Buffer

    在你發(fā)布使用你的protocol buffer的代碼之后或早或完,你都將毫無(wú)疑問(wèn)的想要 "提升" protocol buffer的定義。如果你想要你的新buffers向后兼容,你的老buffers向前兼容 —— 你當(dāng)然幾乎總是想要這樣 —— 然后你有一些規(guī)則要遵守。在新版本的protocol buffer中:

    • 你 一定不能 修改任何已有字段的tag數(shù)字。
    • 你 一定不能 添加或刪除required字段。
    • 你 可以 刪除可選的或重復(fù)的字段。
    • 你 可以 添加可選或重復(fù)的字段,但你必須使用新的tag數(shù)字 (比如,從未在這個(gè)protocol buffer中使用過(guò)的tag數(shù)字,甚至是在刪除的字段中也是)。

    (這些規(guī)則有 一些例外 ,但它們幾乎從未用到)

    如果你按照這些規(guī)則,老代碼將開心地讀取新消息并簡(jiǎn)單地忽略新字段。對(duì)于老代碼來(lái)說(shuō),刪除的可選字段將簡(jiǎn)單的具有它們的默認(rèn)值,刪除的重復(fù)字段將是空的。新代碼將透明地讀取老消息。然而,請(qǐng)記住新的可選字段將不會(huì)出現(xiàn)在老的消息中,因此你將需要通過(guò)has_顯式地檢查它們是否設(shè)置了,或通過(guò) [default = value] 在你的 .proto 文件中的tag數(shù)字后面提供一個(gè)合理的默認(rèn)值。如果沒有為可選元素指定默認(rèn)值,則會(huì)使用特定于類型的默認(rèn)值代替:對(duì)于字符串,默認(rèn)值是空字符串。對(duì)于booleans,默認(rèn)值是false。對(duì)于數(shù)字類型,默認(rèn)值是0。還要注意如果你添加了一個(gè)新的重復(fù)字段,你的新代碼將不能區(qū)別他是空的 (通過(guò)新代碼) 還是從來(lái)沒有設(shè)置 (通過(guò)老代碼) ,因?yàn)樗鼪]有 has_ 標(biāo)記。

    高級(jí)用法

    Protocol buffers的使用場(chǎng)景不僅僅是簡(jiǎn)單的存取器和序列化。務(wù)必瀏覽 Java API 參考 來(lái)了解你還可以用它做什么。

    由protocol消息類提供的一個(gè)重要功能是 反射 。你可以迭代一個(gè)消息的字段,并在不針對(duì)特定的消息類型編寫你的代碼的情況下,管理它們的值。使用反射的一個(gè)非常有用的方式是將protocol消息轉(zhuǎn)換為其它編碼方式,或從其它編碼方式轉(zhuǎn)換,比如XML或JSON。反射的一個(gè)更高級(jí)的使用可能是查找相同類型的兩個(gè)消息之間的差異,或者開發(fā)某種"protocol消息正則表達(dá)式",你可以編寫表達(dá)式用它匹配某一消息內(nèi)容。如果使用你想象力,則將Protocol Buffers用到比你最初期望的更加廣泛的問(wèn)題的解決中是有可能的!

    反射是作為Message 和 Message.Builder 接口的一部分提供的。

    原文

    總結(jié)

    以上是生活随笔為你收集整理的在Java中使用Protocol Buffers的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    日韩在线高清视频 | 日韩女同一区二区三区在线观看 | 黄色avwww| 中文字幕在线观看av | 不卡精品视频 | 亚洲黄色免费观看 | 国产99久久九九精品 | a在线免费 | 福利视频第一页 | 久热这里有精品 | 欧美精品在线一区二区 | 91看片淫黄大片一级在线观看 | 一区二区三区四区精品视频 | 久久综合狠狠综合 | 欧美日韩观看 | 国产日韩精品在线观看 | 国产99区 | av资源网在线播放 | 国产精品久久久久亚洲影视 | 久草资源在线 | 波多在线视频 | 精品一区二区免费在线观看 | 91漂亮少妇露脸在线播放 | 人人要人人澡人人爽人人dvd | 中文字幕大全 | 九九九九精品九九九九 | 久久综合影院 | 97色资源| 久久国产精品久久精品 | 久久a v视频 | 日韩精品在线视频免费观看 | 天天干 天天摸 天天操 | 草免费视频 | 日本免费久久高清视频 | 亚洲欧美视频网站 | 国产一区二区三区视频在线 | 国产精品18毛片一区二区 | 在线激情小视频 | 亚洲乱码精品久久久久 | 亚洲精品中文字幕在线观看 | 在线超碰av | av观看免费在线 | 在线中文字幕一区二区 | 久久免费片 | 国产手机在线精品 | 国产高清av免费在线观看 | 五月天久久激情 | 久久婷婷国产色一区二区三区 | 狠狠狠色丁香婷婷综合激情 | 91日韩在线专区 | 日本爱爱免费 | 97国产精品免费 | 青青河边草免费观看 | 久久亚洲综合国产精品99麻豆的功能介绍 | 久久久一本精品99久久精品 | 狠狠色丁香 | 狠狠色丁香婷婷综合橹88 | 日韩精品免费在线播放 | 久久99精品久久久久久久久久久久 | 黄色精品一区 | 亚洲一区精品人人爽人人躁 | 97视频免费在线 | 不卡av免费在线观看 | 精品主播网红福利资源观看 | 亚洲成av人影院 | 午夜影院在线观看18 | 91视频在线自拍 | 国产69久久精品成人看 | 日韩高清在线观看 | 成年人在线观看视频免费 | 波多野结衣一区 | 国产精品综合在线观看 | 在线观看国产一区二区 | 免费观看www7722午夜电影 | 欧美视频日韩视频 | 色网av| 99久久精品免费看国产一区二区三区 | 亚洲狠狠干 | 91精品在线免费视频 | 日韩欧美精品在线观看视频 | 中文字幕在线色 | 免费色视频在线 | 久久1区 | av亚洲产国偷v产偷v自拍小说 | 成人片在线播放 | 狠色狠色综合久久 | 国产99中文字幕 | 97超碰免费| 9999精品免费视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 久草干 | 日韩电影在线一区二区 | 91麻豆精品国产91久久久久 | 91成人蝌蚪| 黄色www在线观看 | 91.精品高清在线观看 | 精品国产欧美 | 999国内精品永久免费视频 | 人人玩人人添人人澡97 | 国产亚洲精品久久久久久网站 | 日韩中文字幕免费视频 | 国产精品video| 国产精品无av码在线观看 | 婷婷六月网 | 久草资源在线 | 超碰97在线看 | 国产精成人品免费观看 | 综合在线亚洲 | 国产免费亚洲 | 久久精品韩国 | 久久香蕉影视 | 五月天国产精品 | 91少妇精拍在线播放 | 在线 国产 亚洲 欧美 | 高清国产午夜精品久久久久久 | 国产精品乱码高清在线看 | 在线观看不卡视频 | 亚洲国产97在线精品一区 | 免费在线观看av不卡 | 日韩免费一级a毛片在线播放一级 | 一区二区不卡视频在线观看 | 中文字幕乱在线伦视频中文字幕乱码在线 | 欧美一级免费在线 | 国产一级片视频 | 日黄网站 | 久久免费福利 | 成人在线超碰 | 久久99网| 色88久久 | 国产精品久久久久久久久久免费看 | 成年人视频在线免费观看 | 亚洲日韩精品欧美一区二区 | 欧美xxxx性xxxxx高清 | 国产精品成人自产拍在线观看 | 97成人免费视频 | 九九热精品视频在线播放 | 亚洲一二三在线 | 国产一区在线视频 | 久久久久综合精品福利啪啪 | 91在线免费播放 | 国产无吗一区二区三区在线欢 | 欧美日韩国产二区三区 | 91电影福利 | 欧美日韩视频在线观看一区二区 | avove黑丝 | 色偷偷人人澡久久超碰69 | 国产精品99久久久 | 国产日韩亚洲 | 操操操日日日干干干 | 一区精品久久 | 西西大胆免费视频 | 521色香蕉网站在线观看 | 最近日韩免费视频 | 久久久国产网站 | 国产精品久久久久一区二区三区 | 97超碰在线免费观看 | 久久精品国产一区二区三 | 精品亚洲欧美无人区乱码 | 久久久网站 | 国产午夜在线观看 | 欧美大片mv免费 | 亚洲电影第一页av | 欧美性黄网官网 | 欧美国产日韩一区二区三区 | 色综合久久88色综合天天免费 | 91成人在线看 | 丁香 久久 综合 | www色av| 91九色性视频 | 在线黄色av | 色a综合| 欧美三级高清 | 国产 字幕 制服 中文 在线 | 久久少妇免费视频 | 亚洲成人黄色在线观看 | 久久婷婷视频 | 天堂中文在线视频 | 久久久久久久久久久久电影 | 天天爱天天色 | 国产一级特黄电影 | 超碰伊人网 | 免费视频一区 | 中文字幕第一页在线视频 | 欧美成人日韩 | 久久久受www免费人成 | 色开心| 中文字幕在线网址 | 日日夜夜国产 | 美女视频永久黄网站免费观看国产 | 国产成人精品亚洲日本在线观看 | 久久精品在线 | 在线99| 国产xvideos免费视频播放 | 色999五月色| 日韩视频三区 | 免费v片 | 女人18精品一区二区三区 | 在线91精品| 欧美一区二区三区不卡 | av电影中文字幕在线观看 | 欧美做受高潮电影o | 美女精品久久 | 黄色成人av在线 | 免费看污的网站 | 久久乐九色婷婷综合色狠狠182 | 亚洲在线视频免费 | 欧美精品久久久久久久久久 | 伊人狠狠操 | 麻豆超碰| 美女网站色在线观看 | 天天搞夜夜骑 | 天天操天天操 | 草久在线观看视频 | 天天操天操 | 成人动漫精品一区二区 | 97在线视频免费观看 | 亚洲精品91天天久久人人 | 91九色免费视频 | 91精品国产自产91精品 | av解说在线观看 | 国产精品理论片在线观看 | 久草在线久 | 亚洲人人射 | 有码中文字幕在线观看 | 亚洲天堂精品视频 | 国产一区二区不卡视频 | 蜜臀久久99精品久久久久久网站 | 天天摸日日摸人人看 | 成片免费观看视频999 | 久久久久视 | 久久综合偷偷噜噜噜色 | 亚洲三级黄 | 午夜私人影院 | 日日麻批40分钟视频免费观看 | 亚洲黄色小说网址 | 国产欧美日韩精品一区二区免费 | 国产一区二区三区高清播放 | 婷婷.com| 99在线国产 | 日本精品一区二区三区在线观看 | 久草免费看 | 日韩免费三区 | 国产精品免费久久久 | 在线观看福利网站 | 日韩激情网| 国产精品久久久久久久久久99 | 综合精品在线 | 中文在线资源 | 国产一级片免费视频 | 成人免费视频网 | 天天天干天天天操 | 最新色站 | 久久伦理 | 九月婷婷综合网 | 国产精品男女 | 在线中文字幕视频 | 亚洲精品影视在线观看 | 91丨九色丨蝌蚪丨老版 | 婷婷性综合| 久久精品99国产精品 | 国产黄色看片 | 夜夜视频资源 | 中文字幕在线观看完整版电影 | 大荫蒂欧美视频另类xxxx | 成人一级在线观看 | 中文字幕在线播放av | 免费在线观看不卡av | 手机成人免费视频 | 久久99久久99精品免观看粉嫩 | 免费日p视频 | 中文字幕在线视频第一页 | www.久久视频 | 国产999精品久久久久久麻豆 | 97视频免费观看2区 亚洲视屏 | 国产精品国产三级国产aⅴ9色 | 99久久精品久久久久久动态片 | 久久久久综合精品福利啪啪 | 中文乱幕日产无线码1区 | 精品国产日本 | 黄色av电影网 | 国产伦理久久精品久久久久_ | 久久久噜噜噜久久久 | 中文成人字幕 | 国产精品精品久久久久久 | www麻豆视频 | 午夜av激情| 亚洲欧美日韩一级 | 久久人人精品 | 色婷婷骚婷婷 | 丁香在线观看完整电影视频 | 国产福利91精品一区二区三区 | 久久国产精品久久国产精品 | 欧美片网站yy | 91亚洲精品在线观看 | 国产精品资源在线 | 最近av在线| 97视频久久久 | 国产精品久久一 | 一本一道久久a久久精品蜜桃 | 亚洲综合色av | 亚洲国产手机在线 | 欧美片网站yy | 成 人 黄 色 视频免费播放 | 久久久亚洲影院 | 天天干天天天天 | 亚洲天堂精品视频 | 日韩在线观看 | 免费一区在线 | 青草草在线 | 亚洲精品理论片 | www.黄色片网站 | 成人av中文字幕在线观看 | 热re99久久精品国产66热 | 国产一区二区三区四区在线 | 国产录像在线观看 | 九九九在线观看 | 在线观看免费福利 | 丁香综合av | 国产真实精品久久二三区 | 精品国产一区二区三区日日嗨 | 在线观看完整版免费 | av高清网站在线观看 | 成人av网站在线观看 | 三级黄色a | 婷婷爱五月天 | 免费观看特级毛片 | 啪啪免费试看 | 亚洲欧美日韩不卡 | 成人毛片100免费观看 | 欧美日韩视频 | 亚洲精品乱码久久久久久写真 | 亚洲精品日韩在线观看 | 日韩精品一区二区三区在线播放 | 色99视频| 国产精品麻豆三级一区视频 | 免费av在线| 99视频在线精品 | 成人国产精品入口 | 成人精品久久 | 国产精品一区在线观看你懂的 | 久久免费视频网 | 久久免费视频一区 | 亚洲va欧洲va国产va不卡 | 99精品视频免费 | 亚洲综合精品视频 | 国产美女在线免费观看 | 麻豆精品国产传媒 | 久久中文欧美 | 日日躁天天躁 | 国产永久免费观看 | 蜜臀av在线一区二区三区 | 欧美极品一区二区三区 | 久久久久免费 | 国产精品久久久久久久久久久免费看 | 免费久久99精品国产婷婷六月 | 四虎永久视频 | 免费碰碰| 91精品国产福利在线观看 | 精品欧美在线视频 | 丝袜美腿在线视频 | 99re国产| 久久综合狠狠综合 | 国产精品12345 | 成人av电影免费观看 | 激情网五月 | 麻豆视频在线 | 91精品视频网站 | 日韩精品一区二区三区免费视频观看 | 国产啊v在线 | 韩日在线一区 | 亚洲最大成人网4388xx | 日韩精品一区在线观看 | 天天干,天天干 | 亚洲一区精品人人爽人人躁 | 超碰在线资源 | 欧美污污网站 | 在线 国产 亚洲 欧美 | 91精品专区| 亚洲精品久久久久999中文字幕 | 国产精品久久久久久妇 | 亚洲精品免费视频 | 黄色午夜网站 | 国产精品国产三级在线专区 | 国产在线观看91 | 精品福利国产 | 成人黄色在线视频 | www.天天色.com | 五月花婷婷 | 精品99久久 | 欧美孕交vivoestv另类 | 欧美激情精品久久久 | 18网站在线观看 | 精品久久久久久久久久久久久久久久 | 九九在线高清精品视频 | 大型av综合网站 | 人人澡人摸人人添学生av | 狠狠色丁香婷婷综合欧美 | 午夜色场| 九九涩涩av台湾日本热热 | 精品国产一区二区三区蜜臀 | 国内揄拍国产精品 | 久草com | 中文字幕在线免费观看视频 | 美女网站免费福利视频 | 亚洲精品一区二区三区在线观看 | 99视频网站 | 丰满少妇对白在线偷拍 | 日产中文字幕 | 一区二区三区av在线 | 97国产精品久久 | 久久久www成人免费精品 | 精品久久毛片 | 日本韩国精品一区二区在线观看 | 精品久久精品久久 | 超碰在线日韩 | 国产亚洲精品无 | 亚洲精品一区中文字幕乱码 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 91精品一区二区三区久久久久久 | 人人舔人人插 | 又大又硬又黄又爽视频在线观看 | 久久www免费人成看片高清 | 久久精品久久99精品久久 | 黄色av网站在线观看免费 | 97视频亚洲 | 国产精品久久久久久久久免费 | 亚洲国产精品视频在线观看 | 国产精品免费观看国产网曝瓜 | 麻豆视频免费观看 | 久久精品国产免费看久久精品 | 99看视频在线观看 | 搡bbbb搡bbb视频 | 日日碰狠狠躁久久躁综合网 | 黄在线免费看 | 精品99久久 | 亚洲观看黄色网 | 久久久亚洲精品 | 综合网天天射 | 美女国内精品自产拍在线播放 | 伊人色综合久久天天网 | 久久久蜜桃一区二区 | 四虎影视8848dvd | 国产精品国产亚洲精品看不卡15 | 久久综合欧美精品亚洲一区 | 成年性视频 | 狠狠色狠狠色合久久伊人 | 插插插色综合 | 久久成人高清 | 国产精品视频永久免费播放 | www.99在线观看 | 国产女教师精品久久av | 亚洲精品系列 | 欧美一区二视频在线免费观看 | 日韩av三区 | 国产一级二级视频 | 91麻豆精品一区二区三区 | 91热视频| 高清av免费一区中文字幕 | 国产视频手机在线 | 在线看国产一区 | 免费91在线观看 | 国产精品久久久久久久免费大片 | 亚洲 欧美 变态 国产 另类 | 国产精品视频大全 | 亚洲 欧美 日韩 综合 | 少妇自拍av | 国产.精品.日韩.另类.中文.在线.播放 | 欧美性生活小视频 | 亚洲精品va | 亚洲一区二区麻豆 | avsex| 99免费在线观看视频 | 日韩午夜在线观看 | 国产日韩精品在线观看 | 在线看不卡av | 亚洲天天做| 超碰在线色 | 国产视频在线观看一区二区 | 中文字幕在线播放视频 | 欧美成人91 | 狠狠色网 | 中文字幕一二 | 一区精品久久 | 青青草国产精品 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 久久国产精品影片 | 国产三级视频在线 | 麻豆视频一区 | 午夜精品一二区 | 四虎精品成人免费网站 | 天天曰天天干 | 欧美另类z0zx | 色狠狠狠| 免费在线观看av网址 | 国产高清在线免费观看 | 五月天综合激情网 | 国产亚洲激情视频在线 | 精品国产免费一区二区三区五区 | av片无限看| 国产录像在线观看 | 免费黄在线观看 | 亚洲激情五月 | 国产国语在线 | 92国产精品久久久久首页 | 婷婷久操 | 中文字幕在线观看你懂的 | 一区二区三区在线免费观看视频 | 午夜视频福利 | 国内丰满少妇猛烈精品播 | 毛片.com| 亚洲国产操 | 中文字幕在线播放一区 | 一区中文字幕 | 亚洲成人欧美 | 激情五月在线视频 | 超碰在线免费福利 | 日韩 国产| 天天天操天天天干 | 99热在线看 | 特黄特色特刺激视频免费播放 | 婷婷干五月 | 日韩黄色影院 | 久久午夜精品视频 | 91在线观看高清 | 最近中文字幕完整视频高清1 | 97超碰人人干| 黄色成人毛片 | 91在线免费观看国产 | 亚洲综合最新在线 | 91探花国产综合在线精品 | 五月天天天操 | 国产免费成人 | 日韩av中文在线观看 | 久久丁香网 | 伊人五月天婷婷 | 久久精品国产亚洲aⅴ | 精品国产一区二区三区久久 | 成人一区在线观看 | 久久成人人人人精品欧 | 精品一区二区在线看 | 日韩欧美一二三 | 日韩天堂网| 五月天婷婷免费视频 | 国产成人一区二区三区 | 国产电影一区二区三区四区 | 九色91在线 | 黄视频色网站 | 美女黄久久| 亚洲女人天堂成人av在线 | 色婷婷狠狠五月综合天色拍 | 精品麻豆入口免费 | 亚洲欧美日韩精品久久奇米一区 | 97人人精品| 中文字幕91| 中文字幕在线观看91 | 亚欧日韩成人h片 | 午夜精品一区二区三区视频免费看 | 玖玖爱国产在线 | 欧美日韩高清一区二区三区 | 久章草在线观看 | 在线观看成人一级片 | 婷婷久久久久 | 欧美一区二区视频97 | 久要激情网 | 一级片视频在线 | 日韩在线一区二区免费 | 在线欧美最极品的av | 青青草久草在线 | 人人狠狠综合久久亚洲 | 极品久久久久 | 99精品国产兔费观看久久99 | 91色影院 | 日韩在线视频国产 | 九九视频这里只有精品 | 国内精品视频在线播放 | 国产一级在线免费观看 | 国产一级在线观看视频 | 欧美伦理一区二区三区 | 国产精品自拍av | 视频在线播放国产 | 亚洲国产av精品毛片鲁大师 | 午夜三级毛片 | 免费日韩一区二区 | 中文字幕欲求不满 | 国产又粗又长又硬免费视频 | 9999毛片 | 四虎国产精品永久在线国在线 | 91在线看视频免费 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 免费欧美| 6080yy午夜一二三区久久 | 久草在线手机视频 | 国产精品免费视频一区二区 | 中文字幕久久精品亚洲乱码 | 精品在线一区二区三区 | 久久99这里只有精品 | 国产看片网站 | 国产精品成人一区二区 | 99国产成+人+综合+亚洲 欧美 | 色综合久久综合网 | 免费观看mv大片高清 | 91成年人视频 | 五月婷婷在线视频观看 | 国产成人精品一区二区三区在线观看 | 毛片网站观看 | 久久精品99久久久久久2456 | 成人永久免费 | 亚洲国产欧洲综合997久久, | 久草视频看看 | 日韩一区二区三区免费视频 | 伊人狠狠色 | www.婷婷色 | 日本大片免费观看在线 | 精品一区电影国产 | 精品嫩模福利一区二区蜜臀 | 91片网| 亚洲人成免费网站 | 久久亚洲精品国产亚洲老地址 | 麻豆视频www | wwwwwww色 | 中文字幕观看在线 | 日批视频在线播放 | 日韩精品影视 | 91免费版成人 | 欧美精品在线一区二区 | 亚洲色图22p | www.一区二区三区 | 婷婷丁香花| www.色爱 | 日日干夜夜干 | 亚洲精品久| 超碰免费久久 | 亚洲人精品午夜 | 韩国三级在线一区 | 在线视频一区观看 | av电影一区二区三区 | 成人a级黄色片 | 国产亚洲综合在线 | 国内精品亚洲 | 99综合电影在线视频 | 国产女教师精品久久av | 国产精品国产亚洲精品看不卡 | 久久精品久久精品久久精品 | 欧美日韩另类在线 | 久久久久99精品国产片 | 日韩精品五月天 | 午夜影院在线观看18 | 97人人澡人人添人人爽超碰 | 狠狠色丁婷婷日日 | 欧美精品一区二区蜜臀亚洲 | 久久久久久久久久久久av | 久草网站在线 | 特及黄色片 | 国产永久网站 | 亚洲 综合 国产 精品 | 91丨九色丨91啦蝌蚪老版 | 欧美日韩精品网站 | 97超在线| 久久久久久久久久免费 | 91精品国产三级a在线观看 | 丝袜美腿亚洲 | 日日日日干 | 日日夜夜综合网 | 最新中文在线视频 | 美女视频国产 | 亚洲在线视频网站 | 婷婷网站天天婷婷网站 | 美女网站视频色 | 三级黄色片子 | 免费观看黄色av | 婷婷国产一区二区三区 | 亚洲永久精品国产 | 99电影| 久久免费视频7 | 国产 日韩 欧美 中文 在线播放 | 在线视频黄 | 国产又黄又硬又爽 | 超碰97国产精品人人cao | 中文国产字幕在线观看 | 国产女v资源在线观看 | 日韩精品中文字幕在线 | 亚洲精品乱码久久久久久按摩 | 午夜 久久 tv | 国产三级午夜理伦三级 | 国产综合香蕉五月婷在线 | 国产一区二区三区午夜 | 97精品电影院 | 综合色在线 | 天天伊人狠狠 | 久久久官网 | 久久免费视频这里只有精品 | 国产不卡免费 | 亚洲精品网址在线观看 | 欧美资源在线观看 | 亚欧日韩av| 天天射网站 | 中文字幕日本在线观看 | 黄色av一区| 国产精品专区一 | 日韩最新中文字幕 | 草久视频在线 | 免费毛片一区二区三区久久久 | 欧美少妇xxxxxx | 亚洲狠狠 | 日韩欧美在线播放 | 中文在线中文资源 | 婷婷久久久 | 成人av一级片| 91一区二区三区在线观看 | 青春草国产视频 | 日韩久久一区二区 | 亚洲视频 中文字幕 | 久久久91精品国产一区二区三区 | 一本一本久久a久久精品综合 | 日韩高清久久 | 麻豆免费视频 | 中文在线免费观看 | 日韩一级黄色av | 国产精品成人av久久 | 免费高清无人区完整版 | 最近中文字幕大全 | 免费色视频网站 | 久久久电影 | 精品成人网 | 在线精品观看 | 久久艹综合 | 免费观看成人 | 91在线你懂的 | 国产黑丝一区二区三区 | 日本中文字幕在线视频 | 色老板在线视频 | 成人国产精品av | 国产亚洲精品美女 | 99精品国产99久久久久久福利 | 日韩欧美在线观看 | 高清不卡一区二区在线 | 麻豆传媒视频在线播放 | 日韩欧美在线免费观看 | 久久96国产精品久久99软件 | 麻豆免费精品视频 | 亚洲第一色 | 国产精品视频在线观看 | 国产精品视频资源 | 黄色av网站在线观看 | 国内偷拍精品视频 | av大片免费在线观看 | 国产精品18久久久久白浆 | 在线观看日韩国产 | 狠狠五月婷婷 | 午夜丁香网 | 99精品久久久 | 国产第一页在线观看 | 看全黄大色黄大片 | 日韩理论影院 | 麻豆视频大全 | 午夜av一区 | 久久久久高清毛片一级 | 天天看天天干 | 中文字幕精品www乱入免费视频 | 99精品免费网 | 国产亚洲欧美在线视频 | 亚洲国产福利视频 | 日韩 在线观看 | 欧美日韩国产欧美 | 日韩三级在线 | 69夜色精品国产69乱 | 激情九九| 手机在线欧美 | 操老逼免费视频 | 国产成人久久久77777 | 天天操天天摸天天射 | 91亚洲成人 | 亚洲色图av| 国产免费黄视频在线观看 | 色吊丝av中文字幕 | 91精品色 | 日韩av进入 | 在线播放国产一区二区三区 | 久久国产精品一区二区三区 | 中文在线8新资源库 | 美女久久久 | 亚洲欧美在线观看视频 | 免费韩国av | 夜夜视频 | 麻豆国产视频下载 | 欧美午夜a | 免费在线91| 91精品在线视频观看 | 少妇18xxxx性xxxx片 | av黄色在线播放 | 蜜臀一区二区三区精品免费视频 | 91精品视频免费观看 | 亚洲精品中文字幕视频 | 日日干网| 五月天六月婷婷 | 精品女同一区二区三区在线观看 | 免费在线看成人av | 午夜久久久久久久久久影院 | 六月丁香婷婷久久 | 久久99久久99精品中文字幕 | 黄色1级大片 | 日韩av在线免费看 | 91av资源网| 色婷婷久久一区二区 | 天天色天天草天天射 | 成年人免费观看国产 | 久久tv | 色亚洲激情 | 超碰官网 | 91在线看黄 | www.夜夜操| 久久99久久99久久 | 天天干亚洲 | 国产麻豆传媒 | 久久精品在线视频 | 成年人在线电影 | 久久老司机精品视频 | 亚洲夜夜网 | 欧美中文字幕久久 | 亚洲精品美女久久17c | 一级片在线 | 九九九九热精品免费视频点播观看 | 九九色在线观看 | 中文字幕日韩电影 | 日日干天夜夜 | 一本到在线 | 国产福利a | 国产黄色大全 | 黄色资源在线观看 | 亚洲精品国产精品国产 | 中文字幕丝袜一区二区 | 丝袜少妇在线 | 综合国产在线观看 | 日日夜日日干 | 美女网站黄免费 | 四虎精品成人免费网站 | 五月婷婷色丁香 | 欧美在线视频不卡 | 亚洲日韩精品欧美一区二区 | 国产高清av免费在线观看 | 国产精品九九热 | 国产精品专区h在线观看 | 97视频精品 | 亚洲伦理精品 | 成人教育av| 成人午夜黄色 | 久久综合导航 | av中文字幕免费在线观看 | 国产精品毛片一区 | 欧美日韩网站 | 国产啊v在线 | 国产91对白在线 | 欧美日韩一区二区在线 | 欧美精品一区二区在线播放 | 国产精品成人一区二区三区 | av大片免费在线观看 | 日韩精品久久久久久久电影竹菊 | 亚洲一区二区三区在线看 | 成 人 黄 色 视频 免费观看 | 国产a级精品 | 超碰在线97国产 | 最近免费中文字幕大全高清10 | 91在线免费看片 | 天天躁天天操 | 国产亚洲视频系列 | 欧美日本中文字幕 | 天天爽综合网 | 天堂久色 | 97av在线视频 | 国产精品久久久久久久久蜜臀 | 97精品国产97久久久久久久久久久久 | 亚洲精品裸体 | 亚洲欧美国产视频 | 国产人成看黄久久久久久久久 | 国产特级毛片aaaaaaa高清 | 精品久久五月天 | 日韩精品在线免费播放 | 黄污在线看 | 91中文字幕永久在线 | 国产高清一 | 久色小说 | 国产精品高清免费在线观看 | 国产手机在线精品 | 欧美日韩伦理一区 | 九九免费在线视频 | 人人超碰免费 | www.xxxx变态.com | 中文字幕 第二区 | 久久一本综合 | 国产99久久九九精品 | 91网页版在线观看 | 国产成人久久av免费高清密臂 | 欧美国产精品一区二区 | 精品免费观看视频 | 久久久www免费电影网 | 色婷婷视频 | 精品字幕在线 | 91免费观看视频在线 | 91精品视频在线 | www色com| 深爱五月激情网 | 青青草国产成人99久久 | 亚洲理论视频 | 黄色毛片一级片 | 九九激情视频 | 亚洲精品网站 | 精品国产一区二区三区噜噜噜 | 亚洲va综合va国产va中文 | 片黄色毛片黄色毛片 | av字幕在线 | 免费涩涩网站 | 亚洲精品乱码久久久久久写真 | 成年人国产精品 | 成人av电影免费在线观看 | 国产成人三级三级三级97 | 久草在线官网 | 国产精品普通话 | 91看片淫黄大片91 | 久久久久久久免费看 | 久久免费视屏 | 亚洲丁香久久久 | 五月婷婷综合在线视频 | 在线免费视频a | 久久久亚洲麻豆日韩精品一区三区 | 天天艹天天 | 波多野结衣久久精品 | 日韩专区在线观看 | 丁香六月国产 | 中文字幕电影在线 | 黄色小视频在线观看免费 | 久久不射电影院 | 2019中文字幕第一页 | 在线播放一区二区三区 | 欧美黑人性猛交 | 日韩在线观看视频中文字幕 | 欧亚久久 | 国产无套精品久久久久久 | 日韩理论在线播放 | 亚洲欧美激情精品一区二区 | 99精品视频播放 | 公开超碰在线 | 五月天久久久久久 | 精品国产乱码久久久久久三级人 | 欧美夫妻生活视频 | 亚洲激情在线视频 | 久久综合之合合综合久久 | 日日躁夜夜躁xxxxaaaa | 婷婷综合网 | 久久色网站 | 成人免费观看完整版电影 | 国产第一页在线播放 | 九九在线免费视频 | 麻豆视频免费播放 | 午夜精品久久久久久久99水蜜桃 | 五月婷婷网站 | 黄色一级在线观看 | 综合网伊人 | 久久露脸国产精品 | 欧美在线观看禁18 | 99精品国产在热久久下载 | 2024国产在线 | 色综合亚洲精品激情狠狠 | 亚洲欧美婷婷六月色综合 | 精品高清美女精品国产区 | 久久日韩精品 | 91av精品| 超碰99在线| 久久国产二区 | 综合激情婷婷 | 久热久草 | 日韩影视在线观看 | 国产亚洲永久域名 | 久久成人高清视频 | 99久久精品电影 | 国产色在线 | 久久爱导航 | 五月综合色 | 深爱五月网 | 久久国产女人 | 一区二区精品久久 | 日日夜夜免费精品视频 | 国产小视频在线免费观看视频 | 精品久久久久一区二区国产 | 国产91电影在线观看 | 色视频网站在线观看一=区 a视频免费在线观看 | 欧美日韩性视频 | 久草免费色站 | 天天天天色射综合 | 日韩av在线网站 | 日韩久久精品 | 午夜久久影视 | 91福利视频网站 | 色永久免费视频 | 亚洲精品免费看 | 韩国精品视频在线观看 | 久久爱综合 | 高清在线观看av | 808电影 |