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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python源码剖析[16] —— Pyc文件解析

發布時間:2025/3/15 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python源码剖析[16] —— Pyc文件解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python源碼剖析[16] —— Pyc文件解析??

2008-02-28 18:29:55|??分類: Python |舉報 |字號?訂閱

Python源碼剖析

——Pyc文件解析

本文作者: Robert Chen (search.pythoner@gmail.com )

1.????? PyCodeObjectPyc文件

通常認為,Python是一種解釋性的語言,但是這種說法是不正確的,實際上,Python在執行時,首先會將.py文件中的源代碼編譯成Pythonbyte code(字節碼),然后再由Python Virtual Machine來執行這些編譯好的byte code。這種機制的基本思想跟Java.NET是一致的。然而,Python Virtual MachineJava.NETVirtual Machine不同的是,PythonVirtual Machine是一種更高級的Virtual Machine。這里的高級并不是通常意義上的高級,不是說PythonVirtual MachineJava.NET的功能更強大,更拽,而是說和Java.NET相比,PythonVirtual Machine距離真實機器的距離更遠。或者可以這么說,PythonVirtual Machine是一種抽象層次更高的Virtual Machine

?????? 我們來考慮下面的Python代碼:

[demo.py]

class A:

??? pass

?

def Fun():

??? pass

?

value = 1

str = “Python”

a = A()

Fun()

??????

Python在執行CodeObject.py時,首先需要進行的動作就是對其進行編譯,編譯的結果是什么呢?當然有字節碼,否則Python也就沒辦法在玩下去了。然而除了字節碼之外,還包含其它一些結果,這些結果也是Python運行的時候所必需的。看一下我們的demo.py,用我們的眼睛來解析一下,從這個文件中,我們可以看到,其中包含了一些字符串,一些常量值,還有一些操作。當然,Python對操作的處理結果就是自己碼。那么Python的編譯過程對字符串和常量值的處理結果是什么呢?實際上,這些在Python源代碼中包含的靜態的信息都會被Python收集起來,編譯的結果中包含了字符串,常量值,字節碼等等在源代碼中出現的一切有用的靜態信息。而這些信息最終會被存儲在Python運行期的一個對象中,當Python運行結束后,這些信息甚至還會被存儲在一種文件中。這個對象和文件就是我們這章探索的重點:PyCodeObject對象和Pyc文件。

可以說,PyCodeObject就是Python源代碼編譯之后的關于程序的靜態信息的集合:

[compile.h] /* Bytecode object */ typedef struct { ??? PyObject_HEAD ??? int co_argcount;??????? /* #arguments, except *args */ ??? int co_nlocals;???? /* #local variables */ ??? int co_stacksize;?????? /* #entries needed for evaluation stack */ ??? int co_flags;?????? /* CO_..., see below */ ??? PyObject *co_code;????? /* instruction opcodes */ ??? PyObject *co_consts;??? /* list (constants used) */ ??? PyObject *co_names;???? /* list of strings (names used) */ ??? PyObject *co_varnames;? /* tuple of strings (local variable names) */ ??? PyObject *co_freevars;? /* tuple of strings (free variable names) */ ??? PyObject *co_cellvars;????? /* tuple of strings (cell variable names) */ ??? /* The rest doesn't count for hash/cmp */ ??? PyObject *co_filename;? /* string (where it was loaded from) */ ??? PyObject *co_name;????? /* string (name, for reference) */ ??? int co_firstlineno;???? /* first source line number */ ??? PyObject *co_lnotab;??? /* string (encoding addr<->lineno mapping) */ } PyCodeObject;

?

在對Python源代碼進行編譯的時候,對于一段CodeCode Block),會創建一個PyCodeObject與這段Code對應。那么如何確定多少代碼算是一個Code Block呢,事實上,當進入新的作用域時,就開始了新的一段Code。也就是說,對于下面的這一段Python源代碼:

[CodeObject.py]

class A:

??? pass

?

def Fun():

??? pass

?

a = A()

Fun()

?

Python編譯完成后,一共會創建3PyCodeObject對象,一個是對應CodeObject.py的,一個是對應class A這段Code(作用域),而最后一個是對應def Fun這段Code的。每一個PyCodeObject對象中都包含了每一個代碼塊經過編譯后得到的byte code。但是不幸的是,Python在執行完這些byte code后,會銷毀PyCodeObject,所以下次再次執行這個.py文件時,Python需要重新編譯源代碼,創建三個PyCodeObject,然后執行byte code

很不爽,對不對?Python應該提供一種機制,保存編譯的中間結果,即byte code,或者更準確地說,保存PyCodeObject。事實上,Python確實提供了這樣一種機制——Pyc文件。

Python中的pyc文件正是保存PyCodeObject的關鍵所在,我們對Python解釋器的分析就從pyc文件,從pyc文件的格式開始。

在分析pyc的文件格式之前,我們先來看看如何產生pyc文件。在執行一個.py文件中的源代碼之后,Python并不會自動生成與該.py文件對應的.pyc文件。我們需要自己觸發Python來創建pyc文件。下面我們提供一種使Python創建pyc文件的方法,其實很簡單,就是利用Pythonimport機制。

Python運行的過程中,如果碰到import abc,這樣的語句,那么Python將到設定好的path中尋找abc.pycabc.dll文件,如果沒有這些文件,而只是發現了abc.py,那么Python會首先將abc.py編譯成相應的PyCodeObject的中間結果,然后創建abc.pyc文件,并將中間結果寫入該文件。接下來,Python才會對abc.pyc文件進行一個import的動作,實際上也就是將abc.pyc文件中的PyCodeObject重新在內存中復制出來。了解了這個過程,我們很容易利用下面所示的generator.py來創建上面那段代碼(CodeObjectt.py)對應的pyc文件了。

generator.py

CodeObject.py

import test

print "Done"

?

class A:

pass

?

def Fun():

pass

?

a = A()

Fun()

?

1所示的是Python產生的pyc文件:

可以看到,pyc是一個二進制文件,那么Python如何解釋這一堆看上去毫無意義的字節流就至關重要了。這也就是pyc文件的格式。

要了解pyc文件的格式,首先我們必須要清楚PyCodeObject中每一個域都表示什么含義,這一點是無論如何不能繞過去的。

Field

Content

co_argcount

Code Block的參數的個數,比如說一個函數的參數

co_nlocals

Code Block中局部變量的個數

co_stacksize

執行該段Code Block需要的棧空間

co_flags

N/A

co_code

Code Block編譯所得的byte code。以PyStringObject的形式存在

co_consts

PyTupleObject對象,保存該Block中的常量

co_names

PyTupleObject對象,保存該Block中的所有符號

co_varnames

N/A

co_freevars

N/A

co_cellvars

N/A

co_filename

Code Block所對應的.py文件的完整路徑

co_name

Code Block的名字,通常是函數名或類名

co_firstlineno

