问:
PyInstaller and pysocketio
I'm trying to package a multi-file python project using PyInstaller. I have a dependency on pysocketio which is imported in my scripts as socketio. I can run PyInstaller with no problems and I get an .exe file in the end, but when I try to launch it I get the following error:

Traceback (most recent call last):
  File "main.py", line 34, in <module>
  File "socketio\asyncio_server.py", line 117 in attach
  File "engineio\asyncio_server.py", line 81, in attach
KeyError: 'create_route'
```
<p>I don't use <code>engineio</code> or <code>create_route</code> in my code, so I thought maybe these are "hidden imports". I tried to handle this by adding <code>--hidden-import engineio.asyncio_server</code> to my PyInstaller command, but this still doesn't work. How can I fix this?</p>
<p>This is my PyInstaller command:</p>
<pre class="lang-bash prettyprint-override"><code>pyinstaller --clean -F --windowed .\my_package\main.py --paths .\my_package\ --paths .\venv\ --add-binary '.\my_package\resources\lib.dll;.\my_package\resources' --hidden-import engineio.asyncio_server
</code>```

I know some of the options are probably redundant/not required, but that was the command I last used.

Thanks for your help!

Title: PyInstaller and pysocketio

Body:
I'm trying to package a multi-file python project using PyInstaller. I have a dependency on pysocketio which is imported in my scripts as socketio. I can run PyInstaller with no problems and I get an .exe file in the end, but when I try to launch it I get the following error:

Traceback (most recent call last):
  File "main.py", line 34, in <module>
  File "socketio\asyncio_server.py", line 117 in attach
  File "engineio\asyncio_server.py", line 81, in attach
KeyError: 'create_route'

I don't use engineio or create_route in my code, so I thought maybe these are "hidden imports". I tried to handle this by adding --hidden-import engineio.asyncio_server to my PyInstaller command, but this still doesn't work. How can I fix this?

This is my PyInstaller command:

pyinstaller --clean -F --windowed .\my_package\main.py --paths .\my_package\ --paths .\venv\ --add-binary '.\my_package\resources\lib.dll;.\my_package\resources' --hidden-import engineio.asyncio_server

I know some of the options are probably redundant/not required, but that was the command I last used.

Thanks for your help!


来源: stackexchange

问:
Write x264 from OBS rtmp stream to file
I wrote an Module for apache2 to receive RTMP streams from OBS.
This works so far that I get Video and Audio messages. The first thing I would like to do is write that down into a file.

The messages I get look like this:

```<code> RTMP Body:
    Control: 0xaf (HE-AAC 44 kHz 16 bit stereo)
    Audio data: 00119056e500

RTMP Body:
    Control: 0x17 (keyframe H.264)
    Video data: 000000000164001fffe1001d6764001facd94050053fa9a808080a000003000200000300791e30632c01000468efbcb0
</code>```

Iam not quite sure yet how to combine these Messages into a videofile. At first I thought of ffmpeg and wrote the Video into a pipe

```<code>connection->output = popen("ffmpeg -v debug -y -f h264 -i - -an /usr/videos/output.mp4", "w");
char controll = message->chunk_data[0];
    fwrite(&(message->chunk_data[0]), 1, message->message_header.length, connection->output);
</code>```

Output of ffmpeg is this:

```<code>[h264 @ 0x561181677540] Unknown NAL code: 0 (445 bits)

[h264 @ 0x561181677540] Unknown NAL code: 0 (18063 bits)

[h264 @ 0x561181677540] no frame!

Error while decoding stream #0:0: Invalid data found when processing input

cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)

Cannot determine format of input stream 0:0 after EOF

Error marking filters as finished

[AVIOContext @ 0x561181678380] Statistics: 0 seeks, 0 writeouts

[AVIOContext @ 0x561180932000] Statistics: 6675219 bytes read, 0 seeks

Conversion failed!
</code>```

Ffmpeg is clearly trying, but fails to read the input.

How do I process these messages?

EDIT:

It seems that OBS is writing these packets with libx264
I will dig into this.

ContentLicense: CC BY-SA 4.0

Title: Write x264 from OBS rtmp stream to file

Body:
I wrote an Module for apache2 to receive RTMP streams from OBS.
This works so far that I get Video and Audio messages. The first thing I would like to do is write that down into a file.

The messages I get look like this:

 RTMP Body:
    Control: 0xaf (HE-AAC 44 kHz 16 bit stereo)
    Audio data: 00119056e500

RTMP Body:
    Control: 0x17 (keyframe H.264)
    Video data: 000000000164001fffe1001d6764001facd94050053fa9a808080a000003000200000300791e30632c01000468efbcb0

Iam not quite sure yet how to combine these Messages into a videofile. At first I thought of ffmpeg and wrote the Video into a pipe

connection->output = popen("ffmpeg -v debug -y -f h264 -i - -an /usr/videos/output.mp4", "w");
char controll = message->chunk_data[0];
    fwrite(&(message->chunk_data[0]), 1, message->message_header.length, connection->output);

Output of ffmpeg is this:

[h264 @ 0x561181677540] Unknown NAL code: 0 (445 bits)

[h264 @ 0x561181677540] Unknown NAL code: 0 (18063 bits)

[h264 @ 0x561181677540] no frame!

Error while decoding stream #0:0: Invalid data found when processing input

cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)

Cannot determine format of input stream 0:0 after EOF

Error marking filters as finished

[AVIOContext @ 0x561181678380] Statistics: 0 seeks, 0 writeouts

[AVIOContext @ 0x561180932000] Statistics: 6675219 bytes read, 0 seeks

Conversion failed!

Ffmpeg is clearly trying, but fails to read the input.

How do I process these messages?

EDIT:

It seems that OBS is writing these packets with libx264
I will dig into this.


问:
I am trying to build a simple chatbot using the natural language processing library NLTK in Python
I have written the following code:

```<code>import nltk
from nltk.chat.util import Chat, reflections

pairs = [    ['my name is (.*)', ['hi %1']],
    ['(hi|hello|hey|hola|bonjour)', ['hello there']],
    ['(.*) in (.*) is fun', ['%1 in %2 is indeed fun!']]
]

chatbot = Chat(pairs, reflections)
chatbot.converse()
</code>```

When I run this code, I get the following error:

```<code>AttributeError: 'NoneType' object has no attribute 'split'

</code>```

I am not sure what is causing this error or how to fix it. Can anyone help me understand what is happening and how to resolve this issue?

Body:
I have written the following code:

import nltk
from nltk.chat.util import Chat, reflections

pairs = [    ['my name is (.*)', ['hi %1']],
    ['(hi|hello|hey|hola|bonjour)', ['hello there']],
    ['(.*) in (.*) is fun', ['%1 in %2 is indeed fun!']]
]

chatbot = Chat(pairs, reflections)
chatbot.converse()

When I run this code, I get the following error:

AttributeError: 'NoneType' object has no attribute 'split'

I am not sure what is causing this error or how to fix it. Can anyone help me understand what is happening and how to resolve this issue?


问:
my "related posts" article's URLs are "/in-quotcategoryquot/article" instead of "/category/article" (Jetpack WordPress plugin)
I believe this is related to the wordpress plugin "jetpack", as they provide me the "related posts" feature. The thing is that when I updated the plugin (after a long time it hadn't been done), suddenly all my related posts articles changed their href="" .

From

https://www.waypoint.la/blog/agency/why-you-need-a-game-creative-when-developing-your-game

to

https://www.waypoint.la/blog/in-quotagencyquot/why-you-need-a-game-creative-when-developing-your-game

(the difference is in the /category/ bit)

Both articles exist, but I need the original ones to be the only ones working.

This is how it's coded in the website, but I didn't really manipulate code for this to change

Image of hrefs here

You can check this yourself this here in the "related posts" section, the "Why you need a Game Creative When Developing Your Game" Article

I've tried to go back to the previous Jetpack version, but I don't really know which one it was. I've tried about 10+ different versions and none of them worked. I even went back to a previous wordpress version(which I've recently updated as well) to see if it made any changes, but it didn't.

I really need to fix this as it harms SEO for the website, as the sitemap.xml takes all the inquotCategoryqout URLs instead of the correct ones.


问:
MySQL - two conditions together at same time
Please, I need to print records that meet 2 conditions at the same time:

```<code>meta_key = '_tribe_wooticket_product' AND meta_value = 1109
meta_key = '_tribe_wooticket_checkedin' AND meta_value = 1
</code>```

thank you all for your time

I tried this but it doesn't work:

