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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

二叉树 跳表_漫谈 LevelDB 数据结构(一):跳表(Skip List)

發布時間:2024/10/14 编程问答 93 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二叉树 跳表_漫谈 LevelDB 数据结构(一):跳表(Skip List) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

早對 LevelDB 有所耳聞,這次心血來潮結合一些資料粗略過了遍代碼,果然名不虛傳——絕對是不世出的工藝品!如果你對存儲感興趣、如果你想優雅使用C++、如果你想學習如何架構項目,都推薦來觀摩一下。谷歌出品,必是精品,更何況作者是 Sanjay Ghemawat 和 Jeff Dean 呢。
看過一遍如果不輸出點什么,以我的記性,定會很快拋諸腦后。便想寫點東西說說 LevelDB 之妙,但又不想走尋常路,從架構概覽說起,以模塊分析做合。讀代碼的這些天,一直在盤算從哪下筆比較好。在將將讀完之時,印象最深的反而是 LevelDB 的各種精妙的數據結構:貼合場景、從頭構建、剪裁得當、代碼精到。不妨, LevelDB 系列就從這些邊邊角角的小構件開始吧。
本系列主要想分享 LevelDB 中用到的三個工程中常用的經典數據結構,分別是用以快速讀寫 memtable 的 Skip List、用以快速篩選 sstable 的 Bloom Filter 和用以部分緩存 sstable 的 LRUCache 。這是第一篇,Skip List。

需求

LevelDB 是一個單機的 KV 存儲引擎。KV 引擎在本質上可認為只提供對數據條目(key,val) Put(key, val), Get(key) val, Delete(key) 操作的三個接口。而在實現上,LevelDB 在收到刪除請求時不會真正刪除數據,而是為該 Key 寫一個特殊標記,以備讀取時發現該 Key 不存在,從而將 Delete 轉為 Put ,進而將三個接口簡化為兩個??惩赀@一刀后,剩下的就是在 Put 和 Get 間進行性能取舍,LevelDB 的選擇是:犧牲部分 Get 性能,換取強悍 Put 性能,再極力優化 Get。