Code Block在對應的.py文件中的起始行

co_lnotab

byte code.py文件中source code行號的對應關系,以PyStringObject的形式存在

需要說明一下的是co_lnotab域。在Python2.3以前,有一個byte code,喚做SET_LINENO,這個byte code會記錄.py文件中source code的位置信息,這個信息對于調試和顯示異常信息都有用。但是,從Python2.3之后,Python在編譯時不會再產生這個byte code,相應的,Python在編譯時,將這個信息記錄到了co_lnotab中。

co_lnotab中的byte codesource code的對應信息是以unsigned bytes的數組形式存在的,數組的形式可以看作(byte codeco_code中位置增量,代碼行數增量)形式的一個list。比如對于下面的例子:

Byte codeco_code中的偏移

.py文件中源代碼的行數

0

1

6

2

50

7

這里有一個小小的技巧,Python不會直接記錄這些信息,相反,它會記錄這些信息間的增量值,所以,對應的co_lnotab就應該是01 61 445

2.????? Pyc文件的生成

前面我們提到,Pythonimport時,如果沒有找到相應的pyc文件或dll文件,就會在py文件的基礎上自動創建pyc文件。那么,要想了解pyc的格式到底是什么樣的,我們只需要考察Python在將編譯得到的PyCodeObject寫入到pyc文件中時到底進行了怎樣的動作就可以了。下面的函數就是我們的切入點:

[import.c] static void write_compiled_module(PyCodeObject *co, char *cpathname, long mtime) { ??? FILE *fp; ??? fp = open_exclusive(cpathname); ??? PyMarshal_WriteLongToFile(pyc_magic, fp, Py_MARSHAL_VERSION); ??? ????/* First write a 0 for mtime */ ??? PyMarshal_WriteLongToFile(0L, fp, Py_MARSHAL_VERSION); ??? PyMarshal_WriteObjectToFile((PyObject *)co, fp, Py_MARSHAL_VERSION); ??? ????/* Now write the true mtime */ ??? fseek(fp, 4L, 0); ??? PyMarshal_WriteLongToFile(mtime, fp, Py_MARSHAL_VERSION); ??? fflush(fp); ??? fclose(fp); }

?

這里的cpathname當然是pyc文件的絕對路徑。首先我們看到會將pyc_magic這個值寫入到文件的開頭。實際上,pyc?_magic對應一個MAGIC的值。MAGIC是用來保證Python兼容性的一個措施。比如說要防止Python2.4的運行環境加載由Python1.5產生的pyc文件,那么只需要將Python2.4Python1.5MAGIC設為不同的值就可以了。Python在加載pyc文件時會首先檢查這個MAGIC值,從而拒絕加載不兼容的pyc文件。那么pyc文件為什么會不兼容了,一個最主要的原因是byte code的變化,由于Python一直在不斷地改進,有一些byte code退出了歷史舞臺,比如上面提到的SET_LINENO;或者由于一些新的語法特性會加入新的byte code,這些都會導致Python的不兼容問題。

pyc文件的寫入動作最后會集中到下面所示的幾個函數中(這里假設代碼只處理寫入到文件,即p->fp是有效的。因此代碼有刪減,另有一個w_short未列出。缺失部分,請參考Python源代碼):

[marshal.c] typedef struct { ??? FILE *fp; ??? int error; ??? int depth; ??? PyObject *strings; /* dict on marshal, list on unmarshal */ } WFILE;

?

#define w_byte(c, p) putc((c), (p)->fp)

?

static void w_long(long x, WFILE *p) { ??? w_byte((char)( x????? & 0xff), p); ??? w_byte((char)((x>> 8) & 0xff), p); ??? w_byte((char)((x>>16) & 0xff), p); ??? w_byte((char)((x>>24) & 0xff), p); }

?

static void w_string(char *s, int n, WFILE *p) { ??? fwrite(s, 1, n, p->fp); }

?

在調用PyMarshal_WriteLongToFile時,會直接調用w_long,但是在調用PyMarshal_WriteObjectToFile時,還會通過一個間接的函數:w_object。需要特別注意的是PyMarshal_WriteObjectToFile的第一個參數,這個參數正是Python編譯出來的PyCodeObject對象。

w_object的代碼非常長,這里就不全部列出。其實w_object的邏輯非常簡單,就是對應不同的對象,比如stringintlist等,會有不同的寫的動作,然而其最終目的都是通過最基本的w_longw_string將整個PyCodeObject寫入到pyc文件中。

對于PyCodeObject,很顯然,會遍歷PyCodeObject中的所有域,將這些域依次寫入:

[marshal.c] static void w_object(PyObject *v, WFILE *p) { ??? …… ??? else if (PyCode_Check(v)) ????{ ??????? PyCodeObject *co = (PyCodeObject *)v; ??????? w_byte(TYPE_CODE, p); ??????? w_long(co->co_argcount, p); ??????? w_long(co->co_nlocals, p); ??????? w_long(co->co_stacksize, p); ??????? w_long(co->co_flags, p); ??????? w_object(co->co_code, p); ??????? w_object(co->co_consts, p); ??????? w_object(co->co_names, p); ??????? w_object(co->co_varnames, p); ??????? w_object(co->co_freevars, p); ??????? w_object(co->co_cellvars, p); ??????? w_object(co->co_filename, p); ??????? w_object(co->co_name, p); ??????? w_long(co->co_firstlineno, p); ??????? w_object(co->co_lnotab, p); } …… }

?

而對于一個PyListObject對象,想象一下會有什么動作?沒錯,還是遍歷!!!:

[w_object() in marshal.c] …… else if (PyList_Check(v)) ????{ ??????? w_byte(TYPE_LIST, p); ??????? n = PyList_GET_SIZE(v); ??????? w_long((long)n, p); ??????? for (i = 0; i < n; i++) ????????{ ??????????? w_object(PyList_GET_ITEM(v, i), p); ??????? } } ……

?

而如果是PyIntObject,嗯,那太簡單了,幾乎沒有什么可說的:

[w_object() in marshal.c]

……

else if (PyInt_Check(v)) ????{ ??????? w_byte(TYPE_INT, p); ??????? w_long(x, p); ??? }

……

?

有沒有注意到TYPE_LISTTYPE_CODETYPE_INT這樣的標志?pyc文件正是利用這些標志來表示一個新的對象的開始,當加載pyc文件時,加載器才能知道在什么時候應該進行什么樣的加載動作。這些標志同樣也是在import.c中定義的:

[import.c] #define TYPE_NULL?? '0' #define TYPE_NONE?? 'N' 。。。。。。 #define TYPE_INT??? 'i' #define TYPE_STRING 's' #define TYPE_INTERNED?? 't' #define TYPE_STRINGREF? 'R' #define TYPE_TUPLE? '(' #define TYPE_LIST?? '[' #define TYPE_CODE?? 'c'

?