```<code>$query = "
    SELECT *
    FROM wp_postmeta
    where (meta_key = '_tribe_wooticket_product' AND meta_value = 1109)
        OR (meta_key = '_tribe_wooticket_checkedin' AND meta_value = 1)
    HAVING COUNT(DISTINCT meta_key)=2";
</code>```

Body:
Please, I need to print records that meet 2 conditions at the same time:

meta_key = '_tribe_wooticket_product' AND meta_value = 1109
meta_key = '_tribe_wooticket_checkedin' AND meta_value = 1

thank you all for your time

I tried this but it doesn't work:

$query = "
    SELECT *
    FROM wp_postmeta
    where (meta_key = '_tribe_wooticket_product' AND meta_value = 1109)
        OR (meta_key = '_tribe_wooticket_checkedin' AND meta_value = 1)
    HAVING COUNT(DISTINCT meta_key)=2";


问:
How to download SAMPLE-AES-CTR encrypted stream
Hey is there a way for me to use ffmpeg to download the SAMPLE-AES-CTR encrypted stream?

When I open the mp4 file the audio works fine but the video is broken.

This is the m3u8 file:

```<code>#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:9
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:2019-01-01T00:00:00.000Z
#EXT-X-DATERANGE:ID="pod_0",START-DATE="2019-01-01T00:00:00.000Z",DURATION=1294.7935,X-START-OFFSET="0.0"
#EXT-X-KEY:METHOD=SAMPLE-AES-CTR,KEYFORMAT="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",KEYFORMATVERSIONS="1",URI="data:text/plain;base64,AAAAMnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABISENR18PVtrUn8kOFwjHCeoCI="
#EXT-X-KEY:METHOD=SAMPLE-AES-CTR,KEYFORMAT="com.microsoft.playready",KEYFORMATVERSIONS="1",URI="data:text/plain;charset=UTF-16;base64,xAEAAAEAAQC6ATwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AOQBmAEIAMQAxAEsAMQB0AC8ARQBtAFEANABYAEMATQBjAEoANgBnAEkAZwA9AD0APAAvAEsASQBEAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA="
#EXT-X-KEY:METHOD=SAMPLE-AES-CTR,KEYFORMAT="PRMNAGRA",KEYFORMATVERSIONS="1",URI="data:text/plain;base64,eyJrZXktaWQiOiJkNDc1ZjBmNS02ZGFkLTQ5ZmMtOTBlMS03MDhjNzA5ZWEwMjIiLCJlbWkiOiJjdHIiLCJwcm0iOiJleUpqYjI1MFpXNTBTV1FpT2lKamRISWlMQ0pyWlhsSlpDSTZJbVEwTnpWbU1HWTFMVFprWVdRdE5EbG1ZeTA1TUdVeExUY3dPR00zTURsbFlUQXlNaUo5In0="
#EXT-X-MAP:URI="241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/map.mp4"
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/00_000.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/08_008.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/16_016.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/24_024.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/32_032.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/40_040.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/48_048.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/56_056.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/01/04_064.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/01/12_072.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/01/20_080.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/01/28_088.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/01/36_096.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/01/44_104.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/01/52_112.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/00_120.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/08_128.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/16_136.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/24_144.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/32_152.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/40_160.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/48_168.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/56_176.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/03/04_184.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/03/12_192.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/03/20_200.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/03/28_208.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/03/36_216.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/03/44_224.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/03/52_232.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/00_240.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/08_248.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/16_256.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/24_264.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/32_272.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/40_280.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/48_288.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/56_296.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/05/04_304.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/05/12_312.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/05/20_320.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/05/28_328.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/05/36_336.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/05/44_344.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/05/52_352.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/00_360.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/08_368.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/16_376.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/24_384.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/32_392.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/40_400.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/48_408.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/56_416.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/07/04_424.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/07/12_432.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/07/20_440.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/07/28_448.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/07/36_456.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/07/44_464.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/07/52_472.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/00_480.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/08_488.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/16_496.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/24_504.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/32_512.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/40_520.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/48_528.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/56_536.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/09/04_544.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/09/12_552.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/09/20_560.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/09/28_568.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/09/36_576.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/09/44_584.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/09/52_592.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/00_600.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/08_608.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/16_616.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/24_624.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/32_632.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/40_640.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/48_648.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/56_656.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/11/04_664.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/11/12_672.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/11/20_680.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/11/28_688.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/11/36_696.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/11/44_704.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/11/52_712.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/00_720.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/08_728.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/16_736.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/24_744.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/32_752.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/40_760.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/48_768.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/56_776.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/13/04_784.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/13/12_792.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/13/20_800.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/13/28_808.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/13/36_816.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/13/44_824.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/13/52_832.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/00_840.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/08_848.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/16_856.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/24_864.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/32_872.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/40_880.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/48_888.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/56_896.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/15/04_904.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/15/12_912.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/15/20_920.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/15/28_928.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/15/36_936.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/15/44_944.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/15/52_952.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/00_960.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/08_968.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/16_976.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/24_984.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/32_992.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/41_000.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/49_008.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/57_016.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/17/05_024.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/17/13_032.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/17/21_040.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/17/29_048.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/17/37_056.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/17/45_064.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/17/53_072.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/01_080.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/09_088.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/17_096.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/25_104.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/33_112.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/41_120.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/49_128.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/57_136.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/19/05_144.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/19/13_152.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/19/21_160.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/19/29_168.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/19/37_176.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/19/45_184.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/19/53_192.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/01_200.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/09_208.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/17_216.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/25_224.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/33_232.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/41_240.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/49_248.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/57_256.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/21/05_264.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/21/13_272.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/21/21_280.mp4
#EXTINF:5.5055,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/21/29_288.mp4
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="pod_1",START-DATE="2019-01-01T00:21:34.793Z",DURATION=2.002,X-START-OFFSET="1294.7935"
#EXT-X-MAP:URI="f0af7712-2628-470a-8d9d-ae1c66460e1a/4682-DUB_CARD/02/4250K/map.mp4"
#EXTINF:2.002,
f0af7712-2628-470a-8d9d-ae1c66460e1a/4682-DUB_CARD/02/4250K/00/00/00_000.mp4
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="pod_2",START-DATE="2019-01-01T00:21:36.795Z",DURATION=4.004,X-START-OFFSET="1296.7955"
#EXT-X-MAP:URI="52b49aba-7ba2-4882-8e67-f6727417eb66/6da0-DUB_CARD/02/4250K/map.mp4"
#EXTINF:4.004,
52b49aba-7ba2-4882-8e67-f6727417eb66/6da0-DUB_CARD/02/4250K/00/00/00_000.mp4
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="pod_3",START-DATE="2019-01-01T00:21:40.799Z",DURATION=2.002,X-START-OFFSET="1300.7995"
#EXT-X-MAP:URI="3d498e45-fa9e-4324-b2f8-cac1d3af3e2f/5906-DUB_CARD/02/4250K/map.mp4"
#EXTINF:2.002,
3d498e45-fa9e-4324-b2f8-cac1d3af3e2f/5906-DUB_CARD/02/4250K/00/00/00_000.mp4
#EXT-X-ENDLIST
</code>```

If there is any other information I can give to solve the problem please let me know.

I have tried the following lines, but none of them worked:

```<code>ffmpeg -i "URL" -c copy output.mp4
ffmpeg -i "URL" -c copy -bsf:a aac_adtstoasc output.mp4
</code>```

Body:
Hey is there a way for me to use ffmpeg to download the SAMPLE-AES-CTR encrypted stream?

When I open the mp4 file the audio works fine but the video is broken.