我們知道,在存儲層次體系(Memory hierarchy)中,內存訪問遠快于磁盤,因此 LevelDB 為了達到目標做了以下設計:

  • 寫入(Put):讓所有寫入都發生在內存中,然后達到一定尺寸后將其批量刷磁盤。
  • 讀取(Get):隨著時間推移,數據不斷寫入,內存中會有一小部分數據,磁盤中有剩余大部分數據。讀取時,如果在內存中沒命中,就需要去磁盤查找。
  • 為了保證寫入性能,同時優化讀取性能,需要內存中的存儲結構能夠同時支持高效的插入和查找。

    之前聽說 LevelDB 時,最自然的想法,以為該內存結構(memtable)為是平衡樹,比如紅黑樹、AVL 樹等,可以保證插入和查找的時間復雜度都是 lg(n),看源碼才知道用了跳表。相比平衡樹,跳表優勢在于,在保證讀寫性能的同時,大大簡化了實現。

    此外,為了將數據定期 dump 到磁盤,還需要該數據結構支持高效的順序遍歷??偨Y一下 LevelDB 內存數據結構(memtable)需求點:

  • 高效查找
  • 高效插入
  • 高效順序遍歷
  • 作者:青藤木鳥 https://www.qtmuniao.com/2020/07/03/leveldb-data-structures-skip-list ,轉載請注明出處

    原理

    跳表由 William Pugh 在 1990 年提出,相關論文為:Skip Lists: A Probabilistic Alternative to Balanced Trees。從題目可以看出,作者旨在設計一種能夠替換平衡樹的數據結構,正如他在開篇提到:

    Skip lists are a data structure that can be used in place of balanced trees.
    Skip lists use probabilistic balancing rather than strictly enforced balancing and as a result the algorithms for insertion and deletion in skip lists are much simpler and significantly faster than equivalent algorithms for balanced trees.
    跳表是一種可以取代平衡樹的數據結構。
    跳表使用概率均衡而非嚴格均衡策略,從而相對于平衡樹,大大簡化和加速了元素的插入和刪除。

    這段話中有個關鍵詞:概率均衡(probabilistic balancing),先賣個關子,按下不表。

    接下來我們從兩個角度來解讀跳表:鏈表和跳表,跳表和平衡樹。

    鏈表到跳表

    簡言之,跳表就是帶有額外指針的鏈表。為了理解這個關系,我們來思考一下優化有序鏈表查找性能的過程。

    假設我們有個有序鏈表,可知其查詢和插入復雜度都為 O(n)。相比數組,鏈表不能進行二分查找的原因在于,不能用下標索引進行常數復雜度數據訪問,從而不能每次每次快速的篩掉現有規模的一半。那么如何改造一下鏈表使之可以進行二分?

    利用 map 構造一個下標到節點的映射?這樣雖然可以進行二分查詢了,但是每次插入都會引起后面所有元素的下標變動,從而需要在 map 中進行 O(n) 的更新。

    增加指針使得從任何一個節點都能直接跳到其他節點?那得構造一個全連接圖,指針耗費太多空間不說,每次插入指針的更新仍是 O(n) 的。

    跳表給出了一種思路,跳步采樣,構建索引,逐層遞減。下面利用論文中的一張圖來詳細解釋下。

    帶有額外指針的鏈表

    如上圖,初始我們有個帶頭結點的有序鏈表 a,其查找復雜度為 O(n)。然后,我們進行跳步采樣,將采樣出的節點按用指針依次串聯上,得到表 b,此時的查找復雜度為 O(llogn/2 + 1) [注1]。其后,我們在上次采樣出的節點,再次進行跳步采樣,并利用指針依次串聯上,得到表 c,此時的查找復雜為 O(log2n/4 + 2)。此后,我們重復這個跳步采樣、依次串聯的過程,直到采樣出的節點只剩一個,如圖 e,此時的查找復雜度,可以看出為 O(log2n) [注2]。

    代價是我們增加了一堆指針,增加了多少呢?我們來逐次考慮這個問題。從圖中可以看出,每次采樣出多少節點,便會增加多少個指針;我們的采樣策略是,每次在上一次的節點集中間隔采樣,初始節點數為 n,最后采到只剩一個節點為止。將其加和則為:(n/2 + n/4 + ... + 1) = n。這和一個節點為 n 的二叉樹的指針數是相同的。

    這里我們回避了一個問題:該結構的插入時間復雜度是多少?這其實進一步了引出本質問題,我們該如何進行插入。

    跳表和平衡樹

    在實踐中,我們常用搜索二叉樹作為字典表或者順序表。在插入過程中,如果數據在 key 空間具有很好地隨機性,那么二叉搜索樹每次順序插入就可以維持很好的查詢性能。但如果我們順序的插入數據,則會使得二叉搜索樹嚴重失衡,從而使讀寫性能都大幅度退化。

    為了保證性能,需要在發現不平衡時進行調整,于是有了 AVL 樹和紅黑樹。眾所周知,AVL 的旋轉策略和紅黑樹的標色策略都稍顯復雜,反正我粗看了兩次都沒記住,面試手擼更是不可能。

    而跳表在保證同樣查詢效率的情況下,使用了一種很巧妙的轉化,大大簡化了插入的實現。我們不能保證所有的插入請求在 key 空間具有很好地隨機性,或者說均衡性;但我們可以控制每個節點其他維度的均衡性。比如,跳表中每個節點的指針數分布的概率均衡。

    概率均衡

    為了更好地講清楚這個問題,我們梳理一下跳表的結構和所涉及到概念。跳表每個節點都會有1 ~ MaxLevel 個指針,有 k 個指針的節點稱為 k 層節點(level k node);所有節點的層次數的最大值為跳表的最大層數(MaxLevel)。跳表帶有一個空的頭結點,頭結點有 MaxLevel 個指針。

    按前面從有序鏈表構建跳表的思路,每次插入新節點就變成了難題,比如插入的節點需要有多少個指針?插入后如何才能保證查找性能不下降(即維持采樣的均衡)?

    為了解決這個問題, Pugh 進行了一個巧妙的轉化:將全局、靜態的構建索引拆解為獨立、動態的構建索引。其中的關鍵在于通過對跳表全局節點指針數概率分布的維持,達到對查詢效率的保持。分析上面見索引逐層采樣的過程我們可以發現,建成的跳表中有 50% 的節點為 1 層節點,25% 的節點為 2 層節點,12.5% 的節點為三層節點,依次類推。若能維持我們構造的跳表中的節點具有同樣的概率分布,就能保證差不多查詢性能。這在直覺上似乎沒問題,這里不去深入探討背后的數學原理,感興趣的同學可以去讀一讀論文。

    經過這樣的轉化,就解決了上面提出的兩個問題:

  • 插入新節點的指針數通過獨立的計算一個概率值決定,使全局節點的指針數滿足幾何分布即可。
  • 插入時不需要做額外的節點調整,只需要先找到其需要放的位置,然后修改他和前驅的指向即可。
  • 這樣插入節點的時間復雜度為查找的時間復雜度 O(log2n),與修改指針的復雜度 O(1) [注3]之和,即也為 O(log2n),刪除過程和插入類似,也可以轉化為查找和修改指針值,因此復雜度也為 O(log2n)。

    源碼分析

    千呼萬喚始出來,讓我們進入正題。LevelDB 中對 SkipList 的實現增加了多線程并發訪問方面的優化的代碼,提供以下保證:

  • Write:在修改跳表時,需要在用戶代碼側加鎖。
  • Read:在訪問跳表(查找、遍歷)時,只需保證跳表不被其他線程銷毀即可,不必額外加鎖。
  • 也就是說,用戶側只需要處理寫寫沖突,LevelDB 跳表保證沒有讀寫沖突。

    這是因為在實現時,LevelDB 做了以下假設(Invariants):

  • 除非跳表被銷毀,跳表節點只會增加而不會被刪除,因為跳表對外根本不提供刪除接口。
  • 被插入到跳表中的節點,除了 next 指針其他域都是不可變的,并且只有插入操作會改變跳表。
  • 接口

    LevelDB 的 Skip List 對外提供的接口主要有三個,分別是插入、查詢和遍歷。

    // 插入 key 到跳表中. // 要求: 不能夠插入和跳表中的節點判等的 key. template <typename Key, class Comparator> void SkipList<Key, Comparator>::Insert(const Key& key)// 當且僅當跳表中有和給定 key 判等的節點才返回真. template <typename Key, class Comparator> bool SkipList<Key, Comparator>::Contains(const Key& key) const// 返回給定跳表的迭代器 template <typename Key, class Comparator> inline SkipList<Key, Comparator>::Iterator::Iterator(const SkipList* list)

    為了靈活適配,LevelDB 的 SkipList 使用了類模板(template class),使得調用方可以自定義 Key 的類型,并且基于該 Key 定制比較類 Comparator。

    在詳細分析這幾個接口之前,首先看下跳表的基本構成元素 SkipList::Node 的數據結構,代碼里有一些多線程讀寫共享變量時進行同步的代碼。這里主要涉及到指令重排的一些內容,下面稍微展開說一下。

    我們知道,編譯器/CPU 在保在達到相同效果的情況下會按需(加快速度、內存優化等)對指令進行重排,這對單線程來說的確沒什么。但是對于多線程,指令重排會使得多線程間代碼執行順序變的各種反直覺。用 go 代碼舉個例子:

    var a, b intfunc f() {a = 1b = 2 }func g() {print(b)print(a) }func main() {go f()g() }

    該代碼片段可能會打印出 2 0!

    原因在于編譯器/CPU 將 f() 賦值順序重排了或者將 g() 中打印順序重排了。這就意味著你跟隨直覺寫出的多線程代碼,可能會出問題。因為你無形中默認了單個線程中執行順序是代碼序,多線程中雖然代碼執行會產生交錯,但仍然保持各自線程內的代碼序。實則不然,由于編譯器/CPU 的指令重排,如果不做顯式同步,你不能對多線程間代碼執行順序有任何假設。

    回到 LevelDB 跳表代碼上,主要涉及 C++11 中 atomic 標準庫中新支持的幾種 memory order,規定了一些指令重排方面的限制,僅說明下用到的三種:

  • std::memory_order_release:不對重排做限制,只保證相關共享內存訪問的原子性。
  • std::memory_order_acquire: 用在 load 時,保證同線程中該 load 之后的對相關內存讀寫語句不會被重排到 load 之前,并且其他線程中對同樣內存用了 store release 都對其可見。
  • std::memory_order_release:用在 store 時,保證同線程中該 store 之后的對相關內存的讀寫語句不會被重排到 store 之前,并且該線程的所有修改對用了 load acquire 的其他線程都可見。
  • template <typename Key, class Comparator> struct SkipList<Key, Comparator>::Node {explicit Node(const Key& k) : key(k) {}Key const key;Node* Next(int n) {assert(n >= 0);return next_[n].load(std::memory_order_acquire);}void SetNext(int n, Node* x) {assert(n >= 0);next_[n].store(x, std::memory_order_release);}// 不帶內存屏障版本的訪問器。內存屏障(Barrier)是個形象的說法,也即加一塊擋板,阻止重排/進行同步Node* NoBarrier_Next(int n) {assert(n >= 0);return next_[n].load(std::memory_order_relaxed);}void NoBarrier_SetNext(int n, Node* x) {assert(n >= 0);next_[n].store(x, std::memory_order_relaxed);}private:// 指針數組的長度即為該節點的 level,next_[0] 是最低層指針.std::atomic<Node*> next_[1]; // 指向指針數組的指針 };

    查找

    查找是插入的基礎,每個節點要先找到合適位置,才能進行插入。因此 LevelDB 抽象出了一個公用函數: FindGreaterOrEqual :

    template <typename Key, class Comparator> bool SkipList<Key, Comparator>::Contains(const Key& key) const {Node* x = FindGreaterOrEqual(key, nullptr);if (x != nullptr && Equal(key, x->key)) {return true;} else {return false;} }

    該函數的含義為:在跳表中查找不小于給 Key 的第一個值,如果沒有找到,則返回 nullptr。如果參數 prev 不為空,在查找過程中,記下待查找節點在各層中的前驅節點。顯然,如果查找操作,則指定 prev = nullptr 即可;若要插入數據,則需傳入一個合適尺寸的 prev 參數。

    template <typename Key, class Comparator> typename SkipList<Key, Comparator>::Node* SkipList<Key, Comparator>::FindGreaterOrEqual(const Key& key, Node** prev) const {Node* x = head_; // 從頭結點開始查找int level = GetMaxHeight() - 1; // 從最高層開始查找while (true) {Node* next = x->Next(level); // 該層中下一個節點if (KeyIsAfterNode(key, next)) {x = next; // 待查找 key 比 next 大,則在該層繼續查找} else {if (prev != nullptr) prev[level] = x;if (level == 0) { // 待查找 key 不大于 next,則到底返回return next;} else { // 待查找 key 不大于 next,且沒到底,則往下查找level--;}}} }

    該過程借用論文中圖示如下:

    跳表查找和插入過程

    插入

    在 FindGreaterOrEqual 基礎上,記下待插入節點的各層次前驅節點,比如上圖中,調用 FindGreaterOrEqual(17, prev) 后 prev = [12, 9, 6, 6]。插入代碼如下:

    template <typename Key, class Comparator> void SkipList<Key, Comparator>::Insert(const Key& key) {// 待做(opt): 由于插入要求外部加鎖,因此可以使用 NoBarrier_Next 的 FindGreaterOrEqual 以提高性能Node* prev[kMaxHeight]; // 長度設定簡單粗暴,直接取最大值(kMaxHeight = 12)肯定沒錯。Node* x = FindGreaterOrEqual(key, prev);// LevelDB 跳表要求不能插入重復數據assert(x == nullptr || !Equal(key, x->key));int height = RandomHeight(); // 隨機獲取一個 level 值if (height > GetMaxHeight()) { // GetMaxHeight() 為獲取跳表當前for (int i = GetMaxHeight(); i < height; i++) {prev[i] = head_;}// 此處不用為并發讀加鎖。因為并發讀在(在另外線程中通過 FindGreaterOrEqual 中的 GetMaxHeight)// 讀取到更新后跳表層數,但該節點尚未插入時也無妨。因為這意味著它會讀到 nullptr,而在 LevelDB// 的 Comparator 設定中,nullptr 比所有 key 都大。因此,FindGreaterOrEqual 會繼續往下找,// 符合預期。max_height_.store(height, std::memory_order_relaxed);}x = NewNode(key, height);for (int i = 0; i < height; i++) {// 此句 NoBarrier_SetNext() 版本就夠用了,因為后續 prev[i]->SetNext(i, x) 語句會進行強制同步。// 并且為了保證并發讀的正確性,一定要先設置本節點指針,再設置原條表中節點(prev)指針x->NoBarrier_SetNext(i, prev[i]->NoBarrier_Next(i));prev[i]->SetNext(i, x);} }

    LevelDB 跳表實現的復雜點在于提供不加鎖的并發讀的正確性保證。但算法的關鍵點在于每個節點插入時,如何確定新插入節點的層數,以使跳表滿足概率均衡,進而提供高效的查詢性能。即 RandomHeight 的實現:

    template <typename Key, class Comparator> int SkipList<Key, Comparator>::RandomHeight() {// 每次以 1/4 的概率增加層數static const unsigned int kBranching = 4;int height = 1;while (height < kMaxHeight && ((rnd_.Next() % kBranching) == 0)) {height++;}assert(height > 0);assert(height <= kMaxHeight);return height; }

    LevelDB 的采樣較為稀疏,每四個采一個,且層數上限為 kMaxHeight = 12。具體實現過程即為構造 P = 3/4 的幾何分布的過程。結果為所有節點中:3/4 的節點為 1 層節點,3/16 的節點為 2 層節點,3/64 的節點為 3 層節點,依次類推。這樣平均每個節點含指針數 1/P = 4/3 = 1.33 個。當然,在論文中的 p 的含義為相鄰兩層間采樣的比例,和我提到的 P 的關系為:p = 1-P。

    選 p = 1/4 相比 p = 1/2 是用時間換空間,即只犧牲了一些常數的查詢效率,換取平均指針數的減少,從而減小內存使用。論文中也推薦 p = 1/4 ,除非讀速度要求特別嚴格。在此情況下,可以最多支持 n = (1/p)^kMaxHeight 個節點的情況,查詢時間復雜度不退化。如果選 kMaxHeight = 12,則跳表最多可以支持 n = 4 ^ 12 = 16M 個值。

    遍歷

    LevelDB 為跳表構造了一個內部類 Iterator,以 SkipList 作為構造函數參數,實現了 LevelDB 導出的 Iterator 接口的大部分函數,如 Next,Prev,Seek,SeekToFirst,SeekToLast 等等。

    template <typename Key, class Comparator> inline SkipList<Key, Comparator>::Iterator::Iterator(const SkipList* list) {list_ = list;node_ = nullptr; }template <typename Key, class Comparator> inline bool SkipList<Key, Comparator>::Iterator::Valid() const {return node_ != nullptr; }template <typename Key, class Comparator> inline const Key& SkipList<Key, Comparator>::Iterator::key() const {assert(Valid());return node_->key; }template <typename Key, class Comparator> inline void SkipList<Key, Comparator>::Iterator::Next() {assert(Valid());node_ = node_->Next(0); }template <typename Key, class Comparator> inline void SkipList<Key, Comparator>::Iterator::Prev() {// 相比在節點中額外增加一個 prev 指針,我們使用從頭開始的查找定位其 prev 節點assert(Valid());node_ = list_->FindLessThan(node_->key);if (node_ == list_->head_) {node_ = nullptr;} }template <typename Key, class Comparator> inline void SkipList<Key, Comparator>::Iterator::Seek(const Key& target) {node_ = list_->FindGreaterOrEqual(target, nullptr); }template <typename Key, class Comparator> inline void SkipList<Key, Comparator>::Iterator::SeekToFirst() {node_ = list_->head_->Next(0); }template <typename Key, class Comparator> inline void SkipList<Key, Comparator>::Iterator::SeekToLast() {node_ = list_->FindLast();if (node_ == list_->head_) {node_ = nullptr;} }

    可以看出該迭代器沒有為每個節點增加一個額外的 prev 指針以進行反向迭代,而是用了選擇從 head 開始查找。這也是一種用時間換空間的取舍。當然,其假設是前向遍歷情況相對較少。

    其中 FindLessThan 和 FindLast 的實現與 FindGreaterOrEqual 思路較為相似,不再贅述。

    // Return the latest node with a key < key. // Return head_ if there is no such node. Node* FindLessThan(const Key& key) const;// Return the last node in the list. // Return head_ if list is empty. Node* FindLast() const;

    小結

    跳表本質上是對鏈表的一種優化,通過逐層跳步采樣的方式構建索引,以加快查找速度。使用概率均衡的思路,確定新插入節點的層數,使其滿足集合分布,在保證相似的查找效率簡化了插入實現。

    LevelDB 的跳表實現還專門對多線程讀做了優化,但寫仍需外部加鎖。在實現思路上,整體采用時間換空間的策略,優化內存使用。

    下一篇中,將繼續剖析 LevelDB 中用到的另一個經典的數據結構:布隆過濾器(Bloom Filter)。

    注解

    [1] 先在上層查找,然后縮小到某個范圍后去下層查找。

    [2] 可以證明,也可以簡單的找規律: O(log2(n/2) + 1) -> O(log2(n/4) + 2) -> ... -> O(1 + log2n),即 O(log2n) 。

    [3] 通過采樣過程可知所有節點的概率滿足 p = 0.5 的幾何分布,則每個節點的期望指針個數為 1/p = 2,則每次插入平均需要修改 2 * 2 個指針,即為常數級別。

    參考

  • LevelDB handbook:https://leveldb-handbook.readthedocs.io/zh/latest/index.html
  • 庖丁解 LevelDB 之數據存儲:https://catkang.github.io/2017/01/17/leveldb-data.html
  • C++ atomic memory order:https://en.cppreference.com/w/cpp/atomic/memory_order
  • The last thing

    Leetcode 上有跳表簡化版的題目,看完了本文可以趁熱打鐵去實現一下:https://leetcode.com/problems/design-skiplist/

    這是我的實現版本:https://leetcode.com/problems/design-skiplist/discuss/740881/C%2B%2B-clean-and-simple-solution-from-leveldb


    總結

    以上是生活随笔為你收集整理的二叉树 跳表_漫谈 LevelDB 数据结构(一):跳表(Skip List)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    国产精品乱码一区二三区 | 很黄很黄的网站免费的 | 中文字幕在线观看免费高清电影 | 亚洲精品午夜国产va久久成人 | 久久久久久久久久免费视频 | 中文字幕一区二区三区四区视频 | 天天草综合网 | 9色在线视频 | 久久久久综合精品福利啪啪 | 美女国产在线 | 韩国av免费在线 | 国产免费叼嘿网站免费 | 黄色亚洲大片免费在线观看 | 国产精品一区免费在线观看 | www五月天婷婷 | 天天摸天天干天天操天天射 | 中文字幕av在线免费 | 特级毛片aaa | 日本精品一区二区三区在线观看 | 亚洲精品777 | 国产在线免费观看 | 国产精品第7页 | 亚洲天天综合网 | 国产资源中文字幕 | 成人av手机在线 | 久久永久免费视频 | 欧美日韩免费一区二区 | 福利一区二区在线 | 国产精品久久久久久久久久久久午夜 | 国产99一区 | 国产一级大片在线观看 | 天天激情天天干 | 五月天婷婷在线视频 | 免费精品国产va自在自线 | 国产视频2区 | 综合激情 | 久久久久久久影院 | 婷婷深爱 | 五月婷视频 | 久久高清视频免费 | 免费观看一级特黄欧美大片 | 国产资源站 | 日日夜夜网| 亚洲女裸体 | 中文字幕乱码一区二区 | 亚洲第一香蕉视频 | 狠狠色综合网站久久久久久久 | 日本中文字幕在线一区 | 国产精品ssss在线亚洲 | av短片在线 | a v在线观看 | 69精品在线 | 成人福利在线观看 | 九九精品视频在线 | 97视频人人澡人人爽 | 久久国产影视 | 2023年中文无字幕文字 | 久久不射电影院 | 亚洲人成在 | 国产亚洲精品成人av久久影院 | 久久久久北条麻妃免费看 | 日韩高清一区二区 | 国产精品porn | 亚洲成人动漫在线观看 | 日本黄色免费在线 | 亚洲人人爱 | 在线观看中文字幕亚洲 | 又黄又爽又色无遮挡免费 | 青草视频在线看 | japanese黑人亚洲人4k | 国产精品久久久久久久久蜜臀 | 亚洲美女视频网 | 亚洲精品国产精品国自产在线 | 网站你懂的 | 欧美午夜寂寞影院 | 美女黄久久 | 国产二区免费视频 | 麻豆影视在线播放 | 99久久精品国产观看 | 久久综合亚洲鲁鲁五月久久 | 国产一级在线播放 | 91综合久久一区二区 | 午夜av色| 日韩午夜视频在线观看 | 91原创在线观看 | 婷婷网在线 | 日本久久久久 | av中文电影 | 天天操天天干天天玩 | 日韩高清成人 | 亚洲国产天堂av | 99精品国产一区二区三区不卡 | 日韩精品你懂的 | 久久99精品一区二区三区三区 | av丝袜美腿 | 特级西西444www大胆高清无视频 | 国产特级毛片aaaaaa高清 | 在线www色 | 久久无码精品一区二区三区 | av不卡网站 | 免费观看视频黄 | 免费看一及片 | 日韩大片免费观看 | 久久精品国产免费看久久精品 | 国内视频在线 | 国产资源网 | 成人夜晚看av| 99久热在线精品视频观看 | 久色小说 | 日韩毛片在线一区二区毛片 | 免费精品视频在线 | 91夫妻视频 | 精品国产伦一区二区三区观看说明 | 69国产精品视频免费观看 | 国产成人一区在线 | 99亚洲国产精品 | 免费看黄在线 | 国产看片网站 | 国产精品久久久一区二区三区网站 | 婷婷丁香花 | 久久国产区 | 日韩av黄| 麻豆果冻剧传媒在线播放 | 久久不色 | 夜夜夜夜爽 | 欧美在线视频不卡 | 国产精品日韩 | 欧美成人在线免费观看 | 国产精品欧美久久久久天天影视 | 久久久综合精品 | 插插插色综合 | 天堂av色婷婷一区二区三区 | 日韩在线观看一区二区 | 美女黄频在线观看 | 中文字幕视频免费观看 | 免费看久久 | 色视频成人在线观看免 | 亚洲免费视频在线观看 | 久久精品久久久精品美女 | 在线看黄色的网站 | 激情动态| 国产盗摄精品一区二区 | 久久国产日韩 | 中文字幕乱码在线播放 | 91看片成人 | www.日日日.com | 国产一区二区三区午夜 | 久久精彩视频 | 欧美极度另类性三渗透 | 久久久观看| 超碰人人在线观看 | 婷婷丁香五 | 成人黄在线观看 | 日本特黄一级片 | 亚洲综合成人婷婷小说 | 99久久999久久久精玫瑰 | 日韩免费看视频 | 狠狠色丁香久久婷婷综合丁香 | 二区三区av| 国产精品mv在线观看 | 国产成人亚洲在线电影 | 99热在线免费观看 | 色噜噜狠狠狠狠色综合久不 | av中文天堂 | 青青河边草观看完整版高清 | 久久综合婷婷 | 久久免费看a级毛毛片 | 午夜国产一区 | 不卡av在线播放 | 中文字幕大全 | 日韩欧美一区二区在线 | 三上悠亚一区二区在线观看 | 久草视频在| av在线电影网站 | 五月天婷婷免费视频 | 日韩高清免费观看 | 欧美性成人 | av免费观看高清 | 999久久久精品视频 日韩高清www | 五月激情久久久 | 国产亚洲精品精品精品 | 日本久久综合网 | 日日碰狠狠添天天爽超碰97久久 | 国产福利a | 亚洲国产精品激情在线观看 | 亚洲 欧洲 国产 日本 综合 | 欧美日韩免费看 | 国产福利免费看 | 久久99热这里只有精品国产 | 午夜精品久久久久久久久久久久久久 | 天堂av在线 | 91免费观看国产 | 亚洲精品免费在线视频 | 国产成人精品在线观看 | 成人毛片一区 | 天天爽夜夜爽人人爽曰av | 国产一区在线不卡 | 国产高清视频 | 国产免费不卡 | 久久国产成人午夜av影院潦草 | 久久最新视频 | 亚洲最新在线 | 国产麻豆传媒 | 国产中文字幕一区 | 日韩专区中文字幕 | 麻豆精品视频在线 | 天天操天天干天天 | www.色国产 | 久久精品91久久久久久再现 | 欧美日产在线观看 | 国产 欧美 日本 | 四虎亚洲精品 | 天天操比 | 亚洲免费不卡 | 久草在线这里只有精品 | 91av美女| 日韩中文字幕国产 | 国内久久久 | 国产高清视频在线播放一区 | 国产精品 日韩 欧美 | 久久久久福利视频 | 国产小视频免费观看 | 国产精品久久久久久久久久久久 | 国产 日韩 欧美 自拍 | 99爱视频 | 精品国产aⅴ麻豆 | 久久久精品欧美一区二区免费 | 亚洲一级免费电影 | 91正在播放| 日韩久久精品一区二区三区 | 亚洲高清不卡av | 天天干,天天射,天天操,天天摸 | 久综合网 | 午夜影院一级 | 久久五月激情 | 99国产精品视频免费观看一公开 | 一区二区 精品 | 在线成人高清电影 | 久久精品91久久久久久再现 | 亚洲国产精品va在线看黑人 | 国产一级免费视频 | 91精品999 | 中文字幕一区2区3区 | 色偷偷88888欧美精品久久 | 综合天天网 | 国产高清在线免费观看 | 99综合久久 | 精品久久久久久一区二区里番 | 亚洲婷婷伊人 | 日本中文字幕在线观看 | 成人免费xxxxxx视频 | 久久免费黄色 | ww亚洲ww亚在线观看 | 麻豆视频国产在线观看 | 91九色在线视频观看 | 香蕉视频啪啪 | 精品久久久国产 | 成人久久久久 | 天天操天天拍 | 久久久久综合精品福利啪啪 | 五月激情婷婷丁香 | 天天操天操| 免费福利视频导航 | 亚洲成av人片在线观看无 | 精品成人国产 | 免费成人av在线 | 丁香婷婷久久久综合精品国产 | 欧美精品中文在线免费观看 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 欧美日韩高清不卡 | 最近中文字幕视频网 | 日韩电影中文,亚洲精品乱码 | 欧美影院久久 | www.夜夜夜| 亚洲一区二区精品视频 | 色视频在线观看免费 | 99精品免费网 | 国产免费观看久久黄 | 午夜精品一区二区三区在线观看 | 成年人黄色免费视频 | 亚洲情影院 | 天天操天天综合网 | 久久国产网站 | 丁香五香天综合情 | 国产精品久久一区二区三区不卡 | www色com| 精品视频免费在线 | 超碰公开在线 | 18岁免费看片| 在线免费视频你懂的 | 免费看三级 | 亚洲成人av在线播放 | 久久国产美女视频 | 国产中文字幕视频在线 | 91精品国产三级a在线观看 | 成人久久免费 | 超碰人人做 | 91亚洲国产成人久久精品网站 | 国产成人av网 | 中文字幕无吗 | 在线视频a | 人人精品 | 婷婷丁香色综合狠狠色 | 天天天干天天天操 | 久久最新视频 | 久久电影国产免费久久电影 | 手机av在线不卡 | 成片人卡1卡2卡3手机免费看 | 久久九九久久精品 | 国产精品久久99综合免费观看尤物 | 精品在线观看国产 | 欧美性色黄 | 国产视频中文字幕在线观看 | 色网影音先锋 | 亚洲精品国偷自产在线91正片 | 999久久国产精品免费观看网站 | 人人看人人草 | 香蕉成人在线视频 | 成人资源网 | 91尤物在线播放 | 黄色成人av | 欧美一级电影免费观看 | 天天视频色| 九色在线视频 | 99久久精品免费视频 | av官网| 婷婷色中文 | 国产九色在线播放九色 | 午夜三级理论 | 久日精品| 国产视频一区二区在线观看 | 欧洲精品视频一区二区 | 久久精品视频4 | 欧美午夜a| av网站免费看 | 久久视频在线观看 | 亚洲国产精品成人va在线观看 | 最新日韩在线观看 | 天天干天天拍天天操 | 免费黄色av电影 | 久久免费a | 亚洲aⅴ一区二区三区 | 欧美性受极品xxxx喷水 | 久久国产热视频 | 国产视频69 | 亚洲精品乱码久久久久久蜜桃不爽 | 久久久久成人免费 | 久久伦理电影网 | 91综合色 | 免费a网站 | 欧美成人在线免费观看 | 伊人天天 | 亚洲国产日韩欧美在线 | 免费高清在线观看电视网站 | 九九久久国产 | 久久激情小视频 | 91影视成人 | 97电影手机版 | 日韩av片无码一区二区不卡电影 | 国产不卡一区二区视频 | 成年人看片网站 | 日本美女xx | 久久久午夜视频 | 91在线一区 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 亚洲欧美视频在线播放 | 亚洲高清色综合 | 97超碰福利久久精品 | 综合激情| 中文字幕在线观看一区二区三区 | 国产视频精品在线 | 激情综合六月 | 黄色av电影在线观看 | 久久综合毛片 | 97成人在线观看视频 | 在线观看国产日韩 | 丁香婷婷激情五月 | 91精品国产综合久久福利 | 国产激情免费 | 91在线视频免费播放 | 亚洲天堂社区 | 欧美日韩在线免费视频 | 免费欧美| 99视频+国产日韩欧美 | 成人免费在线观看电影 | 黄色a在线| 人人舔人人爱 | 亚洲精品99久久久久久 | 丁香六月婷婷激情 | 亚洲最新av| 欧美精品免费视频 | 91精品爽啪蜜夜国产在线播放 | 亚洲国产日韩av | 97在线观看视频 | 日韩欧美高清在线观看 | 色偷偷88888欧美精品久久久 | 一区二区精品 | 久久免费公开视频 | 精品在线视频观看 | 午夜精品久久久久 | 日韩中文字幕网站 | 欧美天天综合网 | 天天综合精品 | 四虎在线观看精品视频 | 韩日av一区二区 | 2021久久 | 日韩激情在线视频 | 国产看片免费 | 国产成人精品一区二区在线 | 国产精品国产三级在线专区 | 久久视频在线观看 | 色综合久久天天 | 欧美综合在线视频 | 欧美成人黄 | 97在线视频观看 | 国模精品一区二区三区 | 久草免费资源 | 成人资源网 | 日韩欧美视频免费看 | 波多野结衣在线播放视频 | 69av久久 | 国产男女免费完整视频 | 中文字幕黄色网址 | 亚洲综合精品在线 | 丁香六月av | 免费看的视频 | 欧美狠狠色 | 亚洲激情影院 | 成年人免费在线 | 中文字幕在线看视频国产 | 日韩av成人 | 狠狠干天天射 | 国产一区在线观看视频 | 色综合色综合色综合 | 99视频在线精品国自产拍免费观看 | 91av中文字幕 | 人人玩人人添人人澡97 | 国产精品九九久久久久久久 | 在线播放 日韩专区 | 麻豆91在线 | 久久国产精品99国产精 | 免费电影播放 | 日韩偷拍精品 | 黄网站污 | 国产一区精品在线观看 | 精品亚洲国产视频 | 国产精品婷婷 | 亚洲一区二区观看 | 五月激情亚洲 | 日日碰狠狠躁久久躁综合网 | 在线中文字幕一区二区 | 欧美黄色成人 | 亚洲综合情 | 国产一区二区在线影院 | 国产探花在线看 | 在线观看免费福利 | 91精品国产综合久久久久久久 | 特级毛片在线观看 | 国产精品亚洲a | 黄色软件网站在线观看 | 色综合网| 免费情缘 | 日韩在线观看网址 | 国产精品久久久久久久久久久杏吧 | 日韩高清一二区 | 国产生活一级片 | 五月婷婷综合在线 | 亚洲精品一区二区网址 | 91丨九色丨国产丨porny精品 | 2024av在线播放 | 欧美激情精品久久久久久免费 | 狠狠干狠狠操 | 免费在线观看a v | 色久网 | 日韩在线国产精品 | 999亚洲国产996395 | 超碰精品在线观看 | 看片的网址 | 国内精品久久久久国产 | 亚洲精品国产高清 | www在线观看视频 | 91精品一区二区三区蜜臀 | av电影免费观看 | 麻豆免费视频 | 久久久色 | 97碰碰视频| 最近最新最好看中文视频 | 国产一级精品绿帽视频 | 日本性视频 | 亚洲精品h| 麻豆视频在线免费观看 | 欧美日韩不卡一区二区三区 | 992tv人人草| 天天操天天干天天爽 | 在线看日韩 | 色婷婷视频在线观看 | 99欧美精品| 欧美日韩a视频 | 在线观看中文字幕一区 | 日韩网站在线观看 | 在线观看精品一区 | 国产男女无遮挡猛进猛出在线观看 | 亚洲黄色小说网 | 99国产精品免费网站 | 综合亚洲视频 | 狠狠干狠狠久久 | 色香网| 欧美日韩不卡在线视频 | 亚洲理论片在线观看 | 九色精品免费永久在线 | 国产亚洲在线视频 | 色夜视频 | 蜜臀av夜夜澡人人爽人人 | 欧美精品亚洲精品日韩精品 | 精品国内自产拍在线观看视频 | 在线视频 日韩 | 男女啪啪免费网站 | 99色免费视频 | 五月婷婷婷婷婷 | 少妇18xxxx性xxxx片 | 操高跟美女 | 国产原创在线观看 | 精品久久久久免费极品大片 | 涩涩色亚洲一区 | 国产特黄色片 | 99久久超碰中文字幕伊人 | 日韩大片在线免费观看 | 色欧美综合 | 美女网站在线观看 | av黄色免费看 | 免费av网站在线看 | 美女精品久久 | 久久欧美视频 | 五月视频 | 狠狠躁夜夜躁人人爽视频 | 免费日韩一区 | 91精品国产91久久久久福利 | 五月天中文字幕mv在线 | 久久天天操 | 国产另类xxxxhd高清 | 亚洲综合色av| 日韩精品网址 | 成年人在线看视频 | 精品久久久久久久久久久院品网 | 国产精品每日更新 | 亚洲精品日韩av | 三级小视频在线观看 | 国产福利一区二区三区视频 | 91视频免费 | 操操日日| 日韩综合第一页 | 五月婷婷在线播放 | 国产精品美女久久久久久久 | 九九在线播放 | 亚洲欧美色婷婷 | 久久福利国产 | 色97在线 | www.亚洲精品视频 | 91精品国产麻豆 | 日韩av电影国产 | 日韩在线电影观看 | 天堂在线v | 国产精品va视频 | www久久九 | 91成人在线视频 | 超碰97在线资源站 | 国产一在线精品一区在线观看 | 午夜色场 | 欧美极品少妇xbxb性爽爽视频 | 久久伦理网 | 久久电影国产免费久久电影 | 久久综合中文字幕 | 国产手机视频在线 | 久久久久激情视频 | 欧美另类xxxxx | 黄色成人av | 三级黄在线 | 激情av网 | 欧美一级性生活 | 狠狠色香婷婷久久亚洲精品 | 成人a免费视频 | 色综合久久久久久久 | 婷婷综合影院 | 在线观看 亚洲 | 国产精品美女久久久网av | 在线免费观看不卡av | 国产精品久久久久一区二区三区 | av免费在线免费观看 | 99久久婷婷国产综合精品 | 一区免费在线 | 亚洲国产中文字幕 | 99色人| 精品国产黄色片 | 欧美乱大交 | 日韩在线观看视频网站 | a在线免费观看视频 | 91丨九色丨蝌蚪丨对白 | 九九热在线观看 | 91在线看黄 | 又黄又爽又湿又无遮挡的在线视频 | 中文在线字幕免费观看 | 欧美一级性生活片 | 日韩三级.com | 国产精品久久99 | 一本色道久久综合亚洲二区三区 | 黄a在线观看 | 精品天堂av| 久久久久久久久爱 | www.久久爱.cn | 国产精品久久久999 国产91九色视频 | 91中文字幕在线视频 | 亚洲女同ⅹxx女同tv | 亚洲国产精品第一区二区 | 久草久草在线 | 一区二区三区精品在线视频 | 日本中文字幕电影在线免费观看 | 九色视频自拍 | 一区中文字幕在线观看 | 草久在线 | 色橹橹欧美在线观看视频高清 | 欧美日韩亚洲第一页 | 国产精品一区二区白浆 | 热久久免费国产视频 | 国产精品福利一区 | 中文字幕国产精品一区二区 | 91丨九色丨高潮 | 成人免费观看视频大全 | 热99在线| 色综合天天狠天天透天天伊人 | 999久久国产精品免费观看网站 | 一级黄视频| 国产精品毛片一区视频播 | 99精品视频在线播放观看 | 国产亚洲精品久久网站 | 久久国产精品精品国产色婷婷 | 六月丁香激情综合色啪小说 | 中文字幕在线中文 | 国产精品美女免费 | 中文字幕在线影院 | 国产一区二区手机在线观看 | 黄色成人av网址 | 99久久夜色精品国产亚洲 | 九九热只有精品 | 日韩a欧美| 91福利社区在线观看 | 久久免费黄色网址 | 日韩高清片 | 亚洲国产网站 | 亚洲午夜精 | 91精品秘密在线观看 | 一区二区视频免费在线观看 | 亚洲在线高清 | 国产精品久久久免费看 | 黄色电影在线免费观看 | 免费在线观看av的网站 | 欧美成人猛片 | 极品嫩模被强到高潮呻吟91 | 亚洲欧美综合精品久久成人 | 91九色porn在线资源 | 91精品久久久久久久久久入口 | 日日干美女 | 亚洲一级久久 | 欧美日韩不卡一区 | 中文亚洲欧美日韩 | 欧美激情视频免费看 | 亚洲,国产成人av | 国产三级精品在线 | 亚洲专区欧美专区 | 欧美精品一区二区在线观看 | 九九九九九精品 | av永久网址 | 黄色大片免费播放 | 在线视频99 | 中文字幕在线网址 | 天天操天天操天天操 | 中文字幕亚洲欧美 | 国产成人在线一区 | 91完整视频| 女人18精品一区二区三区 | 性色大片在线观看 | 狠狠躁夜夜躁人人爽视频 | 日韩视频免费观看高清完整版在线 | 欧美日本一区 | 久久免费视频这里只有精品 | 国产一区 在线播放 | 国产中文在线观看 | 欧美日韩视频在线观看一区二区 | 99久久精品免费看国产 | 国产网站av| 亚洲精品自在在线观看 | 欧洲精品码一区二区三区免费看 | 免费99| 日日麻批40分钟视频免费观看 | 男女啪啪网站 | 国产精品欧美一区二区三区不卡 | 人人看看人人 | 久久最新网址 | 成人国产在线 | 在线观看av的网站 | 一本一本久久aa综合精品 | 色综合色综合色综合 | 在线观看免费日韩 | 日韩三级视频在线看 | 中文字幕资源网 国产 | 国产日韩在线看 | 国产最新视频在线 | 最近日本韩国中文字幕 | 久久久久区 | 91精品国产成人观看 | 天天操天天操天天操天天 | 日韩av一区二区三区四区 | 黄网站免费大全入口 | 久草资源在线 | av免费网站| 四虎影视av | 91网站在线视频 | 中文不卡视频 | 91看片在线免费观看 | 免费看国产一级片 | 精品人人爽 | 亚洲天天综合网 | 国产成人精品一区二区三区免费 | 日韩成人精品在线观看 | 日韩一区二区三区高清在线观看 | 69亚洲精品 | 韩日视频在线 | 香蕉视频亚洲 | 成人黄色视 | 久草综合在线 | 激情五月看片 | 国产不卡一区二区视频 | 中国精品一区二区 | 91久久精品一区 | 色综合天天射 | 97视频一区 | 久久精品99久久久久久2456 | 97国产情侣爱久久免费观看 | 亚洲成熟女人毛片在线 | 九九九热精品 | 最新日韩电影 | 久久最新网址 | 黄色网免费 | 中文字幕在线网址 | 欧美日韩亚洲在线 | 国产精品久久久久久久久费观看 | 中文字幕在线观看亚洲 | 91视频免费网址 | 日本久久电影网 | 久久综合五月天婷婷伊人 | 国内亚洲精品 | 久久精品国产美女 | 精品影院一区二区久久久 | 99精彩视频在线观看免费 | 国产亚洲成人网 | 午夜视频在线观看一区二区 | 欧美视频xxx | 深夜男人影院 | 五月天色网站 | 成人小视频免费在线观看 | 国产一级黄色片免费看 | 91精品国产成人www | 九九热在线观看视频 | 日韩精品中文字幕av | 国产精品av免费 | av中文字幕日韩 | 丁香六月在线观看 | 日韩在线播放av | 欧美色久 | 狠狠色丁香久久综合网 | 色婷婷国产精品 | 免费的国产精品 | 国产高清在线观看 | 日韩av在线免费播放 | 国产97色在线| 国产精品久久久久久久久费观看 | 欧美色综合天天久久综合精品 | 在线观看久久久久久 | 亚洲无人区小视频 | 有码中文字幕在线观看 | 久久精品一区二区三区中文字幕 | 波多野结衣在线观看一区 | 精品96久久久久久中文字幕无 | 欧美孕妇与黑人孕交 | 看片一区二区三区 | 久久久久久亚洲精品 | 521色香蕉网站在线观看 | 欧美精品小视频 | 伊人欧美| 午夜精品久久久久久久99热影院 | 免费看成人片 | 国产精品视频久久久 | 香蕉久久国产 | 2024国产精品视频 | 草草草影院 | japanesexxxxfreehd乱熟 | 精品久久久久久久久久久久久久久久 | 色婷婷播放| 欧美色图视频一区 | 国产亚洲精品久久久网站好莱 | 色噜噜在线观看 | 99在线热播精品免费99热 | 视频一区久久 | 亚洲免费小视频 | 探花视频在线版播放免费观看 | 黄色电影在线免费观看 | 麻豆免费看片 | 日韩免费一二三区 | 色爽网站 | a精品视频 | 婷婷在线网站 | 在线观看中文字幕 | 精品国产一区二区三区久久久蜜臀 | 涩涩网站在线观看 | 国产精品久久久久久久久久新婚 | 成人免费看视频 | 免费av网站在线看 | 国产视频精品久久 | 精品国产一区二区三区在线 | 欧美性大战久久久久 | 国产一区二区不卡视频 | 亚洲v欧美v国产v在线观看 | av成人在线电影 | 免费av片在线 | 亚洲精品av在线 | 亚洲国产婷婷 | 97在线播放视频 | 国产国产人免费人成免费视频 | 亚洲v欧美v国产v在线观看 | 在线免费色 | 在线成人一区二区 | 国内精品视频久久 | 91麻豆传媒 | 91字幕| 97干com | 国产一级电影 | 国产精品专区一 | 国产无区一区二区三麻豆 | 精品国产一区二区三区久久影院 | 1024手机看片国产 | 在线最新av | 国产成人一区二区三区久久精品 | 91试看| 国产精品视频在线观看 | 欧洲在线免费视频 | 超碰人人做 | 亚洲视频免费在线观看 | 超碰激情在线 | 免费精品 | 国产精品欧美久久 | 精品亚洲一区二区三区 | www.com.日本一级 | 久久久久国产精品视频 | 在线观看亚洲精品 | 探花视频在线观看免费 | 91久久久久久久 | 国产伦精品一区二区三区免费 | 国产亚洲午夜高清国产拍精品 | 天天射综合 | 久久久一本精品99久久精品 | 国精产品999国精产品视频 | 亚洲精品国产精品乱码在线观看 | 久久字幕精品一区 | 久久午夜精品视频 | 精品国产乱码久久久久久1区二区 | 国产高清免费视频 | 国产精品6 | 一区二区三区动漫 | 狠狠躁夜夜躁人人爽超碰91 | 久久国产三级 | 日韩精品免费一区二区三区 | 成人午夜毛片 | 麻豆国产精品一区二区三区 | 四虎影视成人精品国库在线观看 | 最新国产福利 | 国产精品久久久999 国产91九色视频 | 国产做a爱一级久久 | 99热日本 | 亚洲第一中文字幕 | 亚洲一级在线观看 | 国产日产高清dvd碟片 | 韩国中文三级 | 日韩黄色中文字幕 | 丝袜制服综合网 | 国产精品福利小视频 | 高清av中文在线字幕观看1 | 免费午夜网站 | 天天干,天天干 | 亚洲国产精品成人综合 | 999成人 | www狠狠操 | 免费在线视频一区二区 | 视频在线国产 | 2019中文最近的2019中文在线 | 久久草视频 | 97精品国产91久久久久久 | 国产一级特黄电影 | 五月天激情综合 | 国产成人精品久久久 | 蜜臀久久99精品久久久无需会员 | 91在线视频在线 | 中文字幕在线观看网址 | 色wwwww| 亚洲精品大全 | 狠狠干网站 | 国产视频在线播放 | 深爱激情五月网 | 国产一级大片在线观看 | 国产女教师精品久久av | 精品久久美女 | 国产一级91| 久久只精品99品免费久23小说 | 国产操在线 | 亚洲免费小视频 | 国产精品理论片在线观看 | 黄色成人免费电影 | 国产另类av | 九九久久久久久久久激情 | 毛片a级片 | 日韩欧美在线播放 | 国产免费嫩草影院 | 国产精品永久久久久久久久久 | 国产成人精品综合久久久久99 | 色综合色综合久久综合频道88 | 狠狠ri| 久久天天躁狠狠躁夜夜不卡公司 | 日韩视频中文字幕 | 国产一区视频免费在线观看 | 精品嫩模福利一区二区蜜臀 | 精品在线播放视频 | 精品在线观看一区二区三区 | 午夜精品久久久久久久99水蜜桃 | 日韩精品中文字幕在线不卡尤物 | 亚洲精品在线观看视频 | 国产精品一区在线播放 | 中文在线字幕观看电影 | 91少妇精拍在线播放 | 久久成人综合视频 | 18av在线视频 | 亚洲日本在线一区 | 99在线视频精品 | 99在线免费观看 | 黄色免费国产 | 国产精品久久99综合免费观看尤物 | 夜夜视频 | 久久婷婷影视 | 中文在线a∨在线 | 精品综合久久久 | 五月婷婷av在线 | 欧美日韩免费一区 | 六月丁香婷婷久久 | 国产一区二区成人 | 日韩午夜高清 | 99久久精品免费看国产麻豆 | 日韩av一区二区在线 | 日韩欧美精品在线观看视频 | 99精品在线观看 | 91大神在线观看视频 | 国产精品12345 | 久久图 | 亚洲波多野结衣 | 亚洲精品99久久久久中文字幕 | www.亚洲激情.com | 激情伊人五月天久久综合 | av一级片在线观看 | 91麻豆精品一区二区三区 | 手机av看片| 欧美孕妇与黑人孕交 | 日本丰满少妇免费一区 | 天天超碰 | 国产 日韩 欧美 在线 | 欧美韩国在线 | av千婊在线免费观看 | 超碰人人做 | 日韩久久精品一区二区 | 国产对白av | 国产午夜精品在线 | 亚洲精品国内 | 亚欧日韩成人h片 | 91香蕉嫩草 | 天天天插 | 久久在线观看视频 | 99亚洲精品| 蜜臀久久99精品久久久久久网站 | 国产精品女教师 | 一区在线免费观看 | 超薄丝袜一二三区 | 亚洲黄色片一级 | 成+人+色综合 | 欧美精品一区二区免费 | 婷婷久久亚洲 | 国产aaa大片 | 国产超碰在线观看 | 99热这里是精品 | 人人爽人人爽 | 欧美久久久影院 | 成片免费观看视频大全 | 欧美日韩精品在线观看视频 | 综合久久五月天 |