到了這里,可以看到,Python對于中間結果的導出實際是不復雜的。實際上在write的動作中,不論面臨PyCodeObject還是PyListObject這些復雜對象,最后都會歸結為簡單的兩種形式,一個是對數值的寫入,一個是對字符串的寫入。上面其實我們已經看到了對數值的寫入過程。在寫入字符串時,有一套比較復雜的機制。在了解字符串的寫入機制前,我們首先需要了解一個寫入過程中關鍵的結構體WFILE(有刪節):

[marshal.c] typedef struct { ??? FILE *fp; ??? int error; ??? int depth; ??? PyObject *strings; /* dict on marshal, list on unmarshal */ } WFILE;

?

這里我們也只考慮fp有效,即寫入到文件,的情況。WFILE可以看作是一個對FILE*的簡單包裝,但是在WFILE里,出現了一個奇特的strings域。這個域是在pyc文件中寫入或讀出字符串的關鍵所在,當向pyc中寫入時,string會是一個PyDictObject對象;而從pyc中讀出時,string則會是一個PyListObject對象。

[marshal.c] void PyMarshal_WriteObjectToFile(PyObject *x, FILE *fp, int version) { ??? WFILE wf; ??? wf.fp = fp; ??? wf.error = 0; ??? wf.depth = 0; ??? wf.strings = (version > 0) ? PyDict_New() : NULL; ??? w_object(x, &wf); }

?

可以看到,strings在真正開始寫入之前,就已經被創建了。在w_object中對于字符串的處理部分,我們可以看到對strings的使用:

[w_object() in marshal.c]

……

else if (PyString_Check(v)) ????{ ??????? if (p->strings && PyString_CHECK_INTERNED(v)) ????????{ ??????????? PyObject *o = PyDict_GetItem(p->strings, v); ??????????? if (o) ????????????{ ??????????????? long w = PyInt_AsLong(o); ??????????????? w_byte(TYPE_STRINGREF, p); ??????????????? w_long(w, p); ??????????????? goto exit; ??????????? } ??????????? else ????????????{ ??????????????? o = PyInt_FromLong(PyDict_Size(p->strings)); ??????????????? PyDict_SetItem(p->strings, v, o); ??????????????? Py_DECREF(o); ??????????????? w_byte(TYPE_INTERNED, p); ??????????? } ??????? } ??????? else ????????{ ??????????? w_byte(TYPE_STRING, p); ??????? } ??????? n = PyString_GET_SIZE(v); ??????? w_long((long)n, p); ??????? w_string(PyString_AS_STRING(v), n, p); }

……

?

真正有趣的事發生在這個字符串是一個需要被進行INTERN操作的字符串時。可以看到,WFILEstrings域實際上是一個從string映射到int的一個PyDictObject對象。這個int值是什么呢,這個int值是表示對應的string是第幾個被加入到WFILE.strings中的字符串。

這個int值看上去似乎沒有必要,記錄一個string被加入到WFILE.strings中的序號有什么意義呢?好,讓我們來考慮下面的情形:

假設我們需要向pyc文件中寫入三個string”Jython”, “Ruby”, “Jython”,而且這三個string都需要被進行INTERN操作。對于前兩個string,沒有任何問題,閉著眼睛寫入就是了。完成了前兩個string的寫入后,WFILE.stringspyc文件的情況如圖2所示:

在寫入第三個字符串的時候,麻煩來了。對于這個“Jython”,我們應該怎么處理呢? 是按照上兩個string一樣嗎?如果這樣的話,那么寫入后,WFILE.stringspyc的情況如圖3所示:

我們可以不管WFILE.strings怎么樣了,但是一看pyc文件,我們就知道,問題來了。在pyc文件中,出現了重復的內容,關于“Jython”的信息重復了兩次,這會引起什么麻煩呢?想象一下在python代碼中,我們創建了一個button,在此之后,多次使用了button,這樣,在代碼中,“button”將出現多次。想象一下吧,我們的pyc文件會變得多么臃腫,而其中充斥的只是毫無價值的冗余信息。如果你是Guido,你能忍受這樣的設計嗎?當然不能!!于是Guido給了我們TYPE_STRINGREF這個東西。在解析pyc文件時,這個標志表明后面的一個數值表示了一個索引值,根據這個索引值到WFILE.strings中去查找,就能找到需要的string了。

有了TYPE_STRINGREF,我們的pyc文件就能變得苗條了,如圖4所示:

看一下加載pyc文件的過程,我們就能對這個機制更加地明了了。前面我們提到,在讀入pyc文件時,WFILE.strings是一個PyListObject對象,所以在讀入前兩個字符串后,WFILE.strings的情形如圖5所示:

在加載緊接著的(R0)時,因為解析到是一個TYPE_STRINGREF標志,所以直接以標志后面的數值0位索引訪問WFILE.strings,立刻可得到字符串“Jython”。

3.????? 一個PyCodeObject,多個PyCodeObject

到了這里,關于PyCodeObjectpyc文件,我們只剩下最后一個有趣的話題了。還記得前面那個test.py嗎?我們說那段簡單的什么都做不了的python代碼就要產生三個PyCodeObject。而在write_compiled_module中我們又親眼看到,Python運行環境只會對一個PyCodeObject對象調用PyMarshal_WriteObjectToFile操作。剎那間,我們竟然看到了兩個遺失的PyCodeObject對象。

Python顯然不會犯這樣低級的錯誤,想象一下,如果你是Guido,這個問題該如何解決?首先我們會假想,有兩個PyCodeObject對象一定是包含在另一個PyCodeObject中的。沒錯,確實如此,還記得我們最開始指出的Python是如何確定一個Code Block的嗎?對嘍,就是作用域。仔細看一下test.py,你會發現作用域呈現出一種嵌套的結構,這種結構也正是PyCodeObject對象之間的結構。所以到現在清楚了,與FunA對應得PyCodeObject對象一定是包含在與全局作用域對應的PyCodeObject對象中的,而PyCodeObject結構中的co_consts域正是這兩個PyCodeObject對象的藏身之處,如圖6所示:

在對一個PyCodeObject對象進行寫入到pyc文件的操作時,如果碰到它包含的另一個PyCodeObject對象,那么就會遞歸地執行寫入PyCodeObject對象的操作。如此下去,最終所有的PyCodeObject對象都會被寫入到pyc文件中去。而且pyc文件中的PyCodeObject對象也是以一種嵌套的關系聯系在一起的。

4.????? Python字節碼

Python源代碼在執行前會被編譯為Pythonbyte codePython的執行引擎就是根據這些byte code來進行一系列的操作,從而完成對Python程序的執行。在Python2.4.1中,一共定義了103byte code

[opcode.h]

#define STOP_CODE?? 0

#define POP_TOP???? 1

#define ROT_TWO???? 2

……

#define CALL_FUNCTION_KW?????????? 141

#define CALL_FUNCTION_VAR_KW?????? 142