This is the m3u8 file:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:9
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:2019-01-01T00:00:00.000Z
#EXT-X-DATERANGE:ID="pod_0",START-DATE="2019-01-01T00:00:00.000Z",DURATION=1294.7935,X-START-OFFSET="0.0"
#EXT-X-KEY:METHOD=SAMPLE-AES-CTR,KEYFORMAT="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",KEYFORMATVERSIONS="1",URI="data:text/plain;base64,AAAAMnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABISENR18PVtrUn8kOFwjHCeoCI="
#EXT-X-KEY:METHOD=SAMPLE-AES-CTR,KEYFORMAT="com.microsoft.playready",KEYFORMATVERSIONS="1",URI="data:text/plain;charset=UTF-16;base64,xAEAAAEAAQC6ATwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AOQBmAEIAMQAxAEsAMQB0AC8ARQBtAFEANABYAEMATQBjAEoANgBnAEkAZwA9AD0APAAvAEsASQBEAD4APAAvAEQAQQBUAEEAPgA8AC8AVwBSAE0ASABFAEEARABFAFIAPgA="
#EXT-X-KEY:METHOD=SAMPLE-AES-CTR,KEYFORMAT="PRMNAGRA",KEYFORMATVERSIONS="1",URI="data:text/plain;base64,eyJrZXktaWQiOiJkNDc1ZjBmNS02ZGFkLTQ5ZmMtOTBlMS03MDhjNzA5ZWEwMjIiLCJlbWkiOiJjdHIiLCJwcm0iOiJleUpqYjI1MFpXNTBTV1FpT2lKamRISWlMQ0pyWlhsSlpDSTZJbVEwTnpWbU1HWTFMVFprWVdRdE5EbG1ZeTA1TUdVeExUY3dPR00zTURsbFlUQXlNaUo5In0="
#EXT-X-MAP:URI="241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/map.mp4"
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/00_000.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/08_008.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/16_016.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/24_024.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/32_032.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/40_040.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/48_048.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/00/56_056.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/01/04_064.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/01/12_072.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/01/20_080.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/01/28_088.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/01/36_096.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/01/44_104.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/01/52_112.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/00_120.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/08_128.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/16_136.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/24_144.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/32_152.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/40_160.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/48_168.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/02/56_176.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/03/04_184.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/03/12_192.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/03/20_200.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/03/28_208.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/03/36_216.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/03/44_224.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/03/52_232.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/00_240.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/08_248.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/16_256.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/24_264.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/32_272.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/40_280.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/48_288.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/04/56_296.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/05/04_304.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/05/12_312.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/05/20_320.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/05/28_328.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/05/36_336.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/05/44_344.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/05/52_352.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/00_360.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/08_368.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/16_376.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/24_384.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/32_392.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/40_400.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/48_408.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/06/56_416.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/07/04_424.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/07/12_432.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/07/20_440.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/07/28_448.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/07/36_456.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/07/44_464.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/07/52_472.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/00_480.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/08_488.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/16_496.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/24_504.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/32_512.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/40_520.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/48_528.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/08/56_536.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/09/04_544.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/09/12_552.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/09/20_560.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/09/28_568.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/09/36_576.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/09/44_584.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/09/52_592.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/00_600.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/08_608.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/16_616.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/24_624.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/32_632.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/40_640.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/48_648.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/10/56_656.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/11/04_664.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/11/12_672.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/11/20_680.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/11/28_688.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/11/36_696.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/11/44_704.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/11/52_712.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/00_720.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/08_728.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/16_736.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/24_744.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/32_752.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/40_760.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/48_768.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/12/56_776.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/13/04_784.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/13/12_792.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/13/20_800.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/13/28_808.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/13/36_816.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/13/44_824.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/13/52_832.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/00_840.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/08_848.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/16_856.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/24_864.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/32_872.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/40_880.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/48_888.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/14/56_896.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/15/04_904.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/15/12_912.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/15/20_920.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/15/28_928.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/15/36_936.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/15/44_944.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/15/52_952.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/00_960.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/08_968.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/16_976.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/24_984.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/32_992.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/41_000.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/49_008.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/16/57_016.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/17/05_024.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/17/13_032.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/17/21_040.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/17/29_048.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/17/37_056.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/17/45_064.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/17/53_072.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/01_080.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/09_088.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/17_096.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/25_104.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/33_112.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/41_120.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/49_128.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/18/57_136.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/19/05_144.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/19/13_152.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/19/21_160.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/19/29_168.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/19/37_176.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/19/45_184.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/19/53_192.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/01_200.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/09_208.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/17_216.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/25_224.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/33_232.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/41_240.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/49_248.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/20/57_256.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/21/05_264.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/21/13_272.mp4
#EXTINF:8.008,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/21/21_280.mp4
#EXTINF:5.5055,
241b53fa-e44e-458a-910a-5afca4f57e13/90e4-MAIN/02/4250K/00/21/29_288.mp4
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="pod_1",START-DATE="2019-01-01T00:21:34.793Z",DURATION=2.002,X-START-OFFSET="1294.7935"
#EXT-X-MAP:URI="f0af7712-2628-470a-8d9d-ae1c66460e1a/4682-DUB_CARD/02/4250K/map.mp4"
#EXTINF:2.002,
f0af7712-2628-470a-8d9d-ae1c66460e1a/4682-DUB_CARD/02/4250K/00/00/00_000.mp4
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="pod_2",START-DATE="2019-01-01T00:21:36.795Z",DURATION=4.004,X-START-OFFSET="1296.7955"
#EXT-X-MAP:URI="52b49aba-7ba2-4882-8e67-f6727417eb66/6da0-DUB_CARD/02/4250K/map.mp4"
#EXTINF:4.004,
52b49aba-7ba2-4882-8e67-f6727417eb66/6da0-DUB_CARD/02/4250K/00/00/00_000.mp4
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="pod_3",START-DATE="2019-01-01T00:21:40.799Z",DURATION=2.002,X-START-OFFSET="1300.7995"
#EXT-X-MAP:URI="3d498e45-fa9e-4324-b2f8-cac1d3af3e2f/5906-DUB_CARD/02/4250K/map.mp4"
#EXTINF:2.002,
3d498e45-fa9e-4324-b2f8-cac1d3af3e2f/5906-DUB_CARD/02/4250K/00/00/00_000.mp4
#EXT-X-ENDLIST

If there is any other information I can give to solve the problem please let me know.

I have tried the following lines, but none of them worked:

ffmpeg -i "URL" -c copy output.mp4
ffmpeg -i "URL" -c copy -bsf:a aac_adtstoasc output.mp4


问:
Android Studio Emulator Proxy isn't working
I am having trouble getting the proxy settings on the Android Studio Emulator to work.

This is a HTTP proxy with Sticky IP and I've tried with both DNS Hostname and IP Hostname and in every case it says This site can't be reached with ERR_CONNECTION_REFUSED.

I need to get in working global across all apps on the device.
Managed to get the proxy working trough the adb shell command - adb shell settings put global http_proxy 52.7.150.172:31112 but it worked only in the browser. Didn't work across other apps

Attached below are screenshots.

DNS
IP


问:
Laravel Javascript Working with Pagination
i am using laravel V9 and have used an Excel eport javascript i found.
from here, credit to these people as it works well,
https://www.codexworld.com/export-html-table-data-to-excel-using-javascript/

but my issue is, i am using pagination, it gives you X rows per page and you click next to got the the net page, the script only downloads one page not the complete table, is there a way of being about to adjus the script to download the whole table,

`

```<code>function exportTableToExcel(tableID, filename = ''){
    var downloadLink;
    var dataType = 'application/vnd.ms-excel';
    var tableSelect = document.getElementById(tableID);
    var tableHTML = tableSelect.outerHTML.replace(/ /g, '%20');

    // Specify file name
    filename = filename?filename+'.xls':'excel_data.xls';

    // Create download link element
    downloadLink = document.createElement("a");

    document.body.appendChild(downloadLink);

    if(navigator.msSaveOrOpenBlob){
        var blob = new Blob(['\ufeff', tableHTML], {
            type: dataType
        });
        navigator.msSaveOrOpenBlob( blob, filename);
    }else{
        // Create a link to the file
        downloadLink.href = 'data:' + dataType + ', ' + tableHTML;

        // Setting the file name
        downloadLink.download = filename;

        //triggering the function
        downloadLink.click();
    }
}
</code>```

`

I have tried adjust the script myself and googling other functions to do this.

Body:
i am using laravel V9 and have used an Excel eport javascript i found.
from here, credit to these people as it works well,
https://www.codexworld.com/export-html-table-data-to-excel-using-javascript/

but my issue is, i am using pagination, it gives you X rows per page and you click next to got the the net page, the script only downloads one page not the complete table, is there a way of being about to adjus the script to download the whole table,

`

function exportTableToExcel(tableID, filename = ''){
    var downloadLink;
    var dataType = 'application/vnd.ms-excel';
    var tableSelect = document.getElementById(tableID);
    var tableHTML = tableSelect.outerHTML.replace(/ /g, '%20');

    // Specify file name
    filename = filename?filename+'.xls':'excel_data.xls';

    // Create download link element
    downloadLink = document.createElement("a");

    document.body.appendChild(downloadLink);

    if(navigator.msSaveOrOpenBlob){
        var blob = new Blob(['\ufeff', tableHTML], {
            type: dataType
        });
        navigator.msSaveOrOpenBlob( blob, filename);
    }else{
        // Create a link to the file
        downloadLink.href = 'data:' + dataType + ', ' + tableHTML;

        // Setting the file name
        downloadLink.download = filename;

        //triggering the function
        downloadLink.click();
    }
}

`

