Age | Commit message (Collapse) | Author | Files | Lines |
|
I modified the original patch for trunk to use the unit test API.
(issue #17277)
Reported by: cappucinoking
Patches:
test_heap.diff uploaded by cappucinoking (license 1036)
Tested by: cappucinoking, russell
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261500 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
This bug surfaced in 1.6.2 and does not affect code in any other released
version of Asterisk. It manifested itself as SIP qualify not happening when
it should, causing peers to go unreachable. This was debugged down to scheduler
entries sometimes not getting executed when they were supposed to, which was in
turn caused by an error in the heap code.
The problem only sometimes occurs, and it is due to the logic for removing an entry
in the heap from an arbitrary location (not just popping off the top). The scheduler
performs this operation frequently when entries are removed before they run (when
ast_sched_del() is used).
In a normal pop off of the top of the heap, a node is taken off the bottom,
placed at the top, and then bubbled down until the max heap property is restored
(see max_heapify()). This same logic was used for removing an arbitrary node
from the middle of the heap. Unfortunately, that logic is full of fail. This
patch fixes that by fully restoring the max heap property when a node is thrown
into the middle of the heap. Instead of just pushing it down as appropriate, it
first pushes it up as high as it will go, and _then_ pushes it down.
Lastly, fix a minor problem in ast_heap_verify(), which is only used for
debugging. If a parent and child node have the same value, that is not an
error. The only error is if a parent's value is less than its children.
A huge thanks goes out to cappucinoking for debugging this down to the scheduler,
and then producing an ast_heap test case that demonstrated the breakage. That
made it very easy for me to focus on the heap logic and produce a fix. Open source
projects are awesome.
(closes issue #16936)
Reported by: ib2
Tested by: cappucinoking, crjw
(closes issue #17277)
Reported by: cappucinoking
Patches:
heap-fix.rev2.diff uploaded by russell (license 2)
Tested by: cappucinoking, russell
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261496 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
Fixes a crash when some config section had an incorrect channel config.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261451 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261405 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
commented out.
This fixes some breakage in the test suite, that uses the contents of asterisk.conf
to discover the install layout on the system.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261364 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
The Refer-To header field containing the Replaces header in the URI
was not being decoded properly. This caused invalid parsing between
the caller id field and the domain resulting in a failed transfer.
(closes issue #17284)
Reported by: dvossel
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261316 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r261274 | pabelanger | 2010-05-05 12:42:22 -0400 (Wed, 05 May 2010) | 12 lines
Registration fix for SIP realtime.
Make sure realtime fields are not empty.
(closes issue #17266)
Reported by: Nick_Lewis
Patches:
chan_sip.c-realtime.patch uploaded by Nick Lewis (license 657)
Tested by: Nick_Lewis, sberney
Review: https://reviewboard.asterisk.org/r/643/
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261314 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
If a recognized media type was present, but the media type was not
enabled for the channel, then a warning would be emitted. For instance,
attempting to get CHANNEL(rtpsource,video) on a call with no video would
cause a warning message to appear.
With this change, the warning will only appear if the stream argument
is not recognized as being a media type that can be specified.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261313 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
Resets each member's lastcall to 0 now.
(closes issue #17262)
Reported by: rain
Patches:
wrapuptime_reset_fix.diff uploaded by rain (license 327)
Tested by: rain
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261232 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
See the CHANGES file for more details.
(closes issue #16343)
Reported by: pabelanger
Patches:
issue16343.patch.v5 uploaded by pabelanger (license 224)
Tested by: pabelanger, tilghman, lmadsen
Review: https://reviewboard.asterisk.org/r/630/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261180 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
This simply moves the functionality from the Makefile (cleaning it up) into an external
asterisk.conf.samples file. Also updates formatting (easier to read) and grammar
changes to asterisk.conf.samples.
(closes issue #17027)
Reported by: pabelanger
Patches:
0017027.asterisk.conf.v6.patch uploaded by pabelanger (license 224)
Tested by: qwell, lmadsen, pabelanger, chappell
Review: https://reviewboard.asterisk.org/r/616/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261124 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r261093 | tilghman | 2010-05-04 18:36:53 -0500 (Tue, 04 May 2010) | 7 lines
Protect against overflow, when calculating how long to wait for a frame.
(closes issue #17128)
Reported by: under
Patches:
d.diff uploaded by under (license 914)
........
r261094 | tilghman | 2010-05-04 18:47:08 -0500 (Tue, 04 May 2010) | 2 lines
Add a tiny corner case to the previous commit
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261095 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
in all queues.
See the CHANGES file and queues.conf.sample for more details.
(closes issue #17008)
Reported by: jlpedrosa
Patches:
queues.autopause_en_review.diff uploaded by jlpedrosa (license 1002)
Review: https://reviewboard.asterisk.org/r/581/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261051 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
The CLI "dahdi show channel" command was not correctly reporting the
InAlarm status.
The inalarm flag is now consistently passed between chan_dahdi and
submodules.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@261007 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r260923 | jpeeler | 2010-05-04 13:46:46 -0500 (Tue, 04 May 2010) | 12 lines
Voicemail transfer to operator should occur immediately, not after main menu.
There were two scenarios in the advanced options that while using the
operator=yes and review=yes options, the transfer occurred only after exiting
the main menu (after sending a reply or leaving a message for an extension).
Now after the audio is processed for the reply or message the transfer occurs
immediately as expected.
ABE-2107
ABE-2108
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260924 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r260801 | qwell | 2010-05-04 10:49:27 -0500 (Tue, 04 May 2010) | 1 line
Fix fallout from removing from configure script. Pointed out by philipp64 on #asterisk-dev
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260802 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
in-conf
This patch adds the following in-conference admin DTMF features:
*81 - Roll call (or simply user count if INTROUSER isn't enabled)
*82 - Eject all non-admins
*83 - Mute/unmute all non-admins
*84 - Start recording the conference on the fly
FWIW, this code uses newly recorded prompts.
(closes issue #16379)
Reported by: rfinnie
Patches:
meetme-enhancements-232771-v1.patch uploaded by rfinnie (license 940)
modified slightly by me
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260757 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r260661 | pabelanger | 2010-05-03 12:41:30 -0400 (Mon, 03 May 2010) | 10 lines
non-root make install PREFIX=/tmp fails.
Prepend libdir when executing mkpkgconfig allowing non-root installs to work.
(closes issue #17268)
Reported by: pabelanger
Patches:
issue17268.patch uploaded by pabelanger (license 224)
Tested by: pabelanger
........
r260662 | pabelanger | 2010-05-03 12:54:41 -0400 (Mon, 03 May 2010) | 3 lines
Should have removed /usr/lib/ part. Thanks Qwell.
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260663 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r260569 | lmadsen | 2010-05-03 09:57:39 -0500 (Mon, 03 May 2010) | 1 line
Minor typo pointed out by pabelanger on IRC.
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260570 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
We have some functions inside the AstData API to get the tree
in XML form, but it is not required at the moment to compile
asterisk and we can disable that part of the API if we don't have
libxml2 support.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260521 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r260434 | jpeeler | 2010-04-30 17:22:46 -0500 (Fri, 30 Apr 2010) | 11 lines
Ensure channel state is not incorrectly set in the case of a very early answer.
The needringing bit was being read in dahdi_read after answering thereby
setting the state to ringing from up. This clears needringing upon answering
so that is no longer possible.
(closes issue #17067)
Reported by: tzafrir
Patches:
needringing.diff uploaded by tzafrir (license 46)
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260437 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
Created
SIG_PRI_MAX_CHANNELS, SIG_PRI_NUM_DCHANS
SIG_SS7_MAX_CHANNELS, SIG_SS7_NUM_DCHANS
SIG_MFCR2_MAX_CHANNELS
Also fixed the declaration of pollers[] in mfcr2_monitor(). It was
dimensioned to the number of bytes in struct dahdi_mfcr2.pvts[] and not to
the same dimension of the struct dahdi_mfcr2.pvts[].
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260435 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r260345 | mmichelson | 2010-04-30 15:08:15 -0500 (Fri, 30 Apr 2010) | 18 lines
Fix potential crash from race condition due to accessing channel data without the channel locked.
In res_musiconhold.c, there are several places where a channel's
stream's existence is checked prior to calling ast_closestream on it. The issue
here is that in several cases, the channel was not locked while checking the
stream. The result was that if two threads checked the state of the channel's
stream at approximately the same time, then there could be a situation where
both threads attempt to call ast_closestream on the channel's stream. The result
here is that the refcount for the stream would go below 0, resulting in a crash.
I have added proper channel locking to res_musiconhold.c to ensure that
we do not try to check chan->stream without the channel locked. A Digium customer
has been using this patch for several weeks and has not had any crashes since
applying the patch.
ABE-2147
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260346 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
When a specific position is specified for the queue, the idea
was that the caller cannot be placed ahead of higher-priority
callers. Unfortunately, the logic was reversed so that the caller
could ONLY be placed ahead of higher priority callers.
Discovered while writing a unit test.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260344 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
fork(2).
This saves time, when, even though the system allows the process limit to be
that high, the practical limit is much lower. Also introduce an additional
optimization, in the form of using the CLOEXEC flag to close descriptors at
the right time.
(closes issue #17223)
Reported by: dbackeberg
Patches:
20100423__issue17223.diff.txt uploaded by tilghman (license 14)
Tested by: dbackeberg
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260292 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
(closes issue #17263)
Reported by: pprindeville
Patches:
freenum-dialplan.patch#3 uploaded by pprindeville (license 347)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260280 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r260195 | rmudgett | 2010-04-29 17:11:47 -0500 (Thu, 29 Apr 2010) | 26 lines
DTMF CallerID detection problems.
The code handling DTMF CallerID drops digits on long CallerID numbers and
may timeout waiting for the first ring with shorter numbers.
The DTMF emulation mode was not turned off when processing DTMF CallerID.
When the emulation code gets behind in processing the DTMF digits it can
skip a digit.
For shorter numbers, the timeout may have been too short. I increased it
from 2 seconds to 4 seconds. Four seconds is a typical time between rings
for many countries.
(closes issue #16460)
Reported by: sum
Patches:
issue16460.patch uploaded by rmudgett (license 664)
issue16460_v1.6.2.patch uploaded by rmudgett (license 664)
Tested by: sum, rmudgett
Review: https://reviewboard.asterisk.org/r/634/
JIRA SWP-562
JIRA AST-334
JIRA SWP-901
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260231 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260148 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r260049 | dvossel | 2010-04-29 10:31:02 -0500 (Thu, 29 Apr 2010) | 14 lines
Fixes crash in audiohook_write_list
The middle_frame in the audiohook_write_list function was
being freed if a audiohook manipulator returned a failure.
This is incorrect logic. This patch resolves this and
adds detailed descriptions of how this function should work
and why manipulator failures must be ignored.
(closes issue #17052)
Reported by: dvossel
Tested by: dvossel
(closes issue #16196)
Reported by: atis
Review: https://reviewboard.asterisk.org/r/623/
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260050 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@260007 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
(closes issue #17040)
Reported by: pprindeville
Patches:
asterisk-1.6-bugid17040.patch uploaded by pprindeville (license 347)
Tested by: pprindeville
Review: https://reviewboard.asterisk.org/r/565/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259957 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r259858 | dvossel | 2010-04-28 16:16:03 -0500 (Wed, 28 Apr 2010) | 33 lines
resolves deadlocks in chan_local
Issue_1.
In the local_hangup() 3 locks must be held at the same time... pvt, pvt->chan,
and pvt->owner. Proper deadlock avoidance is done when the channel to hangup
is the outbound chan_local channel, but when it is not the outbound channel we
have an issue... We attempt to do deadlock avoidance only on the tech pvt, when
both the tech pvt and the pvt->owner are locked coming into that loop. By
never giving up the pvt->owner channel deadlock avoidance is not entirely possible.
This patch resolves that by doing deadlock avoidance on both the pvt->owner and the pvt
when trying to get the pvt->chan lock.
Issue_2.
ast_prod() is used in ast_activate_generator() to queue a frame on the channel
and make the channel's read function get called. This function is used in
ast_activate_generator() while the channel is locked, which mean's the channel
will have a lock both from the generator code and the frame_queue code by the
time it gets to chan_local.c's local_queue_frame code... local_queue_frame
contains some of the same crazy deadlock avoidance that local_hangup requires,
and this recursive lock prevents that deadlock avoidance from happening correctly.
This patch removes ast_prod() from the channel lock so only one lock is held during
the local_queue_frame function.
(closes issue #17185)
Reported by: schmoozecom
Patches:
issue_17185_v1.diff uploaded by dvossel (license 671)
issue_17185_v2.diff uploaded by dvossel (license 671)
Tested by: schmoozecom, GameGamer43
Review: https://reviewboard.asterisk.org/r/631/
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259870 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r259852 | lmadsen | 2010-04-28 16:07:48 -0500 (Wed, 28 Apr 2010) | 6 lines
Update config.guess.
Updating config.guess because after installing Ubuntu Server 9.10 and
running all the update scripts, running ./configure would not continue
because it was unable to determine what kind of system I had. After
updating config.guess things started working again.
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259853 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r259847 | qwell | 2010-04-28 15:30:21 -0500 (Wed, 28 Apr 2010) | 1 line
Add AC_CONFIG_AUX_DIR to configure script, so systems without install can use install-sh from our source dir.
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259848 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r259833 | qwell | 2010-04-28 15:25:36 -0500 (Wed, 28 Apr 2010) | 1 line
Missed this when removing $ID
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259837 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r259748 | qwell | 2010-04-28 14:17:38 -0500 (Wed, 28 Apr 2010) | 7 lines
Remove usage of `id` since it isn't useful and was causing breakge.
Solaris `id` doesn't support the -u argument. Instead of figuring out how to
fix this to work on Solaris, I decided to check why it was necessary and where
else it was used. It was only used in one place, and it hasn't been needed
for a very long time (I question whether it was ever needed).
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259760 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r259664 | jpeeler | 2010-04-28 12:13:29 -0500 (Wed, 28 Apr 2010) | 4 lines
Do not play goodbye prompt after timeout of message review.
ABE-2124
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259672 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259617 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259587 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r259531 | rmudgett | 2010-04-27 16:53:07 -0500 (Tue, 27 Apr 2010) | 11 lines
DAHDI "WARNING" message is confusing and vague
"WARNING[28406]: chan_dahdi.c:6873 ss_thread: CallerID feed failed: Success"
Changed the warning to "Failed to decode CallerID on channel 'name'". The
message before it is likely more specific about why the CallerID decode
failed.
SWP-501
AST-283
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259538 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259533 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r259526 | lmadsen | 2010-04-27 16:48:47 -0500 (Tue, 27 Apr 2010) | 15 lines
Update sounds files.
* Add additional sounds prompts for say_enumeration
* Update the English conference sounds prompts so they are better
quality and all sound more consistent
* Clean up the core-sounds-XX.txt and extra-sounds-XX.txt files to
include all present sound files
Both core (en, fr, es) and extra (en, fr) sounds files have been updated.
(closes issue #16200)
Reported by: murf
(closes issue #17137)
Reported by: lmadsen
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259527 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259451 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r259441 | qwell | 2010-04-27 16:15:46 -0500 (Tue, 27 Apr 2010) | 1 line
Add gar to the check for AR for those silly OSes (Solaris) that don't have ar.
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259442 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
autoconf2.13 couldn't handle AC_PROG_GREP, so I removed it. This is fine,
since we don't need to use anything that the configure script doesn't.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259439 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
(closes issue #17175)
Reported by: lmadsen
Patches:
Bug_Tracker_Workflow.v2.txt uploaded by pabelanger (license 224)
Tested by: pabelanger, lmadsen
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259438 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
The hope is that Solaris won't be as whiny after this change.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259357 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r259352 | qwell | 2010-04-27 14:29:26 -0500 (Tue, 27 Apr 2010) | 5 lines
Support the silly OSes that don't have ar and strip.
Since AC_PATH_TOOL is equiv to AC_CHECK_TOOL when path isn't specified, and
AC_PATH_TOOLS doesn't exist, we'll just switch to AC_CHECK_TOOLS.
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259353 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r259270 | rmudgett | 2010-04-27 13:14:54 -0500 (Tue, 27 Apr 2010) | 14 lines
hidecalleridname parameter in chan_dahdi.conf
Issue #7321 implements a new chan_dahdi configuration option. However, a
change mentioned in the issue was never implemented. This is the change
that will allow the feature to work.
I added a note to chan_dahdi.conf.sample about the feature.
(closes issue #17143)
Reported by: djensen99
Patches:
diff.txt uploaded by djensen99 (license NA) (One line change)
Tested by: djensen99
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259307 f38db490-d61c-443f-a65b-d21fe96a405b
|
|
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@259229 f38db490-d61c-443f-a65b-d21fe96a405b
|