#define EXTENDED_ARG? 143

?

?????? 所有這些字節碼的操作含義在Python自帶的文檔中有專門的一頁進行描述,當然,也可以到下面的網址察看:http://docs.python.org/lib/bytecodes.html

細心的你一定發現了,byte code的編碼卻到了143。沒錯,Python2.4.1byte code的編碼并沒有按順序增長,比如編碼為5ROT_FOUR之后就是編碼為9NOP。這可能是歷史遺留下來的,你知道,在咱們這行,歷史問題不是什么好東西,搞得現在還有許多人不得不很郁悶地面對MFC :)

Python143byte code中,有一部分是需要參數的,另一部分是沒有參數的。所有需要參數的byte code的編碼都大于或等于90Python中提供了專門的宏來判斷一條byte code是否需要參數:

[opcode.h]

#define HAS_ARG(op) ((op) >= HAVE_ARGUMENT)

?

好了,到了現在,關于PyCodeObjectpyc文件的一切我們都已了如指掌了,關于Python的現在我們可以做一些非常有趣的事了。呃,在我看來,最有趣的事莫過于自己寫一個pyc文件的解析器。沒錯,利用我們現在所知道的一切,我們真的可以這么做了。圖7展現的是對本章前面的那個test.py的解析結果:

?

?

更進一步,我們還可以解析byte code。前面我們已經知道,Python在生成pyc文件時,會將PyCodeObject對象中的byte code也寫入到pyc文件中,而且這個pyc文件中還記錄了每一條byte codePython源代碼的對應關系,嗯,就是那個co_lnotab啦。假如現在我們知道了byte codeco_code中的偏移地址,那么與這條byte code對應的Python源代碼的位置可以通過下面的算法得到(Python偽代碼):

lineno = addr = 0

for addr_incr, line_incr in c_lnotab:

??? ?addr += addr_incr

??? ?if addr > A:

???????? return lineno

? lineno += line_incr

?

下面是對一段Python源代碼反編譯為byte code的結果,這個結果也將作為下一章對Python執行引擎的分析的開始:

i = 1

#?? LOAD_CONST?? 0

#?? STORE_NAME?? 0

?

s = "Python"

#?? LOAD_CONST?? 1

#?? STORE_NAME?? 1

?

d = {}

#?? BUILD_MAP?? 0

#?? STORE_NAME?? 2

?

l = []

#?? BUILD_LIST?? 0

#?? STORE_NAME?? 3

#?? LOAD_CONST?? 2

#?? RETURN_VALUE?? none

?

再往前想一想,從現在到達的地方出發,實際上我們就可以做出一個Python的執行引擎了,哇,這是多么激動人心的事啊。遙遠的天空,一抹朝陽,緩緩升起了……

事實上,Python標準庫中提供了對python進行反編譯的工具dis,利用這個工具,可以很容易地得到我們在這里得到的結果,當然,還要更詳細一些,圖8展示了利用dis工具對CodeObject.py進行反編譯的結果:

在圖8顯示的結果中,最左面一列顯示的是CodeObject.py中源代碼的行數,左起第二列顯示的是當前的字節碼指令在co_code中的偏移位置。

在以后的分析中,我們大部分將采用dis工具的反編譯結果,在有些特殊情況下會使用我們自己的反編譯結果。

總結

以上是生活随笔為你收集整理的Python源码剖析[16] —— Pyc文件解析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