I have tried adjust the script myself and googling other functions to do this.


问:
How to use OWIN to log invalid OAuth tokens presented to an ASP.net Web Application?
I am working on a web API that must consume OAuth tokens to authenticate the users.  I'm using OWIN to validate the tokens.

I would like to log suspicious activity, and to that end, I would like to log information about requests that contain invalid OAuth tokens.

At a minimum, I would like to log the invalid token, the client IP address, the URL, and a timestamp.

To that end, I tried overriding methods in the OAuthBearerAuthenticationProvider and I have some code that looks like this:

```<code>public override async Task ValidateIdentity(OAuthValidateIdentityContext context)
{
    await base.ValidateIdentity(context);
}
public override Task RequestToken(OAuthRequestTokenContext context)
{
    return base.RequestToken(context);
}
</code>```

My understanding is that RequestToken gets fired before the token is validated, and ValidateIdentity gets called afterwards.

This doesn't allow me to log invalid tokens because if the token is invalid, then ValidateIdentity never gets called, but when RequestToken is called, I don't know if the token is valid, except that I validate the token by hand, which duplicates the work that the OWIN framework is doing.

I kept digging, and I found out that I can override methods in the JwtSecurityTokenHandler class.

Now, I have code that looks like this:

```<code>public override ClaimsPrincipal ValidateToken(string token, TokenValidationParameters validationParameters, out SecurityToken validatedToken)
{
    base.ValidateToken(token, validationParameters, out validatedToken);
}
</code>```

This seems to be much closer to what I'm looking for!  I have a function that actually tells me whether or not the token is valid.  However, at this point, I don't know the other things I want to know, such as the client IP address and URL.

How frustrating!  I can step thru the code and see every scrap of information I believe I need, but not at the same time.

How can I use OWIN to log invalid OAuth tokens presented to the app I'm working on?

Body:
I am working on a web API that must consume OAuth tokens to authenticate the users.  I'm using OWIN to validate the tokens.

I would like to log suspicious activity, and to that end, I would like to log information about requests that contain invalid OAuth tokens.

At a minimum, I would like to log the invalid token, the client IP address, the URL, and a timestamp.

To that end, I tried overriding methods in the OAuthBearerAuthenticationProvider and I have some code that looks like this:

public override async Task ValidateIdentity(OAuthValidateIdentityContext context)
{
    await base.ValidateIdentity(context);
}
public override Task RequestToken(OAuthRequestTokenContext context)
{
    return base.RequestToken(context);
}

My understanding is that RequestToken gets fired before the token is validated, and ValidateIdentity gets called afterwards.

This doesn't allow me to log invalid tokens because if the token is invalid, then ValidateIdentity never gets called, but when RequestToken is called, I don't know if the token is valid, except that I validate the token by hand, which duplicates the work that the OWIN framework is doing.

I kept digging, and I found out that I can override methods in the JwtSecurityTokenHandler class.

Now, I have code that looks like this:

public override ClaimsPrincipal ValidateToken(string token, TokenValidationParameters validationParameters, out SecurityToken validatedToken)
{
    base.ValidateToken(token, validationParameters, out validatedToken);
}

This seems to be much closer to what I'm looking for!  I have a function that actually tells me whether or not the token is valid.  However, at this point, I don't know the other things I want to know, such as the client IP address and URL.

How frustrating!  I can step thru the code and see every scrap of information I believe I need, but not at the same time.

How can I use OWIN to log invalid OAuth tokens presented to the app I'm working on?


问:
Sample size in k-means clustering with 3D data
I want to run an experiment that I calculate peoples' score in 3 variables (features) and it is an unsupervised learning experiment meaning that I need to use explortory methods like k-means to find clusters in the data. Yet, I don't know how define the suitable sample size for this experiment.

I have had about 50 participants so far but I am not sure if this much is enough or I need more data.
I would appreciate any help to define the number of participants I am goind to need.


问:
How does one set the `idle sensitivity` of Windows 11?
Essentially, when only playing music, whether via Spotify, VLC, Groove, etc., Windows11 will seemingly ignore or not receive messages to prevent idling.

I have verified that the Power Options::Advanced Settings::Multimedia Settings includes that "When sharing media" the system is to "Prevent idling to sleep".

As such, unless there is a better suggestion, I want to alter the threshold at which Windows perceives the computer being idle.


问:
Python, Looping through subdirectories for zip files, OS Error Invalid Argument \\
I am trying to look into my directory for zip files and perform a function on them. It does seem to loop through some of the files correctly but gets stuck with  OS Error \\

Directory structure is like:

```<code> //Stack/Over/Flow/2022 - 10/Original.zip
 //Stack/Over/Flow/2022 - 09/Next file.zip
</code>```

function i call:

```<code>from io import BytesIO
from pathlib import Path
from zipfile import ZipFile
import os
import pandas as pd

def process_files(files: list) -> pd.DataFrame:
    file_mapping = {}
    for file in files:
        #data_mapping = pd.read_excel(BytesIO(ZipFile(file).read(Path(file).stem)), sheet_name=None)

        archive = ZipFile(file)

        # find file names in the archive which end in `.xls`, `.xlsx`, `.xlsb`, ...
        files_in_archive = archive.namelist()
        excel_files_in_archive = [
            f for f in files_in_archive if Path(f).suffix[:4] == ".xls"
        ]
        # ensure we only have one file (otherwise, loop or choose one somehow)
        assert len(excel_files_in_archive) == 1

        # read in data
        data_mapping = pd.read_excel(
            BytesIO(archive.read(excel_files_in_archive[0])),
            sheet_name=None,
        )

        row_counts = []
        for sheet in list(data_mapping.keys()):
            row_counts.append(len(data_mapping.get(sheet)))

        file_mapping.update({file: sum(row_counts)})

    frame = pd.DataFrame([file_mapping]).transpose().reset_index()
    frame.columns = ["file_name", "row_counts"]

    return frame
</code>```

code:

```<code>dir_path = r'\\stack\over\flow'

for root, dirs, files in os.walk(dir_path):
    for file in files:
        print(files)
        if file.endswith('.zip'):
            df = process_files(os.path.join(root, file))
            print(df) #function
        else:
            print("nyeh")
</code>```

Error:

```<code>runfile('/test.py', wdir='test python location')
['History Detail view (page 5) - Nov 2021.zip', 'Original - All fields - 11012021 - 11302021.zip', 'Other fields - 11012021 - 11302021.zip', 'Qualified - All fields - 11012021 - 11302021.zip', 'WPS Report (page 3) 11012021 - 11302021.zip']
Traceback (most recent call last):

  File "test.py", line 75, in <module>
    df = process_files(os.path.join(root, file))

  File "test.py", line 21, in process_files
    archive = ZipFile(file)

  File "C:\Users\user\.conda\envs\diamond\lib\zipfile.py", line 1251, in __init__
    self.fp = io.open(file, filemode)

OSError: [Errno 22] Invalid argument: '\\'
</code>```

Why am I getting this error? How can I bypass this?

Body:
I am trying to look into my directory for zip files and perform a function on them. It does seem to loop through some of the files correctly but gets stuck with  OS Error \\

Directory structure is like:

 //Stack/Over/Flow/2022 - 10/Original.zip
 //Stack/Over/Flow/2022 - 09/Next file.zip

function i call:

from io import BytesIO
from pathlib import Path
from zipfile import ZipFile
import os
import pandas as pd

def process_files(files: list) -> pd.DataFrame:
    file_mapping = {}
    for file in files:
        #data_mapping = pd.read_excel(BytesIO(ZipFile(file).read(Path(file).stem)), sheet_name=None)

        archive = ZipFile(file)

        # find file names in the archive which end in `.xls`, `.xlsx`, `.xlsb`, ...
        files_in_archive = archive.namelist()
        excel_files_in_archive = [
            f for f in files_in_archive if Path(f).suffix[:4] == ".xls"
        ]
        # ensure we only have one file (otherwise, loop or choose one somehow)
        assert len(excel_files_in_archive) == 1

        # read in data
        data_mapping = pd.read_excel(
            BytesIO(archive.read(excel_files_in_archive[0])),
            sheet_name=None,
        )

        row_counts = []
        for sheet in list(data_mapping.keys()):
            row_counts.append(len(data_mapping.get(sheet)))

        file_mapping.update({file: sum(row_counts)})

    frame = pd.DataFrame([file_mapping]).transpose().reset_index()
    frame.columns = ["file_name", "row_counts"]

    return frame

code:

dir_path = r'\\stack\over\flow'

