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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

cJONS序列化工具解读二(数据解析)

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cJONS序列化工具解读二(数据解析) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

cJSON數據解析

關于數據解析部分,其實這個解析就是個自動機,通過遞歸或者解析棧進行實現數據的解析

/* Utility to jump whitespace and cr/lf */
//用于跳過ascii小于32的空白字符 static const char *skip(const char *in) { while (in && *in && (unsigned char)*in <= 32)in++;return in; }/* Parse an object - create a new root, and populate. */ cJSON *cJSON_ParseWithOpts(const char *value, const char **return_parse_end, int require_null_terminated) {const char *end = 0;cJSON *c = cJSON_New_Item();ep = 0;if (!c) return 0; /* memory fail *///根據前幾個字符設置c類型并更新讀取位置為endend = parse_value(c, skip(value));if (!end){ cJSON_Delete(c); //解析失敗,數據不完整return 0; } /* parse failure. ep is set. *//* if we require null-terminated JSON without appended garbage, skip and then check for a null terminator */if (require_null_terminated)///??{ end = skip(end); if (*end){ cJSON_Delete(c); ep = end; return 0;}}if (return_parse_end)*return_parse_end = end;return c; } /* Default options for cJSON_Parse */ cJSON *cJSON_Parse(const char *value) { return cJSON_ParseWithOpts(value, 0, 0); }

①關于重點部分parse_value 對類型解讀函數

/* Parser core - when encountering text, process appropriately. */
//將輸入字符串解析為具體類型cJSON結構 static const char *parse_value(cJSON *item, const char *value) {if (!value) return 0; /* Fail on null. */

  //設置結構的具體類型并且返回下一個將要解讀數據的位置if (!strncmp(value, "null", 4)) { item->type = cJSON_NULL; return value + 4; }if (!strncmp(value, "false", 5)) { item->type = cJSON_False; return value + 5; }if (!strncmp(value, "true", 4)) { item->type = cJSON_True; item->valueint = 1; return value + 4; }if (*value == '\"') { return parse_string(item, value); }if (*value == '-' || (*value >= '0' && *value <= '9')) { return parse_number(item, value); }if (*value == '[') { return parse_array(item, value); }if (*value == '{') { return parse_object(item, value); }ep = value; return 0; /* failure. */ }

②解析字符串部分
解析字符串時, 對于特殊字符也應該轉義,比如 "n" 字符應該轉換為 'n' 這個換行符。
當然,如果只有特殊字符轉換的話,代碼不會又這么長, 對于字符串, 還要支持非 ascii 碼的字符, 即 utf8字符。
這些字符在字符串中會編碼為 uXXXX 的字符串, 我們現在需要還原為 0 - 255 的一個字符。

