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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

[Android] 输入系统(三):加载按键映射

發(fā)布時間:2023/12/18 Android 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Android] 输入系统(三):加载按键映射 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

映射表基本概念

由于Android調用getEvents得到的key是linux發(fā)送過來的scan code,而Android處理的是類似于KEY_UP這種統(tǒng)一類型的key code,因此需要有映射表把scan code轉換成key code。映射表在板子上的位置是/system/usr/keylayout/xxx.kl,先看一下映射表是什么樣子的,下面截選了一段。

key 2 1 key 3 2 key 4 3 key 5 4 key 6 5 key 7 6 key 8 7 key 9 8 key 10 9 key 11 0 key 28 DPAD_CENTER key 102 HOME key 103 DPAD_UP WAKE_DROPPED key 105 DPAD_LEFT WAKE_DROPPED key 106 DPAD_RIGHT WAKE_DROPPED key 108 DPAD_DOWN WAKE_DROPPED key 111 DEL key 113 VOLUME_MUTE key 114 VOLUME_DOWN key 115 VOLUME_UP key 116 POWER

可以看到每行都是一個映射項,映射項格式如下:

key? [scan code]? [key label] ?[flag label] ?[flag label] ?...

  • key是關鍵字,表明這個映射項是作為鍵值映射
  • scan code是從linux device取得的鍵值
  • key label是把scan code映射到key code中間的關鍵字,通過該關鍵字可以得到key code。
  • flag label即按鍵的標記的關鍵字,通過flag label可以得到flag,一行映射項后面可以有多個flag label
  • 從3和4可以知道,還有一個key label到key code的過程,以及flag label到flag的過程

    ?

    另外,映射表是設備相關的。由于不同設備發(fā)送到Android的scan code可能會不同,因此每個設備需要用自身對應的映射表才能正確解析出key code。

    ?

    映射表加載過程

    1. 獲取設備相關信息

    在構造EventHub的時候,就決定了需要掃描輸入設備。然后會在第一次getEvents進行一次掃描。

    掃描輸入設備主要有兩個目的:

  • 得到該設備的各種信息,如:設備名稱,設備版本,設備產品碼等,這些信息都可以作為該設備的標識。
  • 知道該設備所發(fā)送事件的類型,如:按鍵事件,觸控事件,滑動事件,開關事件,xy坐標等;通過所發(fā)送事件的類型,就能定位出設備的類型。
  • EventHub::EventHub(void) :mNeedToScanDevices(true), {...}size_t EventHub::getEvents(int timeoutMillis, RawEvent* buffer, size_t bufferSize) {if (mNeedToScanDevices) {mNeedToScanDevices = false;scanDevicesLocked();mNeedToSendFinishedDeviceScan = true;} }void EventHub::scanDevicesLocked() {status_t res = scanDirLocked(DEVICE_PATH);if(res < 0) {ALOGE("scan dir failed for %s\n", DEVICE_PATH);}if (mDevices.indexOfKey(VIRTUAL_KEYBOARD_ID) < 0) {createVirtualKeyboardLocked();} }

    ?

    掃描的目錄是/dev/input,linux中每加入一個輸入設備,都會在該目錄下創(chuàng)建設備文件。

    status_t EventHub::scanDirLocked(const char *dirname) {char devname[PATH_MAX];char *filename;DIR *dir;struct dirent *de;dir = opendir(dirname);if(dir == NULL)return -1;strcpy(devname, dirname);filename = devname + strlen(devname);*filename++ = '/';while((de = readdir(dir))) {if(de->d_name[0] == '.' &&(de->d_name[1] == '\0' ||(de->d_name[1] == '.' && de->d_name[2] == '\0')))continue;strcpy(filename, de->d_name);openDeviceLocked(devname);}closedir(dir);return 0; }

    ?

    ?

    在openDeviceLocked中就能清晰分析出掃描設備的兩個目的

    status_t EventHub::openDeviceLocked(const char *devicePath) {int fd = open(devicePath, O_RDWR | O_CLOEXEC); // Get device name.if(ioctl(fd, EVIOCGNAME(sizeof(buffer) - 1), &buffer) < 1) {//fprintf(stderr, "could not get device name for %s, %s\n", devicePath, strerror(errno));} else {buffer[sizeof(buffer) - 1] = '\0';identifier.name.setTo(buffer);}// Get device driver version.int driverVersion;if(ioctl(fd, EVIOCGVERSION, &driverVersion)) {ALOGE("could not get driver version for %s, %s\n", devicePath, strerror(errno));close(fd);return -1;}struct input_id inputId;if(ioctl(fd, EVIOCGID, &inputId)) {ALOGE("could not get device input id for %s, %s\n", devicePath, strerror(errno));close(fd);return -1;}identifier.bus = inputId.bustype;identifier.product = inputId.product;identifier.vendor = inputId.vendor;identifier.version = inputId.version;...Device* device = new Device(fd, deviceId, String8(devicePath), identifier);// Figure out the kinds of events the device reports.ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(device->keyBitmask)), device->keyBitmask);ioctl(fd, EVIOCGBIT(EV_ABS, sizeof(device->absBitmask)), device->absBitmask);ioctl(fd, EVIOCGBIT(EV_REL, sizeof(device->relBitmask)), device->relBitmask);ioctl(fd, EVIOCGBIT(EV_SW, sizeof(device->swBitmask)), device->swBitmask);ioctl(fd, EVIOCGBIT(EV_LED, sizeof(device->ledBitmask)), device->ledBitmask);ioctl(fd, EVIOCGBIT(EV_FF, sizeof(device->ffBitmask)), device->ffBitmask);ioctl(fd, EVIOCGPROP(sizeof(device->propBitmask)), device->propBitmask);//mouse device?if (test_bit(BTN_MOUSE, device->keyBitmask)&& test_bit(REL_X, device->relBitmask)&& test_bit(REL_Y, device->relBitmask)) {device->classes |= INPUT_DEVICE_CLASS_CURSOR;}// See if this is a touch pad.// Is this a new modern multi-touch driver?if (test_bit(ABS_MT_POSITION_X, device->absBitmask)&& test_bit(ABS_MT_POSITION_Y, device->absBitmask)) {// Some joysticks such as the PS3 controller report axes that conflict// with the ABS_MT range. Try to confirm that the device really is// a touch screen.if (test_bit(BTN_TOUCH, device->keyBitmask) || !haveGamepadButtons) {device->classes |= INPUT_DEVICE_CLASS_TOUCH | INPUT_DEVICE_CLASS_TOUCH_MT;}// Is this an old style single-touch driver?} else if (test_bit(BTN_TOUCH, device->keyBitmask)&& test_bit(ABS_X, device->absBitmask)&& test_bit(ABS_Y, device->absBitmask)) {device->classes |= INPUT_DEVICE_CLASS_TOUCH;}// See if this device is a joystick.// Assumes that joysticks always have gamepad buttons in order to distinguish them// from other devices such as accelerometers that also have absolute axes.if (haveGamepadButtons) {uint32_t assumedClasses = device->classes | INPUT_DEVICE_CLASS_JOYSTICK;for (int i = 0; i <= ABS_MAX; i++) {if (test_bit(i, device->absBitmask)&& (getAbsAxisUsage(i, assumedClasses) & INPUT_DEVICE_CLASS_JOYSTICK)) {device->classes = assumedClasses;break;}}}... }

    ?

    ?

    2. 加載映射表

    通過設備信息與設備類型,我們就能去加載正確的映射表了

    status_t EventHub::openDeviceLocked(const char *devicePath) {...if (device->classes & (INPUT_DEVICE_CLASS_KEYBOARD | INPUT_DEVICE_CLASS_JOYSTICK)) {// Load the keymap for the device.keyMapStatus = loadKeyMapLocked(device);}... } status_t EventHub::loadKeyMapLocked(Device* device) {return device->keyMap.load(device->identifier, device->configuration); }

    ?

    加載配置文件分為下面幾個步驟

    1. 通過設備的配置文件去加載配置文件內制定好的映射表

    2. 如果1不成功則通過設備信息加載對應的映射表

    3. 如果2不成功則加載通用映射表

    4. 如果3不成功則加載虛擬映射表

    ?

    status_t KeyMap::load(const InputDeviceIdentifier& deviceIdenfifier,const PropertyMap* deviceConfiguration) {// Use the configured key layout if available.if (deviceConfiguration) {String8 keyLayoutName;if (deviceConfiguration->tryGetProperty(String8("keyboard.layout"),keyLayoutName)) {status_t status = loadKeyLayout(deviceIdenfifier, keyLayoutName);if (status == NAME_NOT_FOUND) {ALOGE("Configuration for keyboard device '%s' requested keyboard layout '%s' but ""it was not found.",deviceIdenfifier.name.string(), keyLayoutName.string());}}String8 keyCharacterMapName;if (deviceConfiguration->tryGetProperty(String8("keyboard.characterMap"),keyCharacterMapName)) {status_t status = loadKeyCharacterMap(deviceIdenfifier, keyCharacterMapName);if (status == NAME_NOT_FOUND) {ALOGE("Configuration for keyboard device '%s' requested keyboard character ""map '%s' but it was not found.",deviceIdenfifier.name.string(), keyLayoutName.string());}}if (isComplete()) {return OK;}}// Try searching by device identifier.if (probeKeyMap(deviceIdenfifier, String8::empty())) {return OK;}// Fall back on the Generic key map.// TODO Apply some additional heuristics here to figure out what kind of// generic key map to use (US English, etc.) for typical external keyboards.if (probeKeyMap(deviceIdenfifier, String8("Generic"))) {return OK;}// Try the Virtual key map as a last resort.if (probeKeyMap(deviceIdenfifier, String8("Virtual"))) {return OK;}// Give up!ALOGE("Could not determine key map for device '%s' and no default key maps were found!",deviceIdenfifier.name.string());return NAME_NOT_FOUND; }

    ?

    一般的情況我們會走第2步,因此從probeKeyMap往下分析

    bool KeyMap::probeKeyMap(const InputDeviceIdentifier& deviceIdentifier,const String8& keyMapName) {if (!haveKeyLayout()) {loadKeyLayout(deviceIdentifier, keyMapName);}if (!haveKeyCharacterMap()) {loadKeyCharacterMap(deviceIdentifier, keyMapName);}return isComplete(); }

    ?

    對于按鍵,有鍵盤按鍵與自定義按鍵兩種,兩者加載的文件后綴不同。鍵盤按鍵的映射表后綴是.kcm,而自定義按鍵映射表后綴是.kl。另外兩者映射表的格式也不同,我們這里以自定義按鍵映射表為例,其中有三個步驟:

  • 獲取映射表文件路徑
  • 加載映射表文件
  • 如果加載映射表文件成功的話,設置該路徑為當前設備的自定義映射文件路徑。(否則會去解析Generic.kl或者virtual.kl)
  • status_t KeyMap::loadKeyLayout(const InputDeviceIdentifier& deviceIdentifier,const String8& name) {String8 path(getPath(deviceIdentifier, name,INPUT_DEVICE_CONFIGURATION_FILE_TYPE_KEY_LAYOUT));if (path.isEmpty()) {return NAME_NOT_FOUND;}status_t status = KeyLayoutMap::load(path, &keyLayoutMap);if (status) {return status;}keyLayoutFile.setTo(path);return OK; }

    ?

    1. 獲取映射表文件路徑

    我們從加載映射表文件的步驟2進來,那傳入的name為空,則調用到getInputDeviceConfigurationFilePathByDeviceIdentifier,即通過設備標識來產生路徑

    String8 KeyMap::getPath(const InputDeviceIdentifier& deviceIdentifier,const String8& name, InputDeviceConfigurationFileType type) {return name.isEmpty()? getInputDeviceConfigurationFilePathByDeviceIdentifier(deviceIdentifier, type): getInputDeviceConfigurationFilePathByName(name, type); }

    ?

    如果設備標識中的vendor,product,version都不為0的話,表明可以通過這些信息來組合成一個字符串,這個字符串就是映射表文件的前綴,否則,會設備名稱deviceIdentifier.name就是映射表文件的前綴。后綴通過type指定。

    String8 getInputDeviceConfigurationFilePathByDeviceIdentifier(const InputDeviceIdentifier& deviceIdentifier,InputDeviceConfigurationFileType type) {if (deviceIdentifier.vendor !=0 && deviceIdentifier.product != 0) {if (deviceIdentifier.version != 0) {// Try vendor product version.String8 versionPath(getInputDeviceConfigurationFilePathByName(String8::format("Vendor_%04x_Product_%04x_Version_%04x",deviceIdentifier.vendor, deviceIdentifier.product,deviceIdentifier.version),type));if (!versionPath.isEmpty()) {return versionPath;}}// Try vendor product.String8 productPath(getInputDeviceConfigurationFilePathByName(String8::format("Vendor_%04x_Product_%04x",deviceIdentifier.vendor, deviceIdentifier.product),type));if (!productPath.isEmpty()) {return productPath;}}// Try device name.return getInputDeviceConfigurationFilePathByName(deviceIdentifier.name, type); }

    假設當前設備的設備名稱是input_ir,傳入的type是INPUT_DEVICE_CONFIGURATION_FILE_TYPE_KEY_LAYOUT,則設備的文件名為input_ir.kl

    ?

    2.加載映射表文件

    加載映射表文件最終目的是解析該文件得到映射表,其中也分為三個步驟:

    • 打開映射表文件
    • 創(chuàng)建映射表
    • 解析映射表文件并把映射項加入映射表
    status_t KeyLayoutMap::load(const String8& filename, sp<KeyLayoutMap>* outMap) {status_t status = Tokenizer::open(filename, &tokenizer);sp<KeyLayoutMap> map = new KeyLayoutMap();Parser parser(map.get(), tokenizer);status = parser.parse();}

    ?

    我們直接看最重要的解析部分

    parse函數(shù)是一個while循環(huán),一行一行地解析映射表項

    status_t KeyLayoutMap::Parser::parse() {while (!mTokenizer->isEof()) {mTokenizer->skipDelimiters(WHITESPACE);if (!mTokenizer->isEol() && mTokenizer->peekChar() != '#') {String8 keywordToken = mTokenizer->nextToken(WHITESPACE);if (keywordToken == "key") {mTokenizer->skipDelimiters(WHITESPACE);status_t status = parseKey();if (status) return status;} else if (keywordToken == "axis") {mTokenizer->skipDelimiters(WHITESPACE);status_t status = parseAxis();if (status) return status;} else {ALOGE("%s: Expected keyword, got '%s'.", mTokenizer->getLocation().string(),keywordToken.string());return BAD_VALUE;}mTokenizer->skipDelimiters(WHITESPACE);if (!mTokenizer->isEol() && mTokenizer->peekChar() != '#') {ALOGE("%s: Expected end of line or trailing comment, got '%s'.",mTokenizer->getLocation().string(),mTokenizer->peekRemainderOfLine().string());return BAD_VALUE;}}mTokenizer->nextLine();}return NO_ERROR; }

    每一行的解析步驟如下:

  • 跳過行首的空格符
  • 如果開頭第一個字符是”#”,跳過當前行
  • 如果開頭的關鍵詞是key,跳過空白分割符,調用parseKey解析,如果解析出錯則返回錯誤
  • 如果開頭的關鍵詞是axis,跳過空白分隔符,調用parseAxis解析,如果解析出錯則返回錯誤
  • 如果開頭的關鍵詞是其他的詞,說明這個映射表文件有誤,返回錯誤
  • 跳過行末的空格符
  • 如果行末還有”#”以外的字符,說明這個映射表文件有誤,返回錯誤
  • ?

    ?

    下面以parseKey為例,分析它是怎么解析出scan code與key code的(由于我們沒用到usage code,所以忽略usage,直接分析scan code流程)

    status_t KeyLayoutMap::Parser::parseKey() {String8 codeToken = mTokenizer->nextToken(WHITESPACE);//scan code從字符串轉換成數(shù)字int32_t code = int32_t(strtol(codeToken.string(), &end, 0));if (*end) {return BAD_VALUE;}//我們用的是scan codeKeyedVector<int32_t, Key>& map =mapUsage ? mMap->mKeysByUsageCode : mMap->mKeysByScanCode;//如果有重復的scan code,會出錯返回if (map.indexOfKey(code) >= 0) {ALOGE("%s: Duplicate entry for key %s '%s'.", mTokenizer->getLocation().string(),mapUsage ? "usage" : "scan code", codeToken.string());return BAD_VALUE;}mTokenizer->skipDelimiters(WHITESPACE);String8 keyCodeToken = mTokenizer->nextToken(WHITESPACE);//通過label獲取key codeint32_t keyCode = getKeyCodeByLabel(keyCodeToken.string());if (!keyCode) {ALOGE("%s: Expected key code label, got '%s'.", mTokenizer->getLocation().string(),keyCodeToken.string());return BAD_VALUE;}//key label后可以接flag,flag從getKeyFlagByLabel解析uint32_t flags = 0;for (;;) {mTokenizer->skipDelimiters(WHITESPACE);if (mTokenizer->isEol() || mTokenizer->peekChar() == '#') break;String8 flagToken = mTokenizer->nextToken(WHITESPACE);uint32_t flag = getKeyFlagByLabel(flagToken.string());if (!flag) {ALOGE("%s: Expected key flag label, got '%s'.", mTokenizer->getLocation().string(),flagToken.string());return BAD_VALUE;}if (flags & flag) {ALOGE("%s: Duplicate key flag '%s'.", mTokenizer->getLocation().string(),flagToken.string());return BAD_VALUE;}flags |= flag;}Key key;key.keyCode = keyCode;key.flags = flags;map.add(code, key);return NO_ERROR; }

    ?

    我們在前面說過,還有個從key label到key code的流程,該流程就是在getKeyCodeByLabel中實現(xiàn)的

    int32_t getKeyCodeByLabel(const char* label) {return int32_t(lookupValueByLabel(label, KEYCODES)); }

    最終從KEYCODES這個列表內,根據(jù)label查找key code

    static const KeycodeLabel KEYCODES[] = {{ "SOFT_LEFT", 1 },{ "SOFT_RIGHT", 2 },{ "HOME", 3 },{ "BACK", 4 },{ "CALL", 5 },{ "ENDCALL", 6 },{ "0", 7 },{ "1", 8 },{ "2", 9 },{ "3", 10 },{ "4", 11 },{ "5", 12 },{ "6", 13 },{ "7", 14 },{ "8", 15 },{ "9", 16 },... }

    ?

    同理,在解析flag的時候也是從FLAGS這個列表內查找flag

    uint32_t getKeyFlagByLabel(const char* label) {return uint32_t(lookupValueByLabel(label, FLAGS)); }// NOTE: If you edit these flags, also edit policy flags in Input.h. static const KeycodeLabel FLAGS[] = {{ "WAKE", 0x00000001 },{ "WAKE_DROPPED", 0x00000002 },{ "SHIFT", 0x00000004 },{ "CAPS_LOCK", 0x00000008 },{ "ALT", 0x00000010 },{ "ALT_GR", 0x00000020 },{ "MENU", 0x00000040 },{ "LAUNCHER", 0x00000080 },{ "VIRTUAL", 0x00000100 },{ "FUNCTION", 0x00000200 },{ NULL, 0 } };

    轉載于:https://www.cnblogs.com/TaigaCon/p/4763035.html

    總結

    以上是生活随笔為你收集整理的[Android] 输入系统(三):加载按键映射的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    韩日精品视频 | 成人av影视在线 | 九七视频在线观看 | 免费在线观看av网址 | 精品美女国产在线 | 黄色免费在线看 | 欧美二区三区91 | 午夜av一区二区三区 | 青青河边草免费直播 | 精品视频在线视频 | 欧日韩在线 | 欧美激情第十页 | 又黄又网站 | 欧美精品第一 | 久久任你操 | 久久免费视频在线 | 国产高h视频 | 女人18片毛片90分钟 | 五月天亚洲激情 | 亚洲国产日本 | 久久免费视频6 | 亚洲精品美女久久久久网站 | 91久久久久久久一区二区 | 1024在线看片 | 久久一本综合 | 麻豆极品 | 九七视频在线观看 | 91在线视频免费观看 | 国产96av | 色多多在线观看 | 亚洲欧美日韩一二三区 | 香蕉视频国产在线 | av电影免费在线看 | 国产原创在线 | 久久久久综合精品福利啪啪 | 国产自产在线视频 | 五月婷久久 | 狠狠干在线 | 四虎国产精品免费观看视频优播 | 久久亚洲影视 | 韩国在线视频一区 | 久久综合欧美精品亚洲一区 | 精品久久1 | 免费成人在线电影 | 四虎免费在线观看视频 | 久久久久久久久毛片精品 | 在线激情影院一区 | 中文字幕av电影下载 | 免费无遮挡动漫网站 | 欧美成人69av | 九九色综合 | 精品国产伦一区二区三区观看方式 | 97超碰在线久草超碰在线观看 | 国产特黄色片 | 五月天六月丁香 | 色www精品视频在线观看 | 久久免费视频一区 | 亚洲精品黄 | 全黄色一级片 | 黄色在线观看污 | 欧美日韩一区二区在线 | 91免费高清观看 | 久久99最新地址 | 亚洲精品国产自产拍在线观看 | 国产黄a三级三级三级三级三级 | 久久精品九色 | 亚洲精品免费在线观看视频 | 国产精品激情在线观看 | 尤物九九久久国产精品的分类 | 日日天天狠狠 | 99久久毛片 | 中文字幕丝袜一区二区 | 国产在线一线 | 在线视频日韩欧美 | 免费色视频在线 | 在线免费观看黄色 | 日日夜夜天天人人 | 天天做综合网 | 一区二区三区在线播放 | 国产免费av一区二区三区 | 色狠狠操 | 亚洲午夜av电影 | 在线视频a | 激情网五月婷婷 | 伊甸园av在线 | 国产黄色网 | 日韩高清在线一区二区三区 | 波多野结衣电影一区二区三区 | 99久久综合精品五月天 | 午夜国产福利在线 | 国产四虎在线 | 日韩欧美视频在线观看免费 | 色综合天 | 成人在线视频你懂的 | 久久久久免费精品视频 | 91超在线 | 国产亚洲精品久 | 欧美日韩在线精品一区二区 | 精品久久网 | 国产精品va在线观看入 | 亚洲国产精品999 | 人人爽人人澡 | 97精品国产97久久久久久粉红 | 中文字幕一区二区三区精华液 | av 一区二区三区 | 久久免费国产精品 | 日日夜夜添 | 成年人免费电影在线观看 | 91社区国产高清 | 婷婷香蕉 | 99自拍视频在线观看 | 青草草在线 | 探花系列在线 | 欧美日韩在线观看不卡 | 国产精品一区二区av日韩在线 | 色综合中文字幕 | 91免费在线看片 | 91电影福利 | 国内精品久久久久久久影视麻豆 | 91在线观看高清 | 在线视频日韩一区 | 制服丝袜天堂 | www九九热| 亚洲第一成网站 | 国产精品美女在线观看 | 中文字幕视频播放 | 国产在线观看,日本 | 婷婷丁香在线 | 天天操天天色天天 | 一级免费片| 久草免费在线视频观看 | 国产精品18久久久久久首页狼 | 91传媒91久久久 | www.黄色在线 | 成人免费看视频 | 麻豆精品传媒视频 | 天天干天天操天天做 | 久久久久免费视频 | 97视频资源 | 特黄色大片 | 久久麻豆视频 | 亚洲国产日韩一区 | 日韩久久午夜一级啪啪 | 美女久久久久 | 欧美一区二区在线 | 中文日韩在线 | 国产v在线| 日日久视频| 成人在线观看免费视频 | 中文字幕91视频 | 中文字幕在线中文 | 中文字幕中文字幕在线中文字幕三区 | 性色xxxxhd | 国产精品九九久久99视频 | 欧美激情另类 | 91久久久久久国产精品 | 亚洲手机av | 91九色精品国产 | 夜夜操网 | 美女免费av| 97超级碰碰碰视频在线观看 | 欧美91av | 欧美日韩不卡一区二区三区 | 久草在线精品观看 | 亚洲成aⅴ人片久久青草影院 | 亚洲精品国偷拍自产在线观看蜜桃 | 五月天色婷婷丁香 | 久久国产欧美日韩 | 久久久久久久精 | 久久婷婷丁香 | 亚洲精品字幕 | 久久精品视频2 | 欧美性色黄 | 欧美一级性视频 | 黄色一级大片在线免费看国产一 | 日韩在线视频精品 | 99国产高清 | 六月色丁 | 在线天堂中文在线资源网 | a级国产片 | 丁香婷婷在线观看 | 久久精品久久久久电影 | 中文字幕国产一区二区 | 一级免费黄色 | 五月婷婷久草 | 久久久久亚洲精品国产 | 黄色av一区 | 久久免费视频2 | www.超碰 | a√天堂中文在线 | 国产黄色视 | 国产精品视频免费在线观看 | 国产精品免费一区二区三区 | 欧美午夜理伦三级在线观看 | 免费av网站在线看 | 国产一区二区三区在线 | 日韩美av在线 | 麻豆久久久久久久 | 天天摸天天舔 | 成人av高清在线观看 | 在线观看国产日韩欧美 | 九九热在线视频 | 九九在线免费视频 | 免费亚洲精品 | 成片免费观看视频大全 | 在线观看免费一级片 | 91香蕉视频在线下载 | 国产小视频免费观看 | 日韩在线首页 | 国产高清视频免费观看 | 五月婷综合网 | 97色国产 | 亚洲精品一区中文字幕乱码 | 久久久久久久久久久影视 | 六月丁香伊人 | 伊人激情网 | 93久久精品日日躁夜夜躁欧美 | 久久99亚洲网美利坚合众国 | 成人在线观看你懂的 | 欧美日韩精品二区第二页 | 中文字幕乱码一区二区 | 欧美日韩国产三级 | 麻豆91小视频 | 色综合中文字幕 | 日本精品一 | 日韩二区三区在线观看 | 国产v欧美 | 国产高清av免费在线观看 | 精品欧美在线视频 | 日韩精品高清视频 | 国产成人精品一区二区三区免费 | 久久成人综合视频 | 成人作爱视频 | 4438全国亚洲精品观看视频 | 在线 国产 亚洲 欧美 | 精品视频在线播放 | 亚洲黄a| 欧美日韩不卡在线 | 一级大片在线观看 | 69热国产视频 | 亚洲欧美精品在线 | 欧美黄色特级片 | av在线电影网站 | 亚洲欧洲美洲av | 亚洲一区二区麻豆 | 人人干天天干 | 黄色av网站在线观看免费 | 很黄很污的视频网站 | 黄色特级一级片 | 看黄色.com| 天天操夜夜想 | 亚洲黄色小说网 | www在线免费观看 | 国产一级做a | 中文字幕高清有码 | 在线观看精品视频 | 人人狠狠综合久久亚洲婷 | 久久人人爽人人爽人人片 | 国产精品福利在线 | 欧美午夜久久久 | 日日射av | www.狠狠操| 国产午夜精品一区二区三区 | h久久| 亚洲精品高清在线观看 | 日本丰满少妇免费一区 | 日韩成人不卡 | 欧美福利网站 | 欧美激情第十页 | 国产精品久久在线 | 日韩精品免费一区 | 4438全国亚洲精品观看视频 | 人人插人人费 | 日韩一区二区三区免费视频 | 黄色a一级片 | 日韩一级黄色av | 午夜av一区二区三区 | 国产精品久久久久久久妇 | 在线免费av网站 | 九九视频在线播放 | 午夜12点| 你操综合 | 国产91精品一区二区绿帽 | 最新av免费在线观看 | 久久婷婷色综合 | 激情www| 久久久久亚洲精品国产 | 天天射综合网站 | 亚洲欧美乱综合图片区小说区 | av中文字幕av | 久久这里有| www.99热精品| 欧美午夜性生活 | 激情欧美丁香 | 成人欧美一区二区三区黑人麻豆 | 国产黄色免费看 | 麻豆传媒在线免费看 | 色婷婷一| 欧美日韩高清一区二区三区 | 欧美少妇xx | 精一区二区 | 色片网站在线观看 | 久久夜视频 | 日韩极品在线 | 五月天激情视频在线观看 | 性色在线视频 | 久久久久国产a免费观看rela | 国产无遮挡猛进猛出免费软件 | 在线观看免费色 | 国产视频美女 | 久久黄色免费视频 | 日韩午夜视频在线观看 | www.久久色 | 日韩高清一二区 | 综合天堂av久久久久久久 | 三级av网站 | 免费看色视频 | 在线91精品 | 久久精品4 | 日韩在线观看视频中文字幕 | 久久国产视屏 | 中文字幕日本在线 | 日本不卡123 | 亚洲一区 av | 久久精品91视频 | 2020天天干天天操 | 一区三区视频 | 91午夜精品| 亚洲情影院 | 视频成人 | 久久久久久久av麻豆果冻 | 亚洲精品字幕 | 日韩欧美一区二区三区视频 | 丁香花在线视频观看免费 | 99国产精品视频免费观看一公开 | www.激情五月.com | 992tv人人网tv亚洲精品 | 91精品导航 | 日韩在线三级 | 久久精品二区 | 精品一区二区久久久久久久网站 | 久久精品日本啪啪涩涩 | 欧美激情综合五月色丁香 | 福利视频导航网址 | 99热在线网站| 婷婷夜夜| 中文超碰字幕 | 免费午夜av | 日韩乱色精品一区二区 | 久久精品96 | 欧美日韩精品在线播放 | 日韩欧美综合视频 | 81精品国产乱码久久久久久 | 成人毛片100免费观看 | 国内视频一区二区 | av大片免费在线观看 | www.香蕉视频在线观看 | 天天干干 | 日产乱码一二三区别免费 | 色吧av色av | 久久久999 | 国产麻豆电影在线观看 | 91精品视频网站 | 午夜丁香网 | 日本性生活免费看 | 啪啪免费试看 | 久久天天躁夜夜躁狠狠85麻豆 | 国产不卡在线观看 | 五月天久久激情 | 日韩手机视频 | 日本久久久久久久久久 | 狠狠色丁香久久婷婷综 | 国产原创中文在线 | 国产成人一区二区三区在线观看 | 久草视频免费看 | 国产剧情一区二区在线观看 | 亚洲va欧美va人人爽 | 亚洲第一av在线 | 九九热精品国产 | 亚洲精品高清在线 | 黄色大片免费网站 | 一区二区中文字幕在线播放 | 在线 成人 | 波多野结衣电影一区二区 | 夜夜夜夜夜夜操 | 国产激情免费 | 蜜臀一区二区三区精品免费视频 | 婷婷色网站 | 日韩在线观看第一页 | 99精品电影 | av超碰在线 | 黄色在线观看免费网站 | 久久91网 | 免费在线观看黄色网 | 日韩在线网址 | 99久久婷婷| 丁香激情五月婷婷 | 午夜精品久久久久久久久久久 | 九九综合九九综合 | 有码视频在线观看 | 黄色av成人在线 | 天天草av | 国产精品99久久久久人中文网介绍 | 精品亚洲二区 | 中日韩免费视频 | 九九免费在线观看视频 | 爱射综合 | 欧美精品做受xxx性少妇 | 日韩免费一级a毛片在线播放一级 | 十八岁以下禁止观看的1000个网站 | 国产露脸91国语对白 | 久久综合九色欧美综合狠狠 | 夜夜躁日日躁 | 国产91精品久久久久 | 久久久久久免费视频 | 久久免费美女视频 | 日韩国产精品久久 | 综合色中文 | 97精品国产97久久久久久免费 | 国产精品久久久久久久久久白浆 | 国产亚洲精品av | 一区中文字幕电影 | 国产视频 亚洲视频 | 精品久久久网 | 亚洲一级黄色片 | 男女拍拍免费视频 | 国产伦精品一区二区三区在线 | 亚洲专区视频在线观看 | 青青看片 | 99久久综合国产精品二区 | 成人国产精品久久久久久亚洲 | 香蕉视频在线免费 | 精品久久久久久久久久久久久久久久 | 成人午夜网 | 欧美日韩国产区 | 国产成人精品一区二区三区 | 韩国av一区二区三区 | 国产在线精品一区二区 | 国产成人性色生活片 | 91欧美视频网站 | 最近2019年日本中文免费字幕 | 国产成人精品aaa | 中文字幕在线网址 | 亚洲一区久久 | 激情av网址 | 国产精品国产三级国产 | 日韩免费一区二区在线观看 | 丁香六月婷婷 | 四虎www com| 激情小说 五月 | 国产一区二区在线观看视频 | 久久黄色网址 | 国产精品久久久久久久久久ktv | 九色在线视频 | 在线观看免费黄色 | 91爱爱免费观看 | 久久a免费视频 | 亚洲中字幕 | 99精品免费在线 | 国产精品1区2区3区在线观看 | 国产又粗又猛又色又黄视频 | 国产不卡精品视频 | 亚洲我射av | 国产91影院 | 久久久久久久久久亚洲精品 | 成年人视频在线免费 | 精品999久久久 | 韩国av一区二区三区在线观看 | avove黑丝| 黄色软件在线观看 | 免费看黄色大全 | 在线观看一二三区 | 成人免费在线观看电影 | 天天插狠狠干 | 97色se| 特级毛片在线免费观看 | 最新av观看 | 免费看的黄色的网站 | 久久精品欧美一区二区三区麻豆 | 欧美va天堂va视频va在线 | 免费三级影片 | 欧美少妇影院 | 黄色一级性片 | av在线专区 | 亚洲精品国产精品乱码不99热 | 国产专区一 | 中文字幕影视 | 久久久久一区二区三区 | 91精品在线观看视频 | 成人黄色在线视频 | 亚洲人片在线观看 | 看毛片网站| 久久久国产精品麻豆 | 国产拍揄自揄精品视频麻豆 | 久久久久久久久电影 | 友田真希av | 色94色欧美 | www.激情五月.com | 久久综合久久鬼 | 国产小视频在线免费观看视频 | 91九色蝌蚪国产 | 国产成人精品综合久久久 | 欧美日韩综合在线 | 亚洲专区在线播放 | 国产精品久久久久久久久久直播 | 天天激情在线 | 色网站中文字幕 | 亚洲综合激情五月 | 国产精品久久99综合免费观看尤物 | 黄色不卡av | 亚洲电影av在线 | 99久国产 | 日韩精品一区二区免费视频 | 人人爽人人爽人人爽 | 亚洲精品系列 | 一级片免费视频 | 日韩精品视频免费 | 六月丁香在线观看 | 久久黄色a级片 | 日本久久久久久久久久 | 五月天激情综合 | 天天爱av导航 | 久久精品一区八戒影视 | 久久极品 | 激情综合五月天 | 日一日操一操 | 日本成人中文字幕在线观看 | 午夜精品一二三区 | 国内揄拍国产精品 | 97在线观看免费高清完整版在线观看 | 一本—道久久a久久精品蜜桃 | 国产又粗又猛又黄视频 | 日韩视频精品在线 | 99精品黄色| 色婷婷av在线 | 天堂激情网 | 欧美激情h | 激情动态 | 久久久久久久久久久久久9999 | 日韩伦理片hd | 四虎在线免费观看视频 | 精品一区二区在线观看 | 中文国产在线观看 | 99久久久久成人国产免费 | 九九热久久免费视频 | 亚洲资源在线观看 | 91精品国产欧美一区二区 | 亚洲jizzjizz日本少妇 | av一区二区三区在线 | 免费国产视频 | 久久久久久国产精品999 | 亚洲精品乱码久久久一二三 | 不卡中文字幕在线 | 免费看一级特黄a大片 | 久久99精品国产麻豆宅宅 | 国产精品毛片一区视频播不卡 | 99热这里只有精品久久 | 久久在线视频精品 | 九九九九九精品 | 免费观看一级视频 | 西西www4444大胆视频 | 91视频在线网址 | 91亚洲精品视频 | 久久刺激视频 | 成人免费观看大片 | 欧美日bb | 欧美国产日韩一区二区三区 | 手机在线永久免费观看av片 | 国产你懂的在线 | 亚洲精品久久久久久久蜜桃 | 国产精品 国内视频 | 欧美a免费| 97超碰超碰 | 国产精品乱码一区二区视频 | 欧美一区中文字幕 | 欧美日韩精品在线 | 欧美黄色成人 | 在线免费av网 | 欧美激情视频一二区 | 国产999精品久久久久久绿帽 | 日韩国产欧美在线视频 | 国产91对白在线 | 96久久欧美麻豆网站 | 国产在线理论片 | 精品中文字幕在线观看 | 久久人人精| 亚洲成人频道 | 一区二区三区日韩在线观看 | 精品中文字幕在线播放 | 麻豆手机在线 | 国产在线一区二区 | 国产精品久久久久久a | 亚洲综合视频网 | 国产精品久久久电影 | 黄色成人在线 | 亚洲美女精品 | 精品免费视频. | 欧美一区二区伦理片 | 综合天堂av久久久久久久 | 97超碰总站 | 亚洲理论电影网 | 色在线高清| 久久国产片 | 久久国产精品视频观看 | 精品国产电影一区 | 天堂va在线高清一区 | 国产91影视| 国产手机在线精品 | 国产精品国产三级国产 | 婷婷久久五月 | 超碰97免费在线 | 日本精品一区二区 | 久久avav| 深爱激情综合 | 亚洲国产三级在线 | 玖玖国产精品视频 | 日韩欧美xxxx| 国产精品嫩草影院123 | 欧美激情视频在线观看免费 | 最新国产精品久久精品 | 色婷婷综合久久久久 | 日韩天天操| 久久国产精品视频 | 午夜久久久影院 | 探花视频在线观看 | 色婷婷av一区 | 日韩av影视在线观看 | 日日夜夜综合网 | 国产精品短视频 | 国产精品成人自产拍在线观看 | 久久久久久久久久久久国产精品 | 久久99网 | 韩国一区二区三区视频 | 免费看的黄网站软件 | 欧美与欧洲交xxxx免费观看 | 国产精品 美女 | 亚洲精品成人在线 | 亚洲免费公开视频 | 天天射综合网视频 | 久久精品欧美一区二区三区麻豆 | 亚洲精品一区二区三区在线观看 | 西西444www大胆无视频 | 久久黄色免费视频 | 在线免费高清视频 | 欧美一区在线观看视频 | 日日日日日 | 日韩sese | 久久色亚洲| 国产精品不卡一区 | 人人澡人 | 日韩精品一区在线观看 | 丁香久久综合 | 97超碰在线人人 | 四虎在线观看 | 日韩videos | 日韩电影在线观看一区二区三区 | 国产成人精品综合久久久久99 | 天天爱综合 | 国产伦理久久精品久久久久_ | 国内精品久久久久久久久 | 国产亚洲成人网 | 在线观看国产福利片 | 亚洲电影在线看 | 亚洲国产999 | 亚洲精品黄网站 | 久久影院午夜论 | 久操综合| 久视频在线| 久久国产亚洲 | 亚州精品天堂中文字幕 | 亚洲成人免费 | 欧美aaa视频 | 2018亚洲男人天堂 | 日韩欧美综合在线视频 | 欧美色久| 国产香蕉97碰碰久久人人 | 黄色日视频 | 成人黄色在线视频 | 国产无吗一区二区三区在线欢 | 国产九色在线播放九色 | 国产精品久久久久久久久久久免费看 | 国模吧一区 | 久草视频免费在线观看 | 深夜激情影院 | 久久综合久久88 | 91视频午夜| 免费视频 三区 | 69久久99精品久久久久婷婷 | 日韩激情一二三区 | 国产一区麻豆 | 香蕉影院在线 | 日韩亚洲国产精品 | 色资源网免费观看视频 | 国内精品久久久久久中文字幕 | 五月婷婷开心中文字幕 | 91看片在线 | 日日爽天天 | 最新国产中文字幕 | 亚洲第一区在线播放 | av成年人电影 | 国产精品高潮在线观看 | 伊人影院得得 | 久久久久美女 | 激情丁香5月| 精品国产理论片 | 日本黄色一级电影 | 成 人 黄 色 视频免费播放 | 中文字幕在线视频一区二区 | 国产精品九色 | 亚洲资源在线观看 | 在线免费观看视频一区二区三区 | 国产成人精品久久久 | 婷婷中文字幕综合 | 国产精品一区二区三区久久 | 国产一级a毛片视频爆浆 | 国产高清免费在线播放 | 成人av网址大全 | 五月激情姐姐 | 成人黄色片免费 | 国内精品久久久久国产 | 国产精品毛片久久久久久久 | 91av国产视频 | 国产精品二区在线观看 | 久久久国产一区 | 精品久久久久久国产偷窥 | 免费精品 | 97超级碰碰碰视频在线观看 | 日韩免费观看高清 | 99在线观看免费视频精品观看 | 青青河边草观看完整版高清 | 97超碰超碰久久福利超碰 | 免费av小说 | 最近中文字幕完整视频高清1 | 久久免费视频在线观看30 | 99精品国产兔费观看久久99 | av黄色免费在线观看 | 日韩中文免费视频 | 色偷偷888欧美精品久久久 | 99精品偷拍视频一区二区三区 | 成人午夜电影在线观看 | 天天综合久久综合 | 激情丁香5月 | 国产成人在线观看 | 欧美日韩调教 | 欧美一区二区三区不卡 | 伊人伊成久久人综合网站 | 久久综合天天 | 亚洲精品美女久久17c | 中文字幕资源站 | 亚洲综合少妇 | 黄色av一区 | 在线成人短视频 | 99精品免费久久久久久久久 | 精品国产一区二区三区久久久久久 | 探花视频免费观看高清视频 | 婷婷久久综合网 | 在线免费观看欧美日韩 | 亚洲经典在线 | 在线播放91 | 国产精品成人免费一区久久羞羞 | 天天干天天操人体 | 天天操天天射天天 | www.黄色在线| 中文字幕视频观看 | 涩五月婷婷 | 狠狠干,狠狠操 | 国产老太婆免费交性大片 | 精品在线观看一区二区 | av在线不卡观看 | 久久综合婷婷国产二区高清 | 久久 精品一区 | 97色狠狠 | 欧美午夜性 | 三级黄在线 | 天天操天天弄 | 激情五月播播久久久精品 | 欧美夫妻性生活电影 | 国产成人精品网站 | 欧美成人999 | 久久久免费精品 | 国产成人精品在线播放 | 国产成人精品久久久久 | 中文字幕在线观看免费观看 | 夜夜爽夜夜操 | 国产又粗又猛又黄又爽 | 色a综合| 一区二区精品 | 欧洲av在线 | 欧美性粗大hdvideo | 91久久爱热色涩涩 | 久久在线免费 | av在线网站免费观看 | av片中文字幕 | 麻豆一二三精选视频 | 在线久草视频 | 日本资源中文字幕在线 | 亚洲国产三级在线 | 精品亚洲一区二区 | 国产成人精品一区二三区 | 欧美日韩高清免费 | 一本一道波多野毛片中文在线 | 国产一区二三区好的 | 国产一区二区高清 | 91av短视频 | 黄色的片子 | 国产高清专区 | 天天天操天天天干 | 日韩免费一二三区 | 偷拍福利视频一区二区三区 | 久草.com| 91九色porny蝌蚪主页 | 91视频 - 114av| 久久99精品久久久久久清纯直播 | 精品一区二区三区四区在线 | 久久天天躁夜夜躁狠狠躁2022 | 免费在线观看黄网站 | 在线中文字幕一区二区 | 亚洲综合精品视频 | 亚洲一级影院 | 欧美日韩成人 | 中文字幕视频播放 | 国产又粗又猛又黄又爽视频 | 一区二区三区四区久久 | 欧美 日韩 性 | 日本久久免费视频 | 日p视频在线观看 | 国产伦精品一区二区三区照片91 | 久久精彩 | 欧美在线视频一区二区三区 | 亚洲伦理一区二区 | 久久精品视频中文字幕 | 国产视频 久久久 | 亚洲欧美视频在线播放 | 久久狠狠婷婷 | 中文字幕亚洲不卡 | 日本最新一区二区三区 | 五月婷婷在线综合 | 日韩视频一区二区 | 国产福利精品一区二区 | 国产黄色片免费观看 | 久久久久久久久影院 | 亚洲免费av一区二区 | 日韩电影中文,亚洲精品乱码 | 日韩免费福利 | 国产一区在线精品 | 99免费观看视频 | 国产一二三区av | 色噜噜日韩精品欧美一区二区 | 特级西西www44高清大胆图片 | 有码中文字幕在线观看 | av超碰免费在线 | 三上悠亚在线免费 | 五月综合色婷婷 | 日本丰满少妇免费一区 | 少妇bbw揉bbb欧美 | 97成人免费 | 九草视频在线 | 久久99热久久99精品 | av成人免费 | 麻豆精品传媒视频 | 久草在线资源视频 | 欧美在线视频免费 | 亚洲免费av观看 | 婷婷网五月天 | 婷婷视频在线播放 | 91日本在线播放 | 色偷偷人人澡久久超碰69 | 国产91区| 久久综合狠狠综合久久综合88 | 亚洲国产精久久久久久久 | 婷婷色在线 | 99久久久国产精品免费99 | 国色天香第二季 | 国产一区二区三区网站 | 久久久久久久久毛片精品 | 久久公开视频 | 九色视频自拍 | 欧美一区二区在线 | 午夜精品一区二区三区视频免费看 | 久久久久高清毛片一级 | 色99导航 | 91精品一区二区三区蜜臀 | 国产原厂视频在线观看 | 在线激情网 | 中文字幕a∨在线乱码免费看 | 国产高清久久 | 国产99久久久久 | 国产理伦在线 | 五月婷婷激情六月 | 草久久久 | 热久久视久久精品18亚洲精品 | 色偷偷网站视频 | 超级碰碰碰免费视频 | 国产精品ⅴa有声小说 | 久久久影院一区二区三区 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 亚洲免费视频在线观看 | 亚洲自拍av在线 | 国产自在线观看 | 在线观看成人国产 | 亚洲精品视频在线观看免费视频 | 欧美一区二区精品在线 | 亚洲黄色免费 | 国产精品区二区三区日本 | 亚洲涩涩网 | 国产伦理一区 | 日日爱夜夜爱 | 国产精品你懂的在线观看 | 欧美日韩一区二区三区在线免费观看 | 99久久精品午夜一区二区小说 | 成人黄色在线观看视频 | 久久国产精品免费看 | 久久综合影音 | 国产一区91| 日韩视频免费观看高清完整版在线 | 久久99精品久久久久蜜臀 | 色婷婷免费 | 亚洲三级av | 成人精品一区二区三区中文字幕 | 免费网站在线 | 黄色小网站在线 | 亚洲 欧美日韩 国产 中文 | 91精品久久久久久久久久久久久 | 国产精品精品国产 | 超碰国产在线播放 | 青青久草在线 | 日韩三级在线 | 亚洲欧美国产精品 | 日韩在线看片 | 看国产黄色大片 | 国产精品嫩草影院123 | 久久久久久国产一区二区三区 | 99色在线观看 | 91人人网 | 二区精品视频 | 免费大片黄在线 | 夜夜高潮夜夜爽国产伦精品 | 国产精品成人a免费观看 | www.福利| 女人高潮特级毛片 | 99热国产在线中文 | av动态图片 | 免费在线观看av电影 | 超碰免费在线公开 | av在线播放网址 | 免费看搞黄视频网站 | 久久蜜桃av | 不卡视频在线 | 国产高清av免费在线观看 | 婷婷在线免费视频 | 蜜臀久久99精品久久久无需会员 | 天堂网av在线 | 欧美日韩免费观看一区=区三区 | 黄色三级av | 久久天天躁夜夜躁狠狠躁2022 | 日韩在线视频免费看 | 成人午夜电影在线播放 | 成人久久久久久久久久 | 国产高清免费 | 亚洲成人黄色在线观看 | 国产麻豆精品95视频 | 在线 高清 中文字幕 | 四虎影视精品永久在线观看 | 亚洲成人在线免费 | 日韩av在线免费播放 | 久久的色| 国产精品99久久久久久武松影视 | 制服丝袜欧美 | 亚洲成人av电影 | 黄色天堂在线观看 | 国产视频网站在线观看 | 国产精品99久久99久久久二8 | 国产中文字幕视频在线观看 | 欧美韩日在线 | 日韩av免费一区二区 | 四虎在线免费视频 | 亚洲男男gaygay无套 | 久久久麻豆精品一区二区 | 中国精品一区二区 | 久久综合九色综合久99 | 在线观看成人国产 | 亚洲精品国产精品国自产 | 色噜噜噜噜| 亚洲精品tv久久久久久久久久 | 国产精品欧美久久久久三级 | 成人黄色电影视频 | 国产精品毛片一区二区三区 | 亚洲好视频| 亚洲欧美国产日韩在线观看 | 天天爱天天色 | 成人免费看电影 | 欧美日韩有码 | 国产护士hd高朝护士1 | 日韩av快播电影网 | 久久久精品久久 | 色婷婷伊人 | 天天操天天干天天操天天干 | 亚欧日韩av|