92av视频 | 丁香婷婷激情五月 | 国产福利一区在线观看 | 国产美女视频一区 | 久久国产三级 | 日韩精品久久久免费观看夜色 | 日日摸日日添夜夜爽97 | 久草网视频在线观看 | 免费看污片 | 国产高清 不卡 | 五月天com| 日本精品视频在线播放 | 国产精品精品国产色婷婷 | 日韩欧美高清一区二区三区 | 亚洲精品久久在线 | 久久成人福利 | 97在线看| 99久高清在线观看视频99精品热在线观看视频 | av网址aaa | 亚洲精品毛片一级91精品 | 贫乳av女优大全 | 久久日韩精品 | 欧美最猛性xxxxx(亚洲精品) | 中文字幕在线不卡国产视频 | 日韩精品中文字幕久久臀 | 精品欧美小视频在线观看 | 国产一区麻豆 | 日韩精品免费一区二区三区 | 亚洲精品观看 | 成人性生爱a∨ | 亚洲黄色在线免费观看 | 国内久久精品 | 精品久久精品 | 日本精品午夜 | 九七人人干 | 九九热精品视频在线播放 | 久草视频播放 | 久久精品久久久久久久 | 欧美国产不卡 | 国产性xxxx| 久草影视在线观看 | 日韩欧美aaa | 欧美日韩99 | 久久99久| 国产精品观看视频 | 免费视频网 | 久久涩视频 | 瑞典xxxx性hd极品 | 在线精品视频免费观看 | 最新av在线网址 | 99久久精品无免国产免费 | 日操操 | 精品在线免费观看 | 色婷婷啪啪免费在线电影观看 | av电影一区二区三区 | 五月婷婷色综合 | 天天插天天狠天天透 | av片免费播放 | 成年人三级网站 | 国产中文字幕网 | 亚洲自拍偷拍色图 | 国产91精品在线播放 | 亚洲精品美女在线 | 久久精品黄色 | 五月婷在线 | 日韩三级视频在线观看 | 亚洲精品免费在线观看视频 | 免费看的毛片 | 狠狠狠色丁香综合久久天下网 | 一区中文字幕电影 | 久久第四色 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 天堂av免费 | 国产一级淫片在线观看 | 国产精品99爱 | 丁香久久 | 久久国语| 青青草华人在线视频 | 午夜久久福利影院 | 精品亚洲男同gayvideo网站 | 欧美大片aaa | 精品欧美一区二区三区久久久 | 国产偷v国产偷∨精品视频 在线草 | 欧美激情精品久久久久久 | 在线观看你懂的网站 | 日韩免费中文 | 欧美另类xxxx | av不卡在线看 | 日本巨乳在线 | 国产丝袜美腿在线 | 91视频91蝌蚪 | 亚洲最新av网站 | 成人一级视频在线观看 | 激情网综合 | 日日操天天爽 | 成人免费大片黄在线播放 | 黄色亚洲在线 | 黄色成人影院 | 亚洲视频 视频在线 | 国产自产高清不卡 | 天天综合久久综合 | 五月婷婷综合在线观看 | 久久人人爽av | 亚洲va欧美va国产va黑人 | 国产精选在线 | 在线免费观看羞羞视频 | 最近免费观看的电影完整版 | 亚洲欧美精品一区二区 | 亚洲va综合va国产va中文 | 久久久精品二区 | 成人黄色小说在线观看 | 五月婷婷在线综合 | 久久伊人八月婷婷综合激情 | 西西4444www大胆视频 | 国产精品a成v人在线播放 | 欧美日韩在线免费观看 | 欧美韩国日本在线 | 国产精品欧美一区二区 | 久久九九久久九九 | 日本视频网 | 欧美成人亚洲成人 | 亚洲综合激情小说 | 国产一区自拍视频 | 欧美日韩在线观看视频 | av视屏在线 | 99视频在线观看免费 | 免费视频 三区 | 五月天激情开心 | 91精品国产99久久久久久红楼 | 国产一二三四在线视频 | 国产情侣一区 | 黄色大全免费网站 | 成人一区二区在线观看 | 女人魂免费观看 | 国产精品亚洲片在线播放 | 亚洲天堂香蕉 | 韩日视频在线 | 久久久国产精品成人免费 | 日韩欧美aaa | 综合色婷婷 | 激情文学综合丁香 | 99视频播放| 国产日韩欧美在线看 | 亚洲丝袜一区二区 | 国产电影一区二区三区四区 | 亚洲极色 | 日本中文字幕在线看 | 亚洲精品视频在线免费播放 | 在线а√天堂中文官网 | 国产一级性生活视频 | 日韩最新在线视频 | 亚洲视频axxx | 欧美精品久久99 | 精品播放 | 久久av免费电影 | 99热精品在线 | 天天操夜夜操 | 超碰在线天天 | 亚洲精品综合一区二区 | 在线观看完整版免费 | 欧美一级小视频 | www.五月婷| 久草观看| 精品国产一区二区三区久久久蜜月 | 日韩a在线 | 综合国产视频 | 国产精品免费看 | 久久久精品久久日韩一区综合 | 欧美久久久 | 成人久久国产 | 久久av网| 亚洲国产中文在线 | 中文字幕在线观看一区二区三区 | 91亚洲视频在线观看 | 69国产盗摄一区二区三区五区 | 久久精品国产免费看久久精品 | 国产999精品久久久 免费a网站 | 亚洲国产伊人 | 亚洲一区动漫 | 精品国产免费看 | 麻豆视频91| 国产日韩精品一区二区 | 国产在线精 | 亚洲欧美国产精品va在线观看 | 国产18精品乱码免费看 | 99色人 | 精品欧美日韩 | 亚洲视频免费在线 | 婷婷午夜天 | 2019中文在线观看 | 国产欧美在线一区 | 手机av在线免费观看 | 日韩av高清 | 亚洲精品视频在线 | 日本特黄特色aaa大片免费 | 超碰在线最新网址 | 久久视频 | 激情丁香婷婷 | 欧美精品久 | 午夜久久福利影院 | 精品国产乱码久久久久久浪潮 | 中文字幕在线看视频国产中文版 | 18做爰免费视频网站 | 亚洲电影网站 | 亚洲激情久久 | 成年人视频在线免费观看 | 天堂v中文 | 久久国产精品成人免费浪潮 | 久久好看| 99亚洲国产| 免费视频在线观看网站 | 五月激情丁香图片 | 国产精品一区二区三区在线 | 狠狠地日 | 婷婷激情小说网 | 天天摸日日摸人人看 | av高清一区二区三区 | 黄色片网站av | 亚洲天堂网在线播放 | 亚洲理论视频 | 中文字幕在线视频一区二区三区 | 免费av网址在线观看 | 一区三区视频在线观看 | 久久久av电影 | 国产精品网红直播 | 久久久久久久99 | 2021国产视频 | 久久99亚洲精品久久 | 人人干人人上 | 久久国内精品 | 24小时日本在线www免费的 | 免费在线黄色av | 视频在线91 | 久久久午夜电影 | 五月婷婷丁香六月 | 久久精品成人欧美大片古装 | 天天弄天天干 | 热久久精品在线 | 亚洲精品在线观 | 欧美久久久影院 | 三级动图 | 色99之美女主播在线视频 | 国产精品久久久久久久久久ktv | 婷婷天天色| 碰超在线观看 | 香蕉久草在线 | 国产精品久久艹 | 狠狠干婷婷色 | 国产成人高清 | 狠狠婷婷 | 一区二区三区国 | 久精品视频在线 | 91在线视频免费91 | 亚洲精品乱码久久久久久蜜桃欧美 | 婷婷伊人网 | 久久免费电影 | 亚洲精品视频在线观看网站 | 精品高清美女精品国产区 | 在线欧美小视频 | 亚洲japanese制服美女 | 毛片无卡免费无播放器 | 激情欧美一区二区三区免费看 | 国产成人精品午夜在线播放 | 久草视频2| 日韩成人精品一区二区三区 | 欧美另类69 | 成人av av在线 | 9999激情| 欧美性成人 | 亚洲免费国产视频 | 91视频免费国产 | 日韩精品中文字幕在线不卡尤物 | 三级av在线免费观看 | 国产男女无遮挡猛进猛出在线观看 | 国产在线观看一 | 日韩av成人免费看 | 六月激情久久 | 日日噜噜噜噜夜夜爽亚洲精品 | 91精品视频免费观看 | 成人黄色毛片视频 | 激情五月播播久久久精品 | 亚洲最新视频在线 | 亚洲精品国偷自产在线91正片 | 日韩av综合网站 | 国产精品国产三级国产aⅴ入口 | 午夜久久福利视频 | 中文字幕av在线电影 | 黄网av在线 | 国产综合福利在线 | 人人添人人澡人人澡人人人爽 | 99电影| 99亚洲国产 | 蜜臀av.com| 日韩精品一区二区三区免费观看视频 | 午夜在线免费观看视频 | 日日夜夜操av | 四虎影视成人永久免费观看亚洲欧美 | 中文国产成人精品久久一 | 人人草在线观看 | 在线影院 国内精品 | 国产一线天在线观看 | 亚洲激情五月 | 精品高清美女精品国产区 | 欧美午夜精品久久久久 | 成人一区二区三区中文字幕 | 午夜12点| 亚洲乱码在线观看 | 久久精品国产v日韩v亚洲 | 国产香蕉在线 | 精品国产欧美一区二区三区不卡 | 91九色丨porny丨丰满6 | 国产精品一区二区三区久久 | 亚洲综合视频在线播放 | a视频在线 | 美女黄色网在线播放 | 久久精品久久99精品久久 | 一区二区三区精品在线视频 | 91精品电影| 国产美女网站在线观看 | 久久在视频 | 国产欧美最新羞羞视频在线观看 | 在线免费黄网站 | av一区在线 | 精品视频123区在线观看 | 午夜精品一区二区三区可下载 | av先锋影音少妇 | 日韩大片在线看 | 国产成人精品一区在线 | 亚洲一级黄色av | 天天操天天干天天干 | 免费成人在线视频网站 | 波多野结衣在线观看一区 | 激情在线网址 | 久久免费视频在线观看6 | 色综合天天干 | 日韩久久一区 | 99视频偷窥在线精品国自产拍 | 国外调教视频网站 | 久久99精品波多结衣一区 | 探花视频在线观看 | 欧美中文字幕第一页 | 国产视频一区在线免费观看 | 日本少妇高清做爰视频 | 国产不卡在线播放 | freejavvideo日本免费 | 最近中文字幕免费av | 在线视频福利 | 欧美一级大片在线观看 | 五月天色综合 | 岛国片在线 | 人人草天天草 | 中国一级片视频 | 国产在线观看中文字幕 | 丝袜美腿亚洲 | 久久久久久毛片 | 亚洲高清资源 | 久久精品中文字幕免费mv | 亚洲不卡在线 | 国产中文字幕第一页 | 久草在线视频在线 | 激情久久综合网 | 色婷婷综合久久久中文字幕 | 处女av在线 | 99中文视频在线 | 成人免费观看av | 中文字幕2021 | 久久国产精品99久久久久久老狼 | 久久久五月天 | 成年人av在线播放 | 久久理论电影网 | 亚洲成人动漫在线观看 | 四虎免费在线观看视频 | 波多野结衣视频网址 | 久久久国产精品视频 | 日韩国产欧美视频 | 天天爽天天爽夜夜爽 | 国产亚洲精品久久久久久久久久久久 | 欧美一性一交一乱 | 婷婷婷国产在线视频 | 国产在线精品观看 | 国产黄色av影视 | 国产精品久久久久久久久久久杏吧 | 日日爽夜夜操 | 色91在线视频 | 成人午夜在线观看 | 中文字幕在线观看完整版 | 色婷婷激婷婷情综天天 | www.黄色小说.com | 成人黄色在线观看视频 | 在线免费观看成人 | 国产免费中文字幕 | 97久久精品午夜一区二区 | 日韩三级视频 | 国产一区二区高清不卡 | 在线精品视频免费观看 | 久久黄网站 | 天海冀一区二区三区 | 欧美va在线观看 | av在线等 | 亚洲成人资源网 | 久久人人艹| www麻豆视频 | 欧美精品一区在线发布 | 国产亚洲欧美一区 | 国产精品久久久久久久久久东京 | 久久er99热精品一区二区三区 | 亚洲精品免费在线 | 在线观看视频你懂 | 91成人精品一区在线播放69 | 97爱| 亚洲精品一区二区三区四区高清 | 国产在线观看你懂得 | 国产精品中文在线 | 激情欧美丁香 | 97看片网| 欧美精品久久99 | 日韩女同av | 天天色天天爱天天射综合 | 超碰97在线资源站 | 毛片视频网址 | 一区二区三区在线观看免费视频 | 国内成人av | 国产精品久久久一区二区三区网站 | 成人午夜电影网站 | 99理论片| 99久久婷婷国产一区二区三区 | 国产精品国产三级国产专区53 | 国产成人亚洲在线观看 | 一级成人免费视频 | 国产麻豆视频免费观看 | 99精品视频在线观看 | 日韩在线观看电影 | 91精彩视频| 精品久久福利 | 黄色精品视频 | 91日韩在线播放 | 久久中文字幕导航 | 亚洲国内精品视频 | 亚洲精品免费视频 | 亚洲最大成人网4388xx | 伊人手机在线 | 夜夜躁日日躁狠狠久久88av | 久久www免费人成看片高清 | 96久久精品 | 亚洲欧美精品一区二区 | 国产精品久久久久久久久软件 | 日韩天堂在线观看 | 国产黄色一级片在线 | 国产精品正在播放 | 成人午夜电影在线播放 | 亚洲成免费| 一本一本久久a久久精品综合妖精 | 美女av在线免费 | 天天摸天天弄 | 欧美性生活免费 | 久久视频在线视频 | av千婊在线免费观看 | 91视频91自拍 | 中文字幕在线观看视频一区二区三区 | 欧美一级在线看 | 久草在线视频看看 | 狠狠的干狠狠的操 | 91在线免费播放 | 99热精品免费观看 | 久久久久伊人 | 国产精品久久久久久久久免费看 | 国产剧情一区在线 | 九九九热精品免费视频观看网站 | 日韩免费高清在线观看 | 国产成人精品免高潮在线观看 | 伊人天天狠天天添日日拍 | 国产精品福利在线 | 韩国三级在线一区 | 色综合色综合色综合 | 女人18片毛片90分钟 | 免费a v在线| 久久天天躁夜夜躁狠狠躁2022 | 天天av资源 | 日韩欧美国产精品 | 亚洲国产成人精品在线观看 | 黄色av成人在线观看 | 国产精品第2页 | 国产精品福利无圣光在线一区 | 一区二区三区高清在线 | 在线导航福利 | 亚洲视频99| 国产精品手机在线播放 | 久久极品 | 人人爱天天操 | 成人黄大片视频在线观看 | 娇妻呻吟一区二区三区 | 日韩精品aaa | 中文字幕之中文字幕 | 久草在线在线精品观看 | av中文字幕在线观看网站 | 中国美女一级看片 | 伊人婷婷 | 成人在线视频免费 | 日韩欧美一区二区不卡 | 人人干天天干 | 亚州欧美精品 | 91av视屏 | 亚洲一区二区视频在线播放 | 中文在线字幕免费观看 | 欧美另类巨大 | 九九九九热精品免费视频点播观看 | 欧美 日韩 成人 | 黄色av网站在线观看 | 日韩av在线免费看 | www免费| 国产a高清 | 午夜精品久久久 | 国产这里只有精品 | 国产一区二区精品久久91 | 色偷偷网站视频 | 日韩欧美一区视频 | 精品美女久久久久久免费 | www久久 | 国产无套视频 | 在线免费观看视频一区二区三区 | 欧美日韩一区二区免费在线观看 | 国产一二三在线视频 | 最近高清中文在线字幕在线观看 | 免费看的国产视频网站 | 欧美激情精品久久久久久变态 | 精品v亚洲v欧美v高清v | 在线观看日韩视频 | 夜夜躁日日躁 | 黄色av免费看 | 蜜桃av久久久亚洲精品 | 五月天免费网站 | 婷婷五月色综合 | 伊人在线视频 | 亚洲视频一区二区三区在线观看 | 国产不卡精品 | 一本一本久久a久久精品综合妖精 | 亚洲精品网址在线观看 | 亚洲日本韩国一区二区 | 成年人免费在线 | av中文字幕在线免费观看 | 在线观看日本高清mv视频 | 欧美日韩视频在线观看一区二区 | 免费在线观看国产精品 | 久久久久久综合 | 九九视频在线 | 成人在线观看资源 | 国产又粗又猛又黄又爽的视频 | 六月久久婷婷 | 久久天堂亚洲 | 天天操,夜夜操 | 国产又黄又爽无遮挡 | 久草在线免费在线观看 | 99看视频在线观看 | 欧美精品第一 | 在线国产精品一区 | 在线 视频 亚洲 | 在线免费视频 你懂得 | 亚洲一区二区精品视频 | 在线观看国产 | 在线免费看黄网站 | 国产亚洲激情视频在线 | 久久这里只有精品9 | 一级片色播影院 | 日本三级不卡视频 | 美女网站免费福利视频 | 97视频在线免费播放 | 免费成人结看片 | 久久久精品影视 | 97电影手机 | 99精品视频在线观看免费 | 亚洲婷婷综合色高清在线 | 在线看v片成人 | 香蕉免费| 国产精品原创视频 | 在线视频麻豆 | 五月天色中色 | 久久国产色 | 91香蕉视频色版 | av黄色亚洲 | 视频在线观看91 | 在线播放 日韩专区 | 国产 日韩 欧美 自拍 | 在线视频 成人 | 69视频国产| 91桃色免费视频 | 97超碰中文字幕 | 九九热视频在线播放 | 91大神精品视频在线观看 | 国产精品黄色在线观看 | 亚洲成年人在线播放 | 91黄色在线视频 | 欧美一级性 | 久久刺激视频 | 99久久久成人国产精品 | 成人精品一区二区三区中文字幕 | 欧美伦理一区二区三区 | 国产精品久久久久久av | 人人射人人爽 | 国产网红在线观看 | 日韩特级黄色片 | 2019中文最近的2019中文在线 | 久久久久久久久艹 | 午夜精品久久久久久久久久久久久久 | 亚洲aⅴ久久精品 | 亚洲欧洲一区二区在线观看 | 国产手机在线 | 91精品少妇偷拍99 | 337p日本大胆噜噜噜噜 | 亚洲污视频 | 国产精品久久久久9999吃药 | 四虎成人精品永久免费av九九 | 欧美精品久久 | 99精品久久久久久久久久综合 | 成人免费在线网 | 成年人在线观看网站 | 久久国产精品一区二区 | 日韩系列| 久久人视频 | 18+视频网站链接 | 激情久久网 | 国产麻豆精品在线观看 | 久久99久久99精品免观看粉嫩 | 最近更新好看的中文字幕 | 精品一二区| 不卡视频国产 | 黄色av网站在线观看免费 | 福利在线看片 | 96在线| 国产精品成人自产拍在线观看 | 免费a视频| 久久免费视频2 | 亚洲视频在线免费看 | 欧美资源在线观看 | 99视频在线免费看 | 国产精品观看在线亚洲人成网 | 91漂亮少妇露脸在线播放 | 三级av网站 | 日韩专区在线观看 | 婷婷在线不卡 | 美女一级毛片视频 | 欧美日韩视频一区二区 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | adn—256中文在线观看 | 97超碰站| 五月婷婷综合在线观看 | 国产成人精品一区二区三区 | 国产精品99久久久久久小说 | 日韩三区在线观看 | 成人va视频 | 国产 字幕 制服 中文 在线 | 成人一级视频在线观看 | 国产一区影院 | 中文在线a在线 | 日日躁夜夜躁aaaaxxxx | 国产在线观看av | 日韩精品免费一线在线观看 | 亚洲激情综合网 | 亚洲精品tv | 日韩天堂在线观看 | 在线观看欧美成人 | 国产精品黑丝在线观看 | 香蕉视频4aa | 国内视频在线 | 亚洲黄色免费在线看 | www.五月天| 婷婷精品国产欧美精品亚洲人人爽 | 日韩免费在线网站 | 国产h在线播放 | 午夜精品婷婷 | 久久久麻豆视频 | 久久国产成人午夜av影院宅 | 4438全国亚洲精品观看视频 | 国产精品一区二区果冻传媒 | 亚洲高清91| 日韩精品一区二区电影 | 婷婷六月色 | 色婷婷www| 婷婷六月综合网 | 欧美成人免费在线 | 又污又黄的网站 | 色中色资源站 | 日韩在线免费小视频 | 色视频在线| 免费中午字幕无吗 | 中文字幕日本特黄aa毛片 | 婷婷九月丁香 | 久久99国产精品 | 久久精品超碰 | 国产乱对白刺激视频不卡 | 欧美不卡视频在线 | 三级毛片视频 | 婷婷激情久久 | 亚洲少妇xxxx| 精品一区二区在线免费观看 | 亚洲第五色综合网 | 亚洲国产欧美一区二区三区丁香婷 | 最近能播放的中文字幕 | 亚洲手机天堂 | 国产精品视频免费观看 | 久久免费视频播放 | 色吊丝在线永久观看最新版本 | 日韩久久在线 | 国产在线精品一区二区 | 日韩激情av在线 | 中文字幕国产精品一区二区 | 91香蕉视频在线下载 | 欧美 激情在线 | 91一区二区三区久久久久国产乱 | 99视频免费| 色丁香综合 | 521色香蕉网站在线观看 | 麻豆视频在线观看免费 | 免费看的国产视频网站 | 91福利影院在线观看 | 一区二区伦理 | v片在线播放 | 国产91对白在线 | 日韩理论片在线 | 在线看91| 色狠狠综合天天综合综合 | 成人app在线播放 | 最新中文字幕在线播放 | 最近的中文字幕大全免费版 | 99视频免费播放 | 亚洲另类久久 | 国产小视频你懂的在线 | 国产日产精品久久久久快鸭 | 特黄一级毛片 | 亚洲精品理论 | 在线观看视频在线观看 | 在线观看日本韩国电影 | 久草在线免费色站 | 日韩欧美国产精品 | 81国产精品久久久久久久久久 | 午夜精品视频免费在线观看 | 国产第一页精品 | 国产精品九九热 | 婷婷色网址 | 天天操天天干天天操天天干 | 国产精品美女久久久久久免费 | 亚洲欧美色婷婷 | 99热国产在线中文 | 国产成在线观看免费视频 | 国产99久久久国产精品成人免费 | 九九热精品在线 | 免费看成年人 | 黄色毛片视频 | 99在线精品视频观看 | 精品久久久久久久久亚洲 | 国产亚洲一区二区三区 | 四虎国产精品成人免费4hu | 久久久久久高潮国产精品视 | 午夜视频在线网站 | 亚洲理论在线 | 99欧美视频| 99国产精品视频免费观看一公开 | 免费看精品久久片 | 成年人黄色免费看 | 免费成人av电影 | 亚洲精品美女免费 | av片子在线观看 | 成人av电影免费在线播放 | 五月婷婷六月丁香在线观看 | 国产亚洲免费观看 | 狠狠色噜噜狠狠狠狠2022 | 日韩区视频 | 一本一道波多野毛片中文在线 | 精品视频免费 | 精品国产一区二区三区四区在线观看 | 日韩精品中文字幕在线不卡尤物 | 天天综合导航 | 6699私人影院 | 亚洲一级国产 | 精品国产黄色片 | 成人黄色在线看 | 国产精品手机看片 | 射射色 | 亚洲免费精彩视频 | 日本不卡一区二区三区在线观看 | 国产精品12345 | 中文字幕日韩av | 日本精品一区二区三区在线播放视频 | 欧美国产亚洲精品久久久8v | 中文字幕日韩一区二区三区不卡 | 成人福利在线 | 激情小说 五月 | 欧美激情综合色 | 久久成人视屏 | 在线观看av免费观看 | 日韩av黄 | 黄色小说免费在线观看 | 婷婷精品国产一区二区三区日韩 | 色综合咪咪久久网 | 久久男女视频 | 久久久久久久久毛片精品 | 久久人人精品 | 国产精品va在线观看入 | 久久在现| 久久久久久久久久久成人 | 欧美精品久久久久久久免费 | 国产亚洲欧洲 | 国产手机视频在线播放 | 天天插天天 | 国产一区免费看 | 99九九99九九九视频精品 | 久久99精品久久久久久秒播蜜臀 | 成 人 黄 色视频免费播放 | 国产精品午夜av | 亚洲成人资源在线观看 | 黄色毛片视频免费观看中文 | 四虎影视精品成人 | 免费视频一区 | 国内精品久久天天躁人人爽 | 日韩欧美国产成人 | 久草在线资源免费 | 天天色天天操综合网 | 亚洲成人黄 | 国产视频一区二区三区在线 | 久草视频免费在线播放 | 在线黄av | 99成人在线视频 | sm免费xx网站 | 91亚瑟视频| 狠狠色丁香婷婷综合最新地址 | 91在线播放国产 | 午夜18视频在线观看 | 在线观看免费日韩 | 亚洲黄色在线播放 | 久操中文字幕在线观看 | 久久综合精品国产一区二区三区 | 精品久久久久久综合日本 | 91亚洲综合| 久久久一本精品99久久精品66 | 久久久久久国产精品久久 | 国产一区二区三区免费在线 | 亚洲欧美在线综合 | 国产一区二区三区高清播放 | 99热这里有 | 国产精品三级视频 | 国产亚洲aⅴaaaaaa毛片 | 天天综合91 | 99精品在线播放 | 一区二区精品视频 | 久久成人国产精品入口 | 日韩视频在线播放 | av大全免费在线观看 | 日韩美视频 | 亚洲精品97 | 色婷婷综合视频在线观看 | 超碰97在线人人 | 国产精品嫩草55av | 激情综合网婷婷 | 亚洲国产天堂av | 在线观看黄色大片 | 天天综合网~永久入口 | 特级西西444www高清大视频 | 91视视频在线直接观看在线看网页在线看 | 激情狠狠干 | 最近久乱中文字幕 | 亚洲精品在线免费观看视频 | 亚洲a资源| 成人中文字幕在线观看 | 美女福利视频一区二区 | 久久久久久久久影院 | 欧美日韩中文视频 | 国产中年夫妇高潮精品视频 | 在线中文字幕av观看 | 久久综合毛片 | 日日躁夜夜躁xxxxaaaa | 天天色天天操天天爽 | 欧美日韩精品在线播放 | 婷婷久久网 | free,性欧美| 亚洲91精品在线观看 | 国产亚洲视频在线免费观看 | 久草99| 国内精品久久久久久中文字幕 | 99麻豆视频 | 国产日韩精品在线 | 亚洲永久免费av | 国产人成看黄久久久久久久久 | 国产精品精 | 久久视频 | 成av在线| 在线观看第一页 | 色五婷婷| 亚洲 中文字幕av | 成人免费大片黄在线播放 | 亚洲精品一区二区三区新线路 | 欧美视频国产视频 | 去干成人网 | 日韩av手机在线看 | 三级a毛片 | 成年人app网址 | 黄色精品免费 | 五月天婷亚洲天综合网精品偷 | 免费午夜网站 | 99精品乱码国产在线观看 | 天堂在线一区 | 国产一区二区在线免费观看 | 婷婷六月天丁香 | 超碰免费观看 | 波多野结衣亚洲一区二区 | 天天综合人人 | 久久国产福利 | 国产网站色| 日韩在线播放av | 4438全国亚洲精品观看视频 | 久久精视频 | 亚洲人成人天堂h久久 | 免费日韩一级片 | 精品国产黄色片 | 午夜丁香视频在线观看 | 色婷婷狠狠操 | av高清一区二区三区 | 国产精品午夜av | 五月婷婷操 | 久久黄色影视 | 日韩理论 | 在线97| 激情欧美日韩一区二区 | 国产亚洲午夜高清国产拍精品 | 激情久久婷婷 | 婷婷色资源 | 国产黄| 久久国产精品一区二区三区四区 | 日韩视频免费在线观看 | 久草免费在线观看 | 国产字幕在线播放 | www国产精品com | 久久人人干| 午夜精品福利一区二区三区蜜桃 | 伊人天天狠天天添日日拍 | 久久伦理影院 | 91av片| 亚洲一区不卡视频 | 在线蜜桃视频 | 日本免费久久高清视频 | 人人爱人人添 | 亚洲午夜电影网 | 亚洲不卡123 | 国产精品高清在线 | 日韩欧美视频免费看 | 精品国产电影 | 日本一区二区高清不卡 | 免费在线国产 | 国产91在| av福利在线免费观看 | 国产又粗又猛又色又黄网站 | 欧美在线视频a | 最新av在线免费观看 | 色综合婷婷 | 开心激情五月婷婷 | 亚洲精品三级 | 国产精品久久一区二区无卡 | 亚洲精品在线免费观看视频 | 色偷偷男人的天堂av | 波多野结衣一区二区三区中文字幕 | 日本中文在线观看 | 久久精品欧美一区 | 欧美日韩一区二区在线观看 | 日韩一区二区三区高清在线观看 | 二区三区精品 | 99r在线视频 | 婷婷在线视频 | 久久视频在线免费观看 | 日日精品 | 特级西西www44高清大胆图片 | 亚洲精品乱码久久久久久写真 | 亚洲高清国产视频 | 欧美日韩精品电影 | av天天澡天天爽天天av | 香蕉久久久久 | 一级片视频在线 | 欧美一级大片在线观看 | 国产精品一区二区三区观看 | 日韩肉感妇bbwbbwbbw | 国产精品免费视频久久久 | 亚洲国产精品成人女人久久 | 91精品黄色 | www99久久| 国产成人区 | 美女在线观看av | 99国产精品 | 黄色av三级在线 | 国产xxxx性hd极品 | 久久dvd| 福利视频在线看 | 麻花豆传媒mv在线观看网站 | 日本中文字幕电影在线免费观看 | 亚洲一级片在线观看 | 免费视频黄| 在线播放日韩 | 免费福利片2019潦草影视午夜 | 色综合天天综合 | 国产精品久久久久久久久久妇女 | 91福利专区 | 成人一级视频在线观看 |