for root, dirs, files in os.walk(dir_path):
    for file in files:
        print(files)
        if file.endswith('.zip'):
            df = process_files(os.path.join(root, file))
            print(df) #function
        else:
            print("nyeh")

Error:

runfile('/test.py', wdir='test python location')
['History Detail view (page 5) - Nov 2021.zip', 'Original - All fields - 11012021 - 11302021.zip', 'Other fields - 11012021 - 11302021.zip', 'Qualified - All fields - 11012021 - 11302021.zip', 'WPS Report (page 3) 11012021 - 11302021.zip']
Traceback (most recent call last):

  File "test.py", line 75, in <module>
    df = process_files(os.path.join(root, file))

  File "test.py", line 21, in process_files
    archive = ZipFile(file)

  File "C:\Users\user\.conda\envs\diamond\lib\zipfile.py", line 1251, in __init__
    self.fp = io.open(file, filemode)

OSError: [Errno 22] Invalid argument: '\\'

Why am I getting this error? How can I bypass this?


问:
Using walletconnect v2.0 with TRON network
As per TRON docs (https://developers.tron.network/docs/walletconnect-tron), its now possible to connect the TRON network with walletconnect v2.

Within the tron api @tronweb3/walletconnect-tron, these are the specifications to pass walletconect signer object at connection time.

```<code>requiredNamespaces: {
        tron: {
            chains: [chainId],
            methods: [WalletConnectMethods.signTransaction, WalletConnectMethods.signMessage],
            events: []
        }
    },
</code>```

Where chainId for mainnet would be: "tron:0x2b6653dc", and methods: "tron_signTransaction" "tron_signMessage".

This in correlation to EIP155 Namespaces which are, and you can find in (https://docs.walletconnect.com/2.0/javascript/sign/dapp-usage)

```<code>requiredNamespaces: {
      eip155: {
        methods: [
          "eth_sendTransaction",
          "eth_signTransaction",
          "eth_sign",
          "personal_sign",
          "eth_signTypedData",
        ],
        chains: ["eip155:1"],
        events: ["chainChanged", "accountsChanged"],
      },
    },
</code>```

Does anybody has succesfully use this new features? I'm trying with Trust Wallet.

Appreciate any help in this regard.

Connecting my wallet to the TRON network using walletconnect v2.

Body:
As per TRON docs (https://developers.tron.network/docs/walletconnect-tron), its now possible to connect the TRON network with walletconnect v2.

Within the tron api @tronweb3/walletconnect-tron, these are the specifications to pass walletconect signer object at connection time.

requiredNamespaces: {
        tron: {
            chains: [chainId],
            methods: [WalletConnectMethods.signTransaction, WalletConnectMethods.signMessage],
            events: []
        }
    },

Where chainId for mainnet would be: "tron:0x2b6653dc", and methods: "tron_signTransaction" "tron_signMessage".

This in correlation to EIP155 Namespaces which are, and you can find in (https://docs.walletconnect.com/2.0/javascript/sign/dapp-usage)

requiredNamespaces: {
      eip155: {
        methods: [
          "eth_sendTransaction",
          "eth_signTransaction",
          "eth_sign",
          "personal_sign",
          "eth_signTypedData",
        ],
        chains: ["eip155:1"],
        events: ["chainChanged", "accountsChanged"],
      },
    },

Does anybody has succesfully use this new features? I'm trying with Trust Wallet.

Appreciate any help in this regard.

Connecting my wallet to the TRON network using walletconnect v2.


问:
Mysql workbench connection to database fails due to plugin 'caching_sha2_password'
I need to connect to a wordpress database and I don't want to install phpmyadmin because I am using windows and don't want to install php, neither apache so I decided to use mysql Workbench, I entered the hostname, username and password of the database but got the error Failed to Connect to MySql at database_host:port Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection  I saw this is due to the authentication method, so the databse is using an old one and mysqlworkbench since the 8.0 version use the sha2 method I also saw that I can use this ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword'; to use the mysql_native_password method but won't this affect all my connections? How can I connect to this wordpress database using the native_password method witout altering the others connectins?


问:
How to change the cmake path for libcrypto? (seems like cmake is using two different paths?)
I am running into some problems when using cmake, related to the lipcrypto library. Examples are :

```<code>runtime library [libcrypto.so.1.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/linuxbrew/.linuxbrew/Cellar/openssl@1.1/1.1.1j/lib

/home/linuxbrew/.linuxbrew/Cellar/openssl@1.1/1.1.1j/lib/libssl.so.1.1: undefined reference to `EVP_idea_cbc@OPENSSL_1_1_0'
</code>```

When I am running "cmake" I also realize that:

```<code>LibCrypto Include Dir: /usr/include
LibCrypto Shared Lib:  /usr/lib/x86_64-linux-gnu/libcrypto.so
LibCrypto Static Lib:  /usr/lib/x86_64-linux-gnu/libcrypto.a
Using libcrypto from the cmake path
Using libcrypto from system: /home/linuxbrew/.linuxbrew/Cellar/openssl@1.1/1.1.1j/lib/libcrypto.so
</code>```

So it seems like the problem is might be that libcrypto is pointing to two different libcrypto.so files?? In that case, how can I force LibCrypto to just use the one in /usr/lib/x86_64-linux-gnu/libcrypto.a? Or any other idea what might cause (and possibly) fix this?

Body:
I am running into some problems when using cmake, related to the lipcrypto library. Examples are :

runtime library [libcrypto.so.1.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/linuxbrew/.linuxbrew/Cellar/openssl@1.1/1.1.1j/lib

/home/linuxbrew/.linuxbrew/Cellar/openssl@1.1/1.1.1j/lib/libssl.so.1.1: undefined reference to `EVP_idea_cbc@OPENSSL_1_1_0'

When I am running "cmake" I also realize that:

LibCrypto Include Dir: /usr/include
LibCrypto Shared Lib:  /usr/lib/x86_64-linux-gnu/libcrypto.so
LibCrypto Static Lib:  /usr/lib/x86_64-linux-gnu/libcrypto.a
Using libcrypto from the cmake path
Using libcrypto from system: /home/linuxbrew/.linuxbrew/Cellar/openssl@1.1/1.1.1j/lib/libcrypto.so

So it seems like the problem is might be that libcrypto is pointing to two different libcrypto.so files?? In that case, how can I force LibCrypto to just use the one in /usr/lib/x86_64-linux-gnu/libcrypto.a? Or any other idea what might cause (and possibly) fix this?


问:
I can not initiate derby schema
when i run $HIVE_HOME/bin/schematool -initSchema -dbType derby

the output is

```<code>Metastore connection URL:    jdbc:derby://localhost:1527/metastore_db;create=true
Metastore Connection Driver :    org.apache.derby.jdbc.EmbeddedDriver
Metastore connection User:   APP
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
Underlying cause: java.sql.SQLException : No suitable driver found for jdbc:derby://localhost:1527/metastore_db;create=true
SQL Error code: 0
Use --verbose for detailed stacktrace.
*** schemaTool failed ***
</code>```

Title: I can not initiate derby schema

Body:
when i run $HIVE_HOME/bin/schematool -initSchema -dbType derby

the output is

Metastore connection URL:    jdbc:derby://localhost:1527/metastore_db;create=true
Metastore Connection Driver :    org.apache.derby.jdbc.EmbeddedDriver
Metastore connection User:   APP
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
Underlying cause: java.sql.SQLException : No suitable driver found for jdbc:derby://localhost:1527/metastore_db;create=true
SQL Error code: 0
Use --verbose for detailed stacktrace.
*** schemaTool failed ***


问:
How can I make the origin of aliases in Cypress more apparent from the it/spec files?
My team is using aliases to set some important variables which are used within the it('Test',) blocks.

For example, we may be running the following command in a before step:

cy.setupSomeDynamicData()
```
<p>Then the <code>setupSomeDynamicData()</code> method exists in a another file (ex: commands.js) and the <code>setupSomeDynamicData()</code> method may setup a couple aliases:</p>
<pre class="lang-js prettyprint-override"><code>cypress/support/commands.js
setupSomeDynamicData() {
    cy.createDynamicString(first).as('String1')
    cy.createDynamicString(second).as('String2')
    cy.createDynamicString(third).as('String3')
}
</code>```

Now we go back to our spec/test file, and start using these aliases:

cypress/e2e/smallTest.cy.js
it('A small example test', function () {
    cy.visit(this.String1)
    // do some stuff...
    cy.get(this.String2)
    // do some stuff...
    cy.visit(this.String3)
    // do some stuff...
})
```

The problem is that unless you're the person who wrote the code, it's not obvious where this.String1, this.String2, or this.String3 are coming from nor when they were initialized (from the perspective of smallTest.cy.js) since the code that initializes the aliases is being executed in another file.

In the example, it's quite easy to Ctrl+F the codebase and search for these aliases but you have to really start doing some reverse engineering once you have more complex use cases.

I guess this feels like some sort of readability/maintainability problem because once you setup enough of these and the example I provided starts to get more complex then finding out where these aliases are created can be inconvenient. The this.* syntax makes it feel like you'd find these aliases variables somewhere within the same file in which they're being used but when you don't see any sign of them then it becomes evident that they've just magically been initialized (somewhere/somehow) and then the hunt ♂ begins.

Some solutions that come to mind (which may be bad ideas) are:

Create JS objects with getters/setters. This way, it'll be a bit easier to trace where the variable you're using was "set"

Not use aliases, and instead, use global variables that can be imported into the spec/test files so it's clear where they are coming from then run a before/after hook to clear these variables so that the reset-per-test functionality remains.

Name the variables in a way where it's obvious that they are aliased and then spread the word/document this method within my team so that anytime they see this.aliasedString2 then they know it's coming from some method that performs these alias assignments.

I'm sure there may be a better way to handle this so just thought I'd post this question.

Body:
My team is using aliases to set some important variables which are used within the it('Test',) blocks.

For example, we may be running the following command in a before step:

cy.setupSomeDynamicData()

Then the setupSomeDynamicData() method exists in a another file (ex: commands.js) and the setupSomeDynamicData() method may setup a couple aliases:

cypress/support/commands.js
setupSomeDynamicData() {
    cy.createDynamicString(first).as('String1')
    cy.createDynamicString(second).as('String2')
    cy.createDynamicString(third).as('String3')
}

Now we go back to our spec/test file, and start using these aliases:

cypress/e2e/smallTest.cy.js
it('A small example test', function () {
    cy.visit(this.String1)
    // do some stuff...
    cy.get(this.String2)
    // do some stuff...
    cy.visit(this.String3)
    // do some stuff...
})

The problem is that unless you're the person who wrote the code, it's not obvious where this.String1, this.String2, or this.String3 are coming from nor when they were initialized (from the perspective of smallTest.cy.js) since the code that initializes the aliases is being executed in another file.

In the example, it's quite easy to Ctrl+F the codebase and search for these aliases but you have to really start doing some reverse engineering once you have more complex use cases.

I guess this feels like some sort of readability/maintainability problem because once you setup enough of these and the example I provided starts to get more complex then finding out where these aliases are created can be inconvenient. The this.* syntax makes it feel like you'd find these aliases variables somewhere within the same file in which they're being used but when you don't see any sign of them then it becomes evident that they've just magically been initialized (somewhere/somehow) and then the hunt ♂ begins.

Some solutions that come to mind (which may be bad ideas) are:

Create JS objects with getters/setters. This way, it'll be a bit easier to trace where the variable you're using was "set"

Not use aliases, and instead, use global variables that can be imported into the spec/test files so it's clear where they are coming from then run a before/after hook to clear these variables so that the reset-per-test functionality remains.

Name the variables in a way where it's obvious that they are aliased and then spread the word/document this method within my team so that anytime they see this.aliasedString2 then they know it's coming from some method that performs these alias assignments.

I'm sure there may be a better way to handle this so just thought I'd post this question.


问:
Method Classpath() not found. Enabling SafeArgs in app
Currently going through Android Developers "Build Your First Android App in Kotlin" tutorial. Attempting to enable safe args. Running into the following error:
enter image description here
How should I fix this?

So far I have added the id androidx.navigation.safeargs.kotlin to the app level build.gradle file and in the project level build.gradle file I've added the following code to the dependencies block:

```<code>def nav_version = "2.5.3"
classpath ("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version")
</code>```

Body:
Currently going through Android Developers "Build Your First Android App in Kotlin" tutorial. Attempting to enable safe args. Running into the following error:
enter image description here
How should I fix this?

So far I have added the id androidx.navigation.safeargs.kotlin to the app level build.gradle file and in the project level build.gradle file I've added the following code to the dependencies block:

def nav_version = "2.5.3"
classpath ("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version")


问:
How to re-review changes to a pull request after a review on github?
I am the reviewer for a pull request on github and would like advice on how to review revisions to pull requests. They submitted a pull request. I received it and made 20 comments, then the other party pushed commits addressing these comments. How do I see changes in a view that also shows my comments? I can see changes since my review, but that shows all changes and doesn't show my comments (I'd like to be reminded of what changes I requested).

This is similar to How to review pull requests revisions? but they didn't receive any answers


问:
Initializing two repositories - one in parent folder and another in child folder - child folder's files continue to be tracked in parent folder
Due to an earlier bad git design of mine where I had unrelated and independent projects under a single repository, where my actual hard drive folder structure was replicated on git as well (see here), I am now attempting to have separate repositories for each logical independent unit/project on my hard drive. The question below is a minimal example issue of what I encounter in attempting to do so.

Consider the following sequence of commands:

```<code>mkdir child_folder
cd child_folder
touch child_folder_file.txt

cd ..
touch parent_folder_file.txt

git init
git add *
git commit -m "first commit"
</code>```

The output now is:

```<code>[master (root-commit) e557bc4] first commit
 2 files changed, 29 insertions(+)
 create mode 100644 child_folder/child_folder_file.txt
 create mode 100644 parent_folder_file.txt
</code>```

and the folder/file structure in my hard drive is:

```<code>/parent_folder
    .git/
    parent_folder_file.txt
    child_folder/
        child_folder_file.txt
</code>```

So far, so good.

Now, when I further perform the following:

```<code>cd child_folder
git init
touch another_child_folder_file.txt
</code>```

The folder structure has become:

```<code>/parent_folder
    .git/
    parent_folder_file.txt
    child_folder/
        .git/
        child_folder_file.txt
        another_child_folder_file.txt/
</code>```

Based on this answer to an earlier question, I was under the impression that the mere presence of .git/ folder in child_folder would automatically render the files within it outside the reach of the .git/ folder of parent_folder. However, this does not happen. For, further issuing the following commands,

```<code>cd ..    //So that one is now in parent_folder
git status
</code>```

the output is:

```<code>Untracked files:
  (use "git add <file>..." to include in what will be committed)
        child_folder/another_child_folder_file.txt
</code>```

indicating that the parent_folder's repository continues to reach inside of child_folder

To remove parent_folder's reaching into child_folder, I had to explicitly issue:

```<code>`git rm -r --cached "child_folder/"
</code>```

Now, git status reveals:

```<code>On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        deleted:    child_folder/child_folder_file.txt
</code>```

and it no longer tracks another_child_folder_file.txt as well.

Question 1: Why does the parent .git/ folder continue to "reach into" the child folder's .git/ in spite of the answer here

Question 2: To disallow this, so that the same file is not tracked from multiple repositories, is git rm -r --cached "child_folder/" issued from the parent_folder explicitly the right approach to take?

Body:
Due to an earlier bad git design of mine where I had unrelated and independent projects under a single repository, where my actual hard drive folder structure was replicated on git as well (see here), I am now attempting to have separate repositories for each logical independent unit/project on my hard drive. The question below is a minimal example issue of what I encounter in attempting to do so.

Consider the following sequence of commands:

mkdir child_folder
cd child_folder
touch child_folder_file.txt

cd ..
touch parent_folder_file.txt

git init
git add *
git commit -m "first commit"

The output now is:

[master (root-commit) e557bc4] first commit
 2 files changed, 29 insertions(+)
 create mode 100644 child_folder/child_folder_file.txt
 create mode 100644 parent_folder_file.txt

and the folder/file structure in my hard drive is:

/parent_folder
    .git/
    parent_folder_file.txt
    child_folder/
        child_folder_file.txt

So far, so good.

Now, when I further perform the following:

cd child_folder
git init
touch another_child_folder_file.txt

The folder structure has become:

/parent_folder
    .git/
    parent_folder_file.txt
    child_folder/
        .git/
        child_folder_file.txt
        another_child_folder_file.txt/

Based on this answer to an earlier question, I was under the impression that the mere presence of .git/ folder in child_folder would automatically render the files within it outside the reach of the .git/ folder of parent_folder. However, this does not happen. For, further issuing the following commands,

cd ..    //So that one is now in parent_folder
git status

the output is:

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        child_folder/another_child_folder_file.txt

indicating that the parent_folder's repository continues to reach inside of child_folder

To remove parent_folder's reaching into child_folder, I had to explicitly issue:

`git rm -r --cached "child_folder/"

Now, git status reveals:

On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        deleted:    child_folder/child_folder_file.txt

and it no longer tracks another_child_folder_file.txt as well.

Question 1: Why does the parent .git/ folder continue to "reach into" the child folder's .git/ in spite of the answer here

Question 2: To disallow this, so that the same file is not tracked from multiple repositories, is git rm -r --cached "child_folder/" issued from the parent_folder explicitly the right approach to take?


问:
FAILURE: Build failed with an exception
I'm trying to run my app from inside Visual studio code, but every time I try i get this error:

FAILURE: Build failed with an exception.

What went wrong:

Execution failed for task ':app:validateSigningDebug'.

java.util.concurrent.ExecutionException: com.android.builder.utils.SynchronizedFile$ActionExecutionException: java.io.IOException: com.android.ide.common.signing.KeytoolException: Failed to create keystore.

Try:

Run with --stacktrace option to get the stack trace.

Run with --info or --debug option to get more log output.

Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 2s

Exception: Gradle task assembleDebug failed with exit code 1

Although I searched on Google, but I did not get a suitable solution to my problem

Title: FAILURE: Build failed with an exception


问:
How to replace the control style under mouseover according to custom conditions in WPF
I have a richtextbox control here. I want to base on the x property (string type) of a custom class. When it is a different value, the style of the richtextbox control under MouseOver is different. I want to know how to realize this idea.

I've tried styleselector, but I don't know where to apply them. I also tried a multi-condition trigger, but the property x of the custom class I don't know how to be treated as a condition. So, which idea is feasible, the styleselector? Multiple conditional triggers? Or a template selector? Thank you all.


问:
Scroll not working in python selenium code
I wrote the code like this.

However, if there is an element of the conditional statement, after clicking, scrolling is operated on the website. It does not work and there is no error code.

The upper code outside the conditional statement works. What's the reason ?

```<code>                    count = 0

                    while count < 10:

                        try:
                            element = driver.find_element_by_css_selector('a.txt.elss[href="' + self.URL_input.text() + '"]')
                            time.sleep(2)

                            print(self.URL_input.text())

                            element.click()
                            time.sleep(10)

                            for i in range(0, 10000,10):
                                driver.execute_script("window.scrollTo(0, {})".format(i))
                            self.output_box.insertPlainText("1.\n")
                            QApplication.processEvents()
                            random_delay = random.uniform(5, 10)

                            #driver.quit()
                            break
                        except selenium.common.exceptions.NoSuchElementException:

                            element = driver.find_element_by_css_selector('a.btn_next')
                            time.sleep(2)

                            element.click()
                            time.sleep(2)
                            count += 1
                    self.output_box.insertPlainText("10.\n")
                    QApplication.processEvents()
                    time.sleep(5)
                self.output_box.insertPlainText("end.\n")
                def scroll_down():
                    driver.execute_script("window.scrollBy(0, 50);")

                    scroll_time = random.uniform(2, 5)

                    start_time = time.time()
                    while True:
                        scroll_down()
                        time.sleep(0.3)  # 1

                                        #
                        elapsed_time = time.time() - start_time
                        if elapsed_time >= scroll_time:
                                break
                self.output_box.insertPlainText("\n" + formatted_now + " End!!.")
                QApplication.processEvents()  #
                driver.quit()

</code>```

Body:
I wrote the code like this.

However, if there is an element of the conditional statement, after clicking, scrolling is operated on the website. It does not work and there is no error code.

The upper code outside the conditional statement works. What's the reason ?

                    count = 0

                    while count < 10:

                        try:
                            element = driver.find_element_by_css_selector('a.txt.elss[href="' + self.URL_input.text() + '"]')
                            time.sleep(2)

                            print(self.URL_input.text())

                            element.click()
                            time.sleep(10)

                            for i in range(0, 10000,10):
                                driver.execute_script("window.scrollTo(0, {})".format(i))
                            self.output_box.insertPlainText("1.\n")
                            QApplication.processEvents()
                            random_delay = random.uniform(5, 10)

                            #driver.quit()
                            break
                        except selenium.common.exceptions.NoSuchElementException:

                            element = driver.find_element_by_css_selector('a.btn_next')
                            time.sleep(2)

                            element.click()
                            time.sleep(2)
                            count += 1
                    self.output_box.insertPlainText("10.\n")
                    QApplication.processEvents()
                    time.sleep(5)
                self.output_box.insertPlainText("end.\n")
                def scroll_down():
                    driver.execute_script("window.scrollBy(0, 50);")

                    scroll_time = random.uniform(2, 5)

                    start_time = time.time()
                    while True:
                        scroll_down()
                        time.sleep(0.3)  # 1

                                        #
                        elapsed_time = time.time() - start_time
                        if elapsed_time >= scroll_time:
                                break
                self.output_box.insertPlainText("\n" + formatted_now + " End!!.")
                QApplication.processEvents()  #
                driver.quit()


问:
OneHotEncode a DataFrame with some categorical columns and some numeric columns
3 out of 8 columns of my dataset are categorical and the rest are integers or floats. sklearn's OneHotEncoder returns a scipy sparse matrix which is not easy to recombine with the other 5 non-sparse columns. Is there an easy way to recombine the dataframe or will I have to convert the whole df to a sparse matrix?</p>


问:
StackView Strangeness in Swift
I'm trying to make a little close simplification, and I seem to have missed something basic. I want the following snippet:

```<code>        let updateStackView = NSStackView(views: [updateField])
        updateStackView.orientation = .horizontal
        updateStackView.distribution = .fill
        updateStackView.alignment = .centerX

</code>```

to look more like this:

```<code>
</code>```
```<code>let updateStackView = stack(views[updateField], orient: .horizontal, dist: .fill, align: .centerX)
</code>```
```<code>
    func stack(views:[NSView],
               orient: NSUserInterfaceLayoutOrientation,
               dist: NSStackView.Distribution,
               align: NSLayoutConstraint.Attribute) -> NSStackView {
        let s = NSStackView(views: views)
        s.orientation = orient
        s.distribution = dist
        s.alignment = align
        return s
    }

</code>```

But, the returned StackView does not get the attributes assigned. What am I missing?

The original snippet works as expected. The factored code doesn't.

Title: StackView Strangeness in Swift

Body:
I'm trying to make a little close simplification, and I seem to have missed something basic. I want the following snippet:

        let updateStackView = NSStackView(views: [updateField])
        updateStackView.orientation = .horizontal
        updateStackView.distribution = .fill
        updateStackView.alignment = .centerX

to look more like this:

let updateStackView = stack(views[updateField], orient: .horizontal, dist: .fill, align: .centerX)

    func stack(views:[NSView],
               orient: NSUserInterfaceLayoutOrientation,
               dist: NSStackView.Distribution,
               align: NSLayoutConstraint.Attribute) -> NSStackView {
        let s = NSStackView(views: views)
        s.orientation = orient
        s.distribution = dist
        s.alignment = align
        return s
    }

But, the returned StackView does not get the attributes assigned. What am I missing?

The original snippet works as expected. The factored code doesn't.


问:
Terraform creation of AWS Kinesis Firehose Stream to AWS OpenSearch
We are using Terraform to create an AWS OpenSearch domain and want to also create a Kinesis FireHose stream to it.  I can see in the Terraform documentation how to create a aws_kinesis_firehose_delivery_stream object but there is no option for implementing a destination for OpenSearch.

I have seen a module called kinesis-stream-es (link) that implements this using CloudFormation code.

Questions:

Can one use TF to implement a FireHose-to-OpenSearch-stream using the native framework?

Are there any downsides to using a CloudFormation-wrapped-by-Terraform-code approach to building a FireHose-to-OpenSearch stream?


问:
odoo14 CE: Restrict merging of picking for same destination and same products

By default odoo 14 CE merge the picking for the same destination and
for the products. Is there a way / configuration / settings / codes
that can "RESTRICT MERGING" of picking and products.

Example Case:

I have Warehouse A & B and I want to send Internal Transfer via
Transit Warehouse with 1 step with pull rule from Transit/A to B/IN/01
{Delivery Operation Receipt}. I create a A/INT/01 to Transit/A which
odoo will create 3 transfers as follows

A/INT/01 to Transit/A >> Ready Transit/A to B/IN/01 >> Waiting
another operation B/IN/01 to B/Stock >> Waiting another operation If
followed step by step operation everything works fine but if I create
another transfer from A to B say as follows,

A/INT/02 to Transit/A >> Ready Transit/A to B/IN/01 >> Waiting
another operation B/IN/01 to B/Stock >> Waiting another operation
Notice: Transfer A/INT/02 will be merged in existing Transit/A this is
also fine but it will not create B/INT/02 instead all products will be
merged in B/IN/01 and odoo will not create B/IN/02

What I am doing wrong in Transit configuration or how to stop merging
products and picking?

Reason why I need to use "Transit" is >> I need steps for Internal
transfer [Pick+Pack+Ship] as products will be scanned with barcode
reader on every step which is NOT AVAILABLE in Internal Transfer.


问:
Cannot save tags in wordpress - either new or classic editor
This error appears in the console :

```<code>Uncaught TypeError: Cannot read properties of undefined (reading 'hasClass')
    at HTMLDocument.<anonymous> (wp-auth-check.min.js:2:655)
    at HTMLDocument.dispatch (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:38053)
    at HTMLDocument.u (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:33916)
    at Object.trigger (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:36647)
    at HTMLDocument.<anonymous> (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:44416)
    at Function.each (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:14543)
    at s.fn.init.each (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:11217)
    at s.fn.init.trigger (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:44392)
    at Object.<anonymous> (heartbeat.min.js:2:2186)
    at l (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:16996)
</code>```

Latest WP and PHP 8.1

I have no plugins or php errors.

Quick Edit also does not open. Tried all the editor plugins I could find and none work for Quick Edit or tag entry.

Would this be feasible by adding tags directly in the database ? Any help would be appreciated as tags is key to my website.

Body:
This error appears in the console :

Uncaught TypeError: Cannot read properties of undefined (reading 'hasClass')
    at HTMLDocument.<anonymous> (wp-auth-check.min.js:2:655)
    at HTMLDocument.dispatch (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:38053)
    at HTMLDocument.u (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:33916)
    at Object.trigger (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:36647)
    at HTMLDocument.<anonymous> (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:44416)
    at Function.each (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:14543)
    at s.fn.init.each (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:11217)
    at s.fn.init.trigger (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:44392)
    at Object.<anonymous> (heartbeat.min.js:2:2186)
    at l (load-scripts.php?c=0&load%5Bchunk_0%5D=jquery-core,jquery-migrate,utils,moxiejs,plupload&ver=6.1.1:2:16996)

Latest WP and PHP 8.1

I have no plugins or php errors.

Quick Edit also does not open. Tried all the editor plugins I could find and none work for Quick Edit or tag entry.

Would this be feasible by adding tags directly in the database ? Any help would be appreciated as tags is key to my website.


问:
Google Cloud Platform tutorial Issue - Detecting anomalies in financial transactions by using AI Platform, Dataflow, and BigQuery
I tried following the google cloud platform tutorial "Detecting anomalies in financial transactions by using AI Platform, Dataflow, and BigQuery".
I was able to complete most of the steps but was unable to execute the dataflow job using the command in the tutorial. This is the link to the step.

I replaced the "myProject" and was able to submit a job, but it keeps on failing. I get error message as follows.


问:
How to locate initial call of jQuery event?
How do you locate where in a HTML page Javascript initially calls a jQuery event?

I'm attempting to diagnose and track down an obnoxious Datatables bug that has this traceback:

```<code>datatables.min.js:50 Uncaught TypeError: Cannot set properties of undefined (setting '_DT_CellIndex')
    at fb (datatables.min.js:50:21)
    at ia (datatables.min.js:45:1)
    at HTMLTableRowElement.<anonymous> (datatables.min.js:45:114)
    at jquery-3.5.1.min.js:2:1540
    at Function.map (jquery-3.5.1.min.js:2:3509)
    at S.fn.init.map (jquery-3.5.1.min.js:2:1508)
    at La (datatables.min.js:45:79)
    at f (datatables.min.js:123:15)
    at HTMLTableElement.<anonymous> (datatables.min.js:123:198)
    at Function.each (jquery-3.5.1.min.js:2:2976)
fb @ datatables.min.js:50
ia @ datatables.min.js:45
(anonymous) @ datatables.min.js:45
(anonymous) @ jquery-3.5.1.min.js:2
map @ jquery-3.5.1.min.js:2
map @ jquery-3.5.1.min.js:2
La @ datatables.min.js:45
f @ datatables.min.js:123
(anonymous) @ datatables.min.js:123
each @ jquery-3.5.1.min.js:2
each @ jquery-3.5.1.min.js:2
u @ datatables.min.js:113
(anonymous) @ (index):2999
setTimeout (async)
(anonymous) @ (index):2997
e @ jquery-3.5.1.min.js:2
t @ jquery-3.5.1.min.js:2
setTimeout (async)
(anonymous) @ jquery-3.5.1.min.js:2
c @ jquery-3.5.1.min.js:2
fireWith @ jquery-3.5.1.min.js:2
fire @ jquery-3.5.1.min.js:2
c @ jquery-3.5.1.min.js:2
fireWith @ jquery-3.5.1.min.js:2
ready @ jquery-3.5.1.min.js:2
B @ jquery-3.5.1.min.js:2
</code>```

Datatables is notoriously buggy, and this error is well-known and can be caused by 'a number of different table configurations that the Datatables devs simply don't want to support. Fortunately, the fix is simple. I need to find where my Datatables call is and modify it to ignore that table.

Unfortunately, the earliest line in the traceback goes to a jQuery call. Nowhere does it touch any of my custom application Javascript, so I can't locate that call in my application code, so I have no idea where it's happening. The call itself isn't even easily recognizable anywhere in my code.

Presumably, I'm launching a jQuery event somewhere, which is touching or updating a table, which is then triggering a Datatables update, causing the error, and because of the use of asynchronous events, the original line of the code is being hidden.

How do I find this?

Body:
How do you locate where in a HTML page Javascript initially calls a jQuery event?

I'm attempting to diagnose and track down an obnoxious Datatables bug that has this traceback:

datatables.min.js:50 Uncaught TypeError: Cannot set properties of undefined (setting '_DT_CellIndex')
    at fb (datatables.min.js:50:21)
    at ia (datatables.min.js:45:1)
    at HTMLTableRowElement.<anonymous> (datatables.min.js:45:114)
    at jquery-3.5.1.min.js:2:1540
    at Function.map (jquery-3.5.1.min.js:2:3509)
    at S.fn.init.map (jquery-3.5.1.min.js:2:1508)
    at La (datatables.min.js:45:79)
    at f (datatables.min.js:123:15)
    at HTMLTableElement.<anonymous> (datatables.min.js:123:198)
    at Function.each (jquery-3.5.1.min.js:2:2976)
fb @ datatables.min.js:50
ia @ datatables.min.js:45
(anonymous) @ datatables.min.js:45
(anonymous) @ jquery-3.5.1.min.js:2
map @ jquery-3.5.1.min.js:2
map @ jquery-3.5.1.min.js:2
La @ datatables.min.js:45
f @ datatables.min.js:123
(anonymous) @ datatables.min.js:123
each @ jquery-3.5.1.min.js:2
each @ jquery-3.5.1.min.js:2
u @ datatables.min.js:113
(anonymous) @ (index):2999
setTimeout (async)
(anonymous) @ (index):2997
e @ jquery-3.5.1.min.js:2
t @ jquery-3.5.1.min.js:2
setTimeout (async)
(anonymous) @ jquery-3.5.1.min.js:2
c @ jquery-3.5.1.min.js:2
fireWith @ jquery-3.5.1.min.js:2
fire @ jquery-3.5.1.min.js:2
c @ jquery-3.5.1.min.js:2
fireWith @ jquery-3.5.1.min.js:2
ready @ jquery-3.5.1.min.js:2
B @ jquery-3.5.1.min.js:2

Datatables is notoriously buggy, and this error is well-known and can be caused by 'a number of different table configurations that the Datatables devs simply don't want to support. Fortunately, the fix is simple. I need to find where my Datatables call is and modify it to ignore that table.

Unfortunately, the earliest line in the traceback goes to a jQuery call. Nowhere does it touch any of my custom application Javascript, so I can't locate that call in my application code, so I have no idea where it's happening. The call itself isn't even easily recognizable anywhere in my code.

Presumably, I'm launching a jQuery event somewhere, which is touching or updating a table, which is then triggering a Datatables update, causing the error, and because of the use of asynchronous events, the original line of the code is being hidden.

How do I find this?


问:
mysql filter results based on values in query parameters
I have a difficult problem that involves building a select statement based off user selected filter values

for example, on amazon, they have a filter called condition that has the values of new and used

what would the where clause of the select statement look like, so that it works when the user have selected none, one, or both of the options?

Assume that they're passed as query params in the form of new,used for both selected, or just new when 1 is selected. That's how I have it setup in my code