static unsigned parse_hex4(const char *str) {unsigned h = 0;if (*str >= '0' && *str <= '9') h += (*str) - '0';else if (*str >= 'A' && *str <= 'F')h += 10 + (*str) - 'A';else if (*str >= 'a' && *str <= 'f')h += 10 + (*str) - 'a'; else return 0;h = h << 4; //*Fstr++;if (*str >= '0' && *str <= '9')h += (*str) - '0'; else if (*str >= 'A' && *str <= 'F')h += 10 + (*str) - 'A'; else if (*str >= 'a' && *str <= 'f') h += 10 + (*str) - 'a'; elsereturn 0;h = h << 4;str++;if (*str >= '0' && *str <= '9')h += (*str) - '0'; else if (*str >= 'A' && *str <= 'F')h += 10 + (*str) - 'A';else if (*str >= 'a' && *str <= 'f')h += 10 + (*str) - 'a';else return 0;h = h << 4; str++;if (*str >= '0' && *str <= '9')h += (*str) - '0'; else if (*str >= 'A' && *str <= 'F')h += 10 + (*str) - 'A';else if (*str >= 'a' && *str <= 'f')h += 10 + (*str) - 'a'; else return 0;return h; }/* Parse the input text into an unescaped cstring, and populate item. */ static const unsigned char firstByteMark[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC }; static const char *parse_string(cJSON *item, const char *str) {const char *ptr = str + 1;char *ptr2; char *out;int len = 0; unsigned uc, uc2;if (*str != '\"') { ep = str; return 0; } /* not a string! */while(*ptr != '\"' && *ptr && ++len)if (*ptr++ == '\\') //跳過\續行符ptr++; /* Skip escaped quotes. *///空間申請out = (char*)cJSON_malloc(len + 1); /* This is how long we need for the string, roughly. */if (!out) return 0;ptr = str + 1;//跳過“開始ptr2 = out;while (*ptr != '\"' && *ptr){if (*ptr != '\\')*ptr2++ = *ptr++;else //轉義字符處理 {ptr++;switch (*ptr){case 'b': *ptr2++ = '\b'; break;case 'f': *ptr2++ = '\f'; break;case 'n': *ptr2++ = '\n'; break;case 'r': *ptr2++ = '\r'; break;case 't': *ptr2++ = '\t'; break;case 'u': /* transcode utf16 to utf8. */uc = parse_hex4(ptr + 1); ptr += 4; /* get the unicode char. */if ((uc >= 0xDC00 && uc <= 0xDFFF) || uc == 0) break; /* check for invalid. */if (uc >= 0xD800 && uc <= 0xDBFF) /* UTF16 surrogate pairs. */{if (ptr[1] != '\\' || ptr[2] != 'u') break; /* missing second-half of surrogate. */uc2 = parse_hex4(ptr + 3);ptr += 6;if (uc2<0xDC00 || uc2>0xDFFF) break; /* invalid second-half of surrogate. */uc = 0x10000 + (((uc & 0x3FF) << 10) | (uc2 & 0x3FF));}len = 4; if (uc<0x80)len = 1;else if (uc<0x800)len = 2; else if (uc<0x10000) len = 3;ptr2 += len;switch (len){case 4:*--ptr2 = ((uc | 0x80) & 0xBF); uc >>= 6;case 3:*--ptr2 = ((uc | 0x80) & 0xBF); uc >>= 6;case 2:*--ptr2 = ((uc | 0x80) & 0xBF); uc >>= 6;case 1:*--ptr2 = (uc | firstByteMark[len]);}ptr2 += len;break;default:*ptr2++ = *ptr; break;}ptr++;}}*ptr2 = 0;if (*ptr == '\"') ptr++;item->valuestring = out;item->type = cJSON_String;return ptr; }

關于具體的字符解析中的編碼相關問題,請自行閱讀編碼相關知識?

③數字解析

/* Parse the input text to generate a number, and populate the result into item. */ static const char *parse_number(cJSON *item, const char *num) {double n = 0, sign = 1, scale = 0; int subscale = 0,signsubscale = 1;if (*num == '-')sign = -1, num++; /* Has sign? */if (*num == '0') num++; /* is zero */if (*num >= '1' && *num <= '9') do {n = (n*10.0) + (*num++ - '0');}while (*num >= '0' && *num <= '9'); /* Number? */if (*num == '.' && num[1] >= '0' && num[1] <= '9'){ num++; don = (n*10.0) + (*num++ - '0'), scale--;while (*num >= '0' && *num <= '9'); } /* Fractional part? */if (*num == 'e' || *num == 'E') /* Exponent? */{num++;if (*num == '+')num++; else if (*num == '-')signsubscale = -1, num++; /* With sign? */while (*num >= '0' && *num <= '9')subscale = (subscale * 10) + (*num++ - '0'); /* Number? */}n = sign*n*pow(10.0, (scale + subscale*signsubscale)); /* number = +/- number.fraction * 10^+/- exponent */item->valuedouble = n;item->valueint = (int)n;item->type = cJSON_Number;return num; }

④解析數組
解析數組, 需要先遇到 '[' 這個符號, 然后挨個的讀取節點內容, 節點使用 ',' 分隔, ',' 前后還可能有空格, 最后以 ']' 結尾。
我們要編寫的也是這樣。
先創建一個數組對象, 判斷是否有兒子, 有的話讀取第一個兒子, 然后判斷是不是有 逗號, 有的話循環讀取后面的兒子。
最后讀取 ']' 即可。


/* Build an array from input text. */ static const char *parse_array(cJSON *item, const char *value) {cJSON *child;if (*value != '[') {ep = value;return 0;} /* not an array! */item->type = cJSON_Array;value = skip(value + 1);if (*value == ']')return value + 1; /* empty array. */item->child = child = cJSON_New_Item();if (!item->child) return 0; /* memory fail *///解析數組內結構value = skip(parse_value(child, skip(value))); /* skip any spacing, get the value. */if (!value) return 0;while (*value == ','){cJSON *new_item;if (!(new_item = cJSON_New_Item())) return 0; /* memory fail */child->next = new_item; new_item->prev = child;child = new_item;value = skip(parse_value(child, skip(value + 1)));if (!value)return 0; /* memory fail */}if (*value == ']')return value + 1; /* end of array */ep = value; return 0; /* malformed. */ }

⑤解析對象

解析對象和解析數組類似, 只不過對象的一個兒子是個 key - value, key 是字符串, value 可能是任何值, key 和 value 用 ":" 分隔。

/* Render an object to text. */ static char *print_object(cJSON *item, int depth, int fmt, printbuffer *p) {char **entries = 0, **names = 0;char *out = 0, *ptr, *ret, *str; int len = 7, i = 0, j;cJSON *child = item->child;int numentries = 0, fail = 0;size_t tmplen = 0;/* Count the number of entries. */while (child) numentries++, child = child->next;/* Explicitly handle empty object case */if (!numentries){if (p) out = ensure(p, fmt ? depth + 4 : 3);else out = (char*)cJSON_malloc(fmt ? depth + 4 : 3);if (!out) return 0;ptr = out; *ptr++ = '{';if (fmt) { *ptr++ = '\n'; for (i = 0; i<depth - 1; i++) *ptr++ = '\t'; }*ptr++ = '}'; *ptr++ = 0;return out;}if (p){/* Compose the output: */i = p->offset;len = fmt ? 2 : 1; ptr = ensure(p, len + 1); if (!ptr) return 0;*ptr++ = '{'; if (fmt) *ptr++ = '\n'; *ptr = 0; p->offset += len;child = item->child; depth++;while (child){if (fmt){ptr = ensure(p, depth); if (!ptr) return 0;for (j = 0; j<depth; j++) *ptr++ = '\t';p->offset += depth;}print_string_ptr(child->string, p);p->offset = update(p);len = fmt ? 2 : 1;ptr = ensure(p, len); if (!ptr) return 0;*ptr++ = ':'; if (fmt) *ptr++ = '\t';p->offset += len;print_value(child, depth, fmt, p);p->offset = update(p);len = (fmt ? 1 : 0) + (child->next ? 1 : 0);ptr = ensure(p, len + 1); if (!ptr) return 0;if (child->next) *ptr++ = ',';if (fmt) *ptr++ = '\n'; *ptr = 0;p->offset += len;child = child->next;}ptr = ensure(p, fmt ? (depth + 1) : 2); if (!ptr) return 0;if (fmt) for (i = 0; i<depth - 1; i++) *ptr++ = '\t';*ptr++ = '}'; *ptr = 0;out = (p->buffer) + i;}else{/* Allocate space for the names and the objects */entries = (char**)cJSON_malloc(numentries * sizeof(char*));if (!entries) return 0;names = (char**)cJSON_malloc(numentries * sizeof(char*));if (!names) { cJSON_free(entries); return 0; }memset(entries, 0, sizeof(char*)*numentries);memset(names, 0, sizeof(char*)*numentries);/* Collect all the results into our arrays: */child = item->child; depth++; if (fmt) len += depth;while (child){names[i] = str = print_string_ptr(child->string, 0);entries[i++] = ret = print_value(child, depth, fmt, 0);if (str && ret) len += strlen(ret) + strlen(str) + 2 + (fmt ? 2 + depth : 0); else fail = 1;child = child->next;}/* Try to allocate the output string */if (!fail) out = (char*)cJSON_malloc(len);if (!out) fail = 1;/* Handle failure */if (fail){for (i = 0; i<numentries; i++) { if (names[i]) cJSON_free(names[i]); if (entries[i]) cJSON_free(entries[i]); }cJSON_free(names); cJSON_free(entries);return 0;}/* Compose the output: */*out = '{'; ptr = out + 1; if (fmt)*ptr++ = '\n'; *ptr = 0;for (i = 0; i<numentries; i++){if (fmt) for (j = 0; j<depth; j++) *ptr++ = '\t';tmplen = strlen(names[i]); memcpy(ptr, names[i], tmplen); ptr += tmplen;*ptr++ = ':'; if (fmt) *ptr++ = '\t';strcpy(ptr, entries[i]); ptr += strlen(entries[i]);if (i != numentries - 1) *ptr++ = ',';if (fmt) *ptr++ = '\n'; *ptr = 0;cJSON_free(names[i]); cJSON_free(entries[i]);}cJSON_free(names); cJSON_free(entries);if (fmt) for (i = 0; i<depth - 1; i++) *ptr++ = '\t';*ptr++ = '}'; *ptr++ = 0;}return out; }

這樣都實現后, 字符串解析為 json 對象就實現了。

⑥序列化

序列化也就是格式化輸出了。

序列化又分為格式化輸出,壓縮輸出

?

/* Render a cJSON item/entity/structure to text. */ char *cJSON_Print(cJSON *item) { return print_value(item, 0, 1, 0); } char *cJSON_PrintUnformatted(cJSON *item) {return print_value(item, 0, 0, 0); }char *cJSON_PrintBuffered(cJSON *item, int prebuffer, int fmt) {printbuffer p;p.buffer = (char*)cJSON_malloc(prebuffer);p.length = prebuffer;p.offset = 0;return print_value(item, 0, fmt, &p);return p.buffer; }/* Render a value to text. */ static char *print_value(cJSON *item, int depth, int fmt, printbuffer *p) {char *out = 0;if (!item) return 0;if (p){switch ((item->type) & 255){case cJSON_NULL: {out = ensure(p, 5); if (out) strcpy(out, "null"); break; }case cJSON_False: {out = ensure(p, 6); if (out) strcpy(out, "false"); break; }case cJSON_True: {out = ensure(p, 5); if (out) strcpy(out, "true"); break; }case cJSON_Number: out = print_number(item, p); break;case cJSON_String: out = print_string(item, p); break;case cJSON_Array: out = print_array(item, depth, fmt, p); break;case cJSON_Object: out = print_object(item, depth, fmt, p); break;}}else{switch ((item->type) & 255){case cJSON_NULL: out = cJSON_strdup("null"); break;case cJSON_False: out = cJSON_strdup("false"); break;case cJSON_True: out = cJSON_strdup("true"); break;case cJSON_Number: out = print_number(item, 0); break;case cJSON_String: out = print_string(item, 0); break;case cJSON_Array: out = print_array(item, depth, fmt, 0); break;case cJSON_Object: out = print_object(item, depth, fmt, 0); break;}}return out; }

?

假設我們要使用格式化輸出, 也就是美化輸出。

cjson 的做法不是邊分析 json 邊輸出, 而是預先將要輸的內容全部按字符串存在內存中, 最后輸出整個字符串。

這對于比較大的 json 來說, 內存就是個問題了。

另外,格式化輸出依靠的是節點的深度, 這個也可以優化, 一般寬度超過80 時, 就需要從新的一行算起的。

/* Render an object to text. */ static char *print_object(cJSON *item, int depth, int fmt, printbuffer *p) {char **entries = 0, **names = 0;char *out = 0, *ptr, *ret, *str; int len = 7, i = 0, j;cJSON *child = item->child;int numentries = 0, fail = 0;size_t tmplen = 0;/* Count the number of entries. */while (child) numentries++, child = child->next;/* Explicitly handle empty object case */if (!numentries){if (p) out = ensure(p, fmt ? depth + 4 : 3);else out = (char*)cJSON_malloc(fmt ? depth + 4 : 3);if (!out) return 0;ptr = out; *ptr++ = '{';if (fmt) { *ptr++ = '\n'; for (i = 0; i<depth - 1; i++) *ptr++ = '\t'; }*ptr++ = '}'; *ptr++ = 0;return out;}if (p){/* Compose the output: */i = p->offset;len = fmt ? 2 : 1; ptr = ensure(p, len + 1); if (!ptr) return 0;*ptr++ = '{'; if (fmt) *ptr++ = '\n'; *ptr = 0; p->offset += len;child = item->child; depth++;while (child){if (fmt){ptr = ensure(p, depth); if (!ptr) return 0;for (j = 0; j<depth; j++) *ptr++ = '\t';p->offset += depth;}print_string_ptr(child->string, p);p->offset = update(p);len = fmt ? 2 : 1;ptr = ensure(p, len); if (!ptr) return 0;*ptr++ = ':'; if (fmt) *ptr++ = '\t';p->offset += len;print_value(child, depth, fmt, p);p->offset = update(p);len = (fmt ? 1 : 0) + (child->next ? 1 : 0);ptr = ensure(p, len + 1); if (!ptr) return 0;if (child->next) *ptr++ = ',';if (fmt) *ptr++ = '\n'; *ptr = 0;p->offset += len;child = child->next;}ptr = ensure(p, fmt ? (depth + 1) : 2); if (!ptr) return 0;if (fmt) for (i = 0; i<depth - 1; i++) *ptr++ = '\t';*ptr++ = '}'; *ptr = 0;out = (p->buffer) + i;}else{/* Allocate space for the names and the objects */entries = (char**)cJSON_malloc(numentries * sizeof(char*));if (!entries) return 0;names = (char**)cJSON_malloc(numentries * sizeof(char*));if (!names) { cJSON_free(entries); return 0; }memset(entries, 0, sizeof(char*)*numentries);memset(names, 0, sizeof(char*)*numentries);/* Collect all the results into our arrays: */child = item->child; depth++; if (fmt) len += depth;while (child){names[i] = str = print_string_ptr(child->string, 0);entries[i++] = ret = print_value(child, depth, fmt, 0);if (str && ret) len += strlen(ret) + strlen(str) + 2 + (fmt ? 2 + depth : 0); else fail = 1;child = child->next;}/* Try to allocate the output string */if (!fail) out = (char*)cJSON_malloc(len);if (!out) fail = 1;/* Handle failure */if (fail){for (i = 0; i<numentries; i++) { if (names[i]) cJSON_free(names[i]); if (entries[i]) cJSON_free(entries[i]); }cJSON_free(names); cJSON_free(entries);return 0;}/* Compose the output: */*out = '{'; ptr = out + 1; if (fmt)*ptr++ = '\n'; *ptr = 0;for (i = 0; i<numentries; i++){if (fmt) for (j = 0; j<depth; j++) *ptr++ = '\t';tmplen = strlen(names[i]); memcpy(ptr, names[i], tmplen); ptr += tmplen;*ptr++ = ':'; if (fmt) *ptr++ = '\t';strcpy(ptr, entries[i]); ptr += strlen(entries[i]);if (i != numentries - 1) *ptr++ = ',';if (fmt) *ptr++ = '\n'; *ptr = 0;cJSON_free(names[i]); cJSON_free(entries[i]);}cJSON_free(names); cJSON_free(entries);if (fmt) for (i = 0; i<depth - 1; i++) *ptr++ = '\t';*ptr++ = '}'; *ptr++ = 0;}return out; }

?

static char *print_array(cJSON *item, int depth, int fmt, printbuffer *p) {char **entries;char *out = 0, *ptr, *ret; int len = 5;cJSON *child = item->child;int numentries = 0, i = 0, fail = 0;size_t tmplen = 0;/* How many entries in the array? */while (child) numentries++, child = child->next;/* Explicitly handle numentries==0 */if (!numentries){if (p) out = ensure(p, 3);else out = (char*)cJSON_malloc(3);if (out) strcpy(out, "[]");return out;}if (p){/* Compose the output array. */i = p->offset;ptr = ensure(p, 1); if (!ptr) return 0; *ptr = '['; p->offset++;child = item->child;while (child && !fail){print_value(child, depth + 1, fmt, p);p->offset = update(p);if (child->next) { len = fmt ? 2 : 1; ptr = ensure(p, len + 1); if (!ptr) return 0; *ptr++ = ','; if (fmt)*ptr++ = ' '; *ptr = 0; p->offset += len; }child = child->next;}ptr = ensure(p, 2); if (!ptr) return 0; *ptr++ = ']'; *ptr = 0;out = (p->buffer) + i;}else{/* Allocate an array to hold the values for each */entries = (char**)cJSON_malloc(numentries * sizeof(char*));if (!entries) return 0;memset(entries, 0, numentries * sizeof(char*));/* Retrieve all the results: */child = item->child;while (child && !fail){ret = print_value(child, depth + 1, fmt, 0);entries[i++] = ret;if (ret) len += strlen(ret) + 2 + (fmt ? 1 : 0); else fail = 1;child = child->next;}/* If we didn't fail, try to malloc the output string */if (!fail) out = (char*)cJSON_malloc(len);/* If that fails, we fail. */if (!out) fail = 1;/* Handle failure. */if (fail){for (i = 0; i<numentries; i++) if (entries[i]) cJSON_free(entries[i]);cJSON_free(entries);return 0;}/* Compose the output array. */*out = '[';ptr = out + 1; *ptr = 0;for (i = 0; i<numentries; i++){tmplen = strlen(entries[i]); memcpy(ptr, entries[i], tmplen); ptr += tmplen;if (i != numentries - 1) { *ptr++ = ','; if (fmt)*ptr++ = ' '; *ptr = 0; }cJSON_free(entries[i]);}cJSON_free(entries);*ptr++ = ']'; *ptr++ = 0;}return out; }

?

轉載于:https://www.cnblogs.com/lang5230/p/5492702.html

總結

以上是生活随笔為你收集整理的cJONS序列化工具解读二(数据解析)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

美女免费电影 | 色国产精品 | 久久精品视频在线观看免费 | 免费高清看电视网站 | 亚洲成人av电影 | 日韩视| 国产一级黄色免费看 | 天天做综合网 | 成人在线播放网站 | 久久夜夜夜 | 国产小视频网站 | 午夜视频在线观看一区二区三区 | 国产又粗又猛又爽又黄的视频免费 | 亚洲 综合 国产 精品 | 正在播放久久 | 国产在线精品视频 | 不卡的av在线播放 | 成人av高清在线观看 | 亚洲精品88欧美一区二区 | 久热色超碰 | 好看的国产精品视频 | 日韩欧美第二页 | 一区二区三区四区不卡 | 成人全视频免费观看在线看 | 九九热免费观看 | 国产xxxxx在线观看 | 97超碰在线免费 | 蜜臀aⅴ国产精品久久久国产 | 日韩一区二区三区高清免费看看 | 在线视频久 | 久久成人免费电影 | www日日| 国产日韩亚洲 | a色视频| 黄网站a| 久久这里有 | 色婷婷av一区二 | 激情综合狠狠 | 黄色一级性片 | 91麻豆精品国产自产在线游戏 | 亚洲精品麻豆视频 | 久久午夜电影院 | 国产专区欧美专区 | 久久亚洲免费 | 久久视频在线观看 | 日韩精品无码一区二区三区 | 91最新视频| 高清国产一区 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 超碰在线人 | 五月天高清欧美mv | 日韩videos| www久久com| 精品免费在线视频 | 免费观看的黄色 | 精品一二三四五区 | 亚洲在线 | 国产精品久久久亚洲 | 网站免费黄色 | 欧美男男激情videos | 天堂在线一区二区 | 天天射天天干天天爽 | 国产精品热| 亚洲精品中文字幕在线 | 久久久国产精品久久久 | 又污又黄网站 | 欧美在线一 | 亚洲国产成人精品电影在线观看 | 日韩网 | 99草在线视频 | 六月天色婷婷 | 国产精品免费视频观看 | 久久精品久久久久久久 | 高清久久久 | 91女神的呻吟细腰翘臀美女 | 视频精品一区二区三区 | av看片在线观看 | 五月婷婷视频在线 | av电影在线播放 | av成人在线电影 | 在线 日韩 av| 国产麻豆剧果冻传媒视频播放量 | 亚洲va综合va国产va中文 | 中文视频在线播放 | 九色精品 | 欧美精品乱码久久久久 | 天堂视频一区 | 国产高清综合 | 精品一区二区三区在线播放 | 美女黄视频免费看 | 青青河边草免费观看 | 亚洲国产中文字幕 | 国产麻豆果冻传媒在线观看 | 四虎影视8848dvd | 国产精品久久久久久妇 | 日韩大片在线观看 | 日韩美av在线 | 久久高视频 | 中文字幕之中文字幕 | 国产成人精品久久亚洲高清不卡 | 99久高清在线观看视频99精品热在线观看视频 | 99精品视频免费看 | 中文字幕在线成人 | 日韩.com | 国产精品美女久久久久久久久久久 | 99久久综合狠狠综合久久 | 在线看片中文字幕 | 久久精品视频在线播放 | 黄色影院在线免费观看 | 日韩av电影免费在线观看 | 99视频偷窥在线精品国自产拍 | 色资源二区在线视频 | 久久av中文字幕片 | 天堂网中文在线 | 久久精品79国产精品 | 精品国精品自拍自在线 | 婷婷色综| 久久久精品日本 | 九九综合九九综合 | 麻花豆传媒mv在线观看网站 | 在线观看日韩av | 日韩黄在线观看 | 亚洲欧洲av在线 | 亚洲成人资源网 | 超碰人人乐| av三级av| 国产高清中文字幕 | 日韩免费电影 | 成人一区二区三区在线观看 | 中文字幕第 | 久久艹欧美 | 久久精品国产精品亚洲 | 成年人黄色在线观看 | 在线看av的网址 | 日韩电影在线看 | 久久人人爽人人片av | 五月婷婷综合在线 | 日本成人黄色片 | 国产精品欧美日韩在线观看 | 激情 婷婷| 日韩av中文 | 国产精品美乳一区二区免费 | 久久国产欧美日韩精品 | av资源免费看 | 欧美日韩国产综合一区二区 | 色婷婷国产在线 | 国产五月天婷婷 | 一区二区高清在线 | 久久久免费少妇 | 在线亚洲人成电影网站色www | 欧美日本在线观看视频 | 中文字幕亚洲综合久久五月天色无吗'' | 亚洲精品色视频 | 99精品美女 | 久久在线电影 | 成人 亚洲 欧美 | 97视频资源| 亚洲美女精品区人人人人 | 五月婷丁香 | 久久er99热精品一区二区三区 | 亚洲国产欧美在线看片xxoo | 午夜精品视频一区二区三区在线看 | 天天摸夜夜操 | 激情五月开心 | 国产精品区在线观看 | 日韩毛片久久久 | 超碰免费av | 国产精品av电影 | 国产成人一区二区啪在线观看 | 亚洲视频 在线观看 | 麻花豆传媒mv在线观看 | 日韩高清在线不卡 | 国产视频亚洲精品 | 伊人久久婷婷 | 久久国产午夜精品理论片最新版本 | 国产福利在线免费 | 色噜噜狠狠色综合中国 | 91爱爱网址 | 欧美日韩久久一区 | 草久在线 | 久久久久久毛片 | 黄色免费网战 | 免费黄av | 国产中文a | 亚洲爱视频 | 亚洲成熟女人毛片在线 | 日韩av一区二区三区在线观看 | 欧美日韩亚洲第一页 | 成人黄色大片在线观看 | 亚洲美女免费精品视频在线观看 | 欧美国产三区 | 欧美成人手机版 | 91av视频网站 | 99精品免费久久久久久久久 | 日本天天操 | 久草视频免费看 | 欧美激情视频一区二区三区 | 97av免费视频 | 亚洲精品视频在线免费播放 | 国产精品欧美一区二区三区不卡 | 9999在线视频 | 四虎精品成人免费网站 | 日韩高清在线观看 | 99久久www免费 | 91av视频观看 | 97国产一区| 国产一性一爱一乱一交 | 激情综合亚洲精品 | 日韩欧美国产成人 | 久久情侣偷拍 | 成人一级免费电影 | 久久视频免费观看 | 日本久久电影 | 国产在线欧美在线 | 日韩精品aaa | 丁五月婷婷 | 免费日韩 精品中文字幕视频在线 | 午夜精品久久久久久中宇69 | 亚洲国产网站 | 日日夜夜操操操操 | 国产一区在线播放 | 91亚洲国产成人久久精品网站 | 亚洲精品国产品国语在线 | 亚洲精品短视频 | 在线不卡的av | 日本黄网站 | 天天色棕合合合合合合 | 免费观看的黄色 | 337p日本欧洲亚洲大胆裸体艺术 | 在线免费黄色av | 免费观看一区二区 | 成人h电影在线观看 | 91麻豆精品国产91久久久久 | 日韩av线观看| 欧美日韩高清在线 | 91香蕉亚洲精品 | 黄色成年 | 日韩视频免费观看高清完整版在线 | 成人av免费在线观看 | 久免费视频 | 91精品久久久久久久99蜜桃 | 成人国产精品久久久 | 国产在线精品一区二区不卡了 | 国内精品久久久久久久影视麻豆 | 国产高清综合 | 99久久一区 | 精品亚洲免费 | 在线观看视频在线 | 五月婷婷中文网 | 91女神的呻吟细腰翘臀美女 | 日韩91精品 | 色综合综合 | 久久99久久99精品中文字幕 | 成人一区二区三区在线 | 国产精美视频 | 一区二区影视 | 美女黄久久 | 97色资源| 国产剧情亚洲 | 九色视频网 | 91天天视频| 亚洲网站在线 | 国产999在线 | 韩国三级在线一区 | 欧美超碰在线 | 成人av电影网址 | 久在线| 国产一区二区午夜 | 精品久久国产一区 | 国产免费又爽又刺激在线观看 | 精品国精品自拍自在线 | 成人性生交大片免费观看网站 | 黄色一区二区在线观看 | 国产日韩精品在线 | 国产精品福利午夜在线观看 | 美女视频一区二区 | 中文字幕高清有码 | 欧美一级电影在线观看 | 亚洲专区在线视频 | 中文综合在线 | 9797在线看片亚洲精品 | 中文字幕中文字幕在线中文字幕三区 | 国产一区二区三区四区在线 | 激情伊人五月天久久综合 | 九九免费观看全部免费视频 | 天天色天天射天天干 | 中文字幕文字幕一区二区 | 久久草草热国产精品直播 | 中文在线免费观看 | 国产成人av网 | 91刺激视频 | 国产精品视频线看 | 中文字幕 婷婷 | 天天插日日射 | 波多野结衣电影一区 | 日本精品视频一区 | 亚洲伦理一区 | www.黄色片网站 | 在线观看中文字幕 | 日韩不卡高清 | 国产在线成人 | 亚洲国产人午在线一二区 | 婷婷综合网 | 中文字幕你懂的 | 91精品蜜桃| 日韩av一区二区在线播放 | 婷婷丁香花 | 色黄久久久久久 | 99re在线视频观看 | 免费黄色av电影 | 精品一二三四视频 | 97视频免费观看 | 奇米网网址 | 日韩成人不卡 | 日韩三级在线观看 | 国产在线一卡 | 欧美综合色在线图区 | 久久综合亚洲鲁鲁五月久久 | 国内精品久久久久久久久久久久 | 日韩a级免费视频 | 日韩精品中文字幕在线观看 | 亚洲少妇天堂 | 涩涩网站在线 | 午夜视频在线观看欧美 | 久久久久久久久久久久久久电影 | 亚洲精品高清在线 | 亚洲国产精品小视频 | 中文字幕av在线播放 | 四虎影视成人永久免费观看亚洲欧美 | 免费视频在线观看网站 | 亚洲mv大片欧洲mv大片免费 | 日本中文字幕在线观看 | 国产精品嫩草影视久久久 | 久草视频免费播放 | 中文视频在线 | 久久久久久久久久久免费视频 | 91大神dom调教在线观看 | 日本中文字幕网站 | 亚洲综合欧美日韩狠狠色 | 99中文视频在线 | 国产成人三级三级三级97 | 91夜夜夜 | www.五月激情.com | 激情久久久久久久久久久久久久久久 | 亚洲黄色在线播放 | 啪啪免费观看网站 | 欧美国产大片 | 不卡av免费在线观看 | 五月天电影免费在线观看一区 | 337p日本欧洲亚洲大胆裸体艺术 | 国产精品福利一区 | 国产亚洲精品成人av久久ww | 五月婷婷操 | 日韩一区二区三区免费视频 | 在线观看你懂的网站 | 久久国产精品精品国产色婷婷 | 天天综合狠狠精品 | 日韩一区正在播放 | 涩涩色亚洲一区 | 久久综合九色综合97婷婷女人 | 亚洲欧美乱综合图片区小说区 | 伊人婷婷久久 | 狠狠狠色狠狠色综合 | 日韩三级免费观看 | 久久精品亚洲 | 亚洲国产日韩一区 | 91成人免费看片 | 99视频在线精品 | 四虎永久免费在线观看 | 91av原创| 一本色道久久综合亚洲二区三区 | 亚洲国产天堂av | 免费在线观看黄色网 | av资源在线观看 | 中文字幕在线观看完整版 | 中国一级片在线观看 | 日韩一区二区三免费高清在线观看 | 综合黄色网 | av在线亚洲天堂 | 黄色成人91| 午夜久久久久久久 | 91日韩在线播放 | 日av免费 | 国产精品黑丝在线观看 | 91久久国产综合精品女同国语 | 夜夜爱av| 黄色小视频在线观看免费 | 日韩特级片 | av免费电影在线观看 | 国产一区二区三区久久久 | 激情av综合 | 狠狠操影视 | 黄色av网站在线观看免费 | 五月婷婷影院 | 成 人 黄 色 片 在线播放 | av大全免费在线观看 | 久久99国产视频 | 久久国产高清视频 | 欧美久久久久久久 | 欧美a级在线免费观看 | 操少妇视频 | 精品麻豆 | 国产成人久久av免费高清密臂 | 免费99视频 | 免费三级黄色 | 91精品国产91热久久久做人人 | 99福利片 | 中国一级片在线 | 麻豆果冻剧传媒在线播放 | 天天操综合 | 不卡视频国产 | 欧美激情视频久久 | 国产精品xxxx18a99 | 成人资源在线播放 | 久青草电影 | 国产精品男女视频 | 国产精品毛片一区二区在线 | 美国av片在线观看 | 色偷偷男人的天堂av | 午夜精品福利一区二区三区蜜桃 | www国产精品com | 亚洲视频网站在线观看 | 欧美午夜精品久久久久久浪潮 | 黄色特级一级片 | 婷婷伊人网 | 欧美综合在线观看 | 国产喷水在线 | 日本深夜福利视频 | 最新日韩视频 | 亚洲精品天天 | 成人免费视频在线观看 | 久久av观看 | av免费片 | 免费网站黄色 | 欧美精品生活片 | 麻豆网站免费观看 | 国产99中文字幕 | 成人h在线| 精品国产一区二区三区久久影院 | 91精品国产91热久久久做人人 | 在线观看成年人 | av网站在线观看免费 | 在线免费av网站 | 国产91精品一区二区麻豆网站 | 天天五月天色 | 日韩视频在线观看视频 | 涩涩色亚洲一区 | 日韩视频在线观看免费 | 欧洲精品亚洲精品 | 高清久久久 | 天堂激情网 | 国产精品永久在线观看 | 久草资源在线 | 国产特级毛片 | 久久免费公开视频 | 国产无遮挡猛进猛出免费软件 | 国产亚洲精品久久久久久大师 | 欧美精品久久久久久久久久白贞 | 精品国产一区二区三区av性色 | 日日天天av| 欧美日韩视频一区二区三区 | 日韩精品 在线视频 | 91成人免费视频 | 一区二区精品在线观看 | 在线观看免费色 | 国产在线视频不卡 | 国产亚洲精品久久久久秋 | 超碰在线人人 | 天天躁日日躁狠狠躁av中文 | 九九九免费视频 | 免费看的黄色录像 | 国产精品黄色影片导航在线观看 | 男女日麻批 | 国产成人精品久久二区二区 | 香蕉在线观看视频 | 日日夜夜中文字幕 | 黄色国产大片 | 精品久久久精品 | 欧美午夜一区二区福利视频 | 美女视频是黄的免费观看 | 国产精品理论片在线播放 | 亚洲人人av | 伊人午夜 | 久久av一区二区三区亚洲 | 免费亚洲黄色 | 蜜臀久久99精品久久久无需会员 | 国产999精品 | 国产精品av电影 | 美女福利视频在线 | 在线中文字幕一区二区 | 免费视频一二三 | 91视频久久久久 | 五月婷香 | 国产精品免费在线播放 | 天天干天天做 | 国产做爰视频 | 国产亚洲在线观看 | 蜜臀av在线一区二区三区 | 亚洲福利精品 | 久久天天躁夜夜躁狠狠85麻豆 | japanesexxx乱女另类| 欧美一区免费观看 | av电影在线播放 | 美女中文字幕 | 又色又爽又黄高潮的免费视频 | 国产美女精品久久久 | h视频在线看 | 国产亚洲婷婷免费 | 国内精品在线看 | 99久久精品国产欧美主题曲 | 欧美精品久久久久久久久免 | 国产在线精| 久久婷婷色 | 婷婷深爱五月 | 色狠狠干 | 国产视频99 | 九九综合九九综合 | 日韩精品一区二区不卡 | 日韩成人精品 | 欧美在线观看视频一区二区三区 | 黄色一级大片在线免费看国产一 | 丁香六月欧美 | 精品九九九 | 色综合久久精品 | 天天综合天天做天天综合 | 久久久久久网站 | 亚洲理论在线观看电影 | 日韩久久精品一区二区三区 | 日韩久久久久久久久久 | 国产免费一区二区三区最新 | 99久久精品久久亚洲精品 | 午夜电影av | av黄色一级片 | 一区二区视频在线看 | 久久99亚洲精品 | 精品国产一区二区三区av性色 | 国产美女精品在线 | 欧美性色19p | 成人99免费视频 | 国产视频一区在线免费观看 | 国产高清永久免费 | 六月婷色 | 国产97在线观看 | 久久国语 | 国产精品中文字幕在线 | 午夜av在线 | 国产成人a亚洲精品v | 激情视频国产 | 成人国产综合 | 激情五月播播久久久精品 | 天天操操操操操 | 91在线视频在线观看 | 综合激情网 | 超碰99在线 | 国产精品大片在线观看 | 91桃色免费视频 | 久久不射电影网 | 成人av片免费观看app下载 | 啪啪肉肉污av国网站 | 精品国产一区二区三区在线观看 | 久久社区视频 | 国产精品免费在线播放 | 久久久精品免费看 | 中文av日韩 | 欧美人人爱 | 日韩欧美网站 | 久久精品视频99 | 69视频在线播放 | 成人综合免费 | 久久免费视频播放 | 国产剧情久久 | 中文字幕成人在线观看 | 久久情侣偷拍 | 日韩av片在线 | 欧美最猛性xxxx | 婷婷五综合 | 免费观看的黄色片 | 狠狠干中文字幕 | 国产 欧美 日产久久 | 国产一区久久 | 国产激情电影综合在线看 | av不卡中文字幕 | 亚洲欧美日韩国产精品一区午夜 | 久久综合九色 | 国产精品美女视频网站 | 九九热精品视频在线播放 | 黄色中文字幕在线 | 91看片淫黄大片在线播放 | 久久综合久久综合九色 | 日日色综合 | 日韩三级av | 视频一区在线播放 | 亚洲精品成人av在线 | 国产麻豆精品传媒av国产下载 | 精品国产一区二区三区久久 | 有码一区二区三区 | 久久一线| 国产精品手机播放 | 99爱视频 | 亚洲精品小视频在线观看 | 久久一区二区三区国产精品 | 最近日本中文字幕 | 草久在线视频 | 中文字幕精品一区二区三区电影 | 日韩欧美国产视频 | 国产剧情在线一区 | 96久久| 亚洲理论影院 | 精品亚洲视频在线观看 | 超碰在线人人 | 亚洲综合色网站 | 国产精品原创在线 | av福利在线免费观看 | 亚洲国产日韩精品 | 成人动图| 99热999| 玖操 | 国产中文字幕视频在线 | 91精品国产乱码久久桃 | 一区二区三区在线不卡 | 91精品播放 | 欧美性生活一级片 | 亚洲另类人人澡 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 最近中文字幕大全 | 精品久久久久久久久亚洲 | 中文字幕精品在线 | 激情开心色 | 人人爽人人爽人人爽人人爽 | 国产手机视频在线观看 | 草久在线播放 | 一区二区三区久久精品 | 激情偷乱人伦小说视频在线观看 | 天天操天天干天天 | 成年在线观看 | 天天干天天操天天拍 | 欧美视频日韩 | 精品一区二区三区四区在线 | 黄色网中文字幕 | av动图 | 欧洲成人av| 日韩av手机在线看 | 国产精品区二区三区日本 | 91自拍成人| 96视频在线 | 国产高清视频网 | 好看av在线 | 欧美性生活免费看 | 色综合天天 | 久久久久久久久久免费 | 久久久黄色免费网站 | 人人草在线观看 | 美女精品在线观看 | 97精品国产手机 | 国产中文字幕在线观看 | 99热99热| 精品综合久久久 | 正在播放久久 | 在线午夜电影神马影院 | 久久 精品一区 | 69绿帽绿奴3pvideos | 国产免费观看久久黄 | 久久久久国产精品午夜一区 | 久久久久久免费毛片精品 | 久草在线免费资源站 | www.亚洲视频 | 欧美色图30p | 日本中文字幕在线一区 | 国产69久久久欧美一级 | 中文视频在线看 | 久久国产精品一区二区三区 | 久草免费电影 | 久色小说 | 日韩精品中文字幕在线 | 久草视频在线免费播放 | 五月天狠狠操 | 婷婷在线免费 | av在线看网站 | 午夜性生活 | 免费成人看片 | 国产明星视频三级a三级点| 91激情视频在线观看 | 亚洲第一区精品 | 久久99精品国产麻豆婷婷 | 日韩和的一区二在线 | 91精品对白一区国产伦 | 国产精品一区二区久久精品爱涩 | 六月丁香激情综合 | 天天综合导航 | 国产成人精品一区二区三区福利 | 亚洲美女视频在线观看 | 黄色成年| 国产在线国偷精品产拍免费yy | 国产精品免费久久久久久久久久中文 | www在线免费观看 | 欧美-第1页-屁屁影院 | 精品视频免费播放 | 精品免费| 婷婷夜夜 | 天天操天天操天天操天天操 | 激情视频一区二区三区 | 99超碰在线观看 | 日韩在线三区 | 日韩理论在线视频 | 国产99在线免费 | 久久精品理论 | 四虎影视精品永久在线观看 | 黄色美女免费网站 | 国语久久 | 欧美做受xxx| 91尤物国产尤物福利在线播放 | 亚洲一级黄色大片 | 亚洲天堂色婷婷 | 久久999精品| 一区二区中文字幕在线播放 | 玖玖精品在线 | 青草视频在线播放 | 国产又粗又猛又爽 | 精品九九久久 | 91porny九色在线播放 | 国产美女搞久久 | av中文字幕在线观看网站 | 色五月色开心色婷婷色丁香 | 91成人在线免费观看 | 日韩欧美中文 | 国产亚洲在线 | 欧美伦理一区 | 亚州五月| 欧美日韩精品在线播放 | 国产精品久久久久久久久久久杏吧 | 91精品网站在线观看 | 国产中文字幕在线播放 | 黄色三级在线看 | 在线精品亚洲 | 欧美男女爱爱视频 | av在线8 | 日韩亚洲精品电影 | 免费av在线播放 | 亚洲2019精品 | 午夜电影久久 | 中文字幕第一页在线播放 | 色诱亚洲精品久久久久久 | 99久久99久久精品免费 | 国产婷婷精品av在线 | 日韩欧美在线视频一区二区 | 97视频资源 | 免费黄在线观看 | 999久久久免费精品国产 | 五月激情丁香婷婷 | 欧美日产在线观看 | 五月天丁香综合 | 天天天天色综合 | 2023av| 免费在线观看午夜视频 | 尤物97国产精品久久精品国产 | 97成人在线免费视频 | 午夜丰满寂寞少妇精品 | 成年人免费电影 | www欧美色 | 色资源网免费观看视频 | 91九色蝌蚪 | 91av原创| 在线亚洲免费视频 | 亚洲免费av片 | 国产中文字幕三区 | 久久影院中文字幕 | 9色在线视频 | 国产精品情侣视频 | 免费日韩av电影 | 97超碰免费在线 | 天天av综合网 | 久久伊人精品天天 | 天天操天天怕 | 最近在线中文字幕 | 激情久久伊人 | 国产无套视频 | 国产精品日韩在线播放 | 亚洲狠狠婷婷综合久久久 | 午夜免费福利视频 | 精品国产aⅴ麻豆 | 国产麻豆果冻传媒在线观看 | 亚洲一区美女视频在线观看免费 | 日韩一区二区免费播放 | 亚洲免费专区 | 亚洲综合视频在线观看 | 久久激情综合网 | 久草在线视频在线观看 | 国产手机免费视频 | 色噜噜狠狠狠狠色综合 | 97免费中文视频在线观看 | 日韩成人精品一区二区 | 欧洲一区二区三区精品 | 国产精品观看在线亚洲人成网 | 黄色免费在线视频 | 一区二区丝袜 | 在线看片一区 | 日日干日日 | 91九色视频网站 | 日本黄色免费在线观看 | 亚洲精品国久久99热 | 国产成人一区二区三区 | 亚洲成人动漫在线观看 | 91精品国产欧美一区二区 | 成人国产亚洲 | 日韩电影在线一区二区 | 国产免费观看av | 久免费视频 | 香蕉视频国产在线 | 最新av中文字幕 | 久久不射网站 | 在线国产91 | 一级做a爱片性色毛片www | 91视频首页 | 激情综合一区 | 天天射日| 国产精品美女久久久久久2018 | 伊人婷婷色 | av在线免费观看黄 | 亚洲精品午夜视频 | 国产中文a | 久草在线在线视频 | 成人免费 在线播放 | 精品国产一二三四区 | 国产色在线观看 | 国产网站在线免费观看 | 五月花婷婷 | 人人爽影院| 亚洲成人黄色在线 | 精品久久久久久久久久久久 | 亚洲视频中文 | 人人爱人人做人人爽 | 美女精品网站 | 国产精品va视频 | 国产乱视频 | 久久经典视频 | 波多野结衣一区二区三区中文字幕 | 国产高清不卡一区二区三区 | 又黄又刺激视频 | 五月婷婷激情五月 | 国产精品一区二区视频 | 91麻豆精品国产91久久久久久久久 | 99久久激情视频 | 亚洲精品乱码久久久久久久久久 | av在线网站免费观看 | 欧美天堂视频在线 | 五月婷婷黄色 | 国产在线免费av | 中文字幕在线视频免费播放 | 日本性生活免费看 | 亚洲伊人第一页 | 五月天丁香视频 | 国产精品国产三级国产aⅴ无密码 | 欧美少妇xx | 天天草天天干天天射 | 伊人中文在线 | 久久精品这里都是精品 | 91精品一区二区在线观看 | 成年人在线免费视频观看 | 中文字幕亚洲欧美 | 国产精品一区二区三区四区在线观看 | 四虎影视成人永久免费观看亚洲欧美 | 六月丁香婷婷网 | 日本爱爱免费 | 日韩在线视频线视频免费网站 | 韩国av电影在线观看 | 久久精品韩国 | 国产视 | 欧美少妇18p | 国产成人精品一区二区三区在线 | 中文一区在线 | 黄色大片视频网站 | 在线va视频 | 免费精品国产va自在自线 | 99tvdz@gmail.com| 69xxxx欧美 | 99久久精品国产一区二区三区 | 美女黄视频免费 | 激情久久五月 | 国产精品乱码一区二三区 | 日韩欧美电影 | 欧美激情h | 欧美日韩视频精品 | 91成人网在线观看 | 亚洲一二视频 | 99久久精品国产观看 | 成人国产电影在线观看 | 91香蕉视频在线 | 久久免费在线观看视频 | 最近免费在线观看 | 韩国三级在线一区 | 久久r精品| 在线免费观看黄 | 久久久穴 | 国产 日韩 在线 亚洲 字幕 中文 | 国产黄色理论片 | 日韩在线免费不卡 | 午夜 在线 | a级黄色片视频 | 在线午夜| 韩国精品一区二区三区六区色诱 | 免费看黄在线看 | 亚洲va欧美va人人爽 | 99精品国产一区二区三区麻豆 | 欧美久久综合 | 91免费国产在线观看 | 久久99精品国产麻豆婷婷 | 欧美视频xxx | av中文字幕在线播放 | sm免费xx网站 | 婷婷在线网 | 亚洲丁香久久久 | 91色亚洲| 欧美日韩激情网 | 四虎www| 韩国一区二区在线观看 | 亚洲资源网 | 久久综合激情 | 久久免费成人精品视频 | 日本精品中文字幕在线观看 | 亚洲黄色av网址 | av免费在线观看网站 | 欧美一二三区在线观看 | 精品久久久久一区二区国产 | 91免费视频黄 | 国产精品福利一区 | 99精品国产兔费观看久久99 | 日本精品视频在线播放 | 91丨九色丨蝌蚪丨老版 | 欧美一级片播放 | 深爱激情五月综合 | 免费a现在观看 | 国产高清在线永久 | 亚洲午夜久久久综合37日本 | 久久精品视频4 | 色网站在线看 | 日本久久久久久久久 | 伊人电影天堂 | 激情网在线视频 | 久久小视频| 中文字幕超清在线免费 | 丁香婷婷久久久综合精品国产 | 欧美精品中文 | 亚洲 av网站| 国内成人av | 黄色av电影一级片 | 视频 天天草 | 欧美精品国产精品 | 欧美国产日韩一区二区三区 | 久99久精品视频免费观看 | 国产黄色片免费 | 国产欧美综合在线观看 | 一级性av| 麻豆国产精品va在线观看不卡 | 日本超碰在线 | av电影免费在线看 | 成人一级电影在线观看 | 国产小视频在线免费观看视频 | 久久久久久久久久久久99 | av一区二区三区在线播放 | 色婷婷丁香 | 免费av片在线 | 91黄色免费看 | 男女靠逼app | 中文区中文字幕免费看 | 91超国产| 日韩av电影中文字幕 | 综合激情av | 亚洲动漫在线观看 | 欧美aaaxxxx做受视频 | 天天干天天干天天 | 久久天| 久亚洲精品 | 精品国产一区二区三区久久影院 | 日韩一二区在线 | 国产一区精品在线观看 | 亚洲精品在线免费 | 亚洲成人资源在线观看 | 日韩免费一区 | 在线观看色网 | 亚洲最大av在线播放 | 亚洲乱码精品久久久 | 干干夜夜 | 国产精品欧美久久久久天天影视 | 婷婷六月综合亚洲 | 成人一级片在线观看 | 国产精品自在线拍国产 | 国产精品视频免费在线观看 | 日韩高清在线一区二区三区 | 天天干天天干天天 | 一区二区三区影院 | 啪啪激情网 | 国产夫妻自拍av | 精品国产美女在线 | 成人午夜电影免费在线观看 | 特级a老妇做爰全过程 | av高清在线观看 | 色婷婷精品 | 久久99久国产精品黄毛